Op Code (Hex) | Operand 1 | Operand 2 | Operand 3 | |
---|---|---|---|---|
04A3 | Index | Argument | Option list |
Operand 2: Space pointer.
Operand 3: Space pointer.
Bound program access |
---|
|
The following information is subject to change from release to release. Use it with caution and be prepared to adjust for changes with each new release.
Insert one or more new entries into the independent index identified by operand 1 according to the criteria specified in the option list (operand 3). Each entry is inserted into the index at the appropriate location based on the binary value of the argument. No other collating sequence is supported. The maximum length allowed for the independent index entry is set when the index is created. The MATINXAT instruction can be used to materialize this information.
The argument (operand 2) and the option list (operand 3) have the same format as the search argument and option list for the Find Independent Index Entry (FNDINXEN) instruction.
The rule option
identifies the type of insert to be performed and
has the following meaning:
Insert Type | Value (Hex) | Meaning | Authorization | |
---|---|---|---|---|
Insert
|
0001
|
Insert unique argument
|
Insert
| |
Insert with replacement
|
0002
|
Insert argument, replacing the nonkey portion if the key is already
in the index
| Update | |
Insert without replacement
|
0003
|
Insert argument only if the key is not already in the index
|
Insert
|
The insert rule option is valid only for indexes not containing keys. The insert with replacement rule option and the insert without replacement rule option are valid for indexes containing either fixed- or variable-length entries with keys. The duplicate key argument in index (hex 1801) exception is signaled for the following conditions:
The occurrence count specifies the number of arguments to be inserted. This field is limited to a maximum value of 4,095. If this value is exceeded, a template value invalid (hex 3801) exception is signaled.
If the index was created to contain both pointers and scalar data, then each entry to be inserted must be 16-byte aligned. If the index was created to contain variable-length entries, then the entry length and offset fields must be specified in the option list for each argument in the space identified by operand 2. The entry length is the length of the entry to be inserted.
If the index was created to contain both pointers and scalar data, the offset field in the option list must be supplied for each entry to be inserted. The offset is the number of bytes from the beginning of the previous entry to the beginning of the entry to be inserted. For the first entry, this is the offset from the start of the space identified by operand 2.
The return count specifies the number of entries inserted into the index. If the index was created to contain scalar data only, then any pointers inserted are invalidated.
This operation will cause an object domain or hardware storage protection violation (hex 4401) exception if attempted from user state on an index object with the restrict index operations from user state at all security levels attribute set to binary 1.
02 Access Group
06 Addressing
08 Argument/Parameter
0A Authorization
10 Damage Encountered
18 Independent Index
1A Lock State
1C Machine-Dependent
20 Machine Support
22 Object Access
24 Pointer Specification
2E Resource Control Limit
36 Space Management
38 Template Specification
44 Protection Violation