GoogleSQL for Bigtable supports the following map functions.
Function list
| Name | Summary |
|---|---|
MAP_CONTAINS_KEY | Checks if a key is in a map. |
MAP_EMPTY | Checks if a map is empty. |
MAP_ENTRIES | Gets an array of key-value pairs from a map, sorted in ascending order by key. |
MAP_KEYS | Gets an array of keys from a map, sorted in ascending order. |
MAP_VALUES | Gets an array of values from a map, sorted in ascending order by key. |
MAP_CONTAINS_KEY
MAP_CONTAINS_KEY(input_map, key_to_find) Description
Checks if a key is in a map. Returns TRUE if the key is found. Otherwise, returns FALSE.
Definitions
input_map: AMAP<K,V>value that represents the map to search. If this value isNULL, the function returnsNULL.key_to_find: The key to find in the map.
Return type
BOOL
Examples
The following query checks if a column called cell_plan in a table called test_table has a key called data_plan_05gb:
SELECT MAP_CONTAINS_KEY(cell_plan, b'data_plan_05gb') AS results FROM test_table /*---------+ | results | +---------+ | TRUE | | TRUE | | FALSE | | FALSE | | FALSE | +---------*/ MAP_EMPTY
MAP_EMPTY(input_map) Description
Checks if a map is empty. Returns TRUE if the map is empty, otherwise FALSE.
Definitions
input_map: AMAP<K,V>value that represents the map to search. If this value isNULL, the function returnsNULL.
Return type
BOOL
Example
The following query checks if a column called cell_plan in a table called test_table is empty:
SELECT MAP_EMPTY(cell_plan) AS results FROM test_table /*----------+ | results | +----------+ | FALSE | | FALSE | | TRUE | | TRUE | | FALSE | | FALSE | +----------*/ MAP_ENTRIES
MAP_ENTRIES(input_map) Description
Gets an array of key-value pairs from a map, sorted in ascending order by key.
Definitions
input_map: AMAP<K,V>value that represents the map to query. If this value isNULL, the function returnsNULL.
Return type
ARRAY<STRUCT<K,V>>
Examples
The following query gets key-value pairs, sorted in ascending order by key, from a table called test_table:
SELECT MAP_ENTRIES(cell_plan) AS results FROM test_table /*-------------------------------------------------------------+ | results | +-------------------------------------------------------------+ | [ {"data_plan_01gb", "true"}, {"data_plan_05gb", "false"} ] | | [ {"data_plan_05gb", "false"} ] | | [] | | [ {"data_plan_10gb", "false"} ] | | [ {"data_plan_10gb", "false"} ] | +-------------------------------------------------------------*/ MAP_KEYS
MAP_KEYS(input_map) Description
Gets an array of keys from a map, sorted in ascending order.
Definitions
input_map: AMAP<K,V>value that represents the map to query. If this value isNULL, the function returnsNULL.
Return type
ARRAY<K>
Examples
The following query gets a list of keys, sorted in ascending order, from a table called test_table:
SELECT MAP_KEYS(cell_plan) AS results FROM test_table /*----------------------------------------+ | results | +----------------------------------------+ | [ "data_plan_01gb", "data_plan_05gb" ] | | [ "data_plan_05gb" ] | | [] | | [ "data_plan_10gb" ] | | [ "data_plan_10gb" ] | +----------------------------------------*/ MAP_VALUES
MAP_VALUES(input_map) Description
Gets an array of values from a map, sorted in ascending order by key.
Definitions
input_map: AMAP<K,V>value that represents the map to query. If this value isNULL, the function returnsNULL.
Return type
ARRAY<V>
Examples
The following query gets the values, sorted in ascending order by key, from a table called test_table:
SELECT MAP_VALUES(cell_plan) AS results FROM test_table /*---------------------+ | results | +---------------------+ | [ "true", "false" ] | | [ "false" ] | | [] | | [ "false" ] | | [ "false" ] | +---------------------*/