Class UpdateConstantAction
- java.lang.Object
-
- org.apache.derby.impl.sql.execute.WriteCursorConstantAction
-
- org.apache.derby.impl.sql.execute.UpdateConstantAction
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,Formatable
,TypedFormat
,ConstantAction
public class UpdateConstantAction extends WriteCursorConstantAction
This class describes compiled constants that are passed into UpdateResultSets.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private long[]
autoincIncrement
(package private) RowLocation[]
autoincRowLocation
An array of row location objects (0 based), one for each column in the table.(package private) int[]
changedColumnIds
This class implements Formatable.private java.lang.String[]
columnNames
(package private) java.lang.String
identitySequenceUUIDString
(package private) int
numColumns
private boolean
positionedUpdate
private java.lang.String
schemaName
private java.lang.String
tableName
-
Fields inherited from class org.apache.derby.impl.sql.execute.WriteCursorConstantAction
conglomId, deferred, heapSCOCI, indexCIDS, indexNames, indexSCOCIs, irgs, lockMode, singleRowSource, targetUUID
-
Fields inherited from interface org.apache.derby.iapi.sql.execute.ConstantAction
WHEN_MATCHED_THEN_DELETE, WHEN_MATCHED_THEN_UPDATE, WHEN_NOT_MATCHED_THEN_INSERT
-
-
Constructor Summary
Constructors Constructor Description UpdateConstantAction()
Public niladic constructor.UpdateConstantAction(TableDescriptor targetTableDesc, StaticCompiledOpenConglomInfo heapSCOCI, IndexRowGenerator[] irgs, long[] indexCIDS, StaticCompiledOpenConglomInfo[] indexSCOCIs, java.lang.String[] indexNames, boolean deferred, UUID targetUUID, int lockMode, int[] changedColumnIds, FKInfo[] fkInfo, TriggerInfo triggerInfo, FormatableBitSet baseRowReadList, int[] baseRowReadMap, int[] streamStorableHeapColIds, int numColumns, boolean positionedUpdate, boolean singleRowSource, RowLocation[] autoincRowLocation, boolean underMerge, java.lang.String identitySequenceUUIDString)
Make the ConstantAction for an UPDATE statement.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getAutoincIncrement(int i)
gets the increment value for a column.(package private) RowLocation[]
getAutoincRowLocation()
gets the row locationjava.lang.String
getColumnName(int i)
gets the name of the desired column in the taget table.(package private) java.lang.String[]
getColumnNames()
get the array of column names in the target table.java.lang.String
getSchemaName()
java.lang.String
getTableName()
int
getTypeFormatId()
Get the formatID which corresponds to this class.boolean
hasAutoincrement()
Does the target table has autoincrement columns.void
readExternal(java.io.ObjectInput in)
Read this object from a stream of stored objects.void
writeExternal(java.io.ObjectOutput out)
Write this object to a stream of stored objects.-
Methods inherited from class org.apache.derby.impl.sql.execute.WriteCursorConstantAction
executeConstantAction, getBaseRowReadList, getBaseRowReadMap, getConglomerateId, getFKInfo, getIndexNameFromCID, getIndexNames, getProperty, getStreamStorableHeapColIds, getTargetProperties, getTriggerInfo, underMerge
-
-
-
-
Field Detail
-
changedColumnIds
int[] changedColumnIds
This class implements Formatable. But it is NOT used across either major or minor releases. It is only written persistently in stored prepared statements, not in the replication stage. SO, IT IS OK TO CHANGE ITS read/writeExternal.
-
positionedUpdate
private boolean positionedUpdate
-
numColumns
int numColumns
-
schemaName
private java.lang.String schemaName
-
tableName
private java.lang.String tableName
-
columnNames
private java.lang.String[] columnNames
-
identitySequenceUUIDString
java.lang.String identitySequenceUUIDString
-
autoincRowLocation
RowLocation[] autoincRowLocation
An array of row location objects (0 based), one for each column in the table. If the column is an autoincrement table then the array points to the row location of the column in SYSCOLUMNS. if not, then it contains null.
-
autoincIncrement
private long[] autoincIncrement
-
-
Constructor Detail
-
UpdateConstantAction
public UpdateConstantAction()
Public niladic constructor. Needed for Formatable interface to work.
-
UpdateConstantAction
UpdateConstantAction(TableDescriptor targetTableDesc, StaticCompiledOpenConglomInfo heapSCOCI, IndexRowGenerator[] irgs, long[] indexCIDS, StaticCompiledOpenConglomInfo[] indexSCOCIs, java.lang.String[] indexNames, boolean deferred, UUID targetUUID, int lockMode, int[] changedColumnIds, FKInfo[] fkInfo, TriggerInfo triggerInfo, FormatableBitSet baseRowReadList, int[] baseRowReadMap, int[] streamStorableHeapColIds, int numColumns, boolean positionedUpdate, boolean singleRowSource, RowLocation[] autoincRowLocation, boolean underMerge, java.lang.String identitySequenceUUIDString) throws StandardException
Make the ConstantAction for an UPDATE statement.- Parameters:
targetTableDesc
- descriptor for the table to be updatedheapSCOCI
- StaticCompiledOpenConglomInfo for heap.irgs
- Index descriptorsindexCIDS
- Conglomerate IDs of indicesindexSCOCIs
- StaticCompiledOpenConglomInfos for indexes.indexNames
- Names of indices on this table for error reporting.deferred
- True means process as a deferred update.targetUUID
- UUID of target tablelockMode
- The lock mode to use (row or table, see TransactionController)changedColumnIds
- Array of ids of changed columnsfkInfo
- Array of structures containing foreign key info, if any (may be null)triggerInfo
- Array of structures containing trigger info, if any (may be null)baseRowReadList
- Map of columns read in. 1 based.baseRowReadMap
- BaseRowReadMap[heapColId]->ReadRowColumnId. (0 based)streamStorableHeapColIds
- Null for non rep. (0 based)numColumns
- Number of columns being read.positionedUpdate
- is this a positioned updatesingleRowSource
- Whether or not source is a single row sourceautoincRowLocation
- Array of rowlocations of autoincrement values in SYSCOLUMNS for each ai column.underMerge
- True if this is an action of a MERGE statement.identitySequenceUUIDString
- For 10.11 and higher, the handle on the sequence for the identity column- Throws:
StandardException
-
-
Method Detail
-
hasAutoincrement
public boolean hasAutoincrement()
Does the target table has autoincrement columns.- Returns:
- True if the table has ai columns
-
getAutoincRowLocation
RowLocation[] getAutoincRowLocation()
gets the row location
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
Description copied from class:WriteCursorConstantAction
Read this object from a stream of stored objects.- Specified by:
readExternal
in interfacejava.io.Externalizable
- Overrides:
readExternal
in classWriteCursorConstantAction
- Parameters:
in
- read this.- Throws:
java.io.IOException
- thrown on errorjava.lang.ClassNotFoundException
- thrown on error- See Also:
Externalizable.readExternal(java.io.ObjectInput)
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
Description copied from class:WriteCursorConstantAction
Write this object to a stream of stored objects.- Specified by:
writeExternal
in interfacejava.io.Externalizable
- Overrides:
writeExternal
in classWriteCursorConstantAction
- Parameters:
out
- write bytes here.- Throws:
java.io.IOException
- thrown on error- See Also:
Externalizable.writeExternal(java.io.ObjectOutput)
-
getTypeFormatId
public int getTypeFormatId()
Get the formatID which corresponds to this class.- Returns:
- the formatID of this class
-
getSchemaName
public java.lang.String getSchemaName()
-
getTableName
public java.lang.String getTableName()
-
getColumnName
public java.lang.String getColumnName(int i)
gets the name of the desired column in the taget table.- Parameters:
i
- the column number
-
getColumnNames
java.lang.String[] getColumnNames()
get the array of column names in the target table.
-
getAutoincIncrement
public long getAutoincIncrement(int i)
gets the increment value for a column.- Parameters:
i
- the column number
-
-