Skip to main content

Class CreateJoinTableRequest

java.lang.Object
com.gpudb.protocol.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 Details

    • 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 Details

    • 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.
    • setJoinTableName

      public CreateJoinTableRequest setJoinTableName(String 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.
      Parameters:
      joinTableName - The new value for joinTableName.
      Returns:
      this to mimic the builder pattern.
    • 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:
    • 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:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object