Package com.gpudb.protocol
Class RawInsertRecordsRequest
- java.lang.Object
-
- com.gpudb.protocol.RawInsertRecordsRequest
-
- All Implemented Interfaces:
org.apache.avro.generic.GenericContainer,org.apache.avro.generic.IndexedRecord
public class RawInsertRecordsRequest extends Object implements org.apache.avro.generic.IndexedRecord
A set of parameters forGPUdb.insertRecordsRaw.Adds multiple records to the specified table. The operation is synchronous, meaning that a response will not be returned until all the records are fully inserted and available. The response payload provides the counts of the number of records actually inserted and/or updated, and can provide the unique identifier of each added record.
The
optionsparameter can be used to customize this function's behavior.The
UPDATE_ON_EXISTING_PKoption specifies the record collision policy for inserting into a table with a primary key, but is ignored if no primary key exists.The
RETURN_RECORD_IDSoption indicates that the database should return the unique identifiers of inserted records.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRawInsertRecordsRequest.ListEncodingA set of string constants for theRawInsertRecordsRequestparameterlistEncoding.static classRawInsertRecordsRequest.OptionsA set of string constants for theRawInsertRecordsRequestparameteroptions.
-
Constructor Summary
Constructors Constructor Description RawInsertRecordsRequest()Constructs a RawInsertRecordsRequest object with default parameters.RawInsertRecordsRequest(String tableName, List<ByteBuffer> list, List<String> listStr, String listEncoding, Map<String,String> options)Constructs a RawInsertRecordsRequest object with the specified parameters.RawInsertRecordsRequest(String tableName, List<ByteBuffer> list, Map<String,String> options)Constructs a RawInsertRecordsRequest object with the specified parameters.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)Objectget(int index)This method supports the Avro framework and is not intended to be called directly by the user.static org.apache.avro.SchemagetClassSchema()This method supports the Avro framework and is not intended to be called directly by the user.List<ByteBuffer>getList()An array of binary-encoded data for the records to be added.StringgetListEncoding()The encoding of the records to be inserted.List<String>getListStr()An array of JSON encoded data for the records to be added.Map<String,String>getOptions()Optional parameters.org.apache.avro.SchemagetSchema()This method supports the Avro framework and is not intended to be called directly by the user.StringgetTableName()Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules.inthashCode()voidput(int index, Object value)This method supports the Avro framework and is not intended to be called directly by the user.RawInsertRecordsRequestsetList(List<ByteBuffer> list)An array of binary-encoded data for the records to be added.RawInsertRecordsRequestsetListEncoding(String listEncoding)The encoding of the records to be inserted.RawInsertRecordsRequestsetListStr(List<String> listStr)An array of JSON encoded data for the records to be added.RawInsertRecordsRequestsetOptions(Map<String,String> options)Optional parameters.RawInsertRecordsRequestsetTableName(String tableName)Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules.StringtoString()
-
-
-
Constructor Detail
-
RawInsertRecordsRequest
public RawInsertRecordsRequest()
Constructs a RawInsertRecordsRequest object with default parameters.
-
RawInsertRecordsRequest
public RawInsertRecordsRequest(String tableName, List<ByteBuffer> list, Map<String,String> options)
Constructs a RawInsertRecordsRequest object with the specified parameters.- Parameters:
tableName- Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.list- An array of binary-encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisJSON.options- Optional parameters.UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set toTRUE, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set toFALSE, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined byIGNORE_EXISTING_PK,ALLOW_PARTIAL_BATCH, andRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key, then this option has no effect. Supported values:TRUE: Upsert new records when primary keys match existing recordsFALSE: Reject new records when primary keys match existing records
FALSE.IGNORE_EXISTING_PK: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled whenUPDATE_ON_EXISTING_PKisFALSE). If set toTRUE, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. IfFALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined byALLOW_PARTIAL_BATCHandRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PKisTRUE), then this option has no effect. Supported values:TRUE: Ignore new records whose primary key values collide with those of existing recordsFALSE: Treat as errors any new records whose primary key values collide with those of existing records
FALSE.PK_CONFLICT_PREDICATE_HIGHER: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''.PK_CONFLICT_PREDICATE_LOWER: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''.RETURN_RECORD_IDS: IfTRUEthen return the internal record id along for each inserted record. Supported values: The default value isFALSE.TRUNCATE_STRINGS: If set toTRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value isFALSE.RETURN_INDIVIDUAL_ERRORS: If set toTRUE, success will always be returned, and any errors found will be included in the info map. The "bad_record_indices" entry is a comma-separated list of bad records (0-based). And if so, there will also be an "error_N" entry for each record with an error, where N is the index (0-based). Supported values: The default value isFALSE.ALLOW_PARTIAL_BATCH: If set toTRUE, all correct records will be inserted and incorrect records will be rejected and reported. Otherwise, the entire batch will be rejected if any records are incorrect. Supported values: The default value isFALSE.DRY_RUN: If set toTRUE, no data will be saved and any errors will be returned. Supported values: The default value isFALSE.
Map.
-
RawInsertRecordsRequest
public RawInsertRecordsRequest(String tableName, List<ByteBuffer> list, List<String> listStr, String listEncoding, Map<String,String> options)
Constructs a RawInsertRecordsRequest object with the specified parameters.- Parameters:
tableName- Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.list- An array of binary-encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisJSON.listStr- An array of JSON encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisBINARY.listEncoding- The encoding of the records to be inserted. Supported values: The default value isBINARY.options- Optional parameters.UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set toTRUE, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set toFALSE, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined byIGNORE_EXISTING_PK,ALLOW_PARTIAL_BATCH, andRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key, then this option has no effect. Supported values:TRUE: Upsert new records when primary keys match existing recordsFALSE: Reject new records when primary keys match existing records
FALSE.IGNORE_EXISTING_PK: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled whenUPDATE_ON_EXISTING_PKisFALSE). If set toTRUE, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. IfFALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined byALLOW_PARTIAL_BATCHandRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PKisTRUE), then this option has no effect. Supported values:TRUE: Ignore new records whose primary key values collide with those of existing recordsFALSE: Treat as errors any new records whose primary key values collide with those of existing records
FALSE.PK_CONFLICT_PREDICATE_HIGHER: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''.PK_CONFLICT_PREDICATE_LOWER: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''.RETURN_RECORD_IDS: IfTRUEthen return the internal record id along for each inserted record. Supported values: The default value isFALSE.TRUNCATE_STRINGS: If set toTRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value isFALSE.RETURN_INDIVIDUAL_ERRORS: If set toTRUE, success will always be returned, and any errors found will be included in the info map. The "bad_record_indices" entry is a comma-separated list of bad records (0-based). And if so, there will also be an "error_N" entry for each record with an error, where N is the index (0-based). Supported values: The default value isFALSE.ALLOW_PARTIAL_BATCH: If set toTRUE, all correct records will be inserted and incorrect records will be rejected and reported. Otherwise, the entire batch will be rejected if any records are incorrect. Supported values: The default value isFALSE.DRY_RUN: If set toTRUE, no data will be saved and any errors will be returned. Supported values: The default value isFALSE.
Map.
-
-
Method Detail
-
getClassSchema
public static org.apache.avro.Schema getClassSchema()
This method supports the Avro framework and is not intended to be called directly by the user.- Returns:
- The schema for the class.
-
getTableName
public String getTableName()
Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.- Returns:
- The current value of
tableName.
-
setTableName
public RawInsertRecordsRequest setTableName(String tableName)
Name of table to which the records are to be added, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.- Parameters:
tableName- The new value fortableName.- Returns:
thisto mimic the builder pattern.
-
getList
public List<ByteBuffer> getList()
An array of binary-encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisJSON.- Returns:
- The current value of
list.
-
setList
public RawInsertRecordsRequest setList(List<ByteBuffer> list)
An array of binary-encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisJSON.- Parameters:
list- The new value forlist.- Returns:
thisto mimic the builder pattern.
-
getListStr
public List<String> getListStr()
An array of JSON encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisBINARY.- Returns:
- The current value of
listStr.
-
setListStr
public RawInsertRecordsRequest setListStr(List<String> listStr)
An array of JSON encoded data for the records to be added. All records must be of the same type as that of the table. Empty array iflistEncodingisBINARY.- Parameters:
listStr- The new value forlistStr.- Returns:
thisto mimic the builder pattern.
-
getListEncoding
public String getListEncoding()
The encoding of the records to be inserted. Supported values: The default value isBINARY.- Returns:
- The current value of
listEncoding.
-
setListEncoding
public RawInsertRecordsRequest setListEncoding(String listEncoding)
The encoding of the records to be inserted. Supported values: The default value isBINARY.- Parameters:
listEncoding- The new value forlistEncoding.- Returns:
thisto mimic the builder pattern.
-
getOptions
public Map<String,String> getOptions()
Optional parameters.UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set toTRUE, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set toFALSE, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined byIGNORE_EXISTING_PK,ALLOW_PARTIAL_BATCH, andRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key, then this option has no effect. Supported values:TRUE: Upsert new records when primary keys match existing recordsFALSE: Reject new records when primary keys match existing records
FALSE.IGNORE_EXISTING_PK: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled whenUPDATE_ON_EXISTING_PKisFALSE). If set toTRUE, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. IfFALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined byALLOW_PARTIAL_BATCHandRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PKisTRUE), then this option has no effect. Supported values:TRUE: Ignore new records whose primary key values collide with those of existing recordsFALSE: Treat as errors any new records whose primary key values collide with those of existing records
FALSE.PK_CONFLICT_PREDICATE_HIGHER: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''.PK_CONFLICT_PREDICATE_LOWER: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''.RETURN_RECORD_IDS: IfTRUEthen return the internal record id along for each inserted record. Supported values: The default value isFALSE.TRUNCATE_STRINGS: If set toTRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value isFALSE.RETURN_INDIVIDUAL_ERRORS: If set toTRUE, success will always be returned, and any errors found will be included in the info map. The "bad_record_indices" entry is a comma-separated list of bad records (0-based). And if so, there will also be an "error_N" entry for each record with an error, where N is the index (0-based). Supported values: The default value isFALSE.ALLOW_PARTIAL_BATCH: If set toTRUE, all correct records will be inserted and incorrect records will be rejected and reported. Otherwise, the entire batch will be rejected if any records are incorrect. Supported values: The default value isFALSE.DRY_RUN: If set toTRUE, no data will be saved and any errors will be returned. Supported values: The default value isFALSE.
Map.- Returns:
- The current value of
options.
-
setOptions
public RawInsertRecordsRequest setOptions(Map<String,String> options)
Optional parameters.UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set toTRUE, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set toFALSE, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined byIGNORE_EXISTING_PK,ALLOW_PARTIAL_BATCH, andRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key, then this option has no effect. Supported values:TRUE: Upsert new records when primary keys match existing recordsFALSE: Reject new records when primary keys match existing records
FALSE.IGNORE_EXISTING_PK: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled whenUPDATE_ON_EXISTING_PKisFALSE). If set toTRUE, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. IfFALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined byALLOW_PARTIAL_BATCHandRETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PKisTRUE), then this option has no effect. Supported values:TRUE: Ignore new records whose primary key values collide with those of existing recordsFALSE: Treat as errors any new records whose primary key values collide with those of existing records
FALSE.PK_CONFLICT_PREDICATE_HIGHER: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''.PK_CONFLICT_PREDICATE_LOWER: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''.RETURN_RECORD_IDS: IfTRUEthen return the internal record id along for each inserted record. Supported values: The default value isFALSE.TRUNCATE_STRINGS: If set toTRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value isFALSE.RETURN_INDIVIDUAL_ERRORS: If set toTRUE, success will always be returned, and any errors found will be included in the info map. The "bad_record_indices" entry is a comma-separated list of bad records (0-based). And if so, there will also be an "error_N" entry for each record with an error, where N is the index (0-based). Supported values: The default value isFALSE.ALLOW_PARTIAL_BATCH: If set toTRUE, all correct records will be inserted and incorrect records will be rejected and reported. Otherwise, the entire batch will be rejected if any records are incorrect. Supported values: The default value isFALSE.DRY_RUN: If set toTRUE, no data will be saved and any errors will be returned. Supported values: The default value isFALSE.
Map.- Parameters:
options- The new value foroptions.- Returns:
thisto mimic the builder pattern.
-
getSchema
public org.apache.avro.Schema getSchema()
This method supports the Avro framework and is not intended to be called directly by the user.- Specified by:
getSchemain interfaceorg.apache.avro.generic.GenericContainer- Returns:
- The schema object describing this class.
-
get
public Object get(int index)
This method supports the Avro framework and is not intended to be called directly by the user.- Specified by:
getin interfaceorg.apache.avro.generic.IndexedRecord- Parameters:
index- the position of the field to get- Returns:
- value of the field with the given index.
- Throws:
IndexOutOfBoundsException
-
put
public void put(int index, Object value)This method supports the Avro framework and is not intended to be called directly by the user.- Specified by:
putin interfaceorg.apache.avro.generic.IndexedRecord- Parameters:
index- the position of the field to setvalue- the value to set- Throws:
IndexOutOfBoundsException
-
-