> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL functions

> Categories the SQL parser attaches to every function it recognizes, used by Rego policies that branch on column.in_functions[].categories.

## Overview

The Formal SQL parser tags every column reference with the list of
functions it passes through (`column.in_functions` in policy input).
Each function carries one or more **categories** sourced from the
catalogues below, so policies can branch on category instead of name.

The catalogue is split per dialect: a single `Common` file holds names
shared across every supported dialect with the same meaning, and each
technology has its own file for entries that are dialect-specific or
have a different interpretation in that dialect.

There are **845** entries across all dialects.

## How policies use this

Read the categories off `column.in_functions[].categories` in Rego.
For example, aggregates are a common way to slip past row limits and rate limits by packing many rows into one cell. Hashing aggregated columns closes that gap:

```rego theme={null}
package formal.v2

import future.keywords.if
import future.keywords.in

in_aggregate(column) if {
  some func in column.in_functions
  "aggregate" in func.categories
}

response := {
  "action": "mask",
  "type": "hash.no_salt",
  "columns": columns,
} if {
  columns := [c |
    c := input.row[_]
    in_aggregate(c)
  ]
  columns != []
}
```

## Categories

Each function is tagged with one or more **categories**, organized in two
groups.

### Shape categories

Describes how the function participates in SQL evaluation. Every
catalogued function carries at least one shape category.

| Category    | Definition                                                                                                                         |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `scalar`    | Operates on individual values: one input row produces one output value. The default shape for non-aggregate, non-window functions. |
| `aggregate` | Reduces multiple input rows to a single output value (`SUM`, `COUNT`, `STRING_AGG`, `ARRAY_AGG`).                                  |
| `window`    | Computes a value per row using a window of related rows, typically with an `OVER` clause (`ROW_NUMBER`, `LAG`, `RANK`).            |
| `table`     | Returns a set of rows; called in a `FROM` clause (`UNNEST`, `GENERATE_SUBSCRIPTS`, `JSON_TABLE`).                                  |

### Domain categories

Describes the kind of data the function operates on or returns. A
function can have zero, one, or several domain categories.

| Category               | Definition                                                                                                                 |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `numeric`              | Produces or operates on numeric values (`ABS`, `ROUND`, `SQRT`, `MOD`).                                                    |
| `string_and_binary`    | Operates on character strings or byte strings (`CONCAT`, `SUBSTRING`, `REGEXP_REPLACE`, `HEX`).                            |
| `date_time`            | Operates on date, time, or timestamp values (`EXTRACT`, `DATE_PART`, `AGE`, `DATE_FORMAT`).                                |
| `conditional`          | Returns one of several values based on a condition (`CASE`, `COALESCE`, `NULLIF`, `IFNULL`).                               |
| `conversion`           | Coerces a value from one type to another (`CAST`, `TO_DATE`, `CONVERT`, `INET_ATON`).                                      |
| `bitwise`              | Operates on bit-level representations (`BITAND`, `BITOR`, `BITXOR`).                                                       |
| `hash`                 | Computes a hash digest of its input (`MD5`, `SHA1`, `SHA2`, Snowflake `HASH`).                                             |
| `encryption`           | Encrypts or decrypts data (`AES_ENCRYPT`, `AES_DECRYPT`, Snowflake `ENCRYPT`).                                             |
| `semi_structured`      | Operates on nested formats: JSON, JSONB, VARIANT, OBJECT, ARRAY, XML.                                                      |
| `geospatial`           | Operates on geographic or geometric values (Snowflake `ST_*`).                                                             |
| `vector_similarity`    | Computes similarity or distance between vectors (Snowflake `VECTOR_*`).                                                    |
| `file`                 | Operates on staged-file references (Snowflake `FL_*`, `BUILD_*_FILE_URL`).                                                 |
| `context`              | Returns information about the current session, user, role, database, or transaction (`CURRENT_USER`, `CURRENT_TIMESTAMP`). |
| `metadata`             | Returns metadata about database objects (Snowflake `GET_DDL`, `GENERATE_COLUMN_DESCRIPTION`).                              |
| `notification`         | Used for messaging integrations (Snowflake `EMAIL_INTEGRATION_CONFIG`, `TEXT_PLAIN`).                                      |
| `system`               | Engine-level operations exposed as functions (`BENCHMARK`, `SLEEP`, `EXPLAIN_JSON`, Snowflake `SYSTEM$*`).                 |
| `data_generation`      | Generates random or sequence values (`RANDOM`, `UUID_STRING`, `RANDOM_BYTES`).                                             |
| `locking`              | Manages explicit advisory locks (MySQL `GET_LOCK`, `RELEASE_LOCK`).                                                        |
| `differential_privacy` | Differential-privacy operations (Snowflake `ESTIMATE_REMAINING_DP_AGGREGATES`).                                            |

## Catalogue

