Class OpenConglomerateScratchSpace
- java.lang.Object
-
- org.apache.derby.impl.store.access.conglomerate.OpenConglomerateScratchSpace
-
- All Implemented Interfaces:
DynamicCompiledOpenConglomInfo
public class OpenConglomerateScratchSpace extends java.lang.Object implements DynamicCompiledOpenConglomInfo
A utility class to store and use temporary scratch space associated with a conglomerate.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]
collation_ids
private int[]
format_ids
A complete array of format id's and collation_ids for this conglomerate.private boolean
hasCollatedTypes
Tells if there is at least one type in the conglomerate whose collation isn't StringDataValue.COLLATION_TYPE_UCS_BASIC.private DataValueDescriptor[]
row_for_export_template
A template of info about the classes in the returned row.private DataValueDescriptor[]
scratch_row
A Scratch row used for qualifying rows in the conglomerate.private RowPosition
scratch_row_position
Scratch space used byConglomerateController
.private DataValueDescriptor[]
scratch_template
A Scratch template used for searching and qualifying rows in the conglomerate.
-
Constructor Summary
Constructors Constructor Description OpenConglomerateScratchSpace(int[] format_ids, int[] collation_ids, boolean hasCollatedTypes)
Creates a new scratch space.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataValueDescriptor[]
get_row_for_export(Transaction rawtran)
Return an empty template (possibly partial) row to be given back to a client.DataValueDescriptor[]
get_scratch_row(Transaction rawtran)
Return an empty template (possibly partial) row to be used and reused internally for processing.RowPosition
get_scratch_row_position()
Return a scratch RowPosition.DataValueDescriptor[]
get_template(Transaction rawtran)
Return a complete empty row.boolean
hasCollatedTypes()
Tells if there is at least one column with a collation different than UCS BASIC in the conglomerate.
-
-
-
Field Detail
-
row_for_export_template
private DataValueDescriptor[] row_for_export_template
A template of info about the classes in the returned row.This template is allocated on demand, and is used to efficiently create new rows for export from this class. This variable is for use by get_row_for_export().
-
scratch_template
private DataValueDescriptor[] scratch_template
A Scratch template used for searching and qualifying rows in the conglomerate. This is a full template, independent of the FormatableBitSet used for access.
-
scratch_row
private DataValueDescriptor[] scratch_row
A Scratch row used for qualifying rows in the conglomerate. This is a row which matches the FormatableBitSet of rows being returned.
-
format_ids
private final int[] format_ids
A complete array of format id's and collation_ids for this conglomerate.
-
collation_ids
private final int[] collation_ids
-
hasCollatedTypes
private final boolean hasCollatedTypes
Tells if there is at least one type in the conglomerate whose collation isn't StringDataValue.COLLATION_TYPE_UCS_BASIC. This can be determined by looking at the collation ids, but now the caller is passing in the value to avoid having to look at all the collation ids multiple times.
-
scratch_row_position
private RowPosition scratch_row_position
Scratch space used byConglomerateController
.
-
-
Constructor Detail
-
OpenConglomerateScratchSpace
public OpenConglomerateScratchSpace(int[] format_ids, int[] collation_ids, boolean hasCollatedTypes)
Creates a new scratch space.- Parameters:
format_ids
- format identifiers for columns in the rowcollation_ids
- collation identifiers for the columns in the rowhasCollatedTypes
- whether there is at least one collated type with a collation other than UCS BASIC in the conglomerate
-
-
Method Detail
-
get_row_for_export
public DataValueDescriptor[] get_row_for_export(Transaction rawtran) throws StandardException
Return an empty template (possibly partial) row to be given back to a client.The main use of this is for fetchSet() and fetchNextGroup() which allocate rows and then give them back entirely to the caller.
- Returns:
- The row to use.
- Throws:
StandardException
- Standard exception policy.
-
get_scratch_row
public DataValueDescriptor[] get_scratch_row(Transaction rawtran) throws StandardException
Return an empty template (possibly partial) row to be used and reused internally for processing.The main use of this is for qualifying rows where a row has not been provided by the client. This routine cache's a single row for reuse by the caller, if the caller needs 2 concurrent scratch rows, some other mechanism must be used.
- Returns:
- The row to use.
- Throws:
StandardException
- Standard exception policy.
-
get_template
public DataValueDescriptor[] get_template(Transaction rawtran) throws StandardException
Return a complete empty row.The main use of this is for searching a tree where a complete copy of the row is needed for searching.
- Returns:
- The template to use.
- Throws:
StandardException
- Standard exception policy.
-
get_scratch_row_position
public RowPosition get_scratch_row_position()
Return a scratch RowPosition.Used by GenericConglomerateController.delete() and GenericConglomerateController.replace(). It may be reused so callers must insure that object no longer needed before next possible call to get it again.
- Returns:
- a scratch RowPosition.
-
hasCollatedTypes
public boolean hasCollatedTypes()
Tells if there is at least one column with a collation different than UCS BASIC in the conglomerate.- Returns:
true
if there is at least one column with a collation different than UCS BASIC.
-
-