Class 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 for GPUdb.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 options parameter can be used to customize this function's behavior.

    The UPDATE_ON_EXISTING_PK option 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_IDS option indicates that the database should return the unique identifiers of inserted records.

    • 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 if listEncoding is JSON.
        options - Optional parameters.
        • UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set to TRUE, 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 to FALSE, 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 by IGNORE_EXISTING_PK, ALLOW_PARTIAL_BATCH, and RETURN_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 records
          • FALSE: Reject new records when primary keys match existing records
          The default value is 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 when UPDATE_ON_EXISTING_PK is FALSE). If set to TRUE, 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. If FALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by ALLOW_PARTIAL_BATCH and RETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PK is TRUE), then this option has no effect. Supported values:
          • TRUE: Ignore new records whose primary key values collide with those of existing records
          • FALSE: Treat as errors any new records whose primary key values collide with those of existing records
          The default value is 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: If TRUE then return the internal record id along for each inserted record. Supported values: The default value is FALSE.
        • TRUNCATE_STRINGS: If set to TRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value is FALSE.
        • RETURN_INDIVIDUAL_ERRORS: If set to TRUE, 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 is FALSE.
        • ALLOW_PARTIAL_BATCH: If set to TRUE, 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 is FALSE.
        • DRY_RUN: If set to TRUE, no data will be saved and any errors will be returned. Supported values: The default value is FALSE.
        The default value is an empty 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 if listEncoding is JSON.
        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 if listEncoding is BINARY.
        listEncoding - The encoding of the records to be inserted. Supported values: The default value is BINARY.
        options - Optional parameters.
        • UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting into a table with a primary key. If set to TRUE, 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 to FALSE, 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 by IGNORE_EXISTING_PK, ALLOW_PARTIAL_BATCH, and RETURN_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 records
          • FALSE: Reject new records when primary keys match existing records
          The default value is 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 when UPDATE_ON_EXISTING_PK is FALSE). If set to TRUE, 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. If FALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by ALLOW_PARTIAL_BATCH and RETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PK is TRUE), then this option has no effect. Supported values:
          • TRUE: Ignore new records whose primary key values collide with those of existing records
          • FALSE: Treat as errors any new records whose primary key values collide with those of existing records
          The default value is 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: If TRUE then return the internal record id along for each inserted record. Supported values: The default value is FALSE.
        • TRUNCATE_STRINGS: If set to TRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value is FALSE.
        • RETURN_INDIVIDUAL_ERRORS: If set to TRUE, 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 is FALSE.
        • ALLOW_PARTIAL_BATCH: If set to TRUE, 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 is FALSE.
        • DRY_RUN: If set to TRUE, no data will be saved and any errors will be returned. Supported values: The default value is FALSE.
        The default value is an empty 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 for tableName.
        Returns:
        this to 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 if listEncoding is JSON.
        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 if listEncoding is JSON.
        Parameters:
        list - The new value for list.
        Returns:
        this to 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 if listEncoding is BINARY.
        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 if listEncoding is BINARY.
        Parameters:
        listStr - The new value for listStr.
        Returns:
        this to mimic the builder pattern.
      • getListEncoding

        public String getListEncoding()
        The encoding of the records to be inserted. Supported values: The default value is BINARY.
        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 is BINARY.
        Parameters:
        listEncoding - The new value for listEncoding.
        Returns:
        this to 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 to TRUE, 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 to FALSE, 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 by IGNORE_EXISTING_PK, ALLOW_PARTIAL_BATCH, and RETURN_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 records
          • FALSE: Reject new records when primary keys match existing records
          The default value is 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 when UPDATE_ON_EXISTING_PK is FALSE). If set to TRUE, 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. If FALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by ALLOW_PARTIAL_BATCH and RETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PK is TRUE), then this option has no effect. Supported values:
          • TRUE: Ignore new records whose primary key values collide with those of existing records
          • FALSE: Treat as errors any new records whose primary key values collide with those of existing records
          The default value is 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: If TRUE then return the internal record id along for each inserted record. Supported values: The default value is FALSE.
        • TRUNCATE_STRINGS: If set to TRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value is FALSE.
        • RETURN_INDIVIDUAL_ERRORS: If set to TRUE, 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 is FALSE.
        • ALLOW_PARTIAL_BATCH: If set to TRUE, 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 is FALSE.
        • DRY_RUN: If set to TRUE, no data will be saved and any errors will be returned. Supported values: The default value is FALSE.
        The default value is an empty 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 to TRUE, 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 to FALSE, 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 by IGNORE_EXISTING_PK, ALLOW_PARTIAL_BATCH, and RETURN_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 records
          • FALSE: Reject new records when primary keys match existing records
          The default value is 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 when UPDATE_ON_EXISTING_PK is FALSE). If set to TRUE, 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. If FALSE, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by ALLOW_PARTIAL_BATCH and RETURN_INDIVIDUAL_ERRORS. If the specified table does not have a primary key or if upsert mode is in effect (UPDATE_ON_EXISTING_PK is TRUE), then this option has no effect. Supported values:
          • TRUE: Ignore new records whose primary key values collide with those of existing records
          • FALSE: Treat as errors any new records whose primary key values collide with those of existing records
          The default value is 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: If TRUE then return the internal record id along for each inserted record. Supported values: The default value is FALSE.
        • TRUNCATE_STRINGS: If set to TRUE, any strings which are too long for their target charN string columns will be truncated to fit. Supported values: The default value is FALSE.
        • RETURN_INDIVIDUAL_ERRORS: If set to TRUE, 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 is FALSE.
        • ALLOW_PARTIAL_BATCH: If set to TRUE, 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 is FALSE.
        • DRY_RUN: If set to TRUE, no data will be saved and any errors will be returned. Supported values: The default value is FALSE.
        The default value is an empty Map.
        Parameters:
        options - The new value for options.
        Returns:
        this to 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:
        getSchema in interface org.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:
        get in interface org.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:
        put in interface org.apache.avro.generic.IndexedRecord
        Parameters:
        index - the position of the field to set
        value - the value to set
        Throws:
        IndexOutOfBoundsException
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object