Class CreateJoinTableRequest

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

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

    Creates a table that is the result of a SQL JOIN.

    For join details and examples see: Joins. For limitations, see Join Limitations and Cautions.

    • Constructor Detail

      • CreateJoinTableRequest

        public CreateJoinTableRequest()
        Constructs a CreateJoinTableRequest object with default parameters.
      • CreateJoinTableRequest

        public CreateJoinTableRequest​(String joinTableName,
                                      List<String> tableNames,
                                      List<String> columnNames,
                                      List<String> expressions,
                                      Map<String,​String> options)
        Constructs a CreateJoinTableRequest object with the specified parameters.
        Parameters:
        joinTableName - Name of the join table to be created, in [schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria.
        tableNames - The list of table names composing the join, each in [schema_name.]table_name format, using standard name resolution rules. Corresponds to a SQL statement FROM clause.
        columnNames - List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table_id.column_name', where 'table_id' is the table name or alias. Columns can be aliased via the syntax 'column_name as alias'. Wild cards '*' can be used to include all columns across member tables or 'table_id.*' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased--therefore, the '*' wild card cannot be used if column names aren't unique across all tables.
        expressions - An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: expressions. The default value is an empty List.
        options - Optional parameters.
        • CREATE_TEMP_TABLE: If TRUE, a unique temporary table name will be generated in the sys_temp schema and used in place of joinTableName. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in QUALIFIED_JOIN_TABLE_NAME. Supported values: The default value is FALSE.
        • COLLECTION_NAME: [DEPRECATED--please specify the containing schema for the join as part of joinTableName and use GPUdb.createSchema to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''.
        • MAX_QUERY_DIMENSIONS: No longer used.
        • STRATEGY_DEFINITION: The tier strategy for the table and its columns.
        • TTL: Sets the TTL of the join table specified in joinTableName.
        • VIEW_ID: view this projection is part of. The default value is ''.
        • NO_COUNT: Return a count of 0 for the join table for logging and for GPUdb.showTable; optimization needed for large overlapped equi-join stencils. The default value is 'false'.
        • CHUNK_SIZE: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size
        • ENABLE_VIRTUAL_CHUNKING: Collect chunks with accumulated size less than chunk_size into a single chunk. The default value is 'false'.
        • MAX_VIRTUAL_CHUNK_SIZE: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • MIN_VIRTUAL_CHUNK_SIZE: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • ENABLE_SPARSE_VIRTUAL_CHUNKING: materialize virtual chunks with only non-deleted values. The default value is 'false'.
        • ENABLE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PREDICATE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PK_EQUI_JOIN: Use equi-join to do primary key joins rather than using primary-key-index
        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.
      • getJoinTableName

        public String getJoinTableName()
        Name of the join table to be created, in [schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria.
        Returns:
        The current value of joinTableName.
      • getTableNames

        public List<String> getTableNames()
        The list of table names composing the join, each in [schema_name.]table_name format, using standard name resolution rules. Corresponds to a SQL statement FROM clause.
        Returns:
        The current value of tableNames.
      • setTableNames

        public CreateJoinTableRequest setTableNames​(List<String> tableNames)
        The list of table names composing the join, each in [schema_name.]table_name format, using standard name resolution rules. Corresponds to a SQL statement FROM clause.
        Parameters:
        tableNames - The new value for tableNames.
        Returns:
        this to mimic the builder pattern.
      • getColumnNames

        public List<String> getColumnNames()
        List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table_id.column_name', where 'table_id' is the table name or alias. Columns can be aliased via the syntax 'column_name as alias'. Wild cards '*' can be used to include all columns across member tables or 'table_id.*' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased--therefore, the '*' wild card cannot be used if column names aren't unique across all tables.
        Returns:
        The current value of columnNames.
      • setColumnNames

        public CreateJoinTableRequest setColumnNames​(List<String> columnNames)
        List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table_id.column_name', where 'table_id' is the table name or alias. Columns can be aliased via the syntax 'column_name as alias'. Wild cards '*' can be used to include all columns across member tables or 'table_id.*' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased--therefore, the '*' wild card cannot be used if column names aren't unique across all tables.
        Parameters:
        columnNames - The new value for columnNames.
        Returns:
        this to mimic the builder pattern.
      • getExpressions

        public List<String> getExpressions()
        An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: expressions. The default value is an empty List.
        Returns:
        The current value of expressions.
      • setExpressions

        public CreateJoinTableRequest setExpressions​(List<String> expressions)
        An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: expressions. The default value is an empty List.
        Parameters:
        expressions - The new value for expressions.
        Returns:
        this to mimic the builder pattern.
      • getOptions

        public Map<String,​String> getOptions()
        Optional parameters.
        • CREATE_TEMP_TABLE: If TRUE, a unique temporary table name will be generated in the sys_temp schema and used in place of joinTableName. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in QUALIFIED_JOIN_TABLE_NAME. Supported values: The default value is FALSE.
        • COLLECTION_NAME: [DEPRECATED--please specify the containing schema for the join as part of joinTableName and use GPUdb.createSchema to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''.
        • MAX_QUERY_DIMENSIONS: No longer used.
        • STRATEGY_DEFINITION: The tier strategy for the table and its columns.
        • TTL: Sets the TTL of the join table specified in joinTableName.
        • VIEW_ID: view this projection is part of. The default value is ''.
        • NO_COUNT: Return a count of 0 for the join table for logging and for GPUdb.showTable; optimization needed for large overlapped equi-join stencils. The default value is 'false'.
        • CHUNK_SIZE: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size
        • ENABLE_VIRTUAL_CHUNKING: Collect chunks with accumulated size less than chunk_size into a single chunk. The default value is 'false'.
        • MAX_VIRTUAL_CHUNK_SIZE: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • MIN_VIRTUAL_CHUNK_SIZE: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • ENABLE_SPARSE_VIRTUAL_CHUNKING: materialize virtual chunks with only non-deleted values. The default value is 'false'.
        • ENABLE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PREDICATE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PK_EQUI_JOIN: Use equi-join to do primary key joins rather than using primary-key-index
        The default value is an empty Map.
        Returns:
        The current value of options.
      • setOptions

        public CreateJoinTableRequest setOptions​(Map<String,​String> options)
        Optional parameters.
        • CREATE_TEMP_TABLE: If TRUE, a unique temporary table name will be generated in the sys_temp schema and used in place of joinTableName. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in QUALIFIED_JOIN_TABLE_NAME. Supported values: The default value is FALSE.
        • COLLECTION_NAME: [DEPRECATED--please specify the containing schema for the join as part of joinTableName and use GPUdb.createSchema to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''.
        • MAX_QUERY_DIMENSIONS: No longer used.
        • STRATEGY_DEFINITION: The tier strategy for the table and its columns.
        • TTL: Sets the TTL of the join table specified in joinTableName.
        • VIEW_ID: view this projection is part of. The default value is ''.
        • NO_COUNT: Return a count of 0 for the join table for logging and for GPUdb.showTable; optimization needed for large overlapped equi-join stencils. The default value is 'false'.
        • CHUNK_SIZE: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size
        • ENABLE_VIRTUAL_CHUNKING: Collect chunks with accumulated size less than chunk_size into a single chunk. The default value is 'false'.
        • MAX_VIRTUAL_CHUNK_SIZE: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • MIN_VIRTUAL_CHUNK_SIZE: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk_size if virtual chunking otherwise enabled.
        • ENABLE_SPARSE_VIRTUAL_CHUNKING: materialize virtual chunks with only non-deleted values. The default value is 'false'.
        • ENABLE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PREDICATE_EQUI_JOIN_LAZY_RESULT_STORE: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join
        • ENABLE_PK_EQUI_JOIN: Use equi-join to do primary key joins rather than using primary-key-index
        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