Version:

/create/unionΒΆ

URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/create/union

Performs a union (concatenation) of one or more existing tables or views, the results of which are stored in a new table. It is equivalent to the SQL UNION ALL operator. Non-charN 'string' and 'bytes' column types cannot be included in a union, neither can columns with the property 'store_only'. Though not explicitly unions, intersect and except are also available from this endpoint.

Input Parameter Description

Name Type Description
table_name string Name of the table to be created. Has the same naming restrictions as tables.
table_names array of strings The list of table names making up the union. 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 union.
options map of string to strings

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

Supported Parameters (keys) Parameter Description
collection_name Name of a collection which is to contain the union. If the collection provided is non-existent, the collection will be automatically created. If empty, then the union will be a top-level table. Default value is ''.
materialize_on_gpu

If 'true' then the columns of the union will be cached on the GPU. Default value is 'false'. The allowed values are:

  • true
  • false
mode

If 'merge_views' then this operation will merge (i.e. union) the provided views. All 'table_names' must be views from the same underlying base table. 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).
intersect Retains all unique rows 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 = 10' and filter 2 creates a view using the expression 'x <= 10', then the merge views operation creates a new view using the expression 'x = 10 OR x <= 10'.
chunk_size Indicates the chunk size to be used for this table.
ttl Sets the TTL of the table specified in input parameter table_name.
persist

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

  • true
  • false

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_request' 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.

Empty string in case of an error.