Class AppendRecordsRequest

  • All Implemented Interfaces:
    org.apache.avro.generic.GenericContainer, org.apache.avro.generic.IndexedRecord

    public class AppendRecordsRequest
    extends Object
    implements org.apache.avro.generic.IndexedRecord
    A set of parameters for GPUdb.appendRecords.

    Append (or insert) all records from a source table (specified by sourceTableName) to a particular target table (specified by tableName). The field map (specified by fieldMap) holds the user specified map of target table column names with their mapped source column names.

    • Constructor Detail

      • AppendRecordsRequest

        public AppendRecordsRequest()
        Constructs an AppendRecordsRequest object with default parameters.
      • AppendRecordsRequest

        public AppendRecordsRequest​(String tableName,
                                    String sourceTableName,
                                    Map<String,​String> fieldMap,
                                    Map<String,​String> options)
        Constructs an AppendRecordsRequest object with the specified parameters.
        Parameters:
        tableName - The table name for the records to be appended, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.
        sourceTableName - The source table name to get records from, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table name.
        fieldMap - Contains the mapping of column names from the target table (specified by tableName) as the keys, and corresponding column names or expressions (e.g., 'col_name+1') from the source table (specified by sourceTableName). Must be existing column names in source table and target table, and their types must be matched. For details on using expressions, see Expressions.
        options - Optional parameters.
        • OFFSET: A positive integer indicating the number of initial results to skip from sourceTableName. Default is 0. The minimum allowed value is 0. The maximum allowed value is MAX_INT. The default value is '0'.
        • LIMIT: A positive integer indicating the maximum number of results to be returned from sourceTableName. Or END_OF_SET (-9999) to indicate that the max number of results should be returned. The default value is '-9999'.
        • EXPRESSION: Optional filter expression to apply to the sourceTableName. The default value is ''.
        • ORDER_BY: Comma-separated list of the columns to be sorted by from source table (specified by sourceTableName), e.g., 'timestamp asc, x desc'. The ORDER_BY columns do not have to be present in fieldMap. The default value is ''.
        • UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting source table records (specified by sourceTableName) into a target table (specified by tableName) with a primary key. If set to TRUE, any existing table record with primary key values that match those of a source table 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 source table record being inserted will remain unchanged, while the source record will be rejected and an error handled as determined by IGNORE_EXISTING_PK. 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 source table records (specified by sourceTableName) into a target table (specified by tableName) 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 source table record being inserted that is rejected for having primary key values that match those of an existing target table record will be ignored with no error generated. If FALSE, the rejection of any source table record for having primary key values matching an existing target table record will result in an error being raised. 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 source table records whose primary key values collide with those of target table records
          • FALSE: Raise an error for any source table record whose primary key values collide with those of a target table record
          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 ''.
        • TRUNCATE_STRINGS: If set to TRUE, it allows inserting longer strings into smaller charN string columns by truncating the longer strings to fit. 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()
        The table name for the records to be appended, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table.
        Returns:
        The current value of tableName.
      • setTableName

        public AppendRecordsRequest setTableName​(String tableName)
        The table name for the records to be appended, 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.
      • getSourceTableName

        public String getSourceTableName()
        The source table name to get records from, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table name.
        Returns:
        The current value of sourceTableName.
      • setSourceTableName

        public AppendRecordsRequest setSourceTableName​(String sourceTableName)
        The source table name to get records from, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table name.
        Parameters:
        sourceTableName - The new value for sourceTableName.
        Returns:
        this to mimic the builder pattern.
      • getFieldMap

        public Map<String,​String> getFieldMap()
        Contains the mapping of column names from the target table (specified by tableName) as the keys, and corresponding column names or expressions (e.g., 'col_name+1') from the source table (specified by sourceTableName). Must be existing column names in source table and target table, and their types must be matched. For details on using expressions, see Expressions.
        Returns:
        The current value of fieldMap.
      • setFieldMap

        public AppendRecordsRequest setFieldMap​(Map<String,​String> fieldMap)
        Contains the mapping of column names from the target table (specified by tableName) as the keys, and corresponding column names or expressions (e.g., 'col_name+1') from the source table (specified by sourceTableName). Must be existing column names in source table and target table, and their types must be matched. For details on using expressions, see Expressions.
        Parameters:
        fieldMap - The new value for fieldMap.
        Returns:
        this to mimic the builder pattern.
      • getOptions

        public Map<String,​String> getOptions()
        Optional parameters.
        • OFFSET: A positive integer indicating the number of initial results to skip from sourceTableName. Default is 0. The minimum allowed value is 0. The maximum allowed value is MAX_INT. The default value is '0'.
        • LIMIT: A positive integer indicating the maximum number of results to be returned from sourceTableName. Or END_OF_SET (-9999) to indicate that the max number of results should be returned. The default value is '-9999'.
        • EXPRESSION: Optional filter expression to apply to the sourceTableName. The default value is ''.
        • ORDER_BY: Comma-separated list of the columns to be sorted by from source table (specified by sourceTableName), e.g., 'timestamp asc, x desc'. The ORDER_BY columns do not have to be present in fieldMap. The default value is ''.
        • UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting source table records (specified by sourceTableName) into a target table (specified by tableName) with a primary key. If set to TRUE, any existing table record with primary key values that match those of a source table 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 source table record being inserted will remain unchanged, while the source record will be rejected and an error handled as determined by IGNORE_EXISTING_PK. 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 source table records (specified by sourceTableName) into a target table (specified by tableName) 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 source table record being inserted that is rejected for having primary key values that match those of an existing target table record will be ignored with no error generated. If FALSE, the rejection of any source table record for having primary key values matching an existing target table record will result in an error being raised. 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 source table records whose primary key values collide with those of target table records
          • FALSE: Raise an error for any source table record whose primary key values collide with those of a target table record
          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 ''.
        • TRUNCATE_STRINGS: If set to TRUE, it allows inserting longer strings into smaller charN string columns by truncating the longer strings to fit. Supported values: The default value is FALSE.
        The default value is an empty Map.
        Returns:
        The current value of options.
      • setOptions

        public AppendRecordsRequest setOptions​(Map<String,​String> options)
        Optional parameters.
        • OFFSET: A positive integer indicating the number of initial results to skip from sourceTableName. Default is 0. The minimum allowed value is 0. The maximum allowed value is MAX_INT. The default value is '0'.
        • LIMIT: A positive integer indicating the maximum number of results to be returned from sourceTableName. Or END_OF_SET (-9999) to indicate that the max number of results should be returned. The default value is '-9999'.
        • EXPRESSION: Optional filter expression to apply to the sourceTableName. The default value is ''.
        • ORDER_BY: Comma-separated list of the columns to be sorted by from source table (specified by sourceTableName), e.g., 'timestamp asc, x desc'. The ORDER_BY columns do not have to be present in fieldMap. The default value is ''.
        • UPDATE_ON_EXISTING_PK: Specifies the record collision policy for inserting source table records (specified by sourceTableName) into a target table (specified by tableName) with a primary key. If set to TRUE, any existing table record with primary key values that match those of a source table 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 source table record being inserted will remain unchanged, while the source record will be rejected and an error handled as determined by IGNORE_EXISTING_PK. 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 source table records (specified by sourceTableName) into a target table (specified by tableName) 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 source table record being inserted that is rejected for having primary key values that match those of an existing target table record will be ignored with no error generated. If FALSE, the rejection of any source table record for having primary key values matching an existing target table record will result in an error being raised. 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 source table records whose primary key values collide with those of target table records
          • FALSE: Raise an error for any source table record whose primary key values collide with those of a target table record
          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 ''.
        • TRUNCATE_STRINGS: If set to TRUE, it allows inserting longer strings into smaller charN string columns by truncating the longer strings to fit. 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