Skip to main content
filter_by_string(table_name=None, view_name=, expression=None, mode=None, column_names=None, options=)[source]

Calculates which objects from a table or view match a string expression for the given string columns. Setting case_sensitive can modify case sensitivity in matching for all modes except search. For search mode details and limitations, see Full Text Search.

Parameters

table_name (str) –

Name of the table on which the filter operation will be performed, in [schema_name.]table_name format, using standard name resolution rules. Must be an existing table or view.

view_name (str) –

If provided, then this will be the name of the view containing the results, in [schema_name.]view_name format, using standard name resolution rules and meeting table naming criteria. Must not be an already existing table or view. The default value is ‘’.

expression (str) –

The expression with which to filter the table.

mode (str) –

The string filtering mode to apply. See below for details. Allowed values are:

  • search – Full text search query with wildcards and boolean operators. Note that for this mode, no column can be specified in input parameter column_names; all string columns of the table that have text search enabled will be searched.

  • equals – Exact whole-string match (accelerated).

  • contains – Partial substring match (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0.

  • starts_with – Strings that start with the given expression (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0.

  • regex – Full regular expression search (not accelerated). If the column is a string type (non-charN) and the number of records is too large, it will return 0.

  • search_stats – Cross-shard BM25 corpus statistics for one (column, query) pair. Returns the merged BM25 statistics (max_doc, doc_count, sum_total_term_freq, per-term doc_freq / total_term_freq) needed by callers that score documents themselves (e.g. text_match_bm25_global SQL function pre-pass). Requires column_names to contain exactly one column with text search enabled. The view_name field is ignored — this mode does not produce a result table.

column_names (list of str) –

List of columns on which to apply the filter. Ignored for search mode. The user can provide a single element (which will be automatically promoted to a list internally) or a list.

options (dict of str to str) –

Optional parameters. Allowed keys are:

  • 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 view_name. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in qualified_view_name. Allowed values are:

    • true

    • false

    The default value is ‘false’.

  • collection_name – [DEPRECATED–please specify the containing schema for the view as part of input parameter view_name and use GPUdb.create_schema() to create the schema if non-existent] Name of a schema for the newly created view. If the schema is non-existent, it will be automatically created.

  • case_sensitive – If false then string filtering will ignore case. Does not apply to search mode. Allowed values are:

    • true

    • false

    The default value is ‘true’.

The default value is an empty dict ( ).

Returns

A dict with the following entries–

count (long) –

The number of records that passed the string filter.

info (dict of str to str) –

Additional information. Allowed keys are:

  • qualified_view_name – The fully qualified name of the view (i.e. including the schema).

The default value is an empty dict ( ).

stats_data (bytes) –

Serialized cross-shard BM25 corpus statistics, populated for search_stats mode and empty otherwise. Wire format matches the merged BM25GlobalStats blob the BM25 stats worker produces internally (max_doc, doc_count, sum_total_term_freq, sum_doc_freq, num_terms, then per term: term, doc_freq, total_term_freq). Clients that consume this perform their own scoring; the gpudb client library will expose a parser as a future convenience. The default value is ‘’.