From a724ac4caf6dcea5295b6fde4d22865bb7574117 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 26 Aug 2026 20:51:28 +0000 Subject: [PATCH] Add DuckDB engine for parse and analyze via darkwing Wire DuckDB 2.0 support into sqlc parse and sqlc analyze through darkwing, the pure Go port of DuckDB's PEG parser: - internal/engine/duckdb: parser wrapper and converter from darkwing's AST to sqlc's. darkwing's statement spans tile the input, so each statement carries its leading comments for query annotations, and darkwing numbers every parameter spelling ($1, ?, $name) itself. - internal/engine/duckdb/dialect: the type system seed for the analysis core. types.jsonl, functions.jsonl and operators.jsonl are generated from a live DuckDB 2.0 CLI by the new sqlc-duckdb-gen tool (internal/tools/sqlc-duckdb-gen), which maps DuckDB's polymorphic function parameters onto the analyzer's "any" resolution. - config, compiler and the parse/analyze commands register the engine; parse errors carry DuckDB's native messages with byte-accurate positions. - end-to-end cases under parse_basic, analyze_basic, analyze_params, analyze_dml and analyze_select cover the dialect. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016uPxbu16EDkadTKbWwHUiE --- CLAUDE.md | 3 + docs/howto/analyze.md | 2 +- docs/howto/parse.md | 2 +- go.mod | 1 + go.sum | 2 + internal/cmd/analyze.go | 11 +- internal/cmd/parse.go | 14 +- internal/compiler/engine.go | 11 +- internal/config/config.go | 1 + .../testdata/analyze_basic/duckdb/exec.json | 5 + .../testdata/analyze_basic/duckdb/query.sql | 2 + .../testdata/analyze_basic/duckdb/schema.sql | 7 + .../testdata/analyze_basic/duckdb/stdout.txt | 44 + .../testdata/analyze_dml/duckdb/exec.json | 5 + .../testdata/analyze_dml/duckdb/query.sql | 13 + .../testdata/analyze_dml/duckdb/schema.sql | 12 + .../testdata/analyze_dml/duckdb/stdout.txt | 133 + .../testdata/analyze_params/duckdb/exec.json | 5 + .../testdata/analyze_params/duckdb/query.sql | 8 + .../testdata/analyze_params/duckdb/schema.sql | 6 + .../testdata/analyze_params/duckdb/stdout.txt | 108 + .../testdata/analyze_select/duckdb/exec.json | 5 + .../testdata/analyze_select/duckdb/query.sql | 16 + .../testdata/analyze_select/duckdb/schema.sql | 12 + .../testdata/analyze_select/duckdb/stdout.txt | 116 + .../testdata/parse_basic/duckdb/exec.json | 5 + .../testdata/parse_basic/duckdb/query.sql | 2 + .../testdata/parse_basic/duckdb/stdout.txt | 44 + internal/engine/duckdb/convert.go | 1196 ++++++++ internal/engine/duckdb/dialect/dialect.json | 15 + .../engine/duckdb/dialect/functions.jsonl | 2626 +++++++++++++++++ .../engine/duckdb/dialect/operators.jsonl | 157 + internal/engine/duckdb/dialect/types.jsonl | 40 + internal/engine/duckdb/parse.go | 67 + internal/engine/duckdb/reserved.go | 9 + internal/engine/duckdb/seed.go | 23 + internal/engine/duckdb/utils.go | 47 + internal/tools/sqlc-duckdb-gen/main.go | 360 +++ 38 files changed, 5123 insertions(+), 12 deletions(-) create mode 100644 internal/endtoend/testdata/analyze_basic/duckdb/exec.json create mode 100644 internal/endtoend/testdata/analyze_basic/duckdb/query.sql create mode 100644 internal/endtoend/testdata/analyze_basic/duckdb/schema.sql create mode 100644 internal/endtoend/testdata/analyze_basic/duckdb/stdout.txt create mode 100644 internal/endtoend/testdata/analyze_dml/duckdb/exec.json create mode 100644 internal/endtoend/testdata/analyze_dml/duckdb/query.sql create mode 100644 internal/endtoend/testdata/analyze_dml/duckdb/schema.sql create mode 100644 internal/endtoend/testdata/analyze_dml/duckdb/stdout.txt create mode 100644 internal/endtoend/testdata/analyze_params/duckdb/exec.json create mode 100644 internal/endtoend/testdata/analyze_params/duckdb/query.sql create mode 100644 internal/endtoend/testdata/analyze_params/duckdb/schema.sql create mode 100644 internal/endtoend/testdata/analyze_params/duckdb/stdout.txt create mode 100644 internal/endtoend/testdata/analyze_select/duckdb/exec.json create mode 100644 internal/endtoend/testdata/analyze_select/duckdb/query.sql create mode 100644 internal/endtoend/testdata/analyze_select/duckdb/schema.sql create mode 100644 internal/endtoend/testdata/analyze_select/duckdb/stdout.txt create mode 100644 internal/endtoend/testdata/parse_basic/duckdb/exec.json create mode 100644 internal/endtoend/testdata/parse_basic/duckdb/query.sql create mode 100644 internal/endtoend/testdata/parse_basic/duckdb/stdout.txt create mode 100644 internal/engine/duckdb/convert.go create mode 100644 internal/engine/duckdb/dialect/dialect.json create mode 100644 internal/engine/duckdb/dialect/functions.jsonl create mode 100644 internal/engine/duckdb/dialect/operators.jsonl create mode 100644 internal/engine/duckdb/dialect/types.jsonl create mode 100644 internal/engine/duckdb/parse.go create mode 100644 internal/engine/duckdb/reserved.go create mode 100644 internal/engine/duckdb/seed.go create mode 100644 internal/engine/duckdb/utils.go create mode 100644 internal/tools/sqlc-duckdb-gen/main.go diff --git a/CLAUDE.md b/CLAUDE.md index 43d86b49fe..3059988024 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -215,6 +215,9 @@ MYSQL_SERVER_URI="root:mysecretpassword@tcp(127.0.0.1:3306)/mysql?multiStatement - `/postgresql/` - PostgreSQL parser and converter - `/dolphin/` - MySQL parser (uses TiDB parser) - `/sqlite/` - SQLite parser + - `/duckdb/` - DuckDB 2.0 parser (uses darkwing, the pure Go port of + DuckDB's PEG parser); its dialect seeds are generated by + `/internal/tools/sqlc-duckdb-gen` from a live DuckDB CLI - `/dialect/` - The engine's type system and standard library, as JSONL read by `/internal/core/seed` - `/internal/core/` - The analysis core: catalog, analyzer and dialect seeds diff --git a/docs/howto/analyze.md b/docs/howto/analyze.md index ea1063c310..778eb20212 100644 --- a/docs/howto/analyze.md +++ b/docs/howto/analyze.md @@ -26,7 +26,7 @@ provided. The schema is always read from the `--schema` file. ## Flags - `--dialect`, `-d` - The SQL dialect to use. One of `postgresql`, `mysql`, - `sqlite`, `clickhouse`, `googlesql`, or `mssql`. Required. + `sqlite`, `clickhouse`, `googlesql`, `mssql`, or `duckdb`. Required. - `--schema`, `-s` - Path to the schema (DDL) file. Required. - `--ast` - Include each statement's AST in the output. Defaults to `false`. diff --git a/docs/howto/parse.md b/docs/howto/parse.md index cf34e417be..d8ebe59c97 100644 --- a/docs/howto/parse.md +++ b/docs/howto/parse.md @@ -20,7 +20,7 @@ provided. ## Flags - `--dialect`, `-d` - The SQL dialect to use. One of `postgresql`, `mysql`, - `sqlite`, `clickhouse`, `googlesql`, or `mssql`. Required. + `sqlite`, `clickhouse`, `googlesql`, `mssql`, or `duckdb`. Required. ## Examples diff --git a/go.mod b/go.mod index 6ba2e207a9..a0a69f8bc6 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,7 @@ require ( github.com/riza-io/grpc-go v0.2.0 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 + github.com/sqlc-dev/darkwing v0.1.0 github.com/sqlc-dev/doubleclick v1.0.0 github.com/sqlc-dev/marino v0.3.0 github.com/sqlc-dev/meyer v0.1.1 diff --git a/go.sum b/go.sum index 67be1abc66..2bb5964f43 100644 --- a/go.sum +++ b/go.sum @@ -65,6 +65,8 @@ github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiT github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/sqlc-dev/darkwing v0.1.0 h1:P5dtJebmCiy10e6DcnBQ2d7Mwuz636obuSAzTlr/1Qo= +github.com/sqlc-dev/darkwing v0.1.0/go.mod h1:kPb+99a6U+oVWtLhsuvkuDb/YRm8deK6x+W/9mX6uug= github.com/sqlc-dev/doubleclick v1.0.0 h1:2/OApfQ2eLgcfa/Fqs8WSMA6atH0G8j9hHbQIgMfAXI= github.com/sqlc-dev/doubleclick v1.0.0/go.mod h1:ODHRroSrk/rr5neRHlWMSRijqOak8YmNaO3VAZCNl5Y= github.com/sqlc-dev/marino v0.3.0 h1:e9cinBXJFFa3yRpokYNNinWvkewgd6XVDgnlG0bOmTw= diff --git a/internal/cmd/analyze.go b/internal/cmd/analyze.go index 347a5949c7..df71bae0b4 100644 --- a/internal/cmd/analyze.go +++ b/internal/cmd/analyze.go @@ -46,6 +46,9 @@ Examples: # Analyze a SQL Server (T-SQL) query sqlc analyze --dialect mssql --schema schema.sql query.sql + # Analyze a DuckDB query + sqlc analyze --dialect duckdb --schema schema.sql query.sql + # Analyze a query piped via stdin echo "-- name: GetAuthor :one SELECT * FROM authors WHERE id = $1;" | sqlc analyze --dialect postgresql --schema schema.sql @@ -59,7 +62,7 @@ Examples: return err } if dialect == "" { - return fmt.Errorf("--dialect flag is required (postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)") + return fmt.Errorf("--dialect flag is required (postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)") } schemaPath, err := cmd.Flags().GetString("schema") @@ -122,8 +125,10 @@ Examples: engine = config.EngineGoogleSQL case "mssql", "sqlserver": engine = config.EngineMSSQL + case "duckdb": + engine = config.EngineDuckDB default: - return fmt.Errorf("unsupported dialect: %s (use postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)", dialect) + return fmt.Errorf("unsupported dialect: %s (use postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)", dialect) } sql := config.SQL{ @@ -165,7 +170,7 @@ Examples: return nil }, } - cmd.Flags().StringP("dialect", "d", "", "SQL dialect to use (postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)") + cmd.Flags().StringP("dialect", "d", "", "SQL dialect to use (postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)") cmd.Flags().StringP("schema", "s", "", "path to the schema file") cmd.Flags().BoolP("ast", "", false, "include the statement AST in the output") return cmd diff --git a/internal/cmd/parse.go b/internal/cmd/parse.go index 1f92b595a9..72f59612c8 100644 --- a/internal/cmd/parse.go +++ b/internal/cmd/parse.go @@ -11,6 +11,7 @@ import ( "github.com/sqlc-dev/sqlc/internal/engine/clickhouse" "github.com/sqlc-dev/sqlc/internal/engine/dolphin" + "github.com/sqlc-dev/sqlc/internal/engine/duckdb" "github.com/sqlc-dev/sqlc/internal/engine/googlesql" "github.com/sqlc-dev/sqlc/internal/engine/mssql" "github.com/sqlc-dev/sqlc/internal/engine/postgresql" @@ -63,7 +64,10 @@ Examples: sqlc parse --dialect googlesql queries.sql # Parse SQL Server (T-SQL) SQL - sqlc parse --dialect mssql queries.sql`, + sqlc parse --dialect mssql queries.sql + + # Parse DuckDB SQL + sqlc parse --dialect duckdb queries.sql`, Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { dialect, err := cmd.Flags().GetString("dialect") @@ -71,7 +75,7 @@ Examples: return err } if dialect == "" { - return fmt.Errorf("--dialect flag is required (postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)") + return fmt.Errorf("--dialect flag is required (postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)") } // Determine input source @@ -110,8 +114,10 @@ Examples: parser = googlesql.NewParser() case "mssql", "sqlserver": parser = mssql.NewParser() + case "duckdb": + parser = duckdb.NewParser() default: - return fmt.Errorf("unsupported dialect: %s (use postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)", dialect) + return fmt.Errorf("unsupported dialect: %s (use postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)", dialect) } // Read the full source so each statement's name and command can be @@ -155,6 +161,6 @@ Examples: return nil }, } - cmd.Flags().StringP("dialect", "d", "", "SQL dialect to use (postgresql, mysql, sqlite, clickhouse, googlesql, or mssql)") + cmd.Flags().StringP("dialect", "d", "", "SQL dialect to use (postgresql, mysql, sqlite, clickhouse, googlesql, mssql, or duckdb)") return cmd } diff --git a/internal/compiler/engine.go b/internal/compiler/engine.go index 06e6bc40db..9e428bc8cf 100644 --- a/internal/compiler/engine.go +++ b/internal/compiler/engine.go @@ -10,6 +10,7 @@ import ( "github.com/sqlc-dev/sqlc/internal/dbmanager" "github.com/sqlc-dev/sqlc/internal/engine/clickhouse" "github.com/sqlc-dev/sqlc/internal/engine/dolphin" + "github.com/sqlc-dev/sqlc/internal/engine/duckdb" "github.com/sqlc-dev/sqlc/internal/engine/googlesql" "github.com/sqlc-dev/sqlc/internal/engine/mssql" "github.com/sqlc-dev/sqlc/internal/engine/postgresql" @@ -58,10 +59,10 @@ func NewCompiler(conf config.SQL, combo config.CombinedSettings, parserOpts opts o(c) } - // ClickHouse, GoogleSQL and SQL Server have no legacy analysis path to - // fall back to. + // ClickHouse, GoogleSQL, SQL Server and DuckDB have no legacy analysis + // path to fall back to. switch conf.Engine { - case config.EngineClickHouse, config.EngineGoogleSQL, config.EngineMSSQL: + case config.EngineClickHouse, config.EngineGoogleSQL, config.EngineMSSQL, config.EngineDuckDB: c.coreAnalysis = true } if c.coreAnalysis { @@ -144,6 +145,10 @@ func (c *Compiler) initCore() error { c.parser = mssql.NewParser() c.selector = newDefaultSelector() dialect = mssql.Dialect() + case config.EngineDuckDB: + c.parser = duckdb.NewParser() + c.selector = newDefaultSelector() + dialect = duckdb.Dialect() default: return fmt.Errorf("unknown engine: %s", c.conf.Engine) } diff --git a/internal/config/config.go b/internal/config/config.go index b96053ebb9..8dc9c280db 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -57,6 +57,7 @@ const ( EngineClickHouse Engine = "clickhouse" EngineGoogleSQL Engine = "googlesql" EngineMSSQL Engine = "mssql" + EngineDuckDB Engine = "duckdb" ) type Config struct { diff --git a/internal/endtoend/testdata/analyze_basic/duckdb/exec.json b/internal/endtoend/testdata/analyze_basic/duckdb/exec.json new file mode 100644 index 0000000000..56cb4b3fff --- /dev/null +++ b/internal/endtoend/testdata/analyze_basic/duckdb/exec.json @@ -0,0 +1,5 @@ +{ + "command": "analyze", + "args": ["--dialect", "duckdb", "--schema", "schema.sql", "query.sql"], + "contexts": ["base"] +} diff --git a/internal/endtoend/testdata/analyze_basic/duckdb/query.sql b/internal/endtoend/testdata/analyze_basic/duckdb/query.sql new file mode 100644 index 0000000000..b694368ed1 --- /dev/null +++ b/internal/endtoend/testdata/analyze_basic/duckdb/query.sql @@ -0,0 +1,2 @@ +-- name: ListAuthors :many +SELECT id, name, bio, royalties, created FROM authors; diff --git a/internal/endtoend/testdata/analyze_basic/duckdb/schema.sql b/internal/endtoend/testdata/analyze_basic/duckdb/schema.sql new file mode 100644 index 0000000000..dda49e8484 --- /dev/null +++ b/internal/endtoend/testdata/analyze_basic/duckdb/schema.sql @@ -0,0 +1,7 @@ +CREATE TABLE authors ( + id BIGINT PRIMARY KEY, + name TEXT NOT NULL, + bio TEXT, + royalties DECIMAL(10,2) NOT NULL, + created TIMESTAMP NOT NULL +); diff --git a/internal/endtoend/testdata/analyze_basic/duckdb/stdout.txt b/internal/endtoend/testdata/analyze_basic/duckdb/stdout.txt new file mode 100644 index 0000000000..597820269b --- /dev/null +++ b/internal/endtoend/testdata/analyze_basic/duckdb/stdout.txt @@ -0,0 +1,44 @@ +[ + { + "name": "ListAuthors", + "cmd": ":many", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "bio", + "data_type": "text", + "not_null": false, + "is_array": false, + "table": "authors" + }, + { + "name": "royalties", + "data_type": "decimal", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "created", + "data_type": "timestamp", + "not_null": true, + "is_array": false, + "table": "authors" + } + ], + "params": [] + } +] diff --git a/internal/endtoend/testdata/analyze_dml/duckdb/exec.json b/internal/endtoend/testdata/analyze_dml/duckdb/exec.json new file mode 100644 index 0000000000..56cb4b3fff --- /dev/null +++ b/internal/endtoend/testdata/analyze_dml/duckdb/exec.json @@ -0,0 +1,5 @@ +{ + "command": "analyze", + "args": ["--dialect", "duckdb", "--schema", "schema.sql", "query.sql"], + "contexts": ["base"] +} diff --git a/internal/endtoend/testdata/analyze_dml/duckdb/query.sql b/internal/endtoend/testdata/analyze_dml/duckdb/query.sql new file mode 100644 index 0000000000..cf0165356e --- /dev/null +++ b/internal/endtoend/testdata/analyze_dml/duckdb/query.sql @@ -0,0 +1,13 @@ +-- name: CreateAuthor :one +INSERT INTO authors (id, name, bio) VALUES ($1, $2, $3) RETURNING id; + +-- name: UpdateAuthor :exec +UPDATE authors SET name = $name, bio = $bio WHERE id = $id; + +-- name: DeleteBooksByAuthor :exec +DELETE FROM books USING authors a WHERE books.author_id = a.id AND a.name = $1; + +-- name: TitlesFromBooks :many +INSERT INTO books (id, author_id, title) +SELECT id + 1000, author_id, upper(title) FROM books WHERE price > $min_price +RETURNING id, title; diff --git a/internal/endtoend/testdata/analyze_dml/duckdb/schema.sql b/internal/endtoend/testdata/analyze_dml/duckdb/schema.sql new file mode 100644 index 0000000000..7c41b6c263 --- /dev/null +++ b/internal/endtoend/testdata/analyze_dml/duckdb/schema.sql @@ -0,0 +1,12 @@ +CREATE TABLE authors ( + id BIGINT PRIMARY KEY, + name TEXT NOT NULL, + bio TEXT +); + +CREATE TABLE books ( + id BIGINT PRIMARY KEY, + author_id BIGINT NOT NULL, + title TEXT NOT NULL, + price DECIMAL(10,2) +); diff --git a/internal/endtoend/testdata/analyze_dml/duckdb/stdout.txt b/internal/endtoend/testdata/analyze_dml/duckdb/stdout.txt new file mode 100644 index 0000000000..1ac3372918 --- /dev/null +++ b/internal/endtoend/testdata/analyze_dml/duckdb/stdout.txt @@ -0,0 +1,133 @@ +[ + { + "name": "CreateAuthor", + "cmd": ":one", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + } + }, + { + "number": 2, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + }, + { + "number": 3, + "column": { + "name": "bio", + "data_type": "text", + "not_null": false, + "is_array": false, + "table": "authors" + } + } + ] + }, + { + "name": "UpdateAuthor", + "cmd": ":exec", + "columns": [], + "params": [ + { + "number": 1, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + }, + { + "number": 2, + "column": { + "name": "bio", + "data_type": "text", + "not_null": false, + "is_array": false, + "table": "authors" + } + }, + { + "number": 3, + "column": { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + } + } + ] + }, + { + "name": "DeleteBooksByAuthor", + "cmd": ":exec", + "columns": [], + "params": [ + { + "number": 1, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + } + ] + }, + { + "name": "TitlesFromBooks", + "cmd": ":many", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "books" + }, + { + "name": "title", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "books" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "price", + "data_type": "decimal", + "not_null": false, + "is_array": false, + "table": "books" + } + } + ] + } +] diff --git a/internal/endtoend/testdata/analyze_params/duckdb/exec.json b/internal/endtoend/testdata/analyze_params/duckdb/exec.json new file mode 100644 index 0000000000..56cb4b3fff --- /dev/null +++ b/internal/endtoend/testdata/analyze_params/duckdb/exec.json @@ -0,0 +1,5 @@ +{ + "command": "analyze", + "args": ["--dialect", "duckdb", "--schema", "schema.sql", "query.sql"], + "contexts": ["base"] +} diff --git a/internal/endtoend/testdata/analyze_params/duckdb/query.sql b/internal/endtoend/testdata/analyze_params/duckdb/query.sql new file mode 100644 index 0000000000..ed26e54842 --- /dev/null +++ b/internal/endtoend/testdata/analyze_params/duckdb/query.sql @@ -0,0 +1,8 @@ +-- name: GetAuthor :one +SELECT id, name, bio FROM authors WHERE id = $1; + +-- name: FilterAuthors :many +SELECT id, name FROM authors WHERE name = $name AND royalties > $royalties; + +-- name: SearchAuthors :many +SELECT id FROM authors WHERE name LIKE ? AND bio IS NOT NULL; diff --git a/internal/endtoend/testdata/analyze_params/duckdb/schema.sql b/internal/endtoend/testdata/analyze_params/duckdb/schema.sql new file mode 100644 index 0000000000..48e852284e --- /dev/null +++ b/internal/endtoend/testdata/analyze_params/duckdb/schema.sql @@ -0,0 +1,6 @@ +CREATE TABLE authors ( + id BIGINT PRIMARY KEY, + name TEXT NOT NULL, + bio TEXT, + royalties DECIMAL(10,2) NOT NULL +); diff --git a/internal/endtoend/testdata/analyze_params/duckdb/stdout.txt b/internal/endtoend/testdata/analyze_params/duckdb/stdout.txt new file mode 100644 index 0000000000..baacd76bbc --- /dev/null +++ b/internal/endtoend/testdata/analyze_params/duckdb/stdout.txt @@ -0,0 +1,108 @@ +[ + { + "name": "GetAuthor", + "cmd": ":one", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "bio", + "data_type": "text", + "not_null": false, + "is_array": false, + "table": "authors" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + } + } + ] + }, + { + "name": "FilterAuthors", + "cmd": ":many", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + }, + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + }, + { + "number": 2, + "column": { + "name": "royalties", + "data_type": "decimal", + "not_null": true, + "is_array": false, + "table": "authors" + } + } + ] + }, + { + "name": "SearchAuthors", + "cmd": ":many", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "authors" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "authors" + } + } + ] + } +] diff --git a/internal/endtoend/testdata/analyze_select/duckdb/exec.json b/internal/endtoend/testdata/analyze_select/duckdb/exec.json new file mode 100644 index 0000000000..56cb4b3fff --- /dev/null +++ b/internal/endtoend/testdata/analyze_select/duckdb/exec.json @@ -0,0 +1,5 @@ +{ + "command": "analyze", + "args": ["--dialect", "duckdb", "--schema", "schema.sql", "query.sql"], + "contexts": ["base"] +} diff --git a/internal/endtoend/testdata/analyze_select/duckdb/query.sql b/internal/endtoend/testdata/analyze_select/duckdb/query.sql new file mode 100644 index 0000000000..794d153640 --- /dev/null +++ b/internal/endtoend/testdata/analyze_select/duckdb/query.sql @@ -0,0 +1,16 @@ +-- name: ListUsers :many +SELECT * FROM users; + +-- name: CountUsers :one +SELECT count(*) AS total FROM users; + +-- name: ListUserPosts :many +SELECT u.name, p.* FROM users u JOIN posts p ON p.user_id = u.id WHERE u.name = $1; + +-- name: TopUsers :many +WITH counts AS ( + SELECT user_id, count(*) AS n FROM posts GROUP BY user_id +) +SELECT u.name, c.n FROM users u JOIN counts c ON c.user_id = u.id +ORDER BY c.n DESC +LIMIT 5; diff --git a/internal/endtoend/testdata/analyze_select/duckdb/schema.sql b/internal/endtoend/testdata/analyze_select/duckdb/schema.sql new file mode 100644 index 0000000000..b69cc33d22 --- /dev/null +++ b/internal/endtoend/testdata/analyze_select/duckdb/schema.sql @@ -0,0 +1,12 @@ +CREATE TABLE users ( + id BIGINT NOT NULL, + name TEXT NOT NULL, + age INTEGER +); + +CREATE TABLE posts ( + id BIGINT NOT NULL, + user_id BIGINT NOT NULL, + title TEXT NOT NULL, + body TEXT +); diff --git a/internal/endtoend/testdata/analyze_select/duckdb/stdout.txt b/internal/endtoend/testdata/analyze_select/duckdb/stdout.txt new file mode 100644 index 0000000000..88d31141e5 --- /dev/null +++ b/internal/endtoend/testdata/analyze_select/duckdb/stdout.txt @@ -0,0 +1,116 @@ +[ + { + "name": "ListUsers", + "cmd": ":many", + "columns": [ + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "users" + }, + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "users" + }, + { + "name": "age", + "data_type": "integer", + "not_null": false, + "is_array": false, + "table": "users" + } + ], + "params": [] + }, + { + "name": "CountUsers", + "cmd": ":one", + "columns": [ + { + "name": "total", + "data_type": "bigint", + "not_null": true, + "is_array": false + } + ], + "params": [] + }, + { + "name": "ListUserPosts", + "cmd": ":many", + "columns": [ + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "users" + }, + { + "name": "id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "posts" + }, + { + "name": "user_id", + "data_type": "bigint", + "not_null": true, + "is_array": false, + "table": "posts" + }, + { + "name": "title", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "posts" + }, + { + "name": "body", + "data_type": "text", + "not_null": false, + "is_array": false, + "table": "posts" + } + ], + "params": [ + { + "number": 1, + "column": { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "users" + } + } + ] + }, + { + "name": "TopUsers", + "cmd": ":many", + "columns": [ + { + "name": "name", + "data_type": "text", + "not_null": true, + "is_array": false, + "table": "users" + }, + { + "name": "n", + "data_type": "bigint", + "not_null": true, + "is_array": false + } + ], + "params": [] + } +] diff --git a/internal/endtoend/testdata/parse_basic/duckdb/exec.json b/internal/endtoend/testdata/parse_basic/duckdb/exec.json new file mode 100644 index 0000000000..078d8d0b24 --- /dev/null +++ b/internal/endtoend/testdata/parse_basic/duckdb/exec.json @@ -0,0 +1,5 @@ +{ + "command": "parse", + "args": ["--dialect", "duckdb", "query.sql"], + "contexts": ["base"] +} diff --git a/internal/endtoend/testdata/parse_basic/duckdb/query.sql b/internal/endtoend/testdata/parse_basic/duckdb/query.sql new file mode 100644 index 0000000000..11dff59f08 --- /dev/null +++ b/internal/endtoend/testdata/parse_basic/duckdb/query.sql @@ -0,0 +1,2 @@ +-- name: GetValue :one +SELECT 1; diff --git a/internal/endtoend/testdata/parse_basic/duckdb/stdout.txt b/internal/endtoend/testdata/parse_basic/duckdb/stdout.txt new file mode 100644 index 0000000000..ca847e616a --- /dev/null +++ b/internal/endtoend/testdata/parse_basic/duckdb/stdout.txt @@ -0,0 +1,44 @@ +[ + { + "name": "GetValue", + "cmd": ":one", + "ast": { + "Stmt": { + "DistinctClause": null, + "IntoClause": null, + "TargetList": { + "Items": [ + { + "Name": null, + "Indirection": null, + "Val": { + "Val": { + "Ival": 1 + }, + "Location": 30 + }, + "Location": 30 + } + ] + }, + "FromClause": null, + "WhereClause": null, + "GroupClause": null, + "HavingClause": null, + "WindowClause": null, + "ValuesLists": null, + "SortClause": null, + "LimitOffset": null, + "LimitCount": null, + "LockingClause": null, + "WithClause": null, + "Op": 0, + "All": false, + "Larg": null, + "Rarg": null + }, + "StmtLocation": 0, + "StmtLen": 33 + } + } +] diff --git a/internal/engine/duckdb/convert.go b/internal/engine/duckdb/convert.go new file mode 100644 index 0000000000..03b4b01390 --- /dev/null +++ b/internal/engine/duckdb/convert.go @@ -0,0 +1,1196 @@ +package duckdb + +import ( + "math/big" + "strconv" + "strings" + + dw "github.com/sqlc-dev/darkwing/ast" + + "github.com/sqlc-dev/sqlc/internal/sql/ast" +) + +type cc struct{} + +// loc returns a node's start offset for the Location fields of the sqlc AST. +// darkwing marks synthesized nodes with a negative span. +func (c *cc) loc(n dw.Node) int { + if n == nil { + return 0 + } + if pos := n.Pos(); pos >= 0 { + return pos + } + return 0 +} + +func (c *cc) convert(node dw.Stmt) ast.Node { + switch n := node.(type) { + case *dw.SelectStatement: + return c.convertSelectStatement(n) + case *dw.InsertStatement: + return c.convertInsertStatement(n) + case *dw.UpdateStatement: + return c.convertUpdateStatement(n) + case *dw.DeleteStatement: + return c.convertDeleteStatement(n) + case *dw.TruncateStatement: + return c.convertTruncateStatement(n) + case *dw.CreateStatement: + return c.convertCreateStatement(n) + case *dw.DropStatement: + return c.convertDropStatement(n) + case *dw.AlterStatement: + return c.convertAlterStatement(n) + default: + return todo(n) + } +} + +func (c *cc) convertSelectStatement(n *dw.SelectStatement) ast.Node { + if n == nil { + return &ast.TODO{} + } + return c.convertQueryNode(n.Node) +} + +func (c *cc) convertQueryNode(q dw.QueryNode) ast.Node { + switch n := q.(type) { + case *dw.SelectNode: + return c.convertSelectNode(n) + case *dw.SetOperationNode: + return c.convertSetOperationNode(n) + case *dw.RecursiveCTENode: + return c.convertRecursiveCTENode(n) + default: + return todo(q) + } +} + +// applyModifiers folds a query node's result modifiers — ORDER BY, LIMIT, +// DISTINCT — into the converted statement. +func (c *cc) applyModifiers(stmt *ast.SelectStmt, mods []dw.ResultModifier) { + for _, mod := range mods { + switch m := mod.(type) { + case *dw.OrderModifier: + stmt.SortClause = c.convertOrderBys(m.Orders) + case *dw.LimitModifier: + // LIMIT n% has no row-count equivalent. + if m.LimitType == dw.LimitPercentage { + continue + } + if m.Limit != nil { + stmt.LimitCount = c.convertExpr(m.Limit) + } + if m.Offset != nil { + stmt.LimitOffset = c.convertExpr(m.Offset) + } + case *dw.DistinctModifier: + stmt.DistinctClause = &ast.List{} + for _, target := range m.DistinctOnTargets { + stmt.DistinctClause.Items = append(stmt.DistinctClause.Items, c.convertExpr(target)) + } + } + } +} + +func (c *cc) convertWithClause(ctes dw.CTEMap) *ast.WithClause { + if len(ctes.Entries) == 0 { + return nil + } + with := &ast.WithClause{Ctes: &ast.List{}} + for _, entry := range ctes.Entries { + cte := entry.CTE + name := identifier(entry.Name) + item := &ast.CommonTableExpr{ + Ctename: &name, + Ctequery: c.convertQueryNode(cte.Query), + Location: c.loc(cte), + } + // A recursive CTE parses into its own query node. + if _, ok := cte.Query.(*dw.RecursiveCTENode); ok { + with.Recursive = true + item.Cterecursive = true + } + if len(cte.Aliases) > 0 { + item.Aliascolnames = &ast.List{} + for _, alias := range cte.Aliases { + item.Aliascolnames.Items = append(item.Aliascolnames.Items, NewIdentifier(alias)) + } + } + with.Ctes.Items = append(with.Ctes.Items, item) + } + return with +} + +// isBareStar reports a plain "*" projection with no modifiers, the select +// list darkwing synthesizes when desugaring VALUES into a select. +func isBareStar(exprs []dw.Expr) bool { + if len(exprs) != 1 { + return false + } + star, ok := exprs[0].(*dw.StarExpression) + return ok && star.RelationName == "" && !star.Columns && star.Expr == nil && + len(star.ExcludeList) == 0 && len(star.QualifiedExcludeList) == 0 && + len(star.ReplaceList) == 0 && len(star.RenameList) == 0 +} + +func (c *cc) convertValuesLists(values [][]dw.Expr) *ast.List { + lists := &ast.List{} + for _, row := range values { + rowList := &ast.List{} + for _, val := range row { + rowList.Items = append(rowList.Items, c.convertExpr(val)) + } + lists.Items = append(lists.Items, rowList) + } + return lists +} + +func (c *cc) convertSelectNode(n *dw.SelectNode) ast.Node { + stmt := &ast.SelectStmt{} + + stmt.WithClause = c.convertWithClause(n.CTEs) + + // VALUES (...), (...) parses as SELECT * FROM an expression list. + if list, ok := n.FromTable.(*dw.ExpressionListRef); ok && isBareStar(n.SelectList) { + stmt.ValuesLists = c.convertValuesLists(list.Values) + c.applyModifiers(stmt, n.Modifiers) + return stmt + } + + if len(n.SelectList) > 0 { + stmt.TargetList = &ast.List{} + for _, expr := range n.SelectList { + stmt.TargetList.Items = append(stmt.TargetList.Items, c.convertResTarget(expr)) + } + } + + if from := c.convertTableRef(n.FromTable); from != nil { + stmt.FromClause = &ast.List{Items: []ast.Node{from}} + } + + if n.Where != nil { + stmt.WhereClause = c.convertExpr(n.Where) + } + + if len(n.GroupExpressions) > 0 { + stmt.GroupClause = &ast.List{} + for _, expr := range n.GroupExpressions { + stmt.GroupClause.Items = append(stmt.GroupClause.Items, c.convertExpr(expr)) + } + } + + if n.Having != nil { + stmt.HavingClause = c.convertExpr(n.Having) + } + + c.applyModifiers(stmt, n.Modifiers) + return stmt +} + +func (c *cc) convertSetOperationNode(n *dw.SetOperationNode) ast.Node { + var op ast.SetOperation + switch n.SetOpType { + case dw.SetOpUnion, dw.SetOpUnionByName: + op = ast.Union + case dw.SetOpExcept: + op = ast.Except + case dw.SetOpIntersect: + op = ast.Intersect + default: + return todo(n) + } + + // DuckDB v2 set operations are n-ary; sqlc's are binary, so a chain + // folds left-associatively. + var stmt *ast.SelectStmt + for _, input := range n.Inputs { + arg, ok := c.convertQueryNode(input).(*ast.SelectStmt) + if !ok { + return todo(n) + } + if stmt == nil { + stmt = arg + continue + } + stmt = &ast.SelectStmt{ + Op: op, + All: n.SetOpAll, + Larg: stmt, + Rarg: arg, + } + } + if stmt == nil { + return todo(n) + } + stmt.WithClause = c.convertWithClause(n.CTEs) + c.applyModifiers(stmt, n.Modifiers) + return stmt +} + +func (c *cc) convertRecursiveCTENode(n *dw.RecursiveCTENode) ast.Node { + larg, ok := c.convertQueryNode(n.Left).(*ast.SelectStmt) + if !ok { + return todo(n) + } + rarg, ok := c.convertQueryNode(n.Right).(*ast.SelectStmt) + if !ok { + return todo(n) + } + stmt := &ast.SelectStmt{ + Op: ast.Union, + All: n.UnionAll, + Larg: larg, + Rarg: rarg, + } + c.applyModifiers(stmt, n.Modifiers) + return stmt +} + +func (c *cc) convertResTarget(expr dw.Expr) *ast.ResTarget { + res := &ast.ResTarget{ + Val: c.convertExpr(expr), + Location: c.loc(expr), + } + if alias := expr.GetAlias(); alias != "" { + name := identifier(alias) + res.Name = &name + } + return res +} + +func (c *cc) convertOrderBys(orders []dw.OrderByNode) *ast.List { + list := &ast.List{} + for _, order := range orders { + sortBy := &ast.SortBy{ + Node: c.convertExpr(order.Expression), + Location: c.loc(order.Expression), + } + switch order.Type { + case dw.OrderAscending: + sortBy.SortbyDir = ast.SortByDirAsc + case dw.OrderDescending: + sortBy.SortbyDir = ast.SortByDirDesc + default: + sortBy.SortbyDir = ast.SortByDirDefault + } + switch order.NullOrder { + case dw.NullsFirst: + sortBy.SortbyNulls = ast.SortByNullsFirst + case dw.NullsLast: + sortBy.SortbyNulls = ast.SortByNullsLast + default: + sortBy.SortbyNulls = ast.SortByNullsDefault + } + list.Items = append(list.Items, sortBy) + } + return list +} + +func (c *cc) convertAlias(name string, columns []string) *ast.Alias { + if name == "" && len(columns) == 0 { + return nil + } + aliasName := identifier(name) + alias := &ast.Alias{Aliasname: &aliasName} + if len(columns) > 0 { + alias.Colnames = &ast.List{} + for _, col := range columns { + alias.Colnames.Items = append(alias.Colnames.Items, NewIdentifier(col)) + } + } + return alias +} + +func (c *cc) convertRangeVar(catalog, schema, table, alias string, loc int) *ast.RangeVar { + name := parseTableName(catalog, schema, table) + rv := &ast.RangeVar{ + Relname: &name.Name, + Location: loc, + } + if name.Schema != "" { + rv.Schemaname = &name.Schema + } + if name.Catalog != "" { + rv.Catalogname = &name.Catalog + } + if alias != "" { + rv.Alias = c.convertAlias(alias, nil) + } + return rv +} + +func (c *cc) convertTableRef(ref dw.TableRef) ast.Node { + switch t := ref.(type) { + case nil, *dw.EmptyTableRef: + return nil + case *dw.BaseTableRef: + rv := c.convertRangeVar(t.CatalogName, t.SchemaName, t.TableName, "", c.loc(t)) + if alias := c.convertAlias(t.Alias, t.ColumnNameAlias); alias != nil { + rv.Alias = alias + } + return rv + case *dw.JoinRef: + return c.convertJoinRef(t) + case *dw.SubqueryRef: + return &ast.RangeSubselect{ + Subquery: c.convertSelectStatement(t.Subquery), + Alias: c.convertAlias(t.Alias, t.ColumnNameAlias), + } + case *dw.TableFunctionRef: + return c.convertTableFunctionRef(t) + case *dw.ExpressionListRef: + // A VALUES list used as a relation becomes a values subquery. + sub := &ast.RangeSubselect{ + Subquery: &ast.SelectStmt{ValuesLists: c.convertValuesLists(t.Values)}, + Alias: c.convertAlias(t.Alias, t.ExpectedNames), + } + return sub + default: + return todo(ref) + } +} + +func (c *cc) convertJoinRef(t *dw.JoinRef) ast.Node { + join := &ast.JoinExpr{ + Larg: c.convertTableRef(t.Left), + Rarg: c.convertTableRef(t.Right), + } + switch t.JoinType { + case dw.JoinLeft: + join.Jointype = ast.JoinTypeLeft + case dw.JoinRight: + join.Jointype = ast.JoinTypeRight + case dw.JoinFull: + join.Jointype = ast.JoinTypeFull + default: + join.Jointype = ast.JoinTypeInner + } + if t.RefType == dw.JoinRefNatural { + join.IsNatural = true + } + if t.Condition != nil { + join.Quals = c.convertExpr(t.Condition) + } + if len(t.UsingColumns) > 0 { + join.UsingClause = &ast.List{} + for _, col := range t.UsingColumns { + join.UsingClause.Items = append(join.UsingClause.Items, NewIdentifier(col)) + } + } + return join +} + +func (c *cc) convertTableFunctionRef(t *dw.TableFunctionRef) ast.Node { + call, ok := c.convertExpr(t.Function).(*ast.FuncCall) + if !ok { + return todo(t) + } + return &ast.RangeFunction{ + Functions: &ast.List{Items: []ast.Node{call}}, + Alias: c.convertAlias(t.Alias, t.ColumnNameAlias), + Ordinality: t.WithOrdinality, + } +} + +func (c *cc) convertExpr(expr dw.Expr) ast.Node { + if expr == nil { + return nil + } + switch e := expr.(type) { + case *dw.ColumnRefExpression: + return c.convertColumnRef(e) + case *dw.ConstantExpression: + return c.convertConstant(e) + case *dw.ParameterExpression: + return c.convertParameter(e) + case *dw.FunctionExpression: + return c.convertFunction(e) + case *dw.OperatorExpression: + return c.convertOperator(e) + case *dw.ComparisonExpression: + return c.convertComparison(e) + case *dw.ConjunctionExpression: + return c.convertConjunction(e) + case *dw.CastExpression: + return c.convertCast(e) + case *dw.CaseExpression: + return c.convertCase(e) + case *dw.BetweenExpression: + return &ast.BetweenExpr{ + Expr: c.convertExpr(e.Input), + Left: c.convertExpr(e.Lower), + Right: c.convertExpr(e.Upper), + Location: c.loc(e), + } + case *dw.SubqueryExpression: + return c.convertSubquery(e) + case *dw.StarExpression: + return c.convertStar(e) + case *dw.CollateExpression: + return &ast.CollateExpr{ + Arg: c.convertExpr(e.Child), + Location: c.loc(e), + } + case *dw.WindowExpression: + return c.convertWindow(e) + default: + return todo(expr) + } +} + +func (c *cc) convertColumnRef(e *dw.ColumnRefExpression) *ast.ColumnRef { + fields := &ast.List{} + for _, name := range e.ColumnNames { + fields.Items = append(fields.Items, NewIdentifier(name)) + } + return &ast.ColumnRef{ + Fields: fields, + Location: c.loc(e), + } +} + +// decimalString renders a decimal's unscaled digits with the point +// re-inserted, e.g. ("15", 1) => "1.5". +func decimalString(digits string, scale int) string { + neg := strings.HasPrefix(digits, "-") + if neg { + digits = digits[1:] + } + if scale > 0 { + for len(digits) <= scale { + digits = "0" + digits + } + digits = digits[:len(digits)-scale] + "." + digits[len(digits)-scale:] + } + if neg { + digits = "-" + digits + } + return digits +} + +func hugeintString(h dw.Hugeint) string { + v := new(big.Int).SetInt64(h.Upper) + v.Lsh(v, 64) + return v.Or(v, new(big.Int).SetUint64(h.Lower)).String() +} + +func (c *cc) convertConstant(e *dw.ConstantExpression) ast.Node { + v := e.Value + konst := &ast.A_Const{Location: c.loc(e)} + switch { + case v.IsNull || v.Kind == dw.ValueNull: + konst.Val = &ast.Null{} + case v.Kind == dw.ValueBool: + konst.Val = &ast.Boolean{Boolval: v.Bool} + case v.Kind == dw.ValueInt64 && v.Type.ID == "DECIMAL": + // A decimal literal carries its unscaled value. + konst.Val = &ast.Float{Str: decimalString(strconv.FormatInt(v.Int64, 10), v.Type.Scale)} + case v.Kind == dw.ValueInt64: + konst.Val = &ast.Integer{Ival: v.Int64} + case v.Kind == dw.ValueHugeint && v.Type.ID == "DECIMAL": + konst.Val = &ast.Float{Str: decimalString(hugeintString(v.Hugeint), v.Type.Scale)} + case v.Kind == dw.ValueHugeint: + konst.Val = &ast.Float{Str: hugeintString(v.Hugeint)} + case v.Kind == dw.ValueDouble: + konst.Val = &ast.Float{Str: strconv.FormatFloat(v.Float64, 'g', -1, 64)} + case v.Kind == dw.ValueString: + konst.Val = &ast.String{Str: v.Str} + default: + return todo(e) + } + return konst +} + +// convertParameter converts a prepared-statement parameter. darkwing has +// already numbered every spelling: explicit for $3 and ?3, in order of +// appearance for ?, and in order of first use for $name. +func (c *cc) convertParameter(e *dw.ParameterExpression) ast.Node { + return &ast.ParamRef{ + Number: e.Number, + Dollar: e.Kind == dw.ParameterNumbered || e.Kind == dw.ParameterNamed, + Location: c.loc(e), + } +} + +func (c *cc) convertFunction(e *dw.FunctionExpression) ast.Node { + name := identifier(e.FunctionName) + + // Binary and prefix operators parse as operator-named functions. + if e.IsOperator { + switch len(e.Arguments) { + case 1: + return &ast.A_Expr{ + Kind: ast.A_Expr_Kind_OP, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: e.FunctionName}}}, + Rexpr: c.convertExpr(e.Arguments[0].Expr), + Location: c.loc(e), + } + case 2: + return &ast.A_Expr{ + Kind: ast.A_Expr_Kind_OP, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: e.FunctionName}}}, + Lexpr: c.convertExpr(e.Arguments[0].Expr), + Rexpr: c.convertExpr(e.Arguments[1].Expr), + Location: c.loc(e), + } + default: + return todo(e) + } + } + + fc := &ast.FuncCall{ + Funcname: &ast.List{}, + Location: c.loc(e), + AggDistinct: e.Distinct, + } + if schema := schemaName(e.Schema); schema != "" { + fc.Funcname.Items = append(fc.Funcname.Items, &ast.String{Str: schema}) + } + + // COUNT(*) parses as the argument-less count_star. + if name == "count_star" { + fc.Funcname.Items = append(fc.Funcname.Items, &ast.String{Str: "count"}) + fc.AggStar = true + return fc + } + fc.Funcname.Items = append(fc.Funcname.Items, &ast.String{Str: name}) + + for _, arg := range e.Arguments { + if fc.Args == nil { + fc.Args = &ast.List{} + } + fc.Args.Items = append(fc.Args.Items, c.convertExpr(arg.Expr)) + } + if e.Filter != nil { + fc.AggFilter = c.convertExpr(e.Filter) + } + if len(e.OrderBys) > 0 { + fc.AggOrder = c.convertOrderBys(e.OrderBys) + } + return fc +} + +func (c *cc) convertOperator(e *dw.OperatorExpression) ast.Node { + switch e.Type { + case dw.OperatorNot: + // NOT IN parses as NOT wrapping an IN. + if len(e.Operands) == 1 { + if in, ok := e.Operands[0].(*dw.OperatorExpression); ok && in.Type == dw.CompareIn { + node := c.convertIn(in) + node.Not = true + return node + } + } + return c.convertBoolExpr(ast.BoolExprTypeNot, e) + case dw.OperatorIsNull, dw.OperatorIsNotNull: + if len(e.Operands) != 1 { + return todo(e) + } + test := ast.NullTestTypeIsNull + if e.Type == dw.OperatorIsNotNull { + test = ast.NullTestTypeIsNotNull + } + return &ast.NullTest{ + Arg: c.convertExpr(e.Operands[0]), + Nulltesttype: test, + Location: c.loc(e), + } + case dw.CompareIn, dw.CompareNotIn: + node := c.convertIn(e) + node.Not = e.Type == dw.CompareNotIn + return node + case dw.OperatorCoalesce: + coalesce := &ast.CoalesceExpr{ + Args: &ast.List{}, + Location: c.loc(e), + } + for _, operand := range e.Operands { + coalesce.Args.Items = append(coalesce.Args.Items, c.convertExpr(operand)) + } + return coalesce + case dw.ArrayConstructor: + arr := &ast.A_ArrayExpr{ + Elements: &ast.List{}, + Location: c.loc(e), + } + for _, operand := range e.Operands { + arr.Elements.Items = append(arr.Elements.Items, c.convertExpr(operand)) + } + return arr + default: + return todo(e) + } +} + +func (c *cc) convertIn(e *dw.OperatorExpression) *ast.In { + in := &ast.In{Location: c.loc(e)} + if len(e.Operands) > 0 { + in.Expr = c.convertExpr(e.Operands[0]) + for _, item := range e.Operands[1:] { + in.List = append(in.List, c.convertExpr(item)) + } + } + return in +} + +func (c *cc) convertBoolExpr(op ast.BoolExprType, e *dw.OperatorExpression) ast.Node { + expr := &ast.BoolExpr{ + Boolop: op, + Args: &ast.List{}, + Location: c.loc(e), + } + for _, operand := range e.Operands { + expr.Args.Items = append(expr.Args.Items, c.convertExpr(operand)) + } + return expr +} + +func comparisonOperator(t dw.ExpressionType) (string, bool) { + switch t { + case dw.CompareEqual: + return "=", true + case dw.CompareNotEqual: + return "<>", true + case dw.CompareLessThan: + return "<", true + case dw.CompareGreaterThan: + return ">", true + case dw.CompareLessThanOrEqual: + return "<=", true + case dw.CompareGreaterThanOrEqual: + return ">=", true + } + return "", false +} + +func (c *cc) convertComparison(e *dw.ComparisonExpression) ast.Node { + kind := ast.A_Expr_Kind_OP + op, ok := comparisonOperator(e.Type) + if !ok { + switch e.Type { + case dw.CompareDistinctFrom: + kind, op = ast.A_Expr_Kind_DISTINCT, "=" + case dw.CompareNotDistinctFrom: + kind, op = ast.A_Expr_Kind_NOT_DISTINCT, "=" + default: + return todo(e) + } + } + return &ast.A_Expr{ + Kind: kind, + Name: &ast.List{Items: []ast.Node{&ast.String{Str: op}}}, + Lexpr: c.convertExpr(e.Left), + Rexpr: c.convertExpr(e.Right), + Location: c.loc(e), + } +} + +func (c *cc) convertConjunction(e *dw.ConjunctionExpression) ast.Node { + boolop := ast.BoolExprTypeAnd + if e.Type == dw.ConjunctionOr { + boolop = ast.BoolExprTypeOr + } + expr := &ast.BoolExpr{ + Boolop: boolop, + Args: &ast.List{}, + Location: c.loc(e), + } + for _, operand := range e.Operands { + expr.Args.Items = append(expr.Args.Items, c.convertExpr(operand)) + } + return expr +} + +func (c *cc) convertCast(e *dw.CastExpression) ast.Node { + cast := &ast.TypeCast{ + Arg: c.convertExpr(e.Child), + Location: c.loc(e), + } + switch { + case e.CastType != nil: + typeName, arrayDims := c.convertTypeExpression(e.CastType) + if arrayDims > 0 { + typeName.ArrayBounds = &ast.List{} + for i := 0; i < arrayDims; i++ { + typeName.ArrayBounds.Items = append(typeName.ArrayBounds.Items, &ast.Integer{Ival: -1}) + } + } + cast.TypeName = typeName + case e.ResolvedType != "": + cast.TypeName = &ast.TypeName{Name: identifier(e.ResolvedType)} + default: + return todo(e) + } + return cast +} + +func (c *cc) convertCase(e *dw.CaseExpression) ast.Node { + caseExpr := &ast.CaseExpr{ + Args: &ast.List{}, + Location: c.loc(e), + } + for _, check := range e.CaseChecks { + caseExpr.Args.Items = append(caseExpr.Args.Items, &ast.CaseWhen{ + Expr: c.convertExpr(check.When), + Result: c.convertExpr(check.Then), + }) + } + if e.ElseExpr != nil { + caseExpr.Defresult = c.convertExpr(e.ElseExpr) + } + return caseExpr +} + +func (c *cc) convertSubquery(e *dw.SubqueryExpression) ast.Node { + link := &ast.SubLink{ + Subselect: c.convertSelectStatement(e.Subquery), + Location: c.loc(e), + } + switch e.SubqueryType { + case dw.SubqueryExists: + link.SubLinkType = ast.EXISTS_SUBLINK + case dw.SubqueryScalar: + link.SubLinkType = ast.EXPR_SUBLINK + case dw.SubqueryAny: + // x IN (SELECT ...) and quantified comparisons desugar to ANY. + link.SubLinkType = ast.ANY_SUBLINK + link.Testexpr = c.convertExpr(e.Child) + if op, ok := comparisonOperator(e.ComparisonType); ok { + link.OperName = &ast.List{Items: []ast.Node{&ast.String{Str: op}}} + } + default: + return todo(e) + } + return link +} + +func (c *cc) convertStar(e *dw.StarExpression) ast.Node { + // COLUMNS(...) and EXCLUDE/REPLACE/RENAME modifiers have no equivalent. + if e.Columns || e.Expr != nil || len(e.ExcludeList) > 0 || + len(e.QualifiedExcludeList) > 0 || len(e.ReplaceList) > 0 || len(e.RenameList) > 0 { + return todo(e) + } + fields := &ast.List{} + if e.RelationName != "" { + fields.Items = append(fields.Items, NewIdentifier(e.RelationName)) + } + fields.Items = append(fields.Items, &ast.A_Star{}) + return &ast.ColumnRef{ + Fields: fields, + Location: c.loc(e), + } +} + +func (c *cc) convertWindow(e *dw.WindowExpression) ast.Node { + fc := &ast.FuncCall{ + Funcname: &ast.List{Items: []ast.Node{&ast.String{Str: identifier(e.FunctionName)}}}, + Location: c.loc(e), + AggDistinct: e.Distinct, + Over: &ast.WindowDef{Location: c.loc(e)}, + } + for _, arg := range e.Arguments { + if fc.Args == nil { + fc.Args = &ast.List{} + } + fc.Args.Items = append(fc.Args.Items, c.convertExpr(arg.Expr)) + } + if e.FilterExpr != nil { + fc.AggFilter = c.convertExpr(e.FilterExpr) + } + if len(e.Partitions) > 0 { + fc.Over.PartitionClause = &ast.List{} + for _, p := range e.Partitions { + fc.Over.PartitionClause.Items = append(fc.Over.PartitionClause.Items, c.convertExpr(p)) + } + } + if len(e.Orders) > 0 { + fc.Over.OrderClause = c.convertOrderBys(e.Orders) + } + return fc +} + +// convertTypeExpression maps an unbound DuckDB type to a sqlc type name and +// the number of list/array dimensions wrapped around it. +func (c *cc) convertTypeExpression(t *dw.TypeExpression) (*ast.TypeName, int) { + name := identifier(t.TypeName) + switch name { + case "list", "array": + // int[] is LIST(INTEGER); int[3] is ARRAY(INTEGER, 3). + if len(t.Args) > 0 { + if elem, ok := t.Args[0].(*dw.TypeExpression); ok { + typeName, dims := c.convertTypeExpression(elem) + return typeName, dims + 1 + } + } + } + return &ast.TypeName{ + Schema: schemaName(t.Schema), + Name: name, + }, 0 +} + +func (c *cc) convertReturning(returning []dw.Expr) *ast.List { + if len(returning) == 0 { + return nil + } + list := &ast.List{} + for _, expr := range returning { + list.Items = append(list.Items, c.convertResTarget(expr)) + } + return list +} + +func (c *cc) convertInsertStatement(n *dw.InsertStatement) ast.Node { + stmt := &ast.InsertStmt{ + Relation: c.convertRangeVar(n.Catalog, n.Schema, n.Table, n.TableAlias, c.loc(n)), + WithClause: c.convertWithClause(n.CTEs), + DefaultValues: n.DefaultValues, + } + + if len(n.Columns) > 0 { + stmt.Cols = &ast.List{} + for _, col := range n.Columns { + name := identifier(col) + stmt.Cols.Items = append(stmt.Cols.Items, &ast.ResTarget{Name: &name}) + } + } + + if n.Query != nil { + stmt.SelectStmt = c.convertSelectStatement(n.Query) + } + + if n.OnConflict != nil { + stmt.OnConflictClause = c.convertOnConflict(n.OnConflict) + } + + stmt.ReturningList = c.convertReturning(n.Returning) + return stmt +} + +func (c *cc) convertOnConflict(n *dw.OnConflictInfo) *ast.OnConflictClause { + clause := &ast.OnConflictClause{Location: c.loc(n)} + switch n.Action { + case dw.OnConflictUpdate: + clause.Action = ast.OnConflictActionUpdate + default: + clause.Action = ast.OnConflictActionNothing + } + if n.SetInfo != nil { + clause.TargetList = c.convertSetClause(n.SetInfo) + if n.SetInfo.Condition != nil { + clause.WhereClause = c.convertExpr(n.SetInfo.Condition) + } + } + return clause +} + +func (c *cc) convertSetClause(set *dw.UpdateSetInfo) *ast.List { + list := &ast.List{} + for i, col := range set.Columns { + if len(col) == 0 || i >= len(set.Expressions) { + continue + } + name := identifier(col[len(col)-1]) + list.Items = append(list.Items, &ast.ResTarget{ + Name: &name, + Val: c.convertExpr(set.Expressions[i]), + }) + } + return list +} + +func (c *cc) convertUpdateStatement(n *dw.UpdateStatement) ast.Node { + target := c.convertTableRef(n.Table) + if target == nil { + return todo(n) + } + stmt := &ast.UpdateStmt{ + Relations: &ast.List{Items: []ast.Node{target}}, + TargetList: &ast.List{}, + WithClause: c.convertWithClause(n.CTEs), + } + if n.SetInfo != nil { + stmt.TargetList = c.convertSetClause(n.SetInfo) + } + if from := c.convertTableRef(n.From); from != nil { + stmt.FromClause = &ast.List{Items: []ast.Node{from}} + } + if n.Where != nil { + stmt.WhereClause = c.convertExpr(n.Where) + } + stmt.ReturningList = c.convertReturning(n.Returning) + return stmt +} + +func (c *cc) convertDeleteStatement(n *dw.DeleteStatement) ast.Node { + target := c.convertTableRef(n.Table) + if target == nil { + return todo(n) + } + stmt := &ast.DeleteStmt{ + Relations: &ast.List{Items: []ast.Node{target}}, + WithClause: c.convertWithClause(n.CTEs), + } + if len(n.Using) > 0 { + stmt.UsingClause = &ast.List{} + for _, using := range n.Using { + if item := c.convertTableRef(using); item != nil { + stmt.UsingClause.Items = append(stmt.UsingClause.Items, item) + } + } + } + if n.Where != nil { + stmt.WhereClause = c.convertExpr(n.Where) + } + stmt.ReturningList = c.convertReturning(n.Returning) + return stmt +} + +func (c *cc) convertTruncateStatement(n *dw.TruncateStatement) ast.Node { + target := c.convertTableRef(n.Table) + if target == nil { + return todo(n) + } + return &ast.TruncateStmt{ + Relations: &ast.List{Items: []ast.Node{target}}, + } +} + +func (c *cc) convertCreateStatement(n *dw.CreateStatement) ast.Node { + switch info := n.Info.(type) { + case *dw.CreateTableInfo: + return c.convertCreateTableInfo(info) + case *dw.CreateViewInfo: + return c.convertCreateViewInfo(info) + case *dw.CreateTypeInfo: + return c.convertCreateTypeInfo(info) + default: + return todo(n) + } +} + +func (c *cc) convertCreateTableInfo(info *dw.CreateTableInfo) ast.Node { + name := parseTableName(info.Catalog, info.Schema, info.Name) + + // CREATE TABLE ... AS records the table as a relation defined by its + // query, like a view. + if info.Query != nil { + into := &ast.IntoClause{ + Rel: c.convertRangeVar(info.Catalog, info.Schema, info.Name, "", c.loc(info)), + } + if len(info.QueryAliases) > 0 { + into.ColNames = &ast.List{} + for _, alias := range info.QueryAliases { + into.ColNames.Items = append(into.ColNames.Items, NewIdentifier(alias)) + } + } + return &ast.CreateTableAsStmt{ + Query: c.convertSelectStatement(info.Query), + Into: into, + IfNotExists: info.OnConflict == dw.CreateIgnore, + } + } + + stmt := &ast.CreateTableStmt{ + Name: name, + IfNotExists: info.OnConflict == dw.CreateIgnore, + } + + // Column names in table-level PRIMARY KEY constraints are NOT NULL. + primaryKey := map[string]bool{} + for _, constraint := range info.Constraints { + unique, ok := constraint.(*dw.UniqueConstraint) + if !ok || !unique.IsPrimaryKey { + continue + } + for _, col := range unique.Columns { + primaryKey[identifier(col)] = true + } + } + + for i := range info.Columns { + stmt.Cols = append(stmt.Cols, c.convertColumnDef(&info.Columns[i], primaryKey)) + } + return stmt +} + +func (c *cc) convertColumnDef(col *dw.ColumnDef, tablePrimaryKey map[string]bool) *ast.ColumnDef { + name := "" + if len(col.Names) > 0 { + name = identifier(col.Names[len(col.Names)-1]) + } + def := &ast.ColumnDef{ + Colname: name, + Location: c.loc(col), + } + if col.Type != nil { + typeName, arrayDims := c.convertTypeExpression(col.Type) + def.TypeName = typeName + def.ArrayDims = arrayDims + def.IsArray = arrayDims > 0 + } else { + // A generated column may omit its type; DuckDB infers it at bind + // time. + def.TypeName = &ast.TypeName{Name: "any"} + } + for _, constraint := range col.Constraints { + switch con := constraint.(type) { + case *dw.NotNullConstraint: + def.IsNotNull = !con.Null + case *dw.UniqueConstraint: + if con.IsPrimaryKey { + def.PrimaryKey = true + def.IsNotNull = true + } + } + } + if tablePrimaryKey[name] { + def.PrimaryKey = true + def.IsNotNull = true + } + return def +} + +func (c *cc) convertCreateViewInfo(info *dw.CreateViewInfo) ast.Node { + stmt := &ast.ViewStmt{ + View: c.convertRangeVar(info.Catalog, info.Schema, info.Name, "", c.loc(info)), + Query: c.convertSelectStatement(info.Query), + Replace: info.OnConflict == dw.CreateReplace, + } + if len(info.Aliases) > 0 { + stmt.Aliases = &ast.List{} + for _, alias := range info.Aliases { + stmt.Aliases.Items = append(stmt.Aliases.Items, NewIdentifier(alias)) + } + } + return stmt +} + +func (c *cc) convertCreateTypeInfo(info *dw.CreateTypeInfo) ast.Node { + if !info.IsEnum { + return todo(info) + } + stmt := &ast.CreateEnumStmt{ + TypeName: &ast.TypeName{ + Schema: schemaName(info.Schema), + Name: identifier(info.Name), + }, + Vals: &ast.List{}, + } + for _, val := range info.EnumValues { + stmt.Vals.Items = append(stmt.Vals.Items, &ast.String{Str: val}) + } + return stmt +} + +func (c *cc) convertDropStatement(n *dw.DropStatement) ast.Node { + switch n.DropType { + case dw.DropTable, dw.DropView: + stmt := &ast.DropTableStmt{IfExists: n.IfExists} + for _, name := range n.Names { + stmt.Tables = append(stmt.Tables, parseTableName(name.Catalog, name.Schema, name.Name)) + } + return stmt + default: + return todo(n) + } +} + +func (c *cc) convertAlterStatement(n *dw.AlterStatement) ast.Node { + if n.Entity != dw.AlterEntityTable { + return todo(n) + } + table := parseTableName(n.Name.Catalog, n.Name.Schema, n.Name.Name) + + var stmts []ast.Node + alter := &ast.AlterTableStmt{ + Table: table, + Cmds: &ast.List{}, + MissingOk: n.IfExists, + } + for _, action := range n.Actions { + switch a := action.(type) { + case *dw.AddColumnInfo: + def := c.convertColumnDef(&a.Column, nil) + alter.Cmds.Items = append(alter.Cmds.Items, &ast.AlterTableCmd{ + Name: &def.Colname, + Subtype: ast.AT_AddColumn, + Def: def, + MissingOk: a.IfNotExists, + }) + case *dw.DropColumnInfo: + if len(a.Column) == 0 { + continue + } + name := identifier(a.Column[len(a.Column)-1]) + alter.Cmds.Items = append(alter.Cmds.Items, &ast.AlterTableCmd{ + Name: &name, + Subtype: ast.AT_DropColumn, + MissingOk: a.IfExists, + }) + case *dw.AlterColumnTypeInfo: + if len(a.Column) == 0 || a.Type == nil { + continue + } + name := identifier(a.Column[len(a.Column)-1]) + typeName, arrayDims := c.convertTypeExpression(a.Type) + alter.Cmds.Items = append(alter.Cmds.Items, &ast.AlterTableCmd{ + Name: &name, + Subtype: ast.AT_AlterColumnType, + Def: &ast.ColumnDef{ + Colname: name, + TypeName: typeName, + ArrayDims: arrayDims, + IsArray: arrayDims > 0, + }, + }) + case *dw.SetNotNullInfo: + if len(a.Column) == 0 { + continue + } + name := identifier(a.Column[len(a.Column)-1]) + subtype := ast.AT_SetNotNull + if a.Drop { + subtype = ast.AT_DropNotNull + } + alter.Cmds.Items = append(alter.Cmds.Items, &ast.AlterTableCmd{ + Name: &name, + Subtype: subtype, + }) + case *dw.RenameColumnInfo: + if len(a.Column) == 0 { + continue + } + newName := identifier(a.NewName) + stmts = append(stmts, &ast.RenameColumnStmt{ + Table: table, + Col: &ast.ColumnRef{ + Name: identifier(a.Column[len(a.Column)-1]), + }, + NewName: &newName, + MissingOk: n.IfExists, + }) + case *dw.RenameInfo: + newName := identifier(a.NewName) + stmts = append(stmts, &ast.RenameTableStmt{ + Table: table, + NewName: &newName, + MissingOk: n.IfExists, + }) + } + } + + if len(alter.Cmds.Items) > 0 { + stmts = append(stmts, alter) + } + switch len(stmts) { + case 0: + return todo(n) + case 1: + return stmts[0] + default: + return &ast.List{Items: stmts} + } +} diff --git a/internal/engine/duckdb/dialect/dialect.json b/internal/engine/duckdb/dialect/dialect.json new file mode 100644 index 0000000000..e7dbb91524 --- /dev/null +++ b/internal/engine/duckdb/dialect/dialect.json @@ -0,0 +1,15 @@ +{ + "dialect": "duckdb", + "const": { + "integer": "integer", + "float": "double", + "string": "varchar", + "bool": "boolean" + }, + "bool": "boolean", + "comparison": ["=", "==", "<>", "!=", "<", "<=", ">", ">=", "IS DISTINCT FROM", "IS NOT DISTINCT FROM"], + "comparison_categories": "BNSDU", + "arithmetic": ["+", "-", "*", "/", "//", "%", "**", "^"], + "arithmetic_categories": "N", + "cast_categories": "NSD" +} diff --git a/internal/engine/duckdb/dialect/functions.jsonl b/internal/engine/duckdb/dialect/functions.jsonl new file mode 100644 index 0000000000..c7e85c7c7c --- /dev/null +++ b/internal/engine/duckdb/dialect/functions.jsonl @@ -0,0 +1,2626 @@ +{"name":"__between","args":[{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"boolean"} +{"name":"__cast","args":[{"type":"any"}],"returns":"any"} +{"name":"__internal_compress_geometry_point","args":[{"type":"geometry"}],"returns":"uhugeint"} +{"name":"__internal_compress_integral_ubigint","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"ubigint"} +{"name":"__internal_compress_integral_ubigint","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"ubigint"} +{"name":"__internal_compress_integral_uinteger","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"uinteger"} +{"name":"__internal_compress_integral_uinteger","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"uinteger"} +{"name":"__internal_compress_integral_uinteger","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"uinteger"} +{"name":"__internal_compress_integral_uinteger","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uinteger"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"integer"},{"type":"integer"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_usmallint","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"usmallint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"integer"},{"type":"integer"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"utinyint"} +{"name":"__internal_compress_integral_utinyint","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"utinyint"} +{"name":"__internal_compress_string_hugeint","args":[{"type":"varchar"}],"returns":"hugeint"} +{"name":"__internal_compress_string_ubigint","args":[{"type":"varchar"}],"returns":"ubigint"} +{"name":"__internal_compress_string_uhugeint","args":[{"type":"varchar"}],"returns":"uhugeint"} +{"name":"__internal_compress_string_uinteger","args":[{"type":"varchar"}],"returns":"uinteger"} +{"name":"__internal_compress_string_usmallint","args":[{"type":"varchar"}],"returns":"usmallint"} +{"name":"__internal_compress_string_utinyint","args":[{"type":"varchar"}],"returns":"utinyint"} +{"name":"__internal_decompress_geometry_point","args":[{"type":"uhugeint"}],"returns":"geometry"} +{"name":"__internal_decompress_integral_bigint","args":[{"type":"uinteger"},{"type":"bigint"}],"returns":"bigint"} +{"name":"__internal_decompress_integral_bigint","args":[{"type":"usmallint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"__internal_decompress_integral_bigint","args":[{"type":"utinyint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"__internal_decompress_integral_hugeint","args":[{"type":"ubigint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"__internal_decompress_integral_hugeint","args":[{"type":"uinteger"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"__internal_decompress_integral_hugeint","args":[{"type":"usmallint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"__internal_decompress_integral_hugeint","args":[{"type":"utinyint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"__internal_decompress_integral_integer","args":[{"type":"usmallint"},{"type":"integer"}],"returns":"integer"} +{"name":"__internal_decompress_integral_integer","args":[{"type":"utinyint"},{"type":"integer"}],"returns":"integer"} +{"name":"__internal_decompress_integral_smallint","args":[{"type":"utinyint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"__internal_decompress_integral_ubigint","args":[{"type":"uinteger"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"__internal_decompress_integral_ubigint","args":[{"type":"usmallint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"__internal_decompress_integral_ubigint","args":[{"type":"utinyint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"__internal_decompress_integral_uhugeint","args":[{"type":"ubigint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"__internal_decompress_integral_uhugeint","args":[{"type":"uinteger"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"__internal_decompress_integral_uhugeint","args":[{"type":"usmallint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"__internal_decompress_integral_uhugeint","args":[{"type":"utinyint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"__internal_decompress_integral_uinteger","args":[{"type":"usmallint"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"__internal_decompress_integral_uinteger","args":[{"type":"utinyint"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"__internal_decompress_integral_usmallint","args":[{"type":"utinyint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"__internal_decompress_string","args":[{"type":"hugeint"}],"returns":"varchar"} +{"name":"__internal_decompress_string","args":[{"type":"ubigint"}],"returns":"varchar"} +{"name":"__internal_decompress_string","args":[{"type":"uhugeint"}],"returns":"varchar"} +{"name":"__internal_decompress_string","args":[{"type":"uinteger"}],"returns":"varchar"} +{"name":"__internal_decompress_string","args":[{"type":"usmallint"}],"returns":"varchar"} +{"name":"__internal_decompress_string","args":[{"type":"utinyint"}],"returns":"varchar"} +{"name":"__internal_json_copy_to_geojson","args":[{"type":"any"},{"type":"varchar"},{"type":"varchar"},{"type":"varchar"},{"type":"varchar"},{"type":"boolean"}],"returns":"json"} +{"name":"__internal_json_copy_to_json","args":[{"type":"any"},{"type":"varchar"},{"type":"varchar"}],"returns":"json"} +{"name":"__internal_tablefilter_bloom_filter","args":[{"type":"any"}],"returns":"boolean"} +{"name":"__internal_tablefilter_dynamic","args":[{"type":"any"}],"returns":"boolean"} +{"name":"__internal_tablefilter_optional","args":[{"type":"any"}],"returns":"boolean"} +{"name":"__internal_tablefilter_prefix_range","args":[{"type":"any"}],"returns":"boolean"} +{"name":"__internal_tablefilter_selectivity_optional","args":[{"type":"any"}],"returns":"boolean"} +{"name":"abs","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"abs","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"abs","args":[{"type":"double"}],"returns":"double"} +{"name":"abs","args":[{"type":"float"}],"returns":"float"} +{"name":"abs","args":[{"type":"hugeint"}],"returns":"hugeint"} +{"name":"abs","args":[{"type":"integer"}],"returns":"integer"} +{"name":"abs","args":[{"type":"smallint"}],"returns":"smallint"} +{"name":"abs","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"abs","args":[{"type":"ubigint"}],"returns":"ubigint"} +{"name":"abs","args":[{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"abs","args":[{"type":"uinteger"}],"returns":"uinteger"} +{"name":"abs","args":[{"type":"usmallint"}],"returns":"usmallint"} +{"name":"abs","args":[{"type":"utinyint"}],"returns":"utinyint"} +{"name":"acos","args":[{"type":"double"}],"returns":"double"} +{"name":"acosh","args":[{"type":"double"}],"returns":"double"} +{"name":"add","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"add","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"add","args":[{"type":"bignum"},{"type":"bignum"}],"returns":"bignum"} +{"name":"add","args":[{"type":"date"},{"type":"integer"}],"returns":"date"} +{"name":"add","args":[{"type":"date"},{"type":"interval"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"date"},{"type":"time with time zone"}],"returns":"timestamp with time zone"} +{"name":"add","args":[{"type":"date"},{"type":"time"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"decimal"},{"type":"decimal"}],"returns":"decimal"} +{"name":"add","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"add","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"add","args":[{"type":"double"}],"returns":"double"} +{"name":"add","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"add","args":[{"type":"float"}],"returns":"float"} +{"name":"add","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"add","args":[{"type":"hugeint"}],"returns":"hugeint"} +{"name":"add","args":[{"type":"integer"},{"type":"date"}],"returns":"date"} +{"name":"add","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"add","args":[{"type":"integer"}],"returns":"integer"} +{"name":"add","args":[{"type":"interval"},{"type":"date"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"interval"},{"type":"interval"}],"returns":"interval"} +{"name":"add","args":[{"type":"interval"},{"type":"time with time zone"}],"returns":"time with time zone"} +{"name":"add","args":[{"type":"interval"},{"type":"timestamp"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"interval"},{"type":"time"}],"returns":"time"} +{"name":"add","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"add","args":[{"type":"smallint"}],"returns":"smallint"} +{"name":"add","args":[{"type":"time with time zone"},{"type":"date"}],"returns":"timestamp with time zone"} +{"name":"add","args":[{"type":"time with time zone"},{"type":"interval"}],"returns":"time with time zone"} +{"name":"add","args":[{"type":"time"},{"type":"date"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"time"},{"type":"interval"}],"returns":"time"} +{"name":"add","args":[{"type":"timestamp"},{"type":"interval"}],"returns":"timestamp"} +{"name":"add","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"add","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"add","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"add","args":[{"type":"ubigint"}],"returns":"ubigint"} +{"name":"add","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"add","args":[{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"add","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"add","args":[{"type":"uinteger"}],"returns":"uinteger"} +{"name":"add","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"add","args":[{"type":"usmallint"}],"returns":"usmallint"} +{"name":"add","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"add","args":[{"type":"utinyint"}],"returns":"utinyint"} +{"name":"add","args":[{"type":"any[]","mode":"v"}],"returns":"any[]"} +{"name":"age","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"interval"} +{"name":"age","args":[{"type":"timestamp with time zone"}],"returns":"interval"} +{"name":"age","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"interval"} +{"name":"age","args":[{"type":"timestamp"}],"returns":"interval"} +{"name":"aggregate","args":[{"type":"any[]"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"alias","args":[{"type":"any"}],"returns":"varchar"} +{"name":"any_value","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"any_value","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"approx_count_distinct","kind":"a","args":[{"type":"any"}],"returns":"bigint","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"bigint"},{"type":"float[]"}],"returns":"bigint[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"bigint"},{"type":"float"}],"returns":"bigint","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"date"},{"type":"float[]"}],"returns":"date[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"date"},{"type":"float"}],"returns":"date","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"decimal"},{"type":"float[]"}],"returns":"decimal[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"decimal"},{"type":"float"}],"returns":"decimal","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"double"},{"type":"float[]"}],"returns":"double[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"double"},{"type":"float"}],"returns":"double","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"float"},{"type":"float[]"}],"returns":"float[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"float[]"}],"returns":"hugeint[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"float"}],"returns":"hugeint","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"integer"},{"type":"float[]"}],"returns":"integer[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"integer"},{"type":"float"}],"returns":"integer","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"smallint"},{"type":"float[]"}],"returns":"smallint[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"smallint"},{"type":"float"}],"returns":"smallint","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"time with time zone"},{"type":"float[]"}],"returns":"time with time zone[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"time with time zone"},{"type":"float"}],"returns":"time with time zone","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"time"},{"type":"float[]"}],"returns":"time[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"time"},{"type":"float"}],"returns":"time","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"float[]"}],"returns":"timestamp with time zone[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"float"}],"returns":"timestamp with time zone","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"timestamp"},{"type":"float[]"}],"returns":"timestamp[]","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"timestamp"},{"type":"float"}],"returns":"timestamp","nullable":true} +{"name":"approx_quantile","kind":"a","args":[{"type":"tinyint"},{"type":"float[]"}],"returns":"tinyint[]","nullable":true} +{"name":"approx_top_k","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"arbitrary","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"arbitrary","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_max","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_max_null","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_max_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_min","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_min_null","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"arg_min_nulls_last","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"argmax","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"argmin","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"array_agg","kind":"a","args":[{"type":"any"}],"returns":"any[]","nullable":true} +{"name":"array_aggr","args":[{"type":"any[]"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"array_aggregate","args":[{"type":"any[]"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"array_cat","args":[{"type":"any[]","mode":"v"}],"returns":"any[]"} +{"name":"array_concat","args":[{"type":"any[]","mode":"v"}],"returns":"any[]"} +{"name":"array_contains","args":[{"type":"any[]"},{"type":"any"}],"returns":"boolean"} +{"name":"array_cosine_distance","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_cosine_distance","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_cosine_similarity","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_cosine_similarity","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_cross_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double[]"} +{"name":"array_cross_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float[]"} +{"name":"array_distance","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_distance","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_distinct","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"array_dot_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_dot_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_extract","args":[{"type":"any[]"},{"type":"bigint"}],"returns":"any"} +{"name":"array_extract","args":[{"type":"struct"},{"type":"varchar"}],"returns":"any"} +{"name":"array_extract","args":[{"type":"tuple"},{"type":"bigint"}],"returns":"any"} +{"name":"array_extract","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"array_grade_up","args":[{"type":"any[]"},{"type":"varchar"},{"type":"varchar"}],"returns":"any[]"} +{"name":"array_grade_up","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"array_grade_up","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"array_has","args":[{"type":"any[]"},{"type":"any"}],"returns":"boolean"} +{"name":"array_has_all","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"boolean"} +{"name":"array_has_any","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"boolean"} +{"name":"array_indexof","args":[{"type":"any[]"},{"type":"any"}],"returns":"integer"} +{"name":"array_inner_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_inner_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_intersect","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"any[]"} +{"name":"array_length","args":[{"type":"any[]"},{"type":"bigint"}],"returns":"bigint"} +{"name":"array_length","args":[{"type":"any[]"}],"returns":"bigint"} +{"name":"array_negative_dot_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_negative_dot_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_negative_inner_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"array_negative_inner_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"array_position","args":[{"type":"any[]"},{"type":"any"}],"returns":"integer"} +{"name":"array_resize","args":[{"type":"any[]"},{"type":"any"},{"type":"any"}],"returns":"any[]"} +{"name":"array_resize","args":[{"type":"any[]"},{"type":"any"}],"returns":"any[]"} +{"name":"array_reverse_sort","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"array_reverse_sort","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"array_select","args":[{"type":"any[]"},{"type":"bigint[]"}],"returns":"any[]"} +{"name":"array_slice","args":[{"type":"any"},{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any"} +{"name":"array_slice","args":[{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"array_sort","args":[{"type":"any[]"},{"type":"varchar"},{"type":"varchar"}],"returns":"any[]"} +{"name":"array_sort","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"array_sort","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"array_to_json","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"array_unique","args":[{"type":"any[]"}],"returns":"ubigint"} +{"name":"array_value","args":[{"type":"any","mode":"v"}],"returns":"array"} +{"name":"array_where","args":[{"type":"any[]"},{"type":"boolean[]"}],"returns":"any[]"} +{"name":"array_zip","args":[{"type":"any","mode":"v"}],"returns":"struct[]"} +{"name":"ascii","args":[{"type":"varchar"}],"returns":"integer"} +{"name":"asin","args":[{"type":"double"}],"returns":"double"} +{"name":"asinh","args":[{"type":"double"}],"returns":"double"} +{"name":"atan","args":[{"type":"double"}],"returns":"double"} +{"name":"atan2","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"atanh","args":[{"type":"double"}],"returns":"double"} +{"name":"avg","kind":"a","args":[{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"integer"}],"returns":"double","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"interval"}],"returns":"interval","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"smallint"}],"returns":"double","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"time with time zone"}],"returns":"time with time zone","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"avg","kind":"a","args":[{"type":"time"}],"returns":"time","nullable":true} +{"name":"bar","args":[{"type":"double"},{"type":"double"},{"type":"double"},{"type":"double"}],"returns":"varchar"} +{"name":"bar","args":[{"type":"double"},{"type":"double"},{"type":"double"}],"returns":"varchar"} +{"name":"base64","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"bigint"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"bignum"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"hugeint"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"ubigint"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"uhugeint"}],"returns":"varchar"} +{"name":"bin","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"binom","args":[{"type":"integer"},{"type":"integer"}],"returns":"hugeint"} +{"name":"bit_and","kind":"a","args":[{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"bit"}],"returns":"bit","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"hugeint"}],"returns":"hugeint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"smallint"}],"returns":"smallint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"tinyint"}],"returns":"tinyint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"ubigint"}],"returns":"ubigint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"uhugeint"}],"returns":"uhugeint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"uinteger"}],"returns":"uinteger","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"usmallint"}],"returns":"usmallint","nullable":true} +{"name":"bit_and","kind":"a","args":[{"type":"utinyint"}],"returns":"utinyint","nullable":true} +{"name":"bit_count","args":[{"type":"bigint"}],"returns":"tinyint"} +{"name":"bit_count","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"bit_count","args":[{"type":"hugeint"}],"returns":"tinyint"} +{"name":"bit_count","args":[{"type":"integer"}],"returns":"tinyint"} +{"name":"bit_count","args":[{"type":"smallint"}],"returns":"tinyint"} +{"name":"bit_count","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"bit_length","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"bit_length","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"bit_or","kind":"a","args":[{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"bit"}],"returns":"bit","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"hugeint"}],"returns":"hugeint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"smallint"}],"returns":"smallint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"tinyint"}],"returns":"tinyint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"ubigint"}],"returns":"ubigint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"uhugeint"}],"returns":"uhugeint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"uinteger"}],"returns":"uinteger","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"usmallint"}],"returns":"usmallint","nullable":true} +{"name":"bit_or","kind":"a","args":[{"type":"utinyint"}],"returns":"utinyint","nullable":true} +{"name":"bit_position","args":[{"type":"bit"},{"type":"bit"}],"returns":"integer"} +{"name":"bit_xor","kind":"a","args":[{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"bit"}],"returns":"bit","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"hugeint"}],"returns":"hugeint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"smallint"}],"returns":"smallint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"tinyint"}],"returns":"tinyint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"ubigint"}],"returns":"ubigint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"uhugeint"}],"returns":"uhugeint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"uinteger"}],"returns":"uinteger","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"usmallint"}],"returns":"usmallint","nullable":true} +{"name":"bit_xor","kind":"a","args":[{"type":"utinyint"}],"returns":"utinyint","nullable":true} +{"name":"bitstring","args":[{"type":"bit"},{"type":"integer"}],"returns":"bit"} +{"name":"bitstring","args":[{"type":"varchar"},{"type":"integer"}],"returns":"bit"} +{"name":"bitstring_agg","kind":"a","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"bigint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"hugeint"},{"type":"hugeint"},{"type":"hugeint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"hugeint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"integer"},{"type":"integer"},{"type":"integer"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"integer"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"smallint"},{"type":"smallint"},{"type":"smallint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"smallint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"tinyint"},{"type":"tinyint"},{"type":"tinyint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"tinyint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"ubigint"},{"type":"ubigint"},{"type":"ubigint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"ubigint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"uhugeint"},{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"uhugeint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"uinteger"},{"type":"uinteger"},{"type":"uinteger"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"uinteger"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"usmallint"},{"type":"usmallint"},{"type":"usmallint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"usmallint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"utinyint"},{"type":"utinyint"},{"type":"utinyint"}],"returns":"bit","nullable":true} +{"name":"bitstring_agg","kind":"a","args":[{"type":"utinyint"}],"returns":"bit","nullable":true} +{"name":"bitstring_byte_comparable","args":[{"type":"bit"}],"returns":"blob"} +{"name":"bool_and","kind":"a","args":[{"type":"boolean"}],"returns":"boolean","nullable":true} +{"name":"bool_or","kind":"a","args":[{"type":"boolean"}],"returns":"boolean","nullable":true} +{"name":"can_cast_implicitly","args":[{"type":"any"},{"type":"any"}],"returns":"boolean"} +{"name":"cardinality","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"ubigint"} +{"name":"cast_to_type","args":[{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"cbrt","args":[{"type":"double"}],"returns":"double"} +{"name":"ceil","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"ceil","args":[{"type":"double"}],"returns":"double"} +{"name":"ceil","args":[{"type":"float"}],"returns":"float"} +{"name":"ceiling","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"ceiling","args":[{"type":"double"}],"returns":"double"} +{"name":"ceiling","args":[{"type":"float"}],"returns":"float"} +{"name":"century","args":[{"type":"date"}],"returns":"bigint"} +{"name":"century","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"century","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"century","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"char_length","args":[{"type":"any[]"}],"returns":"bigint"} +{"name":"char_length","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"char_length","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"character_length","args":[{"type":"any[]"}],"returns":"bigint"} +{"name":"character_length","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"character_length","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"chr","args":[{"type":"integer"}],"returns":"varchar"} +{"name":"collate_aa","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_af","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_am","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ar","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ar_sa","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_as","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_az","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_bal","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_be","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_bg","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_blo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_bn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_bo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_br","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_bs","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ca","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ceb","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_chr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_cs","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_cu","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_cy","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_da","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_de","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_de_at","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_dsb","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_dz","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ee","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_el","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_en","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_en_us","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_eo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_es","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_et","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fa","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fa_af","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ff","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fi","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fil","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fr_ca","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_fy","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ga","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_gl","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_gu","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ha","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_haw","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_he","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_he_il","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_hi","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_hr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_hsb","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_hu","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_hy","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_id","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_id_id","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ig","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_is","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_it","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ja","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ka","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_kk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_kl","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_km","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_kn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ko","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_kok","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ku","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ky","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lb","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lij","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lkt","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ln","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lt","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_lv","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_mk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ml","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_mn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_mr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ms","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_mt","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_my","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_nb","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_nb_no","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ne","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_nl","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_nn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_no","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_noaccent","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_nso","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_om","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_or","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_pa","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_pa_in","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_pl","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ps","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_pt","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ro","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ru","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sa","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_se","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sgs","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_si","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sl","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_smn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sq","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sr_ba","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sr_me","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sr_rs","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ssy","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_st","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sv","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_sw","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ta","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_te","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_th","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_tk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_tn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_to","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_tr","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ug","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_uk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_ur","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_uz","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_vi","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_vo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_wae","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_wo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_xh","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_yi","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_yo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh_cn","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh_hk","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh_mo","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh_sg","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zh_tw","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"collate_zu","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"combine","args":[{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"combine_aggr","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"combine_aggr","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"concat","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"concat_ws","args":[{"type":"varchar"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"varchar"} +{"name":"constant_or_null","args":[{"type":"any"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"contains","args":[{"type":"map"},{"type":"any"}],"returns":"boolean"} +{"name":"contains","args":[{"type":"any[]"},{"type":"any"}],"returns":"boolean"} +{"name":"contains","args":[{"type":"tuple"},{"type":"any"}],"returns":"boolean"} +{"name":"contains","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"corr","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"cos","args":[{"type":"double"}],"returns":"double"} +{"name":"cosh","args":[{"type":"double"}],"returns":"double"} +{"name":"cot","args":[{"type":"double"}],"returns":"double"} +{"name":"count","kind":"a","args":[{"type":"any"}],"returns":"bigint"} +{"name":"count","kind":"a","returns":"bigint"} +{"name":"count_if","kind":"a","args":[{"type":"boolean"}],"returns":"hugeint"} +{"name":"count_star","kind":"a","returns":"bigint"} +{"name":"countif","kind":"a","args":[{"type":"boolean"}],"returns":"hugeint"} +{"name":"covar_pop","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"covar_samp","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"create_sort_key","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"blob"} +{"name":"cume_dist","kind":"w","returns":"double"} +{"name":"current_connection_id","returns":"ubigint"} +{"name":"current_database","returns":"varchar"} +{"name":"current_date","returns":"date"} +{"name":"current_localtime","returns":"time"} +{"name":"current_localtimestamp","returns":"timestamp"} +{"name":"current_query","returns":"varchar"} +{"name":"current_query_id","returns":"ubigint"} +{"name":"current_schema","returns":"varchar"} +{"name":"current_schemas","args":[{"type":"boolean"}],"returns":"varchar[]"} +{"name":"current_setting","args":[{"type":"varchar"}],"returns":"any"} +{"name":"current_transaction_id","returns":"ubigint"} +{"name":"currval","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"damerau_levenshtein","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"date_diff","args":[{"type":"varchar"},{"type":"date"},{"type":"date"}],"returns":"bigint"} +{"name":"date_diff","args":[{"type":"varchar"},{"type":"time"},{"type":"time"}],"returns":"bigint"} +{"name":"date_diff","args":[{"type":"varchar"},{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"date_diff","args":[{"type":"varchar"},{"type":"timestamp"},{"type":"timestamp"}],"returns":"bigint"} +{"name":"date_diff","args":[{"type":"varchar"},{"type":"timestamptz_ns"},{"type":"timestamptz_ns"}],"returns":"bigint"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"date"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"interval"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"time with time zone"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"timestamp with time zone"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"timestamp"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"time"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar[]"},{"type":"time_ns"}],"returns":"struct"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"date"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"interval"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"time with time zone"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"time"}],"returns":"double"} +{"name":"date_part","args":[{"type":"varchar"},{"type":"time_ns"}],"returns":"double"} +{"name":"date_sub","args":[{"type":"varchar"},{"type":"date"},{"type":"date"}],"returns":"bigint"} +{"name":"date_sub","args":[{"type":"varchar"},{"type":"time"},{"type":"time"}],"returns":"bigint"} +{"name":"date_sub","args":[{"type":"varchar"},{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"date_sub","args":[{"type":"varchar"},{"type":"timestamp"},{"type":"timestamp"}],"returns":"bigint"} +{"name":"date_trunc","args":[{"type":"varchar"},{"type":"date"}],"returns":"timestamp"} +{"name":"date_trunc","args":[{"type":"varchar"},{"type":"interval"}],"returns":"interval"} +{"name":"date_trunc","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone"} +{"name":"date_trunc","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"timestamp"} +{"name":"datediff","args":[{"type":"varchar"},{"type":"date"},{"type":"date"}],"returns":"bigint"} +{"name":"datediff","args":[{"type":"varchar"},{"type":"time"},{"type":"time"}],"returns":"bigint"} +{"name":"datediff","args":[{"type":"varchar"},{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"datediff","args":[{"type":"varchar"},{"type":"timestamp"},{"type":"timestamp"}],"returns":"bigint"} +{"name":"datediff","args":[{"type":"varchar"},{"type":"timestamptz_ns"},{"type":"timestamptz_ns"}],"returns":"bigint"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"date"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"interval"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"time with time zone"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"timestamp with time zone"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"timestamp"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"time"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar[]"},{"type":"time_ns"}],"returns":"struct"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"date"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"interval"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"time with time zone"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"time"}],"returns":"double"} +{"name":"datepart","args":[{"type":"varchar"},{"type":"time_ns"}],"returns":"double"} +{"name":"datesub","args":[{"type":"varchar"},{"type":"date"},{"type":"date"}],"returns":"bigint"} +{"name":"datesub","args":[{"type":"varchar"},{"type":"time"},{"type":"time"}],"returns":"bigint"} +{"name":"datesub","args":[{"type":"varchar"},{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"datesub","args":[{"type":"varchar"},{"type":"timestamp"},{"type":"timestamp"}],"returns":"bigint"} +{"name":"datetrunc","args":[{"type":"varchar"},{"type":"date"}],"returns":"timestamp"} +{"name":"datetrunc","args":[{"type":"varchar"},{"type":"interval"}],"returns":"interval"} +{"name":"datetrunc","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone"} +{"name":"datetrunc","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"timestamp"} +{"name":"day","args":[{"type":"date"}],"returns":"bigint"} +{"name":"day","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"day","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"day","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"dayname","args":[{"type":"date"}],"returns":"varchar"} +{"name":"dayname","args":[{"type":"timestamp with time zone"}],"returns":"varchar"} +{"name":"dayname","args":[{"type":"timestamp"}],"returns":"varchar"} +{"name":"dayofmonth","args":[{"type":"date"}],"returns":"bigint"} +{"name":"dayofmonth","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"dayofmonth","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"dayofmonth","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"dayofweek","args":[{"type":"date"}],"returns":"bigint"} +{"name":"dayofweek","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"dayofweek","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"dayofweek","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"dayofyear","args":[{"type":"date"}],"returns":"bigint"} +{"name":"dayofyear","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"dayofyear","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"dayofyear","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"decade","args":[{"type":"date"}],"returns":"bigint"} +{"name":"decade","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"decade","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"decade","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"decimal_average","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"decimal_division","args":[{"type":"decimal"},{"type":"decimal"},{"type":"integer"}],"returns":"decimal"} +{"name":"decimal_division","args":[{"type":"decimal"},{"type":"decimal"}],"returns":"decimal"} +{"name":"decode","args":[{"type":"blob"},{"type":"varchar"}],"returns":"varchar"} +{"name":"decode","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"degrees","args":[{"type":"double"}],"returns":"double"} +{"name":"dense_rank","kind":"w","returns":"bigint"} +{"name":"divide","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"divide","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"divide","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"divide","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"divide","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"divide","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"divide","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"divide","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"divide","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"divide","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"divide","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"divide","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"duckdb_format_sql","args":[{"type":"varchar"},{"type":"map"}],"returns":"varchar"} +{"name":"duckdb_format_sql","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"editdist3","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"element_at","args":[{"type":"map"},{"type":"any"}],"returns":"any[]"} +{"name":"encode","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"ends_with","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"entropy","kind":"a","args":[{"type":"any"}],"returns":"double","nullable":true} +{"name":"enum_code","args":[{"type":"any"}],"returns":"any"} +{"name":"enum_first","args":[{"type":"any"}],"returns":"varchar"} +{"name":"enum_last","args":[{"type":"any"}],"returns":"varchar"} +{"name":"enum_range","args":[{"type":"any"}],"returns":"varchar[]"} +{"name":"enum_range_boundary","args":[{"type":"any"},{"type":"any"}],"returns":"varchar[]"} +{"name":"epoch","args":[{"type":"date"}],"returns":"double"} +{"name":"epoch","args":[{"type":"interval"}],"returns":"double"} +{"name":"epoch","args":[{"type":"time with time zone"}],"returns":"double"} +{"name":"epoch","args":[{"type":"timestamp with time zone"}],"returns":"double"} +{"name":"epoch","args":[{"type":"timestamp"}],"returns":"double"} +{"name":"epoch","args":[{"type":"time"}],"returns":"double"} +{"name":"epoch","args":[{"type":"time_ns"}],"returns":"double"} +{"name":"epoch_ms","args":[{"type":"bigint"}],"returns":"timestamp"} +{"name":"epoch_ms","args":[{"type":"date"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"time"}],"returns":"bigint"} +{"name":"epoch_ms","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"date"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"timestamptz_ns"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"timestamp_ns"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"time"}],"returns":"bigint"} +{"name":"epoch_ns","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"date"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"time"}],"returns":"bigint"} +{"name":"epoch_us","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"equi_width_bins","args":[{"type":"any"},{"type":"any"},{"type":"bigint"},{"type":"boolean"}],"returns":"any[]"} +{"name":"equi_width_bins","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"boolean"}],"returns":"any[]"} +{"name":"equi_width_bins","args":[{"type":"double"},{"type":"double"},{"type":"bigint"},{"type":"boolean"}],"returns":"any[]"} +{"name":"equi_width_bins","args":[{"type":"timestamp"},{"type":"timestamp"},{"type":"bigint"},{"type":"boolean"}],"returns":"any[]"} +{"name":"era","args":[{"type":"date"}],"returns":"bigint"} +{"name":"era","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"era","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"era","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"even","args":[{"type":"double"}],"returns":"double"} +{"name":"exp","args":[{"type":"double"}],"returns":"double"} +{"name":"factorial","args":[{"type":"integer"}],"returns":"hugeint"} +{"name":"favg","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"fill","kind":"w","args":[{"type":"any"}],"returns":"any"} +{"name":"first","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"first","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"first_value","kind":"w","args":[{"type":"any"}],"returns":"any"} +{"name":"flatten","args":[{"type":"any[][]"}],"returns":"any[]"} +{"name":"floor","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"floor","args":[{"type":"double"}],"returns":"double"} +{"name":"floor","args":[{"type":"float"}],"returns":"float"} +{"name":"format","args":[{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"varchar"} +{"name":"format_bytes","args":[{"type":"bigint"}],"returns":"varchar"} +{"name":"from_base64","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"from_binary","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"from_hex","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"from_json","args":[{"type":"json"},{"type":"varchar"}],"returns":"any"} +{"name":"from_json","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"any"} +{"name":"from_json_strict","args":[{"type":"json"},{"type":"varchar"}],"returns":"any"} +{"name":"from_json_strict","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"any"} +{"name":"fsum","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"gamma","args":[{"type":"double"}],"returns":"double"} +{"name":"gcd","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"gcd","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"gen_random_uuid","returns":"uuid"} +{"name":"generate_series","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"}],"returns":"bigint[]"} +{"name":"generate_series","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint[]"} +{"name":"generate_series","args":[{"type":"bigint"}],"returns":"bigint[]"} +{"name":"generate_series","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"},{"type":"interval"}],"returns":"timestamp with time zone[]"} +{"name":"generate_series","args":[{"type":"timestamp"},{"type":"timestamp"},{"type":"interval"}],"returns":"timestamp[]"} +{"name":"get_bit","args":[{"type":"bit"},{"type":"integer"}],"returns":"integer"} +{"name":"get_current_time","returns":"time with time zone"} +{"name":"get_current_timestamp","returns":"timestamp with time zone"} +{"name":"getenv","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"getvariable","args":[{"type":"varchar"}],"returns":"any"} +{"name":"grade_up","args":[{"type":"any[]"},{"type":"varchar"},{"type":"varchar"}],"returns":"any[]"} +{"name":"grade_up","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"grade_up","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"greatest","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"greatest_common_divisor","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"greatest_common_divisor","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"group_concat","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"group_concat","kind":"a","args":[{"type":"any"}],"returns":"varchar","nullable":true} +{"name":"hamming","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"hash","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"ubigint"} +{"name":"hex","args":[{"type":"bigint"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"bignum"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"hugeint"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"ubigint"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"uhugeint"}],"returns":"varchar"} +{"name":"hex","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"histogram","kind":"a","args":[{"type":"any"},{"type":"any[]"}],"returns":"map","nullable":true} +{"name":"histogram","kind":"a","args":[{"type":"any"}],"returns":"map","nullable":true} +{"name":"histogram_exact","kind":"a","args":[{"type":"any"},{"type":"any[]"}],"returns":"map","nullable":true} +{"name":"hour","args":[{"type":"date"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"time"}],"returns":"bigint"} +{"name":"hour","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"icu_collate_aa","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_af","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_am","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ar","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ar_sa","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_as","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_az","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_bal","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_be","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_bg","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_blo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_bn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_bo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_br","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_bs","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ca","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ceb","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_chr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_cs","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_cu","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_cy","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_da","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_de","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_de_at","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_dsb","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_dz","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ee","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_el","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_en","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_en_us","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_eo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_es","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_et","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fa","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fa_af","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ff","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fi","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fil","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fr_ca","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_fy","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ga","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_gl","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_gu","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ha","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_haw","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_he","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_he_il","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_hi","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_hr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_hsb","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_hu","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_hy","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_id","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_id_id","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ig","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_is","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_it","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ja","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ka","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_kk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_kl","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_km","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_kn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ko","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_kok","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ku","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ky","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lb","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lij","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lkt","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ln","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lt","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_lv","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_mk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ml","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_mn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_mr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ms","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_mt","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_my","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_nb","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_nb_no","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ne","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_nl","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_nn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_no","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_noaccent","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_nso","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_om","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_or","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_pa","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_pa_in","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_pl","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ps","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_pt","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ro","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ru","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sa","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_se","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sgs","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_si","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sl","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_smn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sq","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sr_ba","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sr_me","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sr_rs","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ssy","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_st","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sv","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_sw","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ta","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_te","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_th","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_tk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_tn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_to","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_tr","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ug","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_uk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_ur","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_uz","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_vi","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_vo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_wae","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_wo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_xh","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_yi","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_yo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh_cn","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh_hk","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh_mo","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh_sg","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zh_tw","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_collate_zu","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"icu_sort_key","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"ilike_escape","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"in_search_path","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"index_key","args":[{"type":"struct"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"blob"} +{"name":"instr","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"is_histogram_other_bin","args":[{"type":"any"}],"returns":"boolean"} +{"name":"isfinite","args":[{"type":"date"}],"returns":"boolean"} +{"name":"isfinite","args":[{"type":"double"}],"returns":"boolean"} +{"name":"isfinite","args":[{"type":"float"}],"returns":"boolean"} +{"name":"isfinite","args":[{"type":"timestamp with time zone"}],"returns":"boolean"} +{"name":"isfinite","args":[{"type":"timestamp"}],"returns":"boolean"} +{"name":"isinf","args":[{"type":"date"}],"returns":"boolean"} +{"name":"isinf","args":[{"type":"double"}],"returns":"boolean"} +{"name":"isinf","args":[{"type":"float"}],"returns":"boolean"} +{"name":"isinf","args":[{"type":"timestamp with time zone"}],"returns":"boolean"} +{"name":"isinf","args":[{"type":"timestamp"}],"returns":"boolean"} +{"name":"isnan","args":[{"type":"double"}],"returns":"boolean"} +{"name":"isnan","args":[{"type":"float"}],"returns":"boolean"} +{"name":"isodow","args":[{"type":"date"}],"returns":"bigint"} +{"name":"isodow","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"isodow","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"isodow","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"isoyear","args":[{"type":"date"}],"returns":"bigint"} +{"name":"isoyear","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"isoyear","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"isoyear","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"jaccard","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"double"} +{"name":"jaro_similarity","args":[{"type":"varchar"},{"type":"varchar"},{"type":"double"}],"returns":"double"} +{"name":"jaro_similarity","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"double"} +{"name":"jaro_winkler_similarity","args":[{"type":"varchar"},{"type":"varchar"},{"type":"double"}],"returns":"double"} +{"name":"jaro_winkler_similarity","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"double"} +{"name":"json_array","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"json_array_length","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"ubigint[]"} +{"name":"json_array_length","args":[{"type":"json"},{"type":"varchar"}],"returns":"ubigint"} +{"name":"json_array_length","args":[{"type":"json"}],"returns":"ubigint"} +{"name":"json_array_length","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"ubigint[]"} +{"name":"json_array_length","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"ubigint"} +{"name":"json_array_length","args":[{"type":"varchar"}],"returns":"ubigint"} +{"name":"json_contains","args":[{"type":"json"},{"type":"json"}],"returns":"boolean"} +{"name":"json_contains","args":[{"type":"json"},{"type":"varchar"}],"returns":"boolean"} +{"name":"json_contains","args":[{"type":"varchar"},{"type":"json"}],"returns":"boolean"} +{"name":"json_contains","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"json_deep_merge","args":[{"type":"json"},{"type":"json"},{"type":"json","mode":"v"}],"returns":"json"} +{"name":"json_deserialize_sql","args":[{"type":"json"}],"returns":"varchar"} +{"name":"json_exists","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"boolean[]"} +{"name":"json_exists","args":[{"type":"json"},{"type":"varchar"}],"returns":"boolean"} +{"name":"json_exists","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"boolean[]"} +{"name":"json_exists","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"json_extract","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"json[]"} +{"name":"json_extract","args":[{"type":"json"},{"type":"bigint"}],"returns":"json"} +{"name":"json_extract","args":[{"type":"json"},{"type":"varchar"}],"returns":"json"} +{"name":"json_extract","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"json[]"} +{"name":"json_extract","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"json"} +{"name":"json_extract","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"json"} +{"name":"json_extract_path","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"json[]"} +{"name":"json_extract_path","args":[{"type":"json"},{"type":"bigint"}],"returns":"json"} +{"name":"json_extract_path","args":[{"type":"json"},{"type":"varchar"}],"returns":"json"} +{"name":"json_extract_path","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"json[]"} +{"name":"json_extract_path","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"json"} +{"name":"json_extract_path","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"json"} +{"name":"json_extract_path_text","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_extract_path_text","args":[{"type":"json"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_extract_path_text","args":[{"type":"json"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_extract_path_text","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_extract_path_text","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_extract_path_text","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_extract_string","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_extract_string","args":[{"type":"json"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_extract_string","args":[{"type":"json"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_extract_string","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_extract_string","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_extract_string","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_insert","args":[{"type":"json"},{"type":"varchar"},{"type":"json"}],"returns":"json"} +{"name":"json_keys","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"varchar[][]"} +{"name":"json_keys","args":[{"type":"json"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"json_keys","args":[{"type":"json"}],"returns":"varchar[]"} +{"name":"json_keys","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[][]"} +{"name":"json_keys","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"json_keys","args":[{"type":"varchar"}],"returns":"varchar[]"} +{"name":"json_merge_patch","args":[{"type":"json"},{"type":"json"},{"type":"json","mode":"v"}],"returns":"json"} +{"name":"json_merge_patch_diff","args":[{"type":"json"},{"type":"json"}],"returns":"json"} +{"name":"json_normalize","args":[{"type":"json"}],"returns":"varchar"} +{"name":"json_object","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"json_pretty","args":[{"type":"json"}],"returns":"varchar"} +{"name":"json_quote","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"json_remove","args":[{"type":"json"},{"type":"varchar"}],"returns":"json"} +{"name":"json_replace","args":[{"type":"json"},{"type":"varchar"},{"type":"json"}],"returns":"json"} +{"name":"json_serialize_plan","args":[{"type":"varchar"},{"type":"boolean"},{"type":"boolean"},{"type":"boolean"},{"type":"boolean"},{"type":"boolean"}],"returns":"json"} +{"name":"json_serialize_sql","args":[{"type":"varchar"},{"type":"boolean"},{"type":"boolean"},{"type":"boolean"},{"type":"boolean"}],"returns":"json"} +{"name":"json_set","args":[{"type":"json"},{"type":"varchar"},{"type":"json"}],"returns":"json"} +{"name":"json_strip_nulls","args":[{"type":"json"}],"returns":"json"} +{"name":"json_structure","args":[{"type":"json"}],"returns":"json"} +{"name":"json_structure","args":[{"type":"varchar"}],"returns":"json"} +{"name":"json_transform","args":[{"type":"json"},{"type":"varchar"}],"returns":"any"} +{"name":"json_transform","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"any"} +{"name":"json_transform_strict","args":[{"type":"json"},{"type":"varchar"}],"returns":"any"} +{"name":"json_transform_strict","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"any"} +{"name":"json_type","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_type","args":[{"type":"json"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_type","args":[{"type":"json"}],"returns":"varchar"} +{"name":"json_type","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_type","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_type","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"json_valid","args":[{"type":"json"}],"returns":"boolean"} +{"name":"json_valid","args":[{"type":"varchar"}],"returns":"boolean"} +{"name":"json_value","args":[{"type":"json"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_value","args":[{"type":"json"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_value","args":[{"type":"json"},{"type":"varchar"}],"returns":"varchar"} +{"name":"json_value","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"json_value","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"json_value","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"julian","args":[{"type":"date"}],"returns":"double"} +{"name":"julian","args":[{"type":"timestamp with time zone"}],"returns":"double"} +{"name":"julian","args":[{"type":"timestamp"}],"returns":"double"} +{"name":"kahan_sum","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"kurtosis","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"kurtosis_pop","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"lag","kind":"w","args":[{"type":"any"},{"type":"bigint"},{"type":"any"}],"returns":"any"} +{"name":"last","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"last","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"last_day","args":[{"type":"date"}],"returns":"date"} +{"name":"last_day","args":[{"type":"timestamp with time zone"}],"returns":"date"} +{"name":"last_day","args":[{"type":"timestamp"}],"returns":"date"} +{"name":"last_value","kind":"w","args":[{"type":"any"}],"returns":"any"} +{"name":"lcase","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"lcm","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"lcm","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"lead","kind":"w","args":[{"type":"any"},{"type":"bigint"},{"type":"any"}],"returns":"any"} +{"name":"least","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"least_common_multiple","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"least_common_multiple","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"left","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"left_grapheme","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"len","args":[{"type":"any[]"}],"returns":"bigint"} +{"name":"len","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"len","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"length","args":[{"type":"any[]"}],"returns":"bigint"} +{"name":"length","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"length","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"length_grapheme","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"levenshtein","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"lgamma","args":[{"type":"double"}],"returns":"double"} +{"name":"like_escape","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"list","kind":"a","args":[{"type":"any"}],"returns":"any[]","nullable":true} +{"name":"list_aggr","args":[{"type":"any[]"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"list_aggregate","args":[{"type":"any[]"},{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"list_cat","args":[{"type":"any[]","mode":"v"}],"returns":"any[]"} +{"name":"list_concat","args":[{"type":"any[]","mode":"v"}],"returns":"any[]"} +{"name":"list_contains","args":[{"type":"any[]"},{"type":"any"}],"returns":"boolean"} +{"name":"list_cosine_distance","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_cosine_distance","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_cosine_similarity","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_cosine_similarity","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_distance","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_distance","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_distinct","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"list_dot_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_dot_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_element","args":[{"type":"any[]"},{"type":"bigint"}],"returns":"any"} +{"name":"list_element","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"list_extract","args":[{"type":"any[]"},{"type":"bigint"}],"returns":"any"} +{"name":"list_extract","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"list_grade_up","args":[{"type":"any[]"},{"type":"varchar"},{"type":"varchar"}],"returns":"any[]"} +{"name":"list_grade_up","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"list_grade_up","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"list_has","args":[{"type":"any[]"},{"type":"any"}],"returns":"boolean"} +{"name":"list_has_all","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"boolean"} +{"name":"list_has_any","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"boolean"} +{"name":"list_indexof","args":[{"type":"any[]"},{"type":"any"}],"returns":"integer"} +{"name":"list_inner_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_inner_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_intersect","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"any[]"} +{"name":"list_negative_dot_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_negative_dot_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_negative_inner_product","args":[{"type":"double[]"},{"type":"double[]"}],"returns":"double"} +{"name":"list_negative_inner_product","args":[{"type":"float[]"},{"type":"float[]"}],"returns":"float"} +{"name":"list_pack","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any[]"} +{"name":"list_position","args":[{"type":"any[]"},{"type":"any"}],"returns":"integer"} +{"name":"list_resize","args":[{"type":"any[]"},{"type":"any"},{"type":"any"}],"returns":"any[]"} +{"name":"list_resize","args":[{"type":"any[]"},{"type":"any"}],"returns":"any[]"} +{"name":"list_reverse_sort","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"list_reverse_sort","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"list_select","args":[{"type":"any[]"},{"type":"bigint[]"}],"returns":"any[]"} +{"name":"list_slice","args":[{"type":"any"},{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any"} +{"name":"list_slice","args":[{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"list_sort","args":[{"type":"any[]"},{"type":"varchar"},{"type":"varchar"}],"returns":"any[]"} +{"name":"list_sort","args":[{"type":"any[]"},{"type":"varchar"}],"returns":"any[]"} +{"name":"list_sort","args":[{"type":"any[]"}],"returns":"any[]"} +{"name":"list_unique","args":[{"type":"any[]"}],"returns":"ubigint"} +{"name":"list_value","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any[]"} +{"name":"list_where","args":[{"type":"any[]"},{"type":"boolean[]"}],"returns":"any[]"} +{"name":"list_zip","args":[{"type":"any","mode":"v"}],"returns":"struct[]"} +{"name":"listagg","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"listagg","kind":"a","args":[{"type":"any"}],"returns":"varchar","nullable":true} +{"name":"ln","args":[{"type":"double"}],"returns":"double"} +{"name":"log","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"log","args":[{"type":"double"}],"returns":"double"} +{"name":"log10","args":[{"type":"double"}],"returns":"double"} +{"name":"log2","args":[{"type":"double"}],"returns":"double"} +{"name":"lower","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"lpad","args":[{"type":"varchar"},{"type":"integer"},{"type":"varchar"}],"returns":"varchar"} +{"name":"ltrim","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"ltrim","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"lttb","kind":"a","args":[{"type":"double"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"double"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"float"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"float"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamptz_ns"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamptz_ns"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_ms"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_ms"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_ns"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_ns"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_s"},{"type":"double"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"lttb","kind":"a","args":[{"type":"timestamp_s"},{"type":"float"},{"type":"bigint"}],"returns":"struct[]","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"date"}],"returns":"interval","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"float"}],"returns":"float","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"time with time zone"}],"returns":"interval","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"timestamp with time zone"}],"returns":"interval","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"timestamp"}],"returns":"interval","nullable":true} +{"name":"mad","kind":"a","args":[{"type":"time"}],"returns":"interval","nullable":true} +{"name":"make_date","args":[{"type":"struct"}],"returns":"date"} +{"name":"make_date","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"}],"returns":"date"} +{"name":"make_date","args":[{"type":"integer"}],"returns":"date"} +{"name":"make_time","args":[{"type":"bigint"},{"type":"bigint"},{"type":"double"}],"returns":"time"} +{"name":"make_timestamp","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"double"}],"returns":"timestamp"} +{"name":"make_timestamp","args":[{"type":"bigint"}],"returns":"timestamp"} +{"name":"make_timestamp_ms","args":[{"type":"bigint"}],"returns":"timestamp"} +{"name":"make_timestamp_ns","args":[{"type":"bigint"}],"returns":"timestamp_ns"} +{"name":"make_timestamptz","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"double"},{"type":"varchar"}],"returns":"timestamp with time zone"} +{"name":"make_timestamptz","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"bigint"},{"type":"double"}],"returns":"timestamp with time zone"} +{"name":"make_timestamptz","args":[{"type":"bigint"}],"returns":"timestamp with time zone"} +{"name":"map","args":[{"type":"any[]"},{"type":"any[]"}],"returns":"map"} +{"name":"map","returns":"map"} +{"name":"map_concat","args":[{"type":"any","mode":"v"}],"returns":"list"} +{"name":"map_contains","args":[{"type":"map"},{"type":"any"}],"returns":"boolean"} +{"name":"map_entries","args":[{"type":"map"}],"returns":"struct[]"} +{"name":"map_extract","args":[{"type":"map"},{"type":"any"}],"returns":"any[]"} +{"name":"map_extract_value","args":[{"type":"map"},{"type":"any"}],"returns":"any"} +{"name":"map_from_entries","args":[{"type":"tuple[]"}],"returns":"map"} +{"name":"map_keys","args":[{"type":"map"}],"returns":"any[]"} +{"name":"map_values","args":[{"type":"map"}],"returns":"any[]"} +{"name":"max","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"max","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"max_by","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"md5","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"md5","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"md5_number","args":[{"type":"blob"}],"returns":"uhugeint"} +{"name":"md5_number","args":[{"type":"varchar"}],"returns":"uhugeint"} +{"name":"mean","kind":"a","args":[{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"integer"}],"returns":"double","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"interval"}],"returns":"interval","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"smallint"}],"returns":"double","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"time with time zone"}],"returns":"time with time zone","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"mean","kind":"a","args":[{"type":"time"}],"returns":"time","nullable":true} +{"name":"median","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"microsecond","args":[{"type":"date"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"time"}],"returns":"bigint"} +{"name":"microsecond","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"millennium","args":[{"type":"date"}],"returns":"bigint"} +{"name":"millennium","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"millennium","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"millennium","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"date"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"time"}],"returns":"bigint"} +{"name":"millisecond","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"min","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"min","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"any"},{"type":"bigint"}],"returns":"any[]","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"any"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"bigint"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"blob"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"date"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"hugeint"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"integer"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"timestamp with time zone"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"timestamp"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"any","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"blob"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"date"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"hugeint"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"timestamp with time zone"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"timestamp"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"bigint"},{"type":"varchar"}],"returns":"bigint","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"blob"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"date"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"double"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"hugeint"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"integer"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"timestamp with time zone"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"timestamp"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"blob"},{"type":"varchar"}],"returns":"blob","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"bigint"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"blob"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"date"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"hugeint"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"integer"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"timestamp with time zone"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"timestamp"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"date"},{"type":"varchar"}],"returns":"date","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"bigint"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"blob"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"date"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"hugeint"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"timestamp with time zone"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"timestamp"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"decimal"},{"type":"varchar"}],"returns":"decimal","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"bigint"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"blob"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"date"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"hugeint"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"timestamp with time zone"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"timestamp"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"double"},{"type":"varchar"}],"returns":"double","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"bigint"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"blob"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"date"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"hugeint"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"timestamp with time zone"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"timestamp"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"integer"},{"type":"varchar"}],"returns":"integer","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"bigint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"blob"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"date"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"hugeint"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"integer"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"timestamp"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"bigint"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"blob"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"date"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"hugeint"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"integer"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp with time zone"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"timestamp","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"blob"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"double"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"hugeint"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"integer"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar","nullable":true} +{"name":"min_by","kind":"a","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"minute","args":[{"type":"date"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"time"}],"returns":"bigint"} +{"name":"minute","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"mismatches","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"mod","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"mod","args":[{"type":"decimal"},{"type":"decimal"}],"returns":"decimal"} +{"name":"mod","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"mod","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"mod","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"mod","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"mod","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"mod","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"mod","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"mod","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"mod","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"mod","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"mod","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"mode","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"month","args":[{"type":"date"}],"returns":"bigint"} +{"name":"month","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"month","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"month","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"monthname","args":[{"type":"date"}],"returns":"varchar"} +{"name":"monthname","args":[{"type":"timestamp with time zone"}],"returns":"varchar"} +{"name":"monthname","args":[{"type":"timestamp"}],"returns":"varchar"} +{"name":"multiply","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"multiply","args":[{"type":"bigint"},{"type":"interval"}],"returns":"interval"} +{"name":"multiply","args":[{"type":"decimal"},{"type":"decimal"}],"returns":"decimal"} +{"name":"multiply","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"multiply","args":[{"type":"double"},{"type":"interval"}],"returns":"interval"} +{"name":"multiply","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"multiply","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"multiply","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"multiply","args":[{"type":"interval"},{"type":"bigint"}],"returns":"interval"} +{"name":"multiply","args":[{"type":"interval"},{"type":"double"}],"returns":"interval"} +{"name":"multiply","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"multiply","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"multiply","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"multiply","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"multiply","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"multiply","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"multiply","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"nanosecond","args":[{"type":"date"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"timestamptz_ns"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"timestamp_ns"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"time"}],"returns":"bigint"} +{"name":"nanosecond","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"nextafter","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"nextafter","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"nextval","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"nfc_normalize","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"normalized_interval","args":[{"type":"interval"}],"returns":"interval"} +{"name":"not_ilike_escape","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"not_like_escape","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"now","returns":"timestamp with time zone"} +{"name":"nth_value","kind":"w","args":[{"type":"any"},{"type":"bigint"}],"returns":"any"} +{"name":"ntile","kind":"w","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"octet_length","args":[{"type":"bit"}],"returns":"bigint"} +{"name":"octet_length","args":[{"type":"blob"}],"returns":"bigint"} +{"name":"ord","args":[{"type":"varchar"}],"returns":"integer"} +{"name":"overlay","args":[{"type":"varchar"},{"type":"varchar"},{"type":"bigint"},{"type":"bigint"}],"returns":"varchar"} +{"name":"overlay","args":[{"type":"varchar"},{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"parse_dirname","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_dirname","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_dirpath","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_dirpath","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_duckdb_log_message","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"any"} +{"name":"parse_filename","args":[{"type":"varchar"},{"type":"boolean"},{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_filename","args":[{"type":"varchar"},{"type":"boolean"}],"returns":"varchar"} +{"name":"parse_filename","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_filename","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"parse_formatted_bytes","args":[{"type":"varchar"}],"returns":"ubigint"} +{"name":"parse_path","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"parse_path","args":[{"type":"varchar"}],"returns":"varchar[]"} +{"name":"path_join","args":[{"type":"varchar"},{"type":"varchar","mode":"v"}],"returns":"varchar"} +{"name":"percent_rank","kind":"w","returns":"double"} +{"name":"pi","returns":"double"} +{"name":"position","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"pow","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"power","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"prefix","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"printf","args":[{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"varchar"} +{"name":"product","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"quantile","kind":"a","args":[{"type":"any"},{"type":"double[]"}],"returns":"any","nullable":true} +{"name":"quantile","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"quantile","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"bigint"},{"type":"double[]"}],"returns":"bigint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"date"},{"type":"double[]"}],"returns":"date","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"date"},{"type":"double"}],"returns":"date","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"decimal"},{"type":"double[]"}],"returns":"decimal","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"double"},{"type":"double[]"}],"returns":"double","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"float"},{"type":"double[]"}],"returns":"float","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"float"},{"type":"double"}],"returns":"float","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"hugeint"},{"type":"double[]"}],"returns":"hugeint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"hugeint"},{"type":"double"}],"returns":"hugeint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"integer"},{"type":"double[]"}],"returns":"integer","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"smallint"},{"type":"double[]"}],"returns":"smallint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"smallint"},{"type":"double"}],"returns":"smallint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"time with time zone"},{"type":"double[]"}],"returns":"time with time zone","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"time with time zone"},{"type":"double"}],"returns":"time with time zone","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"time"},{"type":"double[]"}],"returns":"time","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"time"},{"type":"double"}],"returns":"time","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double[]"}],"returns":"timestamp with time zone","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamp with time zone"},{"type":"double"}],"returns":"timestamp with time zone","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamp"},{"type":"double[]"}],"returns":"timestamp","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamp"},{"type":"double"}],"returns":"timestamp","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamptz_ns"},{"type":"double[]"}],"returns":"timestamptz_ns","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"timestamptz_ns"},{"type":"double"}],"returns":"timestamptz_ns","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"tinyint"},{"type":"double[]"}],"returns":"tinyint","nullable":true} +{"name":"quantile_cont","kind":"a","args":[{"type":"tinyint"},{"type":"double"}],"returns":"tinyint","nullable":true} +{"name":"quantile_disc","kind":"a","args":[{"type":"any"},{"type":"double[]"}],"returns":"any","nullable":true} +{"name":"quantile_disc","kind":"a","args":[{"type":"any"},{"type":"double"}],"returns":"any","nullable":true} +{"name":"quantile_disc","kind":"a","args":[{"type":"any"}],"returns":"any","nullable":true} +{"name":"quarter","args":[{"type":"date"}],"returns":"bigint"} +{"name":"quarter","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"quarter","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"quarter","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"radians","args":[{"type":"double"}],"returns":"double"} +{"name":"random","returns":"double"} +{"name":"range","args":[{"type":"bigint"},{"type":"bigint"},{"type":"bigint"}],"returns":"bigint[]"} +{"name":"range","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint[]"} +{"name":"range","args":[{"type":"bigint"}],"returns":"bigint[]"} +{"name":"range","args":[{"type":"timestamp with time zone"},{"type":"timestamp with time zone"},{"type":"interval"}],"returns":"timestamp with time zone[]"} +{"name":"range","args":[{"type":"timestamp"},{"type":"timestamp"},{"type":"interval"}],"returns":"timestamp[]"} +{"name":"rank","kind":"w","returns":"bigint"} +{"name":"rank_dense","kind":"w","returns":"bigint"} +{"name":"regexp_escape","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_extract","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar[]"},{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_extract","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar"} +{"name":"regexp_extract","args":[{"type":"varchar"},{"type":"varchar"},{"type":"integer"},{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_extract","args":[{"type":"varchar"},{"type":"varchar"},{"type":"integer"}],"returns":"varchar"} +{"name":"regexp_extract","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_extract_all","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar[]"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"regexp_extract_all","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"regexp_extract_all","args":[{"type":"varchar"},{"type":"varchar"},{"type":"integer"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"regexp_extract_all","args":[{"type":"varchar"},{"type":"varchar"},{"type":"integer"}],"returns":"varchar[]"} +{"name":"regexp_extract_all","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"regexp_full_match","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"regexp_full_match","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"regexp_matches","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"regexp_matches","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"regexp_replace","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_replace","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"regexp_split_to_array","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"regexp_split_to_array","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"regr_avgx","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_avgy","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_count","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"uinteger","nullable":true} +{"name":"regr_intercept","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_r2","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_slope","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_sxx","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_sxy","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"regr_syy","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"remap_struct","args":[{"type":"any"},{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"repeat","args":[{"type":"any[]"},{"type":"bigint"}],"returns":"any[]"} +{"name":"repeat","args":[{"type":"blob"},{"type":"bigint"}],"returns":"blob"} +{"name":"repeat","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"replace","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"replace_type","args":[{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"bigint"},{"type":"double[]"},{"type":"integer"}],"returns":"bigint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"bigint"},{"type":"double[]"}],"returns":"bigint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"bigint"},{"type":"double"},{"type":"integer"}],"returns":"bigint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"bigint"},{"type":"double"}],"returns":"bigint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"decimal"},{"type":"double[]"},{"type":"integer"}],"returns":"decimal[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"decimal"},{"type":"double[]"}],"returns":"decimal[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"decimal"},{"type":"double"},{"type":"integer"}],"returns":"decimal","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"decimal"},{"type":"double"}],"returns":"decimal","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"double"},{"type":"double[]"},{"type":"integer"}],"returns":"double[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"double"},{"type":"double[]"}],"returns":"double[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"double"},{"type":"double"},{"type":"integer"}],"returns":"double","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"double"},{"type":"double"}],"returns":"double","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"float"},{"type":"double[]"},{"type":"integer"}],"returns":"float[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"float"},{"type":"double[]"}],"returns":"float[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"float"},{"type":"double"},{"type":"integer"}],"returns":"float","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"float"},{"type":"double"}],"returns":"float","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"double[]"},{"type":"integer"}],"returns":"hugeint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"double[]"}],"returns":"hugeint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"double"},{"type":"integer"}],"returns":"hugeint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"hugeint"},{"type":"double"}],"returns":"hugeint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"integer"},{"type":"double[]"},{"type":"integer"}],"returns":"integer[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"integer"},{"type":"double[]"}],"returns":"integer[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"integer"},{"type":"double"},{"type":"integer"}],"returns":"integer","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"integer"},{"type":"double"}],"returns":"integer","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"smallint"},{"type":"double[]"},{"type":"integer"}],"returns":"smallint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"smallint"},{"type":"double[]"}],"returns":"smallint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"smallint"},{"type":"double"},{"type":"integer"}],"returns":"smallint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"smallint"},{"type":"double"}],"returns":"smallint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"tinyint"},{"type":"double[]"},{"type":"integer"}],"returns":"tinyint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"tinyint"},{"type":"double[]"}],"returns":"tinyint[]","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"tinyint"},{"type":"double"},{"type":"integer"}],"returns":"tinyint","nullable":true} +{"name":"reservoir_quantile","kind":"a","args":[{"type":"tinyint"},{"type":"double"}],"returns":"tinyint","nullable":true} +{"name":"reverse","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"right","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"right_grapheme","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"round","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint"} +{"name":"round","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"round","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal"} +{"name":"round","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"round","args":[{"type":"double"},{"type":"integer"}],"returns":"double"} +{"name":"round","args":[{"type":"double"}],"returns":"double"} +{"name":"round","args":[{"type":"float"},{"type":"integer"}],"returns":"float"} +{"name":"round","args":[{"type":"float"}],"returns":"float"} +{"name":"round","args":[{"type":"hugeint"},{"type":"integer"}],"returns":"hugeint"} +{"name":"round","args":[{"type":"hugeint"}],"returns":"hugeint"} +{"name":"round","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"round","args":[{"type":"integer"}],"returns":"integer"} +{"name":"round","args":[{"type":"smallint"},{"type":"integer"}],"returns":"smallint"} +{"name":"round","args":[{"type":"smallint"}],"returns":"smallint"} +{"name":"round","args":[{"type":"tinyint"},{"type":"integer"}],"returns":"tinyint"} +{"name":"round","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"row","args":[{"type":"any","mode":"v"}],"returns":"tuple"} +{"name":"row_number","kind":"w","returns":"bigint"} +{"name":"row_to_json","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"rpad","args":[{"type":"varchar"},{"type":"integer"},{"type":"varchar"}],"returns":"varchar"} +{"name":"rtrim","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"rtrim","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"second","args":[{"type":"date"}],"returns":"bigint"} +{"name":"second","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"second","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"second","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"second","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"second","args":[{"type":"time"}],"returns":"bigint"} +{"name":"second","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"sem","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"set_bit","args":[{"type":"bit"},{"type":"integer"},{"type":"integer"}],"returns":"bit"} +{"name":"setval","args":[{"type":"varchar"},{"type":"bigint"},{"type":"boolean"}],"returns":"bigint"} +{"name":"setval","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"bigint"} +{"name":"sha1","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"sha1","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"sha256","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"sha256","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"sign","args":[{"type":"bigint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"double"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"float"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"hugeint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"integer"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"smallint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"ubigint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"uhugeint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"uinteger"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"usmallint"}],"returns":"tinyint"} +{"name":"sign","args":[{"type":"utinyint"}],"returns":"tinyint"} +{"name":"signbit","args":[{"type":"double"}],"returns":"boolean"} +{"name":"signbit","args":[{"type":"float"}],"returns":"boolean"} +{"name":"sin","args":[{"type":"double"}],"returns":"double"} +{"name":"sinh","args":[{"type":"double"}],"returns":"double"} +{"name":"skewness","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"split","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"sqrt","args":[{"type":"double"}],"returns":"double"} +{"name":"st_asbinary","args":[{"type":"geometry"}],"returns":"blob"} +{"name":"st_asgeojson","args":[{"type":"geometry"}],"returns":"json"} +{"name":"st_astext","args":[{"type":"geometry"}],"returns":"varchar"} +{"name":"st_aswkb","args":[{"type":"geometry"}],"returns":"blob"} +{"name":"st_aswkt","args":[{"type":"geometry"}],"returns":"varchar"} +{"name":"st_crs","args":[{"type":"geometry"}],"returns":"varchar"} +{"name":"st_geomfromgeojson","args":[{"type":"json"}],"returns":"geometry"} +{"name":"st_geomfromgeojson","args":[{"type":"varchar"}],"returns":"geometry"} +{"name":"st_geomfromwkb","args":[{"type":"blob"}],"returns":"geometry"} +{"name":"st_intersects_extent","args":[{"type":"geometry"},{"type":"geometry"}],"returns":"boolean"} +{"name":"st_setcrs","args":[{"type":"geometry"},{"type":"varchar"}],"returns":"geometry"} +{"name":"starts_with","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"stats","args":[{"type":"any"}],"returns":"variant"} +{"name":"stddev","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"stddev_pop","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"stddev_samp","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"str_split","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"str_split_regex","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"str_split_regex","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"strftime","args":[{"type":"date"},{"type":"varchar"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"timestamp"},{"type":"varchar"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"timestamptz_ns"},{"type":"varchar"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"timestamp_ns"},{"type":"varchar"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"varchar"},{"type":"date"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"varchar"},{"type":"timestamptz_ns"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"varchar"} +{"name":"strftime","args":[{"type":"varchar"},{"type":"timestamp_ns"}],"returns":"varchar"} +{"name":"string_agg","kind":"a","args":[{"type":"any"},{"type":"varchar"}],"returns":"varchar","nullable":true} +{"name":"string_agg","kind":"a","args":[{"type":"any"}],"returns":"varchar","nullable":true} +{"name":"string_split","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"string_split_regex","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"string_split_regex","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"string_to_array","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"strip_accents","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"strlen","args":[{"type":"varchar"}],"returns":"bigint"} +{"name":"strpos","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"bigint"} +{"name":"strptime","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"timestamp"} +{"name":"strptime","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"timestamp"} +{"name":"struct_concat","args":[{"type":"any","mode":"v"}],"returns":"struct"} +{"name":"struct_contains","args":[{"type":"tuple"},{"type":"any"}],"returns":"boolean"} +{"name":"struct_extract","args":[{"type":"struct"},{"type":"varchar"}],"returns":"any"} +{"name":"struct_extract","args":[{"type":"tuple"},{"type":"bigint"}],"returns":"any"} +{"name":"struct_extract_at","args":[{"type":"struct"},{"type":"bigint"}],"returns":"any"} +{"name":"struct_has","args":[{"type":"tuple"},{"type":"any"}],"returns":"boolean"} +{"name":"struct_indexof","args":[{"type":"tuple"},{"type":"any"}],"returns":"integer"} +{"name":"struct_insert","args":[{"type":"any","mode":"v"}],"returns":"struct"} +{"name":"struct_keys","args":[{"type":"any"}],"returns":"varchar[]"} +{"name":"struct_pack","args":[{"type":"any","mode":"v"}],"returns":"struct"} +{"name":"struct_position","args":[{"type":"tuple"},{"type":"any"}],"returns":"integer"} +{"name":"struct_update","args":[{"type":"any","mode":"v"}],"returns":"struct"} +{"name":"struct_values","args":[{"type":"struct"}],"returns":"tuple"} +{"name":"substr","args":[{"type":"varchar"},{"type":"bigint"},{"type":"bigint"}],"returns":"varchar"} +{"name":"substr","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"substring","args":[{"type":"varchar"},{"type":"bigint"},{"type":"bigint"}],"returns":"varchar"} +{"name":"substring","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"substring_grapheme","args":[{"type":"varchar"},{"type":"bigint"},{"type":"bigint"}],"returns":"varchar"} +{"name":"substring_grapheme","args":[{"type":"varchar"},{"type":"bigint"}],"returns":"varchar"} +{"name":"subtract","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"subtract","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"subtract","args":[{"type":"bignum"},{"type":"bignum"}],"returns":"bignum"} +{"name":"subtract","args":[{"type":"bignum"}],"returns":"bignum"} +{"name":"subtract","args":[{"type":"date"},{"type":"date"}],"returns":"bigint"} +{"name":"subtract","args":[{"type":"date"},{"type":"integer"}],"returns":"date"} +{"name":"subtract","args":[{"type":"date"},{"type":"interval"}],"returns":"timestamp"} +{"name":"subtract","args":[{"type":"decimal"},{"type":"decimal"}],"returns":"decimal"} +{"name":"subtract","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"subtract","args":[{"type":"double"},{"type":"double"}],"returns":"double"} +{"name":"subtract","args":[{"type":"double"}],"returns":"double"} +{"name":"subtract","args":[{"type":"float"},{"type":"float"}],"returns":"float"} +{"name":"subtract","args":[{"type":"float"}],"returns":"float"} +{"name":"subtract","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"subtract","args":[{"type":"hugeint"}],"returns":"hugeint"} +{"name":"subtract","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"subtract","args":[{"type":"integer"}],"returns":"integer"} +{"name":"subtract","args":[{"type":"interval"},{"type":"interval"}],"returns":"interval"} +{"name":"subtract","args":[{"type":"interval"}],"returns":"interval"} +{"name":"subtract","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"subtract","args":[{"type":"smallint"}],"returns":"smallint"} +{"name":"subtract","args":[{"type":"time with time zone"},{"type":"interval"}],"returns":"time with time zone"} +{"name":"subtract","args":[{"type":"time"},{"type":"interval"}],"returns":"time"} +{"name":"subtract","args":[{"type":"timestamp"},{"type":"interval"}],"returns":"timestamp"} +{"name":"subtract","args":[{"type":"timestamp"},{"type":"timestamp"}],"returns":"interval"} +{"name":"subtract","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"subtract","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"subtract","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"subtract","args":[{"type":"ubigint"}],"returns":"ubigint"} +{"name":"subtract","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"subtract","args":[{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"subtract","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"subtract","args":[{"type":"uinteger"}],"returns":"uinteger"} +{"name":"subtract","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"subtract","args":[{"type":"usmallint"}],"returns":"usmallint"} +{"name":"subtract","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"subtract","args":[{"type":"utinyint"}],"returns":"utinyint"} +{"name":"suffix","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"boolean"} +{"name":"sum","kind":"a","args":[{"type":"bigint"}],"returns":"hugeint","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"bignum"}],"returns":"bignum","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"boolean"}],"returns":"hugeint","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"hugeint"}],"returns":"hugeint","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"integer"}],"returns":"hugeint","nullable":true} +{"name":"sum","kind":"a","args":[{"type":"smallint"}],"returns":"hugeint","nullable":true} +{"name":"sum_no_overflow","kind":"a","args":[{"type":"bigint"}],"returns":"hugeint","nullable":true} +{"name":"sum_no_overflow","kind":"a","args":[{"type":"decimal"}],"returns":"decimal","nullable":true} +{"name":"sum_no_overflow","kind":"a","args":[{"type":"integer"}],"returns":"hugeint","nullable":true} +{"name":"sumkahan","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"switch","args":[{"type":"map"},{"type":"any"}],"returns":"any"} +{"name":"switch","args":[{"type":"map"}],"returns":"any"} +{"name":"switch","args":[{"type":"any"},{"type":"map"},{"type":"any"}],"returns":"any"} +{"name":"switch","args":[{"type":"any"},{"type":"map"}],"returns":"any"} +{"name":"tan","args":[{"type":"double"}],"returns":"double"} +{"name":"tanh","args":[{"type":"double"}],"returns":"double"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"date"},{"type":"date"}],"returns":"date"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"date"},{"type":"interval"}],"returns":"date"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"date"}],"returns":"date"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"time"},{"type":"interval"}],"returns":"time"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"time"},{"type":"time"}],"returns":"time"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp with time zone"},{"type":"interval"}],"returns":"timestamp with time zone"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp with time zone"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp with time zone"},{"type":"varchar"}],"returns":"timestamp with time zone"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp with time zone"}],"returns":"timestamp with time zone"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp"},{"type":"interval"}],"returns":"timestamp"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp"},{"type":"timestamp"}],"returns":"timestamp"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"timestamp"}],"returns":"timestamp"} +{"name":"time_bucket","args":[{"type":"interval"},{"type":"time"}],"returns":"time"} +{"name":"timetz_byte_comparable","args":[{"type":"time with time zone"}],"returns":"ubigint"} +{"name":"timezone","args":[{"type":"date"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"interval"},{"type":"time with time zone"}],"returns":"time with time zone"} +{"name":"timezone","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"time"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"timezone","args":[{"type":"varchar"},{"type":"time with time zone"}],"returns":"time with time zone"} +{"name":"timezone","args":[{"type":"varchar"},{"type":"timestamp with time zone"}],"returns":"timestamp"} +{"name":"timezone","args":[{"type":"varchar"},{"type":"timestamp"}],"returns":"timestamp with time zone"} +{"name":"timezone_hour","args":[{"type":"date"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"time"}],"returns":"bigint"} +{"name":"timezone_hour","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"date"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"time with time zone"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"time"}],"returns":"bigint"} +{"name":"timezone_minute","args":[{"type":"time_ns"}],"returns":"bigint"} +{"name":"to_aggregate_state","args":[{"type":"any"},{"type":"varchar"},{"type":"any[]"},{"type":"any"},{"type":"any"}],"returns":"any"} +{"name":"to_aggregate_state","args":[{"type":"any"},{"type":"varchar"},{"type":"any[]"},{"type":"any"}],"returns":"any"} +{"name":"to_aggregate_state","args":[{"type":"any"},{"type":"varchar"},{"type":"any[]"}],"returns":"any"} +{"name":"to_base","args":[{"type":"bigint"},{"type":"integer"},{"type":"integer"}],"returns":"varchar"} +{"name":"to_base","args":[{"type":"bigint"},{"type":"integer"}],"returns":"varchar"} +{"name":"to_base64","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"bigint"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"bignum"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"hugeint"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"ubigint"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"uhugeint"}],"returns":"varchar"} +{"name":"to_binary","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"to_centuries","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_centuries","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_days","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_days","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_decades","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_decades","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_hex","args":[{"type":"bigint"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"bignum"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"blob"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"hugeint"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"ubigint"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"uhugeint"}],"returns":"varchar"} +{"name":"to_hex","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"to_hours","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_json","args":[{"type":"any","mode":"v"}],"returns":"json"} +{"name":"to_microseconds","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_millennia","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_millennia","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_milliseconds","args":[{"type":"double"}],"returns":"interval"} +{"name":"to_minutes","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_months","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_months","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_quarters","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_quarters","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_seconds","args":[{"type":"double"}],"returns":"interval"} +{"name":"to_timestamp","args":[{"type":"double"}],"returns":"timestamp with time zone"} +{"name":"to_weeks","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_weeks","args":[{"type":"integer"}],"returns":"interval"} +{"name":"to_years","args":[{"type":"bigint"}],"returns":"interval"} +{"name":"to_years","args":[{"type":"integer"}],"returns":"interval"} +{"name":"today","returns":"date"} +{"name":"transaction_timestamp","returns":"timestamp with time zone"} +{"name":"translate","args":[{"type":"varchar"},{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"trim","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"varchar"} +{"name":"trim","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"trunc","args":[{"type":"bigint"},{"type":"integer"}],"returns":"bigint"} +{"name":"trunc","args":[{"type":"bigint"}],"returns":"bigint"} +{"name":"trunc","args":[{"type":"decimal"},{"type":"integer"}],"returns":"decimal"} +{"name":"trunc","args":[{"type":"decimal"}],"returns":"decimal"} +{"name":"trunc","args":[{"type":"double"},{"type":"integer"}],"returns":"double"} +{"name":"trunc","args":[{"type":"double"}],"returns":"double"} +{"name":"trunc","args":[{"type":"float"},{"type":"integer"}],"returns":"float"} +{"name":"trunc","args":[{"type":"float"}],"returns":"float"} +{"name":"trunc","args":[{"type":"hugeint"},{"type":"integer"}],"returns":"hugeint"} +{"name":"trunc","args":[{"type":"hugeint"}],"returns":"hugeint"} +{"name":"trunc","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"trunc","args":[{"type":"integer"}],"returns":"integer"} +{"name":"trunc","args":[{"type":"smallint"},{"type":"integer"}],"returns":"smallint"} +{"name":"trunc","args":[{"type":"smallint"}],"returns":"smallint"} +{"name":"trunc","args":[{"type":"tinyint"},{"type":"integer"}],"returns":"tinyint"} +{"name":"trunc","args":[{"type":"tinyint"}],"returns":"tinyint"} +{"name":"trunc","args":[{"type":"ubigint"},{"type":"integer"}],"returns":"ubigint"} +{"name":"trunc","args":[{"type":"ubigint"}],"returns":"ubigint"} +{"name":"trunc","args":[{"type":"uhugeint"},{"type":"integer"}],"returns":"uhugeint"} +{"name":"trunc","args":[{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"trunc","args":[{"type":"uinteger"},{"type":"integer"}],"returns":"uinteger"} +{"name":"trunc","args":[{"type":"uinteger"}],"returns":"uinteger"} +{"name":"trunc","args":[{"type":"usmallint"},{"type":"integer"}],"returns":"usmallint"} +{"name":"trunc","args":[{"type":"usmallint"}],"returns":"usmallint"} +{"name":"trunc","args":[{"type":"utinyint"},{"type":"integer"}],"returns":"utinyint"} +{"name":"trunc","args":[{"type":"utinyint"}],"returns":"utinyint"} +{"name":"try_strptime","args":[{"type":"varchar"},{"type":"varchar[]"}],"returns":"timestamp"} +{"name":"try_strptime","args":[{"type":"varchar"},{"type":"varchar"}],"returns":"timestamp"} +{"name":"txid_current","returns":"ubigint"} +{"name":"typeof","args":[{"type":"any"}],"returns":"varchar"} +{"name":"ucase","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"unbin","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"unhex","args":[{"type":"varchar"}],"returns":"blob"} +{"name":"unicode","args":[{"type":"varchar"}],"returns":"integer"} +{"name":"union_extract","args":[{"type":"union"},{"type":"varchar"}],"returns":"any"} +{"name":"union_tag","args":[{"type":"union"}],"returns":"any"} +{"name":"union_value","args":[{"type":"any","mode":"v"}],"returns":"union"} +{"name":"unpivot_list","args":[{"type":"any","mode":"v"}],"returns":"list"} +{"name":"upper","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"url_decode","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"url_encode","args":[{"type":"varchar"}],"returns":"varchar"} +{"name":"uuid","returns":"uuid"} +{"name":"uuid_extract_timestamp","args":[{"type":"uuid"}],"returns":"timestamp with time zone"} +{"name":"uuid_extract_version","args":[{"type":"uuid"}],"returns":"uinteger"} +{"name":"uuidv4","returns":"uuid"} +{"name":"uuidv7","returns":"uuid"} +{"name":"var_pop","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"var_samp","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"variance","kind":"a","args":[{"type":"double"}],"returns":"double","nullable":true} +{"name":"variant_array_length","args":[{"type":"variant"},{"type":"varchar[]"}],"returns":"ubigint[]"} +{"name":"variant_array_length","args":[{"type":"variant"},{"type":"varchar"}],"returns":"ubigint"} +{"name":"variant_array_length","args":[{"type":"variant"}],"returns":"ubigint"} +{"name":"variant_bytes_to_variant","args":[{"type":"blob"}],"returns":"variant"} +{"name":"variant_comparator","args":[{"type":"variant"}],"returns":"blob"} +{"name":"variant_contains","args":[{"type":"variant"},{"type":"variant"}],"returns":"boolean"} +{"name":"variant_exists","args":[{"type":"variant"},{"type":"varchar[]"}],"returns":"boolean[]"} +{"name":"variant_exists","args":[{"type":"variant"},{"type":"varchar"}],"returns":"boolean"} +{"name":"variant_extract","args":[{"type":"variant"},{"type":"uinteger"}],"returns":"variant"} +{"name":"variant_extract","args":[{"type":"variant"},{"type":"varchar"}],"returns":"variant"} +{"name":"variant_extract_string","args":[{"type":"variant"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"variant_extract_string","args":[{"type":"variant"},{"type":"varchar"}],"returns":"varchar"} +{"name":"variant_keys","args":[{"type":"variant"},{"type":"varchar[]"}],"returns":"varchar[][]"} +{"name":"variant_keys","args":[{"type":"variant"},{"type":"varchar"}],"returns":"varchar[]"} +{"name":"variant_keys","args":[{"type":"variant"}],"returns":"varchar[]"} +{"name":"variant_normalize","args":[{"type":"variant"}],"returns":"variant"} +{"name":"variant_to_parquet_variant","args":[{"type":"variant"}],"returns":"any"} +{"name":"variant_type","args":[{"type":"variant"},{"type":"varchar[]"}],"returns":"varchar[]"} +{"name":"variant_type","args":[{"type":"variant"},{"type":"varchar"}],"returns":"varchar"} +{"name":"variant_type","args":[{"type":"variant"}],"returns":"varchar"} +{"name":"variant_typeof","args":[{"type":"variant"}],"returns":"varchar"} +{"name":"vector_type","args":[{"type":"any"}],"returns":"varchar"} +{"name":"version","returns":"varchar"} +{"name":"vertex_extract","args":[{"type":"geometry"},{"type":"varchar"}],"returns":"double"} +{"name":"week","args":[{"type":"date"}],"returns":"bigint"} +{"name":"week","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"week","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"week","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"weekday","args":[{"type":"date"}],"returns":"bigint"} +{"name":"weekday","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"weekday","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"weekday","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"weekofyear","args":[{"type":"date"}],"returns":"bigint"} +{"name":"weekofyear","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"weekofyear","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"weekofyear","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"write_log","args":[{"type":"varchar"},{"type":"any","mode":"v"}],"returns":"any"} +{"name":"xor","args":[{"type":"bigint"},{"type":"bigint"}],"returns":"bigint"} +{"name":"xor","args":[{"type":"bit"},{"type":"bit"}],"returns":"bit"} +{"name":"xor","args":[{"type":"hugeint"},{"type":"hugeint"}],"returns":"hugeint"} +{"name":"xor","args":[{"type":"integer"},{"type":"integer"}],"returns":"integer"} +{"name":"xor","args":[{"type":"smallint"},{"type":"smallint"}],"returns":"smallint"} +{"name":"xor","args":[{"type":"tinyint"},{"type":"tinyint"}],"returns":"tinyint"} +{"name":"xor","args":[{"type":"ubigint"},{"type":"ubigint"}],"returns":"ubigint"} +{"name":"xor","args":[{"type":"uhugeint"},{"type":"uhugeint"}],"returns":"uhugeint"} +{"name":"xor","args":[{"type":"uinteger"},{"type":"uinteger"}],"returns":"uinteger"} +{"name":"xor","args":[{"type":"usmallint"},{"type":"usmallint"}],"returns":"usmallint"} +{"name":"xor","args":[{"type":"utinyint"},{"type":"utinyint"}],"returns":"utinyint"} +{"name":"year","args":[{"type":"date"}],"returns":"bigint"} +{"name":"year","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"year","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"year","args":[{"type":"timestamp"}],"returns":"bigint"} +{"name":"yearweek","args":[{"type":"date"}],"returns":"bigint"} +{"name":"yearweek","args":[{"type":"interval"}],"returns":"bigint"} +{"name":"yearweek","args":[{"type":"timestamp with time zone"}],"returns":"bigint"} +{"name":"yearweek","args":[{"type":"timestamp"}],"returns":"bigint"} diff --git a/internal/engine/duckdb/dialect/operators.jsonl b/internal/engine/duckdb/dialect/operators.jsonl new file mode 100644 index 0000000000..cb8789149c --- /dev/null +++ b/internal/engine/duckdb/dialect/operators.jsonl @@ -0,0 +1,157 @@ +{"name":"!~~","left":"varchar","right":"varchar","result":"boolean"} +{"name":"!~~*","left":"varchar","right":"varchar","result":"boolean"} +{"name":"%","left":"bigint","right":"bigint","result":"bigint"} +{"name":"%","left":"decimal","right":"decimal","result":"decimal"} +{"name":"%","left":"double","right":"double","result":"double"} +{"name":"%","left":"float","right":"float","result":"float"} +{"name":"%","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"%","left":"integer","right":"integer","result":"integer"} +{"name":"%","left":"smallint","right":"smallint","result":"smallint"} +{"name":"%","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"%","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"%","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"%","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"%","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"%","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"\u0026","left":"bigint","right":"bigint","result":"bigint"} +{"name":"\u0026","left":"bit","right":"bit","result":"bit"} +{"name":"\u0026","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"\u0026","left":"integer","right":"integer","result":"integer"} +{"name":"\u0026","left":"smallint","right":"smallint","result":"smallint"} +{"name":"\u0026","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"\u0026","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"\u0026","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"\u0026","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"\u0026","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"\u0026","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"\u0026\u0026","left":"geometry","right":"geometry","result":"boolean"} +{"name":"*","left":"bigint","right":"bigint","result":"bigint"} +{"name":"*","left":"bigint","right":"interval","result":"interval"} +{"name":"*","left":"decimal","right":"decimal","result":"decimal"} +{"name":"*","left":"double","right":"double","result":"double"} +{"name":"*","left":"double","right":"interval","result":"interval"} +{"name":"*","left":"float","right":"float","result":"float"} +{"name":"*","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"*","left":"integer","right":"integer","result":"integer"} +{"name":"*","left":"interval","right":"bigint","result":"interval"} +{"name":"*","left":"interval","right":"double","result":"interval"} +{"name":"*","left":"smallint","right":"smallint","result":"smallint"} +{"name":"*","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"*","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"*","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"*","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"*","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"*","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"**","left":"double","right":"double","result":"double"} +{"name":"+","left":"bigint","right":"bigint","result":"bigint"} +{"name":"+","left":"bignum","right":"bignum","result":"bignum"} +{"name":"+","left":"date","right":"integer","result":"date"} +{"name":"+","left":"date","right":"interval","result":"timestamp"} +{"name":"+","left":"date","right":"time with time zone","result":"timestamp with time zone"} +{"name":"+","left":"date","right":"time","result":"timestamp"} +{"name":"+","left":"decimal","right":"decimal","result":"decimal"} +{"name":"+","left":"double","right":"double","result":"double"} +{"name":"+","left":"float","right":"float","result":"float"} +{"name":"+","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"+","left":"integer","right":"date","result":"date"} +{"name":"+","left":"integer","right":"integer","result":"integer"} +{"name":"+","left":"interval","right":"date","result":"timestamp"} +{"name":"+","left":"interval","right":"interval","result":"interval"} +{"name":"+","left":"interval","right":"time with time zone","result":"time with time zone"} +{"name":"+","left":"interval","right":"timestamp with time zone","result":"timestamp with time zone"} +{"name":"+","left":"interval","right":"timestamp","result":"timestamp"} +{"name":"+","left":"interval","right":"time","result":"time"} +{"name":"+","left":"smallint","right":"smallint","result":"smallint"} +{"name":"+","left":"time with time zone","right":"date","result":"timestamp with time zone"} +{"name":"+","left":"time with time zone","right":"interval","result":"time with time zone"} +{"name":"+","left":"time","right":"date","result":"timestamp"} +{"name":"+","left":"time","right":"interval","result":"time"} +{"name":"+","left":"timestamp with time zone","right":"interval","result":"timestamp with time zone"} +{"name":"+","left":"timestamp","right":"interval","result":"timestamp"} +{"name":"+","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"+","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"+","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"+","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"+","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"+","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"-","left":"bigint","right":"bigint","result":"bigint"} +{"name":"-","left":"bignum","right":"bignum","result":"bignum"} +{"name":"-","left":"date","right":"date","result":"bigint"} +{"name":"-","left":"date","right":"integer","result":"date"} +{"name":"-","left":"date","right":"interval","result":"timestamp"} +{"name":"-","left":"decimal","right":"decimal","result":"decimal"} +{"name":"-","left":"double","right":"double","result":"double"} +{"name":"-","left":"float","right":"float","result":"float"} +{"name":"-","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"-","left":"integer","right":"integer","result":"integer"} +{"name":"-","left":"interval","right":"interval","result":"interval"} +{"name":"-","left":"smallint","right":"smallint","result":"smallint"} +{"name":"-","left":"time with time zone","right":"interval","result":"time with time zone"} +{"name":"-","left":"time","right":"interval","result":"time"} +{"name":"-","left":"timestamp with time zone","right":"interval","result":"timestamp with time zone"} +{"name":"-","left":"timestamp with time zone","right":"timestamp with time zone","result":"interval"} +{"name":"-","left":"timestamp","right":"interval","result":"timestamp"} +{"name":"-","left":"timestamp","right":"timestamp","result":"interval"} +{"name":"-","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"-","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"-","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"-","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"-","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"-","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"-\u003e\u003e","left":"json","right":"bigint","result":"varchar"} +{"name":"-\u003e\u003e","left":"json","right":"varchar","result":"varchar"} +{"name":"-\u003e\u003e","left":"varchar","right":"bigint","result":"varchar"} +{"name":"-\u003e\u003e","left":"varchar","right":"varchar","result":"varchar"} +{"name":"/","left":"double","right":"double","result":"double"} +{"name":"/","left":"float","right":"float","result":"float"} +{"name":"/","left":"interval","right":"double","result":"interval"} +{"name":"//","left":"bigint","right":"bigint","result":"bigint"} +{"name":"//","left":"double","right":"double","result":"double"} +{"name":"//","left":"float","right":"float","result":"float"} +{"name":"//","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"//","left":"integer","right":"integer","result":"integer"} +{"name":"//","left":"smallint","right":"smallint","result":"smallint"} +{"name":"//","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"//","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"//","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"//","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"//","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"//","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"\u003c\u003c","left":"bigint","right":"bigint","result":"bigint"} +{"name":"\u003c\u003c","left":"bit","right":"integer","result":"bit"} +{"name":"\u003c\u003c","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"\u003c\u003c","left":"integer","right":"integer","result":"integer"} +{"name":"\u003c\u003c","left":"smallint","right":"smallint","result":"smallint"} +{"name":"\u003c\u003c","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"\u003c\u003c","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"\u003c\u003c","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"\u003c\u003c","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"\u003c\u003c","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"\u003c\u003c","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"\u003e\u003e","left":"bigint","right":"bigint","result":"bigint"} +{"name":"\u003e\u003e","left":"bit","right":"integer","result":"bit"} +{"name":"\u003e\u003e","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"\u003e\u003e","left":"integer","right":"integer","result":"integer"} +{"name":"\u003e\u003e","left":"smallint","right":"smallint","result":"smallint"} +{"name":"\u003e\u003e","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"\u003e\u003e","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"\u003e\u003e","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"\u003e\u003e","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"\u003e\u003e","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"\u003e\u003e","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"^","left":"double","right":"double","result":"double"} +{"name":"^@","left":"varchar","right":"varchar","result":"boolean"} +{"name":"|","left":"bigint","right":"bigint","result":"bigint"} +{"name":"|","left":"bit","right":"bit","result":"bit"} +{"name":"|","left":"hugeint","right":"hugeint","result":"hugeint"} +{"name":"|","left":"integer","right":"integer","result":"integer"} +{"name":"|","left":"smallint","right":"smallint","result":"smallint"} +{"name":"|","left":"tinyint","right":"tinyint","result":"tinyint"} +{"name":"|","left":"ubigint","right":"ubigint","result":"ubigint"} +{"name":"|","left":"uhugeint","right":"uhugeint","result":"uhugeint"} +{"name":"|","left":"uinteger","right":"uinteger","result":"uinteger"} +{"name":"|","left":"usmallint","right":"usmallint","result":"usmallint"} +{"name":"|","left":"utinyint","right":"utinyint","result":"utinyint"} +{"name":"~~","left":"varchar","right":"varchar","result":"boolean"} +{"name":"~~*","left":"varchar","right":"varchar","result":"boolean"} +{"name":"~~~","left":"varchar","right":"varchar","result":"boolean"} diff --git a/internal/engine/duckdb/dialect/types.jsonl b/internal/engine/duckdb/dialect/types.jsonl new file mode 100644 index 0000000000..72b97de855 --- /dev/null +++ b/internal/engine/duckdb/dialect/types.jsonl @@ -0,0 +1,40 @@ +{"name":"any","category":"U"} +{"name":"array","category":"C"} +{"name":"bigint","category":"N","aliases":["int64","int8","long","oid"]} +{"name":"bignum","category":"U","aliases":["varint"]} +{"name":"bit","category":"U","aliases":["bitstring"]} +{"name":"blob","category":"U","aliases":["binary","bytea","varbinary"]} +{"name":"boolean","category":"B","aliases":["bool","logical"]} +{"name":"date","category":"D"} +{"name":"decimal","category":"N","aliases":["dec","numeric"]} +{"name":"double","category":"N","aliases":["float8"]} +{"name":"enum","category":"U"} +{"name":"float","category":"N","aliases":["float4","real"]} +{"name":"geometry","category":"U"} +{"name":"hugeint","category":"N","aliases":["int128"]} +{"name":"integer","category":"N","aliases":["int","int32","int4","integral","signed"]} +{"name":"interval","category":"D"} +{"name":"list","category":"C"} +{"name":"map","category":"C"} +{"name":"smallint","category":"N","aliases":["int16","int2","short"]} +{"name":"struct","category":"C","aliases":["row"]} +{"name":"time","category":"D"} +{"name":"time with time zone","category":"D","aliases":["timetz"]} +{"name":"time_ns","category":"D"} +{"name":"timestamp","category":"D","aliases":["datetime","timestamp_us"]} +{"name":"timestamp with time zone","category":"D","aliases":["timestamptz"]} +{"name":"timestamp_ms","category":"D"} +{"name":"timestamp_ns","category":"D"} +{"name":"timestamp_s","category":"D"} +{"name":"timestamptz_ns","category":"D"} +{"name":"tinyint","category":"N","aliases":["int1"]} +{"name":"tuple","category":"U"} +{"name":"ubigint","category":"N","aliases":["uint64"]} +{"name":"uhugeint","category":"N","aliases":["uint128"]} +{"name":"uinteger","category":"N","aliases":["uint32"]} +{"name":"union","category":"C"} +{"name":"usmallint","category":"N","aliases":["uint16"]} +{"name":"utinyint","category":"N","aliases":["uint8"]} +{"name":"uuid","category":"U","aliases":["guid"]} +{"name":"varchar","category":"S","aliases":["json","bpchar","char","nvarchar","string","text"]} +{"name":"variant","category":"U"} diff --git a/internal/engine/duckdb/parse.go b/internal/engine/duckdb/parse.go new file mode 100644 index 0000000000..76a996e562 --- /dev/null +++ b/internal/engine/duckdb/parse.go @@ -0,0 +1,67 @@ +package duckdb + +import ( + "context" + "errors" + "io" + + "github.com/sqlc-dev/darkwing/parser" + + "github.com/sqlc-dev/sqlc/internal/source" + "github.com/sqlc-dev/sqlc/internal/sql/ast" + "github.com/sqlc-dev/sqlc/internal/sql/sqlerr" +) + +func NewParser() *Parser { + return &Parser{} +} + +type Parser struct{} + +// Parse converts DuckDB SQL into sqlc's AST. darkwing assigns every +// statement a byte span and the spans tile the input — each statement +// starts where the previous one ended — so a statement's span covers the +// comments before it, which is where the sqlc query annotation lives. +func (p *Parser) Parse(r io.Reader) ([]ast.Statement, error) { + stmts, err := parser.Parse(context.Background(), r) + if err != nil { + var perr *parser.Error + if errors.As(err, &perr) { + serr := &sqlerr.Error{ + Message: err.Error(), + Line: perr.Line, + Column: perr.Column, + } + if perr.Offset >= 0 { + serr.Location = perr.Offset + } + return nil, serr + } + return nil, err + } + + var out []ast.Statement + for _, stmt := range stmts { + converter := &cc{} + node := converter.convert(stmt) + if _, ok := node.(*ast.TODO); ok { + continue + } + out = append(out, ast.Statement{ + Raw: &ast.RawStmt{ + Stmt: node, + StmtLocation: stmt.Pos(), + StmtLen: stmt.End() - stmt.Pos(), + }, + }) + } + return out, nil +} + +// https://duckdb.org/docs/stable/sql/introduction#comments +func (p *Parser) CommentSyntax() source.CommentSyntax { + return source.CommentSyntax{ + Dash: true, // -- comment + SlashStar: true, // /* comment */ + } +} diff --git a/internal/engine/duckdb/reserved.go b/internal/engine/duckdb/reserved.go new file mode 100644 index 0000000000..e80c397053 --- /dev/null +++ b/internal/engine/duckdb/reserved.go @@ -0,0 +1,9 @@ +package duckdb + +import "github.com/sqlc-dev/darkwing/token" + +// IsReservedKeyword reports whether s is a reserved keyword in DuckDB's +// grammar, per the keyword lists darkwing vendors from DuckDB. +func (p *Parser) IsReservedKeyword(s string) bool { + return token.Categories(s).Has(token.KeywordReserved) +} diff --git a/internal/engine/duckdb/seed.go b/internal/engine/duckdb/seed.go new file mode 100644 index 0000000000..245de9d8eb --- /dev/null +++ b/internal/engine/duckdb/seed.go @@ -0,0 +1,23 @@ +package duckdb + +import ( + "embed" + + "github.com/sqlc-dev/sqlc/internal/core" + "github.com/sqlc-dev/sqlc/internal/core/seed" +) + +// The dialect directory describes DuckDB's type system. types.jsonl, +// functions.jsonl and operators.jsonl are generated from a live DuckDB 2.0 +// CLI by sqlc-duckdb-gen (internal/tools/sqlc-duckdb-gen); dialect.json is +// authored by hand. Regenerate with: +// +// DUCKDB=/path/to/duckdb go run ./internal/tools/sqlc-duckdb-gen +// +//go:embed dialect +var dialectFS embed.FS + +// Dialect returns the catalog option that seeds DuckDB's type system. +func Dialect() core.Option { + return seed.Dialect(dialectFS, "dialect") +} diff --git a/internal/engine/duckdb/utils.go b/internal/engine/duckdb/utils.go new file mode 100644 index 0000000000..490ad43b7d --- /dev/null +++ b/internal/engine/duckdb/utils.go @@ -0,0 +1,47 @@ +package duckdb + +import ( + "log" + "strings" + + dw "github.com/sqlc-dev/darkwing/ast" + + "github.com/sqlc-dev/sqlc/internal/debug" + "github.com/sqlc-dev/sqlc/internal/sql/ast" +) + +func todo(n dw.Node) *ast.TODO { + if debug.Active { + log.Printf("duckdb.convert: Unknown node type %T\n", n) + } + return &ast.TODO{} +} + +// identifier normalizes an identifier. DuckDB identifiers are +// case-insensitive (though case-preserving); the catalog matches them +// lowercased. +func identifier(id string) string { + return strings.ToLower(id) +} + +func NewIdentifier(t string) *ast.String { + return &ast.String{Str: identifier(t)} +} + +// schemaName normalizes a schema qualifier. DuckDB's default "main" schema +// maps to the catalog's default namespace, so it is treated as unqualified. +func schemaName(s string) string { + s = identifier(s) + if s == "main" { + return "" + } + return s +} + +func parseTableName(catalog, schema, name string) *ast.TableName { + return &ast.TableName{ + Catalog: identifier(catalog), + Schema: schemaName(schema), + Name: identifier(name), + } +} diff --git a/internal/tools/sqlc-duckdb-gen/main.go b/internal/tools/sqlc-duckdb-gen/main.go new file mode 100644 index 0000000000..9629ba8979 --- /dev/null +++ b/internal/tools/sqlc-duckdb-gen/main.go @@ -0,0 +1,360 @@ +// Command sqlc-duckdb-gen writes the DuckDB dialect seed files — +// types.jsonl, functions.jsonl and operators.jsonl under +// internal/engine/duckdb/dialect — from a live DuckDB CLI, the same way +// sqlc-pg-gen writes PostgreSQL's from a live server. The CLI must be the +// DuckDB 2.0 build darkwing is pinned against; it is located through the +// DUCKDB environment variable, falling back to "duckdb" on PATH. +// +// Usage: +// +// DUCKDB=/path/to/duckdb go run ./internal/tools/sqlc-duckdb-gen [engine-dir] +package main + +import ( + "context" + "encoding/json" + "flag" + "fmt" + "log" + "os" + "os/exec" + "path/filepath" + "sort" + "strings" + + "github.com/sqlc-dev/sqlc/internal/core/seed" +) + +func main() { + if err := run(context.Background()); err != nil { + log.Fatal(err) + } +} + +func duckdbPath() string { + if path := os.Getenv("DUCKDB"); path != "" { + return path + } + return "duckdb" +} + +// query runs a SQL statement against an in-memory database and decodes the +// CLI's JSON output into rows. +func query(ctx context.Context, sql string, rows any) error { + cmd := exec.CommandContext(ctx, duckdbPath(), "-json", ":memory:", "-c", sql) + out, err := cmd.Output() + if err != nil { + if exit, ok := err.(*exec.ExitError); ok { + return fmt.Errorf("duckdb: %s: %s", err, exit.Stderr) + } + return fmt.Errorf("duckdb: %w", err) + } + // An empty result set prints nothing rather than []. + if len(out) == 0 { + return nil + } + return json.Unmarshal(out, rows) +} + +type typeRow struct { + TypeName string `json:"type_name"` + LogicalType string `json:"logical_type"` + Category *string `json:"type_category"` +} + +type functionRow struct { + Name string `json:"function_name"` + FunctionType string `json:"function_type"` + ParameterTypes []string `json:"parameter_types"` + Varargs *string `json:"varargs"` + ReturnType *string `json:"return_type"` +} + +// metaTypes are type ids that never describe a column's value: sentinels and +// binder-internal types the dump lists alongside the real ones. +var metaTypes = map[string]bool{ + "null": true, + "unknown": true, + "invalid": true, + "any": true, + "type": true, + "lambda": true, + "table": true, + "pointer": true, +} + +// categoryLetter maps duckdb_types() categories onto the PostgreSQL category +// letters the seed package uses. +func categoryLetter(category *string) string { + if category == nil { + return "U" + } + switch *category { + case "NUMERIC": + return "N" + case "STRING": + return "S" + case "DATETIME": + return "D" + case "BOOLEAN": + return "B" + case "COMPOSITE": + return "C" + default: + return "U" + } +} + +func readTypes(ctx context.Context) ([]seed.Type, error) { + var rows []typeRow + err := query(ctx, ` +SELECT type_name, logical_type, type_category +FROM duckdb_types() +WHERE database_name = 'system' +ORDER BY type_name`, &rows) + if err != nil { + return nil, err + } + + // Group the dump's one-row-per-spelling by logical type: the spelling + // matching the logical type id is the canonical name, the rest are + // aliases. + grouped := map[string]*seed.Type{} + var order []string + for _, row := range rows { + logical := strings.ToLower(row.LogicalType) + if metaTypes[logical] { + continue + } + t, ok := grouped[logical] + if !ok { + t = &seed.Type{Name: logical, Category: categoryLetter(row.Category)} + grouped[logical] = t + order = append(order, logical) + } + if t.Category == "U" { + t.Category = categoryLetter(row.Category) + } + if name := strings.ToLower(row.TypeName); name != logical { + t.Aliases = append(t.Aliases, name) + } + } + + sort.Strings(order) + types := make([]seed.Type, 0, len(order)+1) + // "any" stands in for the generic parameters of DuckDB's polymorphic + // functions (ANY, T, K, V); the analyzer resolves a call returning it + // to the type of the call's first argument. + types = append(types, seed.Type{Name: "any", Category: "U"}) + for _, name := range order { + types = append(types, *grouped[name]) + } + return types, nil +} + +// typeNames is the set of names the seed declares, for filtering out function +// overloads over generic or binder-internal types. +func typeNames(types []seed.Type) map[string]bool { + names := map[string]bool{} + for _, t := range types { + names[t.Name] = true + for _, alias := range t.Aliases { + names[alias] = true + } + } + return names +} + +// seedTypeName maps a duckdb_functions() type spelling to a seeded type name: +// lowercased, with modifiers dropped (DECIMAL(18,3) is a decimal), array +// markers kept (fixed sizes and generic bounds included: DOUBLE[3] and +// ANY[] are arrays), and the generic parameters of polymorphic functions +// mapped to "any". It reports false for the internal types a seed cannot +// describe. +func seedTypeName(name string, known map[string]bool) (string, bool) { + name = strings.ToLower(strings.TrimSpace(name)) + if close := strings.LastIndexByte(name, ']'); close == len(name)-1 { + if open := strings.LastIndexByte(name, '['); open != -1 { + elementName, ok := seedTypeName(name[:open], known) + return elementName + "[]", ok + } + } + if open := strings.IndexByte(name, '('); open != -1 { + name = name[:open] + } + switch name { + case "any", "t", "k", "v": + return "any", true + } + if !known[name] { + return "", false + } + return name, true +} + +// isOperatorName reports a function named by symbols rather than an +// identifier — the spelling of a binary or prefix operator. +func isOperatorName(name string) bool { + return strings.IndexFunc(name, func(r rune) bool { + return (r < 'a' || r > 'z') && (r < '0' || r > '9') && r != '_' && r != '$' + }) != -1 +} + +func functionKind(functionType string) string { + switch functionType { + case "aggregate": + return "a" + case "window": + return "w" + default: + return "" + } +} + +func readFunctions(ctx context.Context, known map[string]bool) ([]seed.Function, []seed.Operator, error) { + var rows []functionRow + err := query(ctx, ` +SELECT DISTINCT function_name, function_type, parameter_types, varargs, return_type +FROM duckdb_functions() +WHERE database_name = 'system' + AND schema_name = 'main' + AND function_type IN ('scalar', 'aggregate', 'window', 'macro') +ORDER BY function_name, parameter_types::VARCHAR, return_type`, &rows) + if err != nil { + return nil, nil, err + } + + var funcs []seed.Function + var operators []seed.Operator + seenFunc := map[string]bool{} + seenOp := map[string]bool{} + for _, row := range rows { + if row.ReturnType == nil { + continue + } + returns, ok := seedTypeName(*row.ReturnType, known) + if !ok { + continue + } + args := make([]string, 0, len(row.ParameterTypes)) + resolved := true + for _, param := range row.ParameterTypes { + arg, ok := seedTypeName(param, known) + if !ok { + resolved = false + break + } + args = append(args, arg) + } + if !resolved { + continue + } + + if isOperatorName(row.Name) { + // Operator-named functions become operator entries; sqlc's + // engine reports them as operator applications. Only the + // binary form over concrete scalar types is representable — + // the seed's operator table, unlike its function table, does + // not register generic or array types on demand. + if row.FunctionType != "scalar" || len(args) != 2 || row.Varargs != nil { + continue + } + if concrete := !strings.Contains(returns, "any") && !strings.Contains(returns, "[]") && + !strings.Contains(args[0], "any") && !strings.Contains(args[0], "[]") && + !strings.Contains(args[1], "any") && !strings.Contains(args[1], "[]"); !concrete { + continue + } + key := row.Name + "\x00" + strings.Join(args, "\x00") + if seenOp[key] { + continue + } + seenOp[key] = true + operators = append(operators, seed.Operator{ + Name: row.Name, + Left: args[0], + Right: args[1], + Result: returns, + }) + continue + } + + fn := seed.Function{ + Name: row.Name, + Kind: functionKind(row.FunctionType), + Returns: returns, + // An aggregate over no rows returns NULL — except count, + // which returns 0. + Nullable: row.FunctionType == "aggregate" && !strings.HasPrefix(row.Name, "count"), + } + for _, arg := range args { + fn.Args = append(fn.Args, seed.Arg{Type: arg}) + } + if row.Varargs != nil { + vararg, ok := seedTypeName(*row.Varargs, known) + if !ok { + continue + } + fn.Args = append(fn.Args, seed.Arg{Type: vararg, Mode: "v"}) + } + + key := fn.Name + "\x00" + fn.Kind + "\x00" + strings.Join(args, "\x00") + if seenFunc[key] { + continue + } + seenFunc[key] = true + funcs = append(funcs, fn) + } + return funcs, operators, nil +} + +func writeJSONL[T any](path string, records []T) error { + out, err := os.Create(path) + if err != nil { + return err + } + defer out.Close() + enc := json.NewEncoder(out) + for _, record := range records { + if err := enc.Encode(record); err != nil { + return err + } + } + return nil +} + +func run(ctx context.Context) error { + flag.Parse() + + dir := flag.Arg(0) + if dir == "" { + dir = filepath.Join("internal", "engine", "duckdb") + } + dialectDir := filepath.Join(dir, "dialect") + + version, err := exec.CommandContext(ctx, duckdbPath(), "--version").Output() + if err != nil { + return fmt.Errorf("duckdb --version: %w", err) + } + log.Printf("generating from %s", strings.TrimSpace(string(version))) + + types, err := readTypes(ctx) + if err != nil { + return err + } + funcs, operators, err := readFunctions(ctx, typeNames(types)) + if err != nil { + return err + } + + if err := writeJSONL(filepath.Join(dialectDir, seed.TypesFile), types); err != nil { + return err + } + if err := writeJSONL(filepath.Join(dialectDir, seed.FunctionsFile), funcs); err != nil { + return err + } + if err := writeJSONL(filepath.Join(dialectDir, seed.OperatorsFile), operators); err != nil { + return err + } + log.Printf("wrote %d types, %d functions, %d operators to %s", len(types), len(funcs), len(operators), dialectDir) + return nil +}