/create/union

URL: https://<aws.fqdn>/<aws.cluster.name>/gpudb-0/create/union

Merges data from one or more tables with comparable data types into a new table.

The following merges are supported:

UNION (DISTINCT/ALL) - For data set union details and examples, see Union. For limitations, see Union Limitations and Cautions.

INTERSECT (DISTINCT/ALL) - For data set intersection details and examples, see Intersect. For limitations, see Intersect Limitations.

EXCEPT (DISTINCT/ALL) - For data set subtraction details and examples, see Except. For limitations, see Except Limitations.

MERGE VIEWS - For a given set of filtered views on a single table, creates a single filtered view containing all of the unique records across all of the given filtered data sets.

Non-charN 'string' and 'bytes' column types cannot be merged, nor can columns marked as store-only.

Input Parameter Description

Name Type Description
table_name string Name of the table to be created, in [schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria.
table_names array of strings The list of table names to merge, in [schema_name.]table_name format, using standard name resolution rules. Must contain the names of one or more existing tables.
input_column_names array of arrays of strings The list of columns from each of the corresponding input tables.
output_column_names array of strings The list of names of the columns to be stored in the output table.
options map of string to strings

Optional parameters. The default value is an empty map ( {} ).

Supported Parameters (keys) Parameter Description
create_temp_table

If true, a unique temporary table name will be generated in the sys_temp schema and used in place of input parameter table_name. If persist is false (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in qualified_table_name. The default value is false. The supported values are:

  • true
  • false
collection_name [DEPRECATED--please specify the containing schema for the projection as part of input parameter table_name and use /create/schema to create the schema if non-existent] Name of the schema for the output table. If the schema provided is non-existent, it will be automatically created. The default value is ''.
mode

If merge_views, then this operation will merge the provided views. All input parameter table_names must be views from the same underlying base table. The default value is union_all.

Supported Values Description
union_all Retains all rows from the specified tables.
union Retains all unique rows from the specified tables (synonym for union_distinct).
union_distinct Retains all unique rows from the specified tables.
except Retains all unique rows from the first table that do not appear in the second table (only works on 2 tables).
except_all Retains all rows(including duplicates) from the first table that do not appear in the second table (only works on 2 tables).
intersect Retains all unique rows that appear in both of the specified tables (only works on 2 tables).
intersect_all Retains all rows(including duplicates) that appear in both of the specified tables (only works on 2 tables).
merge_views Merge two or more views (or views of views) of the same base data set into a new view. If this mode is selected input parameter input_column_names AND input parameter output_column_names must be empty. The resulting view would match the results of a SQL OR operation, e.g., if filter 1 creates a view using the expression 'x = 20' and filter 2 creates a view using the expression 'x <= 10', then the merge views operation creates a new view using the expression 'x = 20 OR x <= 10'.
chunk_size Indicates the number of records per chunk to be used for this output table.
create_indexes Comma-separated list of columns on which to create indexes on the output table. The columns specified must be present in input parameter output_column_names.
ttl Sets the TTL of the output table specified in input parameter table_name.
persist

If true, then the output table specified in input parameter table_name will be persisted and will not expire unless a ttl is specified. If false, then the output table will be an in-memory table and will expire unless a ttl is specified otherwise. The default value is false. The supported values are:

  • true
  • false
view_id ID of view of which this output table is a member. The default value is ''.
force_replicated

If true, then the output table specified in input parameter table_name will be replicated even if the source tables are not. The default value is false. The supported values are:

  • true
  • false
strategy_definition The tier strategy for the table and its columns.

Output Parameter Description

The GPUdb server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query. Here is a description of the various fields of the wrapper:

Name Type Description
status String 'OK' or 'ERROR'
message String Empty if success or an error message
data_type String 'create_union_response' or 'none' in case of an error
data String Empty string
data_str JSON or String

This embedded JSON represents the result of the /create/union endpoint:

Name Type Description
table_name string Value of input parameter table_name.
info map of string to strings

Additional information. The default value is an empty map ( {} ).

Possible Parameters (keys) Parameter Description
count Number of records in the final table
qualified_table_name The fully qualified name of the result table (i.e. including the schema)

Empty string in case of an error.