DBCExtension.GLOP_Change Stored Procedure | Teradata Vantage - DBCExtension.GLOP_Change Stored Procedure - Teradata Vantage - Analytics Database

SQL External Routine Programming

Deployment
VantageCloud
VantageCore
Edition
VMware
Enterprise
IntelliFlex
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2025-03-30
dita:mapPath
iiv1628111441820.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
qnu1472247494689
lifecycle
latest
Product Category
Teradata Vantageā„¢
Use GLOP_Change to change the GLOP data and any of the following settings:
  • GLOP_Data for existing pages
  • Aging time for read-only GLOP data
  • Disable field of GLOP data
  • Length of the GLOP data to map

Required Privileges

An administrator who is changing GLOP data for multiple users must have the UPDATE privilege on the GLOP_Set, GLOP_Map and GLOP_Data tables (in the DBCExtension database). The Set_Name argument must be fully qualified to include the database the GLOP set is being changed for.

To change your created GLOP sets when you do not have the UPDATE privilege on the GLOP_Set, GLOP_Map and GLOP_Data tables (in the DBCExtension database), you must:
  • Have the GLOP or DROP GLOP privilege on the database for which the GLOP is being changed.
  • Be the creator or owner of the GLOP set and have the GLOP MEMBER privilege.

To change an 'RO', 'US' or 'XR' GLOP the current authorization must at least own or have one privilege on the respective role, user, or external routine.

If the table name containing the GLOP set information is being passed in the Set_name argument the user running the procedure must have SELECT privileges to the specified table.

You cannot use GLOP_Change to remove or add GLOP data to an existing set.

Syntax

REPLACE PROCEDURE DBCExtension.GLOP_Change
   (IN Set_name     VARCHAR(257) CHARACTER SET UNICODE,
    IN Type_g       CHAR(2) CHARACTER SET LATIN,
    IN Dependency   CHAR(4) CHARACTER SET LATIN,
    IN Association  VARCHAR(257) CHARACTER SET UNICODE,
    IN Data Name    VARCHAR(128) CHARACTER SET UNICODE,
    IN Map_Index    BYTEINT,
    IN Disable      CHAR(1) CHARACTER SET LATIN,
    IN Ageing       INTEGER,
    IN Length       INTEGER,
    IN Page         INTEGER,
    IN Data         BLOB(2097088000)
   )

Syntax Elements

Set_name
Name of a GLOP set or the name of a table, depending on the value of the Type_g argument.
If Type_g is not NULL, Set_name is the name of the GLOP set to change. If the name is not fully qualified, the current default database is assumed. If the name does not exist, the system reports an error.
If Type_g is NULL, Set_name is the name of a table containing the equivalent data in multiple rows of the GLOP set or sets to change. If the table is not located in the current default database, the name must be fully qualified. Set other arguments (which are ignored) to NULL. See Usage Notes.
Type_g
Type of GLOP to change. The valid values are:
  • 'SY', meaning System GLOP.
  • 'RO', meaning Role GLOP.
  • 'US', meaning User GLOP.
  • 'SE', meaning Session GLOP.
  • 'TR', meaning Transaction GLOP.
  • 'RE', meaning Request GLOP.
  • 'XR', meaning External Routine GLOP.
  • NULL, which means the Set_name argument supplies a table name to contain the data.

For details on the meanings of the GLOP types, see GLOP Types.

Dependency
When the change to a particular GLOP becomes active in memory. This value contains GLOP replace dependency information.

You must pass a value of NULL, which means no dependency, change immediately. Other values are reserved for future releases.

Association
Association for particular GLOP types.
Valid Type_g values and their associations:
  • 'RO', then the association is the role name.
  • 'US', then the association is the user name.
  • 'XR', then the association is the external routine name.

    If the external routine is not located in the current default database, the name must be fully qualified. For a UDF, the external routine name must be the specific name of the routine.

  • any other value, then the association is ignored and should be set to NULL.

If the association name does not exist in the database, the system reports an error.

