Version:

/filter/bytable

URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/filter/bytable

Filters objects in one table based on objects in another table. The user must specify matching column types from the two tables (i.e. the target table from which objects will be filtered and the source table based on which the filter will be created); the column names need not be the same. If a input parameter view_name is specified, then the filtered objects will then be put in a newly created view. The operation is synchronous, meaning that a response will not be returned until all objects are fully available in the result view. The return value contains the count (i.e. the size) of the resulting view.

Input Parameter Description

Name Type Description
table_name string Name of the table whose data will be filtered. Must be an existing table.
view_name string If provided, then this will be the name of the view containing the results. Has the same naming restrictions as tables. The default value is ''.
column_name string Name of the column by whose value the data will be filtered from the table designated by input parameter table_name.
source_table_name string Name of the table whose data will be compared against in the table called input parameter table_name. Must be an existing table.
source_table_column_name string Name of the column in the input parameter source_table_name whose values will be used as the filter for table input parameter table_name. Must be a geospatial geometry column if in 'spatial' mode; otherwise, Must match the type of the input parameter column_name.
options map of string to strings

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

Supported Parameters (keys) Parameter Description
collection_name Name of a collection which is to contain the newly created view. If the collection provided is non-existent, the collection will be automatically created. If empty, then the newly created view will be top-level.
filter_mode

String indicating the filter mode, either in_table or not_in_table. The supported values are:

  • in_table
  • not_in_table
mode

Mode - should be either spatial or normal. The supported values are:

  • normal
  • spatial
buffer Buffer size, in meters. Only relevant for spatial mode. The default value is '0'.
buffer_method

Method used to buffer polygons. Only relevant for spatial mode.

Supported Values Description
normal  
geos Use geos 1 edge per corner algorithm
max_partition_size Maximum number of points in a partition. Only relevant for spatial mode. The default value is '0'.
max_partition_score Maximum number of points * edges in a partition. Only relevant for spatial mode. The default value is '8000000'.
x_column_name Name of column containing x value of point being filtered in spatial mode. The default value is 'x'.
y_column_name Name of column containing y value of point being filtered in spatial mode. The default value is 'y'.

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 'filter_by_table_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 /filter/bytable endpoint:

Name Type Description
count long The number of records in input parameter table_name that have input parameter column_name values matching input parameter source_table_column_name values in input parameter source_table_name.
info map of string to strings Additional information.

Empty string in case of an error.