For canonical upstream documentation see [Snowflake](https://docs.snowflake.com/en/sql-reference/functions-all), [PostgreSQL / Redshift](https://www.postgresql.org/docs/current/functions.html), and [MySQL / MariaDB](https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html).

Use the search box to find a function by name, and click category pills
to narrow the list to entries that carry the selected categories.

export const FUNCTIONS = [{
  "name": "ABS",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ACOS",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ACOSH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ADD_MONTHS",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ADD_MONTHS",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "AES_DECRYPT",
  "categories": ["scalar", "encryption"],
  "source": "MySQL / MariaDB"
}, {
  "name": "AES_ENCRYPT",
  "categories": ["scalar", "encryption"],
  "source": "MySQL / MariaDB"
}, {
  "name": "AGE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ALERT_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "ALL_USER_NAMES",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "ANY_VALUE",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "APPLICATION_JSON",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "APPROX_COUNT_DISTINCT",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "APPROX_PERCENTILE",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "APPROX_PERCENTILE_ACCUMULATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROX_PERCENTILE_COMBINE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROX_PERCENTILE_ESTIMATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROX_TOP_K",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "APPROX_TOP_K_ACCUMULATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROX_TOP_K_COMBINE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROX_TOP_K_ESTIMATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "APPROXIMATE_JACCARD_INDEX",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "APPROXIMATE_SIMILARITY",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_APPEND",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_CAT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_COMPACT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_CONSTRUCT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_CONSTRUCT_COMPACT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_CONTAINS",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_DISTINCT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_EXCEPT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_FLATTEN",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_GENERATE_RANGE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_INSERT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_INTERSECTION",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_LENGTH",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ARRAY_MAX",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_MIN",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_POSITION",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_PREPEND",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_REMOVE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_REMOVE_AT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_REVERSE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_SIZE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_SLICE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_SORT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_TO_STRING",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_UNION_AGG",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "ARRAY_UNIQUE_AGG",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "ARRAYS_OVERLAP",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAYS_TO_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ARRAYS_ZIP",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_BINARY",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_BOOLEAN",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_CHAR",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_DATE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_DECIMAL",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_DOUBLE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_INTEGER",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_TIME",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "AS_TIMESTAMP",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "ASCII",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "ASIN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ASINH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ATAN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ATAN2",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ATANH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "AUTO_REFRESH_REGISTRATION_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "AUTOMATIC_CLUSTERING_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "AVAILABLE_LISTING_REFRESH_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "AVG",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "BASE64_DECODE_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "BASE64_DECODE_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "BASE64_ENCODE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "BENCHMARK",
  "categories": ["scalar", "system"],
  "source": "MySQL / MariaDB"
}, {
  "name": "BETWEEN",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BIN",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "BIT_AND",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "MySQL / MariaDB"
}, {
  "name": "BIT_AND",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BIT_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "BIT_OR",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "MySQL / MariaDB"
}, {
  "name": "BIT_OR",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BIT_XOR",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "MySQL / MariaDB"
}, {
  "name": "BIT_XOR",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BITAND",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITAND_AGG",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITMAP_BIT_POSITION",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "BITMAP_BUCKET_NUMBER",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "BITMAP_CONSTRUCT_AGG",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "BITMAP_COUNT",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "BITMAP_OR_AGG",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "BITNOT",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITOR",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITOR_AGG",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITSHIFTLEFT",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITSHIFTRIGHT",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITXOR",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BITXOR_AGG",
  "categories": ["aggregate", "window", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "BOOL_AND",
  "categories": ["aggregate", "window", "conditional"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BOOL_OR",
  "categories": ["aggregate", "window", "conditional"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BOOLAND",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLAND_AGG",
  "categories": ["aggregate", "window", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLNOT",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLOR",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLOR_AGG",
  "categories": ["aggregate", "window", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLXOR",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BOOLXOR_AGG",
  "categories": ["aggregate", "window", "conditional"],
  "source": "Snowflake"
}, {
  "name": "BPCHARCMP",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BTRIM",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BTTEXT_PATTERN_CMP",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "BUILD_SCOPED_FILE_URL",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "BUILD_STAGE_FILE_URL",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "CAN_JSON_PARSE",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CASE",
  "categories": ["scalar", "conditional"],
  "source": "Common"
}, {
  "name": "CAST",
  "categories": ["scalar", "conversion"],
  "source": "Common"
}, {
  "name": "CBRT",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CBRT",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "CEIL",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "CEILING",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHAR",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "CHAR_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHARACTER_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHARINDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHARINDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "CHECK_JSON",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "CHECK_XML",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "CHECKSUM",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHR",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CHR",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "CLASSIFY_TEXT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "CLOCK_TIMESTAMP",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "COALESCE",
  "categories": ["scalar", "conditional"],
  "source": "Common"
}, {
  "name": "COLLATE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "COLLATION",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "COMPLETE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "COMPLETE_TASK_GRAPHS",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "COMPRESS",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "COMPRESS",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "CONCAT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "CONCAT_WS",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "CONDITIONAL_CHANGE_EVENT",
  "categories": ["window"],
  "source": "Snowflake"
}, {
  "name": "CONDITIONAL_TRUE_EVENT",
  "categories": ["window"],
  "source": "Snowflake"
}, {
  "name": "CONNECTION_ID",
  "categories": ["scalar", "context"],
  "source": "MySQL / MariaDB"
}, {
  "name": "CONTAINS",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "CONV",
  "categories": ["scalar", "numeric", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "CONVERT",
  "categories": ["scalar", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "CONVERT",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CONVERT_TIMEZONE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CONVERT_TIMEZONE",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "CONVERT_TZ",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "COPY_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "CORR",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "CORTEX_SEARCH_DATA_SCAN",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "COS",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "COSH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "COT",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "COUNT",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "COUNT_IF",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "COUNT_TOKENS",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "COVAR_POP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "COVAR_SAMP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "CRC32",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "CRC32",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "CUME_DIST",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "CUMULATIVE_PRIVACY_LOSSES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_ACCOUNT",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_ACCOUNT_NAME",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_AVAILABLE_ROLES",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_CLIENT",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_DATABASE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_DATE",
  "categories": ["scalar", "context"],
  "source": "Common"
}, {
  "name": "CURRENT_IP_ADDRESS",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_ORGANIZATION_NAME",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_REGION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_ROLE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_ROLE_TYPE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_SCHEMA",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_SCHEMAS",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_SECONDARY_ROLES",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_SESSION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_STATEMENT",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_TASK_GRAPHS",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_TIME",
  "categories": ["scalar", "context"],
  "source": "Common"
}, {
  "name": "CURRENT_TIMESTAMP",
  "categories": ["scalar", "context"],
  "source": "Common"
}, {
  "name": "CURRENT_TRANSACTION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_USER",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_VERSION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "CURRENT_WAREHOUSE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "DATABASE",
  "categories": ["scalar", "context"],
  "source": "MySQL / MariaDB"
}, {
  "name": "DATE",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DATE_BIN",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_CMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_CMP_TIMESTAMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_CMP_TIMESTAMPTZ",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_FORMAT",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "DATE_PART",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_PART_YEAR",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATE_TRUNC",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATEADD",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATEADD",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DATEDIFF",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DATEDIFF",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DATEFROMPARTS",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DATETRUNC",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DAY",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "DAYNAME",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DAYOFMONTH",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DAYOFWEEK",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DAYOFYEAR",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "DECIMAL_PRECISION",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DECIMAL_SCALE",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DECODE",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DECODE",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "DECOMPRESS_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "DECOMPRESS_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "DEGREES",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "DENSE_RANK",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "DEXP",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DIFFERENCE",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DIV0",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "DIV0NULL",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "DIVIDE",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "DLOG1",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "DLOG10",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "EDITDISTANCE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "ELT",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "EMAIL_INTEGRATION_CONFIG",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "EMBED_TEXT_1024",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "EMBED_TEXT_768",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "ENCODE",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ENCRYPT",
  "categories": ["scalar", "encryption"],
  "source": "Snowflake"
}, {
  "name": "ENCRYPT_RAW",
  "categories": ["scalar", "encryption"],
  "source": "Snowflake"
}, {
  "name": "ENDSWITH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "ENTITY_SENTIMENT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "EQUAL_NULL",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "ESTIMATE_REMAINING_DP_AGGREGATES",
  "categories": ["scalar", "differential_privacy", "table"],
  "source": "Snowflake"
}, {
  "name": "EVERY",
  "categories": ["aggregate", "window", "conditional"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "EXP",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "EXPLAIN_JSON",
  "categories": ["scalar", "system"],
  "source": "Snowflake"
}, {
  "name": "EXPORT_SET",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "EXTERNAL_FUNCTIONS_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "EXTERNAL_TABLE_FILES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "EXTRACT",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "EXTRACT_ANSWER",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "EXTRACT_SEMANTIC_CATEGORIES",
  "categories": ["scalar", "system"],
  "source": "Snowflake"
}, {
  "name": "FACTORIAL",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "FACTORIAL",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "FARMFINGERPRINT64",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "FIELD",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FILTER",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "FIND_IN_SET",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FINETUNE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "FIRST_VALUE",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "FL_GET_CONTENT_TYPE",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_ETAG",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_FILE_TYPE",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_LAST_MODIFIED",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_RELATIVE_PATH",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_SCOPED_FILE_URL",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_SIZE",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_STAGE",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_GET_STAGE_FILE_URL",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_IS_AUDIO",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_IS_COMPRESSED",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_IS_DOCUMENT",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_IS_IMAGE",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FL_IS_VIDEO",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "FLATTEN",
  "categories": ["table", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "FLOOR",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "FNV_HASH",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "FORMAT",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "FORMAT_BYTES",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FROM_BASE64",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FROM_DAYS",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FROM_UNIXTIME",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "FUNC_SHA1",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "GCD",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "GENERATE_COLUMN_DESCRIPTION",
  "categories": ["scalar", "metadata"],
  "source": "Snowflake"
}, {
  "name": "GENERATE_SUBSCRIPTS",
  "categories": ["table", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "GENERATOR",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "GET",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "GET_ABSOLUTE_PATH",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "GET_ANACONDA_PACKAGES_REPODATA",
  "categories": ["scalar", "system"],
  "source": "Snowflake"
}, {
  "name": "GET_CONDITION_QUERY_UUID",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "GET_DDL",
  "categories": ["scalar", "metadata"],
  "source": "Snowflake"
}, {
  "name": "GET_FORMAT",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "GET_IGNORE_CASE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "GET_LINEAGE",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "GET_LOCK",
  "categories": ["scalar", "locking"],
  "source": "MySQL / MariaDB"
}, {
  "name": "GET_OBJECT_REFERENCES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "GET_PATH",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "GET_PRESIGNED_URL",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "GET_PYTHON_PROFILER_OUTPUT",
  "categories": ["scalar", "system"],
  "source": "Snowflake"
}, {
  "name": "GET_QUERY_OPERATOR_STATS",
  "categories": ["system", "table"],
  "source": "Snowflake"
}, {
  "name": "GET_RELATIVE_PATH",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "GET_STAGE_LOCATION",
  "categories": ["scalar", "file"],
  "source": "Snowflake"
}, {
  "name": "GETBIT",
  "categories": ["scalar", "bitwise"],
  "source": "Snowflake"
}, {
  "name": "GETDATE",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "GETDATE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "GETVARIABLE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "GREATEST",
  "categories": ["scalar", "conditional"],
  "source": "Common"
}, {
  "name": "GREATEST_IGNORE_NULLS",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "GROUP_CONCAT",
  "categories": ["aggregate", "window"],
  "source": "MySQL / MariaDB"
}, {
  "name": "GROUPING",
  "categories": ["aggregate"],
  "source": "Common"
}, {
  "name": "GROUPING_ID",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HASH",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "HASH_AGG",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HEX",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "HEX_DECODE_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "HEX_DECODE_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "HEX_ENCODE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "HLL",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HLL_ACCUMULATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HLL_COMBINE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HLL_ESTIMATE",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HLL_EXPORT",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HLL_IMPORT",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "HOUR",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "ICEBERG_TABLE_FILES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "ICEBERG_TABLE_SNAPSHOT_REFRESH_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "IF",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IFF",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "IFNULL",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IFNULL",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "ILIKE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "ILIKE_ANY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "IN",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "INET_ATON",
  "categories": ["scalar", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "INET_NTOA",
  "categories": ["scalar", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "INET6_ATON",
  "categories": ["scalar", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "INET6_NTOA",
  "categories": ["scalar", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "INFER_SCHEMA",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "INITCAP",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "INITCAP",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "INSERT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "INSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "INTEGRATION",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "INTERVAL_CMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "INVOKER_ROLE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "INVOKER_SHARE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "IS_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "IS_BIGINT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "IS_BOOLEAN",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_BOOLEAN",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "IS_CHAR",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_CHAR",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "IS_DATABASE_ROLE_IN_SESSION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "IS_DATE",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "IS_DECIMAL",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_DECIMAL",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "IS_DISTINCT_FROM",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "IS_DOUBLE",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "IS_FLOAT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_FREE_LOCK",
  "categories": ["scalar", "locking"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_GRANTED_TO_INVOKER_ROLE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "IS_INSTANCE_ROLE_IN_SESSION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "IS_INTEGER",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_INTEGER",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "IS_IPV4",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_IPV4_COMPAT",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_IPV4_MAPPED",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_IPV6",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_NULL",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "IS_NULL_VALUE",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "IS_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "IS_ROLE_IN_SESSION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "IS_SCALAR",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_SMALLINT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_TIME",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "IS_TIMESTAMP",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "IS_USED_LOCK",
  "categories": ["scalar", "locking"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_UUID",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "IS_VALID_JSON",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_VALID_JSON_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "IS_VARCHAR",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ISFINITE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ISNULL",
  "categories": ["scalar", "conditional"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_ARRAY_APPEND",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_ARRAY_INSERT",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_ARRAYAGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_BUILD_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_BUILD_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_CONTAINS",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_CONTAINS_PATH",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_DEPTH",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_EXTRACT",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_EXTRACT_ARRAY_ELEMENT_TEXT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_EXTRACT_PATH_TEXT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_EXTRACT_PATH_TEXT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "JSON_INSERT",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_KEYS",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_LENGTH",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_MERGE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_MERGE_PATCH",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_MERGE_PRESERVE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_OBJECT_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_OBJECTAGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_OVERLAPS",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_PARSE",
  "categories": ["scalar", "semi_structured", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_PRETTY",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_QUOTE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_REMOVE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_REPLACE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_SCHEMA_VALID",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_SEARCH",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_SERIALIZE",
  "categories": ["scalar", "semi_structured", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_SERIALIZE_TO_VARBYTE",
  "categories": ["scalar", "semi_structured", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_SET",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_SIZE",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_STORAGE_FREE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_STORAGE_SIZE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_TABLE",
  "categories": ["table", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_TYPE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_TYPEOF",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSON_UNQUOTE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_VALID",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSON_VALUE",
  "categories": ["scalar", "semi_structured"],
  "source": "MySQL / MariaDB"
}, {
  "name": "JSONB_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_BUILD_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_BUILD_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_OBJECT",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_OBJECT_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PATH_EXISTS",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PATH_MATCH",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PATH_QUERY",
  "categories": ["table", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PATH_QUERY_ARRAY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PATH_QUERY_FIRST",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_PRETTY",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_SET",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JSONB_TYPEOF",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JUSTIFY_DAYS",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JUSTIFY_HOURS",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "JUSTIFY_INTERVAL",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "KURTOSIS",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "KURTOSIS_POP",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "LAG",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "LAST_DAY",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "LAST_DAY",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "LAST_INSERT_ID",
  "categories": ["scalar", "context"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LAST_QUERY_ID",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "LAST_SUCCESSFUL_SCHEDULED_TIME",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "LAST_TRANSACTION",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "LAST_VALUE",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "LCASE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LCM",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "LEAD",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "LEAST",
  "categories": ["scalar", "conditional"],
  "source": "Common"
}, {
  "name": "LEAST_IGNORE_NULLS",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "LEFT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "LEN",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "LEN",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "LIKE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "LIKE_ALL",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "LIKE_ANY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "LISTAGG",
  "categories": ["aggregate", "window", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "LISTAGG",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "LISTING_REFRESH_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "LN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "LOAD_FILE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LOCALTIME",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "LOCALTIMESTAMP",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "LOCATE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LOG",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "LOG10",
  "categories": ["scalar", "numeric"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LOG2",
  "categories": ["scalar", "numeric"],
  "source": "MySQL / MariaDB"
}, {
  "name": "LOGIN_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "LOGIN_HISTORY_BY_USER",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "LOWER",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "LPAD",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "LTRIM",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "MAKE_DATE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MAKE_INTERVAL",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MAKE_SET",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "MAKE_TIME",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MAKE_TIMESTAMP",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "MAKE_TIMESTAMP_LTZ",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "MAKE_TIMESTAMP_NTZ",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "MAKE_TIMESTAMP_TZ",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "MAX",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "MD5",
  "categories": ["scalar", "hash"],
  "source": "Common"
}, {
  "name": "MEDIAN",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MEDIAN",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "MID",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "MIN",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "MINUTE",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "MOD",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "MODE",
  "categories": ["aggregate"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MONTH",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "MONTHNAME",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "MONTHS_BETWEEN",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "MULTI_EDITDISTANCE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "MURMUR3_32_HASH",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "NEXT_DAY",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "NEXT_DAY",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "NOW",
  "categories": ["scalar", "context", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "NOW",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "NTH_VALUE",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "NTILE",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "NULLIF",
  "categories": ["scalar", "conditional"],
  "source": "Common"
}, {
  "name": "NULLIFZERO",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "NVL",
  "categories": ["scalar", "conditional"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "NVL",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "NVL2",
  "categories": ["scalar", "conditional"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "NVL2",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_AGG",
  "categories": ["aggregate", "window", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_CONSTRUCT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_CONSTRUCT_KEEP_NULL",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_DELETE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_INSERT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_KEYS",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OBJECT_PICK",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "OCT",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "OCTET_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "OCTETINDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "ORD",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "ORIGINAL",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "OVERLAY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "PARSE_DOCUMENT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "PARSE_IP",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "PARSE_JSON",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "PARSE_URL",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "PARSE_XML",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "PASSWORD",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "PERCENT_RANK",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "PERCENTILE_CONT",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "PERCENTILE_CONT",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "PERCENTILE_DISC",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "PERCENTILE_DISC",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "PERIOD_ADD",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "PERIOD_DIFF",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "PG_BACKEND_PID",
  "categories": ["scalar", "context"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "PI",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "PIPE_USAGE_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "POLICY_CONTEXT",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "POLICY_REFERENCES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "POSITION",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "POW",
  "categories": ["scalar", "numeric"],
  "source": "MySQL / MariaDB"
}, {
  "name": "POW",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "POWER",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "PREVIOUS_DAY",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "PROMPT",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "QUERY_ACCELERATION_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "QUERY_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "QUERY_HISTORY_*",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "QUOTE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "QUOTE_IDENT",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "QUOTE_LITERAL",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "QUOTE_NULLABLE",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RADIANS",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "RAND",
  "categories": ["scalar", "data_generation", "numeric"],
  "source": "MySQL / MariaDB"
}, {
  "name": "RANDOM",
  "categories": ["scalar", "data_generation"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RANDOM",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "RANDOM_BYTES",
  "categories": ["scalar", "data_generation"],
  "source": "MySQL / MariaDB"
}, {
  "name": "RANDOM_NORMAL",
  "categories": ["scalar", "data_generation"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RANDSTR",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "RANGE_AGG",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RANK",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "RATIO_TO_REPORT",
  "categories": ["window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RATIO_TO_REPORT",
  "categories": ["window"],
  "source": "Snowflake"
}, {
  "name": "REDUCE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "REGEXP",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGEXP_COUNT",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_COUNT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGEXP_INSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_INSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGEXP_LIKE",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_LIKE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGEXP_MATCHES",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_REPLACE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "REGEXP_SPLIT_TO_ARRAY",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_SPLIT_TO_TABLE",
  "categories": ["table", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_SUBSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGEXP_SUBSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGEXP_SUBSTR_ALL",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "REGR_AVGX",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_AVGX",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_AVGY",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_AVGY",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_COUNT",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_COUNT",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_INTERCEPT",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_INTERCEPT",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_R2",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_R2",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_SLOPE",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_SLOPE",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_SXX",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_SXX",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_SXY",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_SXY",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_SYY",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REGR_SYY",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "REGR_VALX",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "REGR_VALY",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "RELEASE_ALL_LOCKS",
  "categories": ["scalar", "locking"],
  "source": "MySQL / MariaDB"
}, {
  "name": "RELEASE_LOCK",
  "categories": ["scalar", "locking"],
  "source": "MySQL / MariaDB"
}, {
  "name": "REPEAT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "REPLACE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "REPLICATE",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "REPLICATION_GROUP_REFRESH_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_GROUP_REFRESH_HISTORY_ALL",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_GROUP_REFRESH_PROGRESS",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_GROUP_REFRESH_PROGRESS_ALL",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_GROUP_USAGE_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REPLICATION_USAGE_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REST_EVENT_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "RESULT_SCAN",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "REVERSE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "RIGHT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "RLIKE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "ROUND",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "ROW_NUMBER",
  "categories": ["window"],
  "source": "Common"
}, {
  "name": "ROW_TO_JSON",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "RPAD",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "RTRIM",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "RTRIMMED_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SANITIZE_WEBHOOK_CONTENT",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "SCHEDULED_TIME",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "SCHEMA",
  "categories": ["scalar", "context"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SEARCH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SEARCH_IP",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SEARCH_OPTIMIZATION_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "SEARCH_PREVIEW",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SEC_TO_TIME",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SECOND",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "SENTIMENT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SEQ1",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "SEQ2",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "SEQ4",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "SEQ8",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "SERVERLESS_ALERT_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "SERVERLESS_TASK_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "SESSION_USER",
  "categories": ["scalar", "context"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA1",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SHA1",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA1",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA1_BINARY",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA1_HEX",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA2",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SHA2",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA2",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA2_BINARY",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA2_HEX",
  "categories": ["scalar", "hash"],
  "source": "Snowflake"
}, {
  "name": "SHA224",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA256",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA384",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHA512",
  "categories": ["scalar", "hash"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SHOW_PYTHON_PACKAGES_DEPENDENCIES",
  "categories": ["table", "system"],
  "source": "Snowflake"
}, {
  "name": "SIGN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "SIN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "SINH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "SIZE",
  "categories": ["scalar", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SKEW",
  "categories": ["aggregate"],
  "source": "Snowflake"
}, {
  "name": "SLEEP",
  "categories": ["scalar", "system"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SOUNDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SOUNDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SOUNDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SOUNDEX_P123",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SPACE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SPACE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SPLIT",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SPLIT_PART",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SPLIT_PART",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SPLIT_TEXT_RECURSIVE_CHARACTER",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SPLIT_TO_TABLE",
  "categories": ["string_and_binary", "table"],
  "source": "Snowflake"
}, {
  "name": "SQRT",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "SQUARE",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "ST_*",
  "categories": ["scalar", "geospatial"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOGFROMGEOHASH",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOGPOINTFROMGEOHASH",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOGRAPHYFROMWKB",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOGRAPHYFROMWKT",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOMETRYFROMWKB",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "ST_GEOMETRYFROMWKT",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "STAGE_STORAGE_USAGE_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "STARTS_WITH",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "STARTSWITH",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "STATEMENT_DIGEST",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "STATEMENT_DIGEST_TEXT",
  "categories": ["scalar", "hash"],
  "source": "MySQL / MariaDB"
}, {
  "name": "STATEMENT_TIMESTAMP",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "STD",
  "categories": ["aggregate", "window"],
  "source": "MySQL / MariaDB"
}, {
  "name": "STDDEV",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "STDDEV_POP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "STDDEV_SAMP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "STR_TO_DATE",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "STRCMP",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "STRING_AGG",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "STRING_TO_ARRAY",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "STRIP_NULL_VALUE",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "STRPOS",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "STRTOK",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "STRTOK_SPLIT_TO_TABLE",
  "categories": ["string_and_binary", "table"],
  "source": "Snowflake"
}, {
  "name": "STRTOK_TO_ARRAY",
  "categories": ["scalar", "string_and_binary", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "STRTOL",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "SUBSTR",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "SUBSTRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "SUBSTRING_INDEX",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "SUM",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "SUMMARIZE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "SYSDATE",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "SYSTEM$*",
  "categories": ["scalar", "system"],
  "source": "Snowflake"
}, {
  "name": "SYSTIMESTAMP",
  "categories": ["scalar", "context"],
  "source": "Snowflake"
}, {
  "name": "TAG_REFERENCES",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TAG_REFERENCES_ALL_COLUMNS",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TAG_REFERENCES_WITH_LINEAGE",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TAN",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "TANH",
  "categories": ["scalar", "numeric"],
  "source": "Common"
}, {
  "name": "TASK_DEPENDENTS",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TASK_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TEXT_HTML",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "TEXT_PLAIN",
  "categories": ["scalar", "notification"],
  "source": "Snowflake"
}, {
  "name": "TEXT_TO_INT_ALT",
  "categories": ["scalar", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TEXT_TO_NUMERIC_ALT",
  "categories": ["scalar", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TEXTLEN",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIME_FORMAT",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TIME_FROM_PARTS",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIME_SLICE",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIME_TO_SEC",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TIMEADD",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIMEDIFF",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIMEOFDAY",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMP_CMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMP_CMP_DATE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMP_CMP_TIMESTAMPTZ",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMP_FROM_PARTS",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIMESTAMPADD",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIMESTAMPDIFF",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TIMESTAMPDIFF",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TIMESTAMPTZ_CMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMPTZ_CMP_DATE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMESTAMPTZ_CMP_TIMESTAMP",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TIMEZONE",
  "categories": ["scalar", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_ARRAY",
  "categories": ["scalar", "conversion", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TO_BASE64",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TO_BINARY",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_BOOLEAN",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_CHAR",
  "categories": ["scalar", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_CHAR",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_DATE",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_DATE",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TO_DAYS",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TO_DECIMAL",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_DOUBLE",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_FILE",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_GEOGRAPHY",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_GEOMETRY",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_HEX",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_JSON",
  "categories": ["scalar", "conversion", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TO_NUMBER",
  "categories": ["scalar", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_OBJECT",
  "categories": ["scalar", "conversion", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TO_QUERY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "TO_SECONDS",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TO_TIME",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TO_TIMESTAMP",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TO_TIMESTAMP",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TO_VARCHAR",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_VARIANT",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TO_XML",
  "categories": ["scalar", "conversion", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TRANSACTION_TIMESTAMP",
  "categories": ["scalar", "context", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TRANSFORM",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TRANSLATE",
  "categories": ["scalar", "string_and_binary"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TRANSLATE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRIM",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "TRUNC",
  "categories": ["scalar", "numeric", "date_time"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TRUNC",
  "categories": ["scalar", "numeric", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TRUNCATE",
  "categories": ["scalar", "numeric"],
  "source": "MySQL / MariaDB"
}, {
  "name": "TRUNCATE",
  "categories": ["scalar", "numeric", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TRY_BASE64_DECODE_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRY_BASE64_DECODE_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRY_CAST",
  "categories": ["scalar", "conversion"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "TRY_CAST",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_COMPLETE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRY_DECRYPT",
  "categories": ["scalar", "encryption"],
  "source": "Snowflake"
}, {
  "name": "TRY_DECRYPT_RAW",
  "categories": ["scalar", "encryption"],
  "source": "Snowflake"
}, {
  "name": "TRY_HEX_DECODE_BINARY",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRY_HEX_DECODE_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "TRY_PARSE_JSON",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_BINARY",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_BOOLEAN",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_DATE",
  "categories": ["scalar", "conversion", "date_time"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_DECIMAL",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_DOUBLE",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_FILE",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_GEOGRAPHY",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_GEOMETRY",
  "categories": ["scalar", "geospatial", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_TIME",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TRY_TO_TIMESTAMP",
  "categories": ["scalar", "conversion"],
  "source": "Snowflake"
}, {
  "name": "TYPEOF",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "UCASE",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UNCOMPRESS",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UNCOMPRESSED_LENGTH",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UNHEX",
  "categories": ["scalar", "string_and_binary", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UNICODE",
  "categories": ["scalar", "string_and_binary"],
  "source": "Snowflake"
}, {
  "name": "UNIFORM",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "UNIX_TIMESTAMP",
  "categories": ["scalar", "date_time", "conversion"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UNNEST",
  "categories": ["table", "semi_structured"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "UPPER",
  "categories": ["scalar", "string_and_binary"],
  "source": "Common"
}, {
  "name": "USER",
  "categories": ["scalar", "context"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "UTC_DATE",
  "categories": ["scalar", "context", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UTC_TIME",
  "categories": ["scalar", "context", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UTC_TIMESTAMP",
  "categories": ["scalar", "context", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UUID",
  "categories": ["scalar", "data_generation"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UUID_SHORT",
  "categories": ["scalar", "data_generation"],
  "source": "MySQL / MariaDB"
}, {
  "name": "UUID_STRING",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}, {
  "name": "VALIDATE",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "VALIDATE_PIPE_LOAD",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "VAR_POP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "VAR_SAMP",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "VARIANCE",
  "categories": ["aggregate", "window"],
  "source": "Common"
}, {
  "name": "VARIANCE_POP",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "VARIANCE_SAMP",
  "categories": ["aggregate", "window"],
  "source": "Snowflake"
}, {
  "name": "VECTOR_COSINE_SIMILARITY",
  "categories": ["scalar", "vector_similarity"],
  "source": "Snowflake"
}, {
  "name": "VECTOR_INNER_PRODUCT",
  "categories": ["scalar", "vector_similarity"],
  "source": "Snowflake"
}, {
  "name": "VECTOR_L1_DISTANCE",
  "categories": ["scalar", "vector_similarity"],
  "source": "Snowflake"
}, {
  "name": "VECTOR_L2_DISTANCE",
  "categories": ["scalar", "vector_similarity"],
  "source": "Snowflake"
}, {
  "name": "VERSION",
  "categories": ["scalar", "context"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "WAIT_FOR_EXECUTED_GTID_SET",
  "categories": ["scalar", "system"],
  "source": "MySQL / MariaDB"
}, {
  "name": "WAREHOUSE_LOAD_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "WAREHOUSE_METERING_HISTORY",
  "categories": ["table"],
  "source": "Snowflake"
}, {
  "name": "WEEK",
  "categories": ["scalar", "date_time"],
  "source": "Snowflake"
}, {
  "name": "WEEKDAY",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "WEEKOFYEAR",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "WEIGHT_STRING",
  "categories": ["scalar", "string_and_binary"],
  "source": "MySQL / MariaDB"
}, {
  "name": "WIDTH_BUCKET",
  "categories": ["scalar", "numeric"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "WIDTH_BUCKET",
  "categories": ["scalar", "numeric"],
  "source": "Snowflake"
}, {
  "name": "XMLAGG",
  "categories": ["aggregate", "window"],
  "source": "PostgreSQL / Redshift"
}, {
  "name": "XMLGET",
  "categories": ["scalar", "semi_structured"],
  "source": "Snowflake"
}, {
  "name": "YEAR",
  "categories": ["scalar", "date_time"],
  "source": "Common"
}, {
  "name": "YEARWEEK",
  "categories": ["scalar", "date_time"],
  "source": "MySQL / MariaDB"
}, {
  "name": "ZEROIFNULL",
  "categories": ["scalar", "conditional"],
  "source": "Snowflake"
}, {
  "name": "ZIPF",
  "categories": ["scalar", "data_generation"],
  "source": "Snowflake"
}];
export const FILTER_CATEGORIES = ["scalar", "aggregate", "window", "table", "numeric", "string_and_binary", "date_time", "conditional", "conversion", "bitwise", "hash", "encryption", "semi_structured", "geospatial", "vector_similarity", "file", "context", "metadata", "notification", "system", "data_generation", "locking", "differential_privacy"];
export const FILTER_SOURCES = ["Common", "Snowflake", "PostgreSQL / Redshift", "MySQL / MariaDB"];

export const FunctionsCatalogue = () => {
  const [search, setSearch] = React.useState("");
  const [activeCategories, setActiveCategories] = React.useState([]);
  const [activeSources, setActiveSources] = React.useState([]);
  const toggle = (list, setList, value) => {
    setList(list.includes(value) ? list.filter(v => v !== value) : [...list, value]);
  };
  const needle = search.trim().toLowerCase();
  const filtered = FUNCTIONS.filter(f => {
    if (needle && !f.name.toLowerCase().includes(needle)) return false;
    if (activeCategories.length > 0 && !activeCategories.every(c => f.categories.includes(c))) return false;
    if (activeSources.length > 0 && !activeSources.includes(f.source)) return false;
    return true;
  });
  const pillStyle = active => ({
    cursor: "pointer",
    border: "1px solid",
    borderColor: active ? "#3D6EFF" : "rgba(120,120,120,0.4)",
    background: active ? "#3D6EFF" : "transparent",
    color: active ? "white" : "inherit",
    padding: "2px 10px",
    borderRadius: "999px",
    fontSize: "0.85em",
    fontFamily: "var(--font-mono, monospace)",
    userSelect: "none"
  });
  return <div style={{
    marginTop: "1rem"
  }}>
      <input type="search" placeholder="Search by function name (e.g. STRING_AGG, JSON_*)" value={search} onChange={e => setSearch(e.target.value)} style={{
    width: "100%",
    padding: "8px 12px",
    fontSize: "0.95em",
    border: "1px solid rgba(120,120,120,0.4)",
    borderRadius: "6px",
    background: "transparent",
    color: "inherit",
    marginBottom: "0.75rem"
  }} />
      <div style={{
    marginBottom: "0.5rem",
    fontSize: "0.85em",
    opacity: 0.8
  }}>Filter by source:</div>
      <div style={{
    display: "flex",
    flexWrap: "wrap",
    gap: "6px",
    marginBottom: "0.75rem"
  }}>
        {FILTER_SOURCES.map(source => <span key={source} style={pillStyle(activeSources.includes(source))} onClick={() => toggle(activeSources, setActiveSources, source)}>
            {source}
          </span>)}
      </div>
      <div style={{
    marginBottom: "0.5rem",
    fontSize: "0.85em",
    opacity: 0.8
  }}>Filter by category (must match all selected):</div>
      <div style={{
    display: "flex",
    flexWrap: "wrap",
    gap: "6px",
    marginBottom: "0.75rem"
  }}>
        {FILTER_CATEGORIES.map(cat => <span key={cat} style={pillStyle(activeCategories.includes(cat))} onClick={() => toggle(activeCategories, setActiveCategories, cat)}>
            {cat}
          </span>)}
      </div>
      <div style={{
    fontSize: "0.85em",
    opacity: 0.8,
    marginBottom: "0.5rem"
  }}>
        Showing {filtered.length} of {FUNCTIONS.length}
        {(activeCategories.length > 0 || activeSources.length > 0 || needle) && <span style={{
    marginLeft: "0.75rem",
    cursor: "pointer",
    textDecoration: "underline"
  }} onClick={() => {
    setSearch("");
    setActiveCategories([]);
    setActiveSources([]);
  }}>
            Clear filters
          </span>}
      </div>
      <table>
        <thead>
          <tr>
            <th style={{
    textAlign: "left"
  }}>Function</th>
            <th style={{
    textAlign: "left"
  }}>Categories</th>
            <th style={{
    textAlign: "left"
  }}>Source</th>
          </tr>
        </thead>
        <tbody>
          {filtered.map((f, idx) => <tr key={idx}>
              <td><code>{f.name}</code></td>
              <td>{f.categories.map(c => <code key={c} style={{
    marginRight: "4px"
  }}>{c}</code>)}</td>
              <td>{f.source}</td>
            </tr>)}
        </tbody>
      </table>
    </div>;
};

<FunctionsCatalogue />