Data_Name
Name of the GLOP data to change. If the name does not exist, the system reports an error.
Map_Index
Position in the map array the GLOP address is to be set in the external routine. Valid values are 0 to 7.
Disable
Whether to enable or disable the data. The valid values are:
  • 'D', which specifies to disable the data.
  • 'E', which specifies to enable the GLOP.
  • NULL, which specifies to not change the value.
Ageing
Whether to age a read-only GLOP out of memory when not mapped for the given number of minutes. The valid values are:
  • > 0, which specifies to age the GLOP out of memory when not mapped for the given number of minutes.
  • 0, which specifies to not age the GLOP out of memory.
  • NULL, which specifies to not change the value.
Length
Mapped length of the GLOP data, independent of the actual length of the data. Longer data is truncated when mapped. If the data is shorter, the remaining length is zeroed when mapped. The valid values are:
  • > -1, which specifies to set the length to the specified value.
  • NULL, which specifies to retain the current length.
  • -1, which specifies to set the length to the size of the largest GLOP page for the set ID, set type, and map index.
Page
Number of the GLOP page to be changed. If the value is NULL, no data is changed. If the GLOP page does not exist, the system reports an error. This value is only needed for read-only GLOP data; however, a value of 1 can be specified for read/write or globally modifiable GLOP data.
Data
Actual data to be changed. If this value is NULL, the data is not changed. If a zero length byte string is passed, the data is deleted but the GLOP page is retained. The data can be specified either directly or generated by specifying a UDF that returns a BLOB to this argument.

Usage Notes

Use this procedure to change the attributes or data of a GLOP set, not to remove or add additional GLOP data to the set. The changes cause all changed GLOP data to be replaced in memory.

If the Type_g argument is NULL, the Set_name argument must specify a table name that contains the data to be changed in the GLOP set. The table (which can be temporary) must have the following definition.

CREATE TABLE  GLOP_Change_Table
   (Sequence     INTEGER NOT NULL,
    Set_name     VARCHAR(257) CHARACTER SET UNICODE,
    Type_g       CHAR(2) CHARACTER SET LATIN,
    Dependency   CHAR(4) CHARACTER SET LATIN,
    Association  VARCHAR(128) CHARACTER SET UNICODE,
    Data_Name    VARCHAR(128) CHARACTER SET UNICODE,
    Map_Index    BYTEINT,
    Disable      CHAR(1) CHARACTER SET LATIN,
    Ageing       INTEGER,
    Length       INTEGER,
    Page         INTEGER,
    Data         BLOB(2097088000))
PRIMARY INDEX (Sequence);

The descriptions of the defined columns are identical to the stored procedure arguments and have the same name. The only additional column is the Sequence column that must contain a number increasing in the order the data is to be applied. The system reports an error if the sequence does not increase.

Changes do not become permanent until there is a change in the Set_name or the last row has been processed. Therefore, dependency information or index mappings can be applied at once to prevent a partial change from causing GLOP mapping to take place at the wrong time. However, all changes are rolled back when there is an error.

Do not call GLOP_Change from within a transaction, because GLOP_Change creates its own transaction or transactions, and may run DDL statements.

The procedure is designed to run from a Teradata mode session.

Example: DBCExtension.GLOP_Change Stored Procedure

This simple example updates an Engineering set GLOP with new update aluminum stress/strength data for alloys of aluminum. The data exists and is being replaced with newer data. The data is needed by the 'Stress01' UDF, which uses the data to do structural analysis on an engineering project. This is read-only GLOP data, which can be replaced for the next transaction when Stress01 is called.

CALL DBCExtension.GLOP_Change(
   'Engineering',             -- Set name
   'XR',                      -- Type: UDF
   NULL,                      -- No dependency
   'Stress01',                -- UDF that uses data
   'Aluminum_Stress_Tables',  -- the name of GLOP
   NULL,                      -- No change to map index
   NULL,                      -- No change to disable setting
   NULL,                      -- Do not change ageing value
   -1,                        -- Set GLOP length to data size
   1,                         -- Change page 1
   Engin_Strs_Gen('Al')       -- UDF to create the stress data
   );