snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled

This commit is contained in:
upstream-mirror
2026-09-16 02:17:34 +05:00
commit 0f4df23290
7340 changed files with 238743 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
package clickhouse
import (
"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)
func NewCatalog() *catalog.Catalog {
def := "default" // ClickHouse default database
return &catalog.Catalog{
DefaultSchema: def,
Schemas: []*catalog.Schema{
defaultSchema(def),
},
Extensions: map[string]struct{}{},
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
{
"dialect": "clickhouse",
"default_schema": "default",
"const": {
"integer": "Int64",
"float": "Float64",
"string": "String",
"bool": "Bool"
},
"bool": "UInt8",
"limit": "UInt64",
"untyped": "Nothing",
"propagate_nullable": true,
"qualify_duplicate_columns": true,
"comparison": ["=", "==", "<>", "!=", "<", "<=", ">", ">="],
"comparison_categories": "NBSDU",
"arithmetic": ["+", "-", "*", "/", "%"],
"arithmetic_categories": "N",
"rewrites": [
{
"from": "Decimal32($1)",
"to": "Decimal(9, $1)"
},
{
"from": "Decimal64($1)",
"to": "Decimal(18, $1)"
},
{
"from": "Decimal128($1)",
"to": "Decimal(38, $1)"
},
{
"from": "Decimal256($1)",
"to": "Decimal(76, $1)"
}
],
"ident_args": {
"AggregateFunction": [1],
"SimpleAggregateFunction": [1]
}
}

View File

@@ -0,0 +1,581 @@
{"name": "count", "kind": "a", "returns": "UInt64", "never_null": true}
{"name": "count", "kind": "a", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "countIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "sum", "kind": "a", "args": [{"type": "UInt8"}], "returns": "UInt64"}
{"name": "sum", "kind": "a", "args": [{"type": "UInt16"}], "returns": "UInt64"}
{"name": "sum", "kind": "a", "args": [{"type": "UInt32"}], "returns": "UInt64"}
{"name": "sum", "kind": "a", "args": [{"type": "Int8"}], "returns": "Int64"}
{"name": "sum", "kind": "a", "args": [{"type": "Int16"}], "returns": "Int64"}
{"name": "sum", "kind": "a", "args": [{"type": "Int32"}], "returns": "Int64"}
{"name": "sum", "kind": "a", "args": [{"type": "Float32"}], "returns": "Float64"}
{"name": "sum", "kind": "a", "args": [{"type": "any"}], "returns": "$1"}
{"name": "sumIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "avg", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "avgIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "min", "kind": "a", "args": [{"type": "any"}], "returns": "$1"}
{"name": "max", "kind": "a", "args": [{"type": "any"}], "returns": "$1"}
{"name": "any", "kind": "a", "args": [{"type": "any"}], "returns": "$1"}
{"name": "anyLast", "kind": "a", "args": [{"type": "any"}], "returns": "$1"}
{"name": "minIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "maxIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "anyIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "uniq", "kind": "a", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "uniqExact", "kind": "a", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "uniqCombined", "kind": "a", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "uniqHLL12", "kind": "a", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "uniqIf", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "argMin", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "argMax", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "stddevPop", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "stddevSamp", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "varPop", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "varSamp", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "median", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "quantile", "kind": "a", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "quantile", "kind": "a", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "row_number", "kind": "w", "returns": "UInt64", "never_null": true}
{"name": "rank", "kind": "w", "returns": "UInt64", "never_null": true}
{"name": "dense_rank", "kind": "w", "returns": "UInt64", "never_null": true}
{"name": "plus", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "minus", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "multiply", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "intDiv", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "intDivOrZero", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "modulo", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "moduloOrZero", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "gcd", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "lcm", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "bitAnd", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "bitOr", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "bitXor", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "bitShiftLeft", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "bitShiftRight", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "greatest", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "least", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "divide", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "negate", "args": [{"type": "any"}], "returns": "$1"}
{"name": "abs", "args": [{"type": "any"}], "returns": "$1"}
{"name": "round", "args": [{"type": "any"}], "returns": "$1"}
{"name": "floor", "args": [{"type": "any"}], "returns": "$1"}
{"name": "ceil", "args": [{"type": "any"}], "returns": "$1"}
{"name": "ceiling", "args": [{"type": "any"}], "returns": "$1"}
{"name": "trunc", "args": [{"type": "any"}], "returns": "$1"}
{"name": "truncate", "args": [{"type": "any"}], "returns": "$1"}
{"name": "identity", "args": [{"type": "any"}], "returns": "$1"}
{"name": "bitNot", "args": [{"type": "any"}], "returns": "$1"}
{"name": "round", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "floor", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "ceil", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "trunc", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "exp", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "log", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "ln", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "exp2", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "log2", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "exp10", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "log10", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "sqrt", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "cbrt", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "sin", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "cos", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "tan", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "asin", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "acos", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "atan", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "sigmoid", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "erf", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "lgamma", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "tgamma", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "pow", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "power", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "atan2", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "hypot", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "e", "returns": "Float64", "never_null": true}
{"name": "pi", "returns": "Float64", "never_null": true}
{"name": "sign", "args": [{"type": "any"}], "returns": "Int8"}
{"name": "isFinite", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "isInfinite", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "isNaN", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "rand", "returns": "UInt32", "never_null": true}
{"name": "rand32", "returns": "UInt32", "never_null": true}
{"name": "rand64", "returns": "UInt64", "never_null": true}
{"name": "randCanonical", "returns": "Float64", "never_null": true}
{"name": "equals", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "notEquals", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "less", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "greater", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "lessOrEquals", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "greaterOrEquals", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "and", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "or", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "xor", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "like", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "notLike", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "ilike", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "notILike", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "match", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "startsWith", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "endsWith", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "has", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "hasAll", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "hasAny", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "mapContains", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "multiSearchAny", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "in", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "notIn", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "not", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "isNull", "args": [{"type": "any"}], "returns": "UInt8", "never_null": true}
{"name": "isNotNull", "args": [{"type": "any"}], "returns": "UInt8", "never_null": true}
{"name": "isZeroOrNull", "args": [{"type": "any"}], "returns": "UInt8", "never_null": true}
{"name": "assumeNotNull", "args": [{"type": "any"}], "returns": "$1", "never_null": true}
{"name": "toNullable", "args": [{"type": "any"}], "returns": "$1", "nullable": true}
{"name": "nullIf", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1", "nullable": true}
{"name": "if", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$2"}
{"name": "empty", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "notEmpty", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "length", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "lengthUTF8", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "char_length", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "character_length", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "position", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "positionUTF8", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "positionCaseInsensitive", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "countSubstrings", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "indexOf", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "countEqual", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "ngramSearch", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "lower", "args": [{"type": "any"}], "returns": "String"}
{"name": "upper", "args": [{"type": "any"}], "returns": "String"}
{"name": "lowerUTF8", "args": [{"type": "any"}], "returns": "String"}
{"name": "upperUTF8", "args": [{"type": "any"}], "returns": "String"}
{"name": "toString", "args": [{"type": "any"}], "returns": "String"}
{"name": "toValidUTF8", "args": [{"type": "any"}], "returns": "String"}
{"name": "trim", "args": [{"type": "any"}], "returns": "String"}
{"name": "trimLeft", "args": [{"type": "any"}], "returns": "String"}
{"name": "trimRight", "args": [{"type": "any"}], "returns": "String"}
{"name": "trimBoth", "args": [{"type": "any"}], "returns": "String"}
{"name": "ltrim", "args": [{"type": "any"}], "returns": "String"}
{"name": "rtrim", "args": [{"type": "any"}], "returns": "String"}
{"name": "hex", "args": [{"type": "any"}], "returns": "String"}
{"name": "unhex", "args": [{"type": "any"}], "returns": "String"}
{"name": "bin", "args": [{"type": "any"}], "returns": "String"}
{"name": "base64Encode", "args": [{"type": "any"}], "returns": "String"}
{"name": "base64Decode", "args": [{"type": "any"}], "returns": "String"}
{"name": "tryBase64Decode", "args": [{"type": "any"}], "returns": "String"}
{"name": "reverseUTF8", "args": [{"type": "any"}], "returns": "String"}
{"name": "initcap", "args": [{"type": "any"}], "returns": "String"}
{"name": "normalizeQuery", "args": [{"type": "any"}], "returns": "String"}
{"name": "typeName", "args": [{"type": "any"}], "returns": "String"}
{"name": "dumpColumnStructure", "args": [{"type": "any"}], "returns": "String"}
{"name": "urlDecode", "args": [{"type": "any"}], "returns": "String"}
{"name": "encodeURLComponent", "args": [{"type": "any"}], "returns": "String"}
{"name": "decodeURLComponent", "args": [{"type": "any"}], "returns": "String"}
{"name": "domain", "args": [{"type": "any"}], "returns": "String"}
{"name": "topLevelDomain", "args": [{"type": "any"}], "returns": "String"}
{"name": "path", "args": [{"type": "any"}], "returns": "String"}
{"name": "pathFull", "args": [{"type": "any"}], "returns": "String"}
{"name": "protocol", "args": [{"type": "any"}], "returns": "String"}
{"name": "queryString", "args": [{"type": "any"}], "returns": "String"}
{"name": "fragment", "args": [{"type": "any"}], "returns": "String"}
{"name": "cutQueryString", "args": [{"type": "any"}], "returns": "String"}
{"name": "cutFragment", "args": [{"type": "any"}], "returns": "String"}
{"name": "cutWWW", "args": [{"type": "any"}], "returns": "String"}
{"name": "firstSignificantSubdomain", "args": [{"type": "any"}], "returns": "String"}
{"name": "IPv4NumToString", "args": [{"type": "any"}], "returns": "String"}
{"name": "IPv6NumToString", "args": [{"type": "any"}], "returns": "String"}
{"name": "formatReadableSize", "args": [{"type": "any"}], "returns": "String"}
{"name": "formatReadableQuantity", "args": [{"type": "any"}], "returns": "String"}
{"name": "formatReadableDecimalSize", "args": [{"type": "any"}], "returns": "String"}
{"name": "formatReadableTimeDelta", "args": [{"type": "any"}], "returns": "String"}
{"name": "toDecimalString", "args": [{"type": "any"}], "returns": "String"}
{"name": "monthName", "args": [{"type": "any"}], "returns": "String"}
{"name": "toJSONString", "args": [{"type": "any"}], "returns": "String"}
{"name": "toTypeName", "args": [{"type": "any"}], "returns": "String", "never_null": true}
{"name": "hostName", "returns": "String", "never_null": true}
{"name": "version", "returns": "String", "never_null": true}
{"name": "currentDatabase", "returns": "String", "never_null": true}
{"name": "currentUser", "returns": "String", "never_null": true}
{"name": "FQDN", "returns": "String", "never_null": true}
{"name": "queryID", "returns": "String", "never_null": true}
{"name": "generateULID", "returns": "String", "never_null": true}
{"name": "concat", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substring", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substr", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "mid", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substringUTF8", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "repeat", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "leftPad", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "rightPad", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "left", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "right", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "extract", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "formatDateTime", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "formatDateTimeInJodaSyntax", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "dateName", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "JSONExtractString", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "JSONExtractRaw", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "visitParamExtractString", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "simpleJSONExtractString", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "arrayStringConcat", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "regexpExtract", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "translate", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "format", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "toDecimalString", "args": [{"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "concat", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substring", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substr", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "mid", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "substringUTF8", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "leftPad", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "rightPad", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "replaceOne", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "replaceAll", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "replaceRegexpOne", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "replaceRegexpAll", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "translate", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "format", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "concatWithSeparator", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "regexpExtract", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "formatDateTime", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "JSONExtractString", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "JSONExtractRaw", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "concat", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "concat", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "concat", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "arrayStringConcat", "args": [{"type": "any"}], "returns": "String"}
{"name": "splitByChar", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "splitByString", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "splitByRegexp", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "splitByWhitespace", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "alphaTokens", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "extractAll", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "tokens", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(String)"}
{"name": "splitByWhitespace", "args": [{"type": "any"}], "returns": "Array(String)"}
{"name": "alphaTokens", "args": [{"type": "any"}], "returns": "Array(String)"}
{"name": "tokens", "args": [{"type": "any"}], "returns": "Array(String)"}
{"name": "reverse", "args": [{"type": "any"}], "returns": "$1"}
{"name": "md5", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "MD5", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "sipHash128", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "murmurHash3_128", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "cityHash128", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "SHA1", "args": [{"type": "any"}], "returns": "FixedString(20)"}
{"name": "SHA224", "args": [{"type": "any"}], "returns": "FixedString(28)"}
{"name": "SHA256", "args": [{"type": "any"}], "returns": "FixedString(32)"}
{"name": "SHA512", "args": [{"type": "any"}], "returns": "FixedString(64)"}
{"name": "sipHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "cityHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "xxHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "halfMD5", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "farmHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "javaHash", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "intHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "murmurHash2_64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "murmurHash3_64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "metroHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "xxh3", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "wyHash64", "args": [{"type": "any"}], "returns": "UInt64", "never_null": true}
{"name": "xxHash32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "intHash32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "murmurHash2_32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "murmurHash3_32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "crc32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "CRC32", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "javaHash", "args": [{"type": "any"}], "returns": "UInt32", "never_null": true}
{"name": "levenshteinDistance", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "editDistance", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "ngramDistance", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float32"}
{"name": "ngramSearch", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float32"}
{"name": "jaroSimilarity", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float32"}
{"name": "jaroWinklerSimilarity", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float32"}
{"name": "toInt8", "args": [{"type": "any"}], "returns": "Int8"}
{"name": "toInt8OrZero", "args": [{"type": "any"}], "returns": "Int8"}
{"name": "toInt8OrNull", "args": [{"type": "any"}], "returns": "Int8", "nullable": true}
{"name": "toInt16", "args": [{"type": "any"}], "returns": "Int16"}
{"name": "toInt16OrZero", "args": [{"type": "any"}], "returns": "Int16"}
{"name": "toInt16OrNull", "args": [{"type": "any"}], "returns": "Int16", "nullable": true}
{"name": "toInt32", "args": [{"type": "any"}], "returns": "Int32"}
{"name": "toInt32OrZero", "args": [{"type": "any"}], "returns": "Int32"}
{"name": "toInt32OrNull", "args": [{"type": "any"}], "returns": "Int32", "nullable": true}
{"name": "toInt64", "args": [{"type": "any"}], "returns": "Int64"}
{"name": "toInt64OrZero", "args": [{"type": "any"}], "returns": "Int64"}
{"name": "toInt64OrNull", "args": [{"type": "any"}], "returns": "Int64", "nullable": true}
{"name": "toInt128", "args": [{"type": "any"}], "returns": "Int128"}
{"name": "toInt128OrZero", "args": [{"type": "any"}], "returns": "Int128"}
{"name": "toInt128OrNull", "args": [{"type": "any"}], "returns": "Int128", "nullable": true}
{"name": "toInt256", "args": [{"type": "any"}], "returns": "Int256"}
{"name": "toInt256OrZero", "args": [{"type": "any"}], "returns": "Int256"}
{"name": "toInt256OrNull", "args": [{"type": "any"}], "returns": "Int256", "nullable": true}
{"name": "toUInt8", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toUInt8OrZero", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toUInt8OrNull", "args": [{"type": "any"}], "returns": "UInt8", "nullable": true}
{"name": "toUInt16", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toUInt16OrZero", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toUInt16OrNull", "args": [{"type": "any"}], "returns": "UInt16", "nullable": true}
{"name": "toUInt32", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toUInt32OrZero", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toUInt32OrNull", "args": [{"type": "any"}], "returns": "UInt32", "nullable": true}
{"name": "toUInt64", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "toUInt64OrZero", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "toUInt64OrNull", "args": [{"type": "any"}], "returns": "UInt64", "nullable": true}
{"name": "toUInt128", "args": [{"type": "any"}], "returns": "UInt128"}
{"name": "toUInt128OrZero", "args": [{"type": "any"}], "returns": "UInt128"}
{"name": "toUInt128OrNull", "args": [{"type": "any"}], "returns": "UInt128", "nullable": true}
{"name": "toUInt256", "args": [{"type": "any"}], "returns": "UInt256"}
{"name": "toUInt256OrZero", "args": [{"type": "any"}], "returns": "UInt256"}
{"name": "toUInt256OrNull", "args": [{"type": "any"}], "returns": "UInt256", "nullable": true}
{"name": "toFloat32", "args": [{"type": "any"}], "returns": "Float32"}
{"name": "toFloat32OrZero", "args": [{"type": "any"}], "returns": "Float32"}
{"name": "toFloat32OrNull", "args": [{"type": "any"}], "returns": "Float32", "nullable": true}
{"name": "toFloat64", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "toFloat64OrZero", "args": [{"type": "any"}], "returns": "Float64"}
{"name": "toFloat64OrNull", "args": [{"type": "any"}], "returns": "Float64", "nullable": true}
{"name": "toDate", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toDateOrZero", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toDateOrNull", "args": [{"type": "any"}], "returns": "Date", "nullable": true}
{"name": "toDate32", "args": [{"type": "any"}], "returns": "Date32"}
{"name": "toDate32OrZero", "args": [{"type": "any"}], "returns": "Date32"}
{"name": "toDate32OrNull", "args": [{"type": "any"}], "returns": "Date32", "nullable": true}
{"name": "toDateTime", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toDateTimeOrZero", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toDateTimeOrNull", "args": [{"type": "any"}], "returns": "DateTime", "nullable": true}
{"name": "toUUID", "args": [{"type": "any"}], "returns": "UUID"}
{"name": "toUUIDOrZero", "args": [{"type": "any"}], "returns": "UUID"}
{"name": "toUUIDOrNull", "args": [{"type": "any"}], "returns": "UUID", "nullable": true}
{"name": "toIPv4", "args": [{"type": "any"}], "returns": "IPv4"}
{"name": "toIPv4OrZero", "args": [{"type": "any"}], "returns": "IPv4"}
{"name": "toIPv4OrNull", "args": [{"type": "any"}], "returns": "IPv4", "nullable": true}
{"name": "toIPv6", "args": [{"type": "any"}], "returns": "IPv6"}
{"name": "toIPv6OrZero", "args": [{"type": "any"}], "returns": "IPv6"}
{"name": "toIPv6OrNull", "args": [{"type": "any"}], "returns": "IPv6", "nullable": true}
{"name": "toBool", "args": [{"type": "any"}], "returns": "Bool"}
{"name": "toString", "args": [{"type": "any"}], "returns": "String"}
{"name": "toDateTime", "args": [{"type": "any"}, {"type": "any"}], "returns": "DateTime"}
{"name": "toDate", "args": [{"type": "any"}, {"type": "any"}], "returns": "Date"}
{"name": "toDateTime64", "args": [{"type": "any"}, {"type": "any"}], "returns": "DateTime64($2)"}
{"name": "toDateTime64", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "DateTime64($2, $3)"}
{"name": "toDecimal32", "args": [{"type": "any"}, {"type": "any"}], "returns": "Decimal(9, $2)"}
{"name": "toDecimal64", "args": [{"type": "any"}, {"type": "any"}], "returns": "Decimal(18, $2)"}
{"name": "toDecimal128", "args": [{"type": "any"}, {"type": "any"}], "returns": "Decimal(38, $2)"}
{"name": "toDecimal256", "args": [{"type": "any"}, {"type": "any"}], "returns": "Decimal(76, $2)"}
{"name": "toFixedString", "args": [{"type": "any"}, {"type": "any"}], "returns": "FixedString"}
{"name": "toStringCutToZero", "args": [{"type": "any"}], "returns": "String"}
{"name": "reinterpretAsString", "args": [{"type": "any"}], "returns": "String"}
{"name": "reinterpretAsUInt64", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "toUnixTimestamp", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toUnixTimestamp", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt32"}
{"name": "fromUnixTimestamp", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toUUIDOrNull", "args": [{"type": "any"}], "returns": "UUID", "nullable": true}
{"name": "toUUIDOrZero", "args": [{"type": "any"}], "returns": "UUID"}
{"name": "generateUUIDv4", "returns": "UUID", "never_null": true}
{"name": "generateUUIDv7", "returns": "UUID", "never_null": true}
{"name": "toIntervalSecond", "args": [{"type": "any"}], "returns": "IntervalSecond"}
{"name": "toIntervalMinute", "args": [{"type": "any"}], "returns": "IntervalMinute"}
{"name": "toIntervalHour", "args": [{"type": "any"}], "returns": "IntervalHour"}
{"name": "toIntervalDay", "args": [{"type": "any"}], "returns": "IntervalDay"}
{"name": "toIntervalWeek", "args": [{"type": "any"}], "returns": "IntervalWeek"}
{"name": "toIntervalMonth", "args": [{"type": "any"}], "returns": "IntervalMonth"}
{"name": "toIntervalYear", "args": [{"type": "any"}], "returns": "IntervalYear"}
{"name": "now", "returns": "DateTime", "never_null": true}
{"name": "now", "args": [{"type": "any"}], "returns": "DateTime", "never_null": true}
{"name": "now64", "returns": "DateTime64", "never_null": true}
{"name": "now64", "args": [{"type": "any"}], "returns": "DateTime64", "never_null": true}
{"name": "today", "returns": "Date", "never_null": true}
{"name": "yesterday", "returns": "Date", "never_null": true}
{"name": "timeZone", "returns": "String", "never_null": true}
{"name": "serverTimezone", "returns": "String", "never_null": true}
{"name": "toYear", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toISOYear", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toDayOfYear", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toRelativeYearNum", "args": [{"type": "any"}], "returns": "UInt16"}
{"name": "toWeek", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toISOWeek", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toYearWeek", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toQuarter", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toMonth", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toDayOfMonth", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toDayOfWeek", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toHour", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toMinute", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toSecond", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toMillisecond", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "toYYYYMM", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toYYYYMMDD", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toYYYYMMDDhhmmss", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "toStartOfDay", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toStartOfHour", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toStartOfMinute", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toStartOfFiveMinutes", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toStartOfFifteenMinutes", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toStartOfTenMinutes", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toTime", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "timeSlot", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toLastDayOfMonth", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "toLastDayOfMonth", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfMonth", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfQuarter", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfYear", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfWeek", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toMonday", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfISOYear", "args": [{"type": "any"}], "returns": "Date"}
{"name": "toStartOfWeek", "args": [{"type": "any"}, {"type": "any"}], "returns": "Date"}
{"name": "toStartOfInterval", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addYears", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addQuarters", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addMonths", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addWeeks", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addDays", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addHours", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addMinutes", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addSeconds", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addMilliseconds", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractYears", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractQuarters", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractMonths", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractWeeks", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractDays", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractHours", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractMinutes", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractSeconds", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "addInterval", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "subtractInterval", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "dateDiff", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "date_diff", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "timestampDiff", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "timestamp_diff", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "age", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "dateAdd", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "date_add", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "dateSub", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "date_sub", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "timestampAdd", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "timestampSub", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "dateTrunc", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "date_trunc", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$3"}
{"name": "dateTrunc", "args": [{"type": "any"}, {"type": "any"}], "returns": "$2"}
{"name": "date_trunc", "args": [{"type": "any"}, {"type": "any"}], "returns": "$2"}
{"name": "toRelativeDayNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toRelativeHourNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toRelativeMinuteNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toRelativeSecondNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toRelativeMonthNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toRelativeWeekNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "toTimeZone", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "toTimezone", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "parseDateTimeBestEffort", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "parseDateTimeBestEffortOrNull", "args": [{"type": "any"}], "returns": "DateTime", "nullable": true}
{"name": "parseDateTimeBestEffortOrZero", "args": [{"type": "any"}], "returns": "DateTime"}
{"name": "parseDateTime", "args": [{"type": "any"}, {"type": "any"}], "returns": "DateTime"}
{"name": "parseDateTime64BestEffort", "args": [{"type": "any"}], "returns": "DateTime64"}
{"name": "makeDate", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Date"}
{"name": "makeDateTime", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "DateTime"}
{"name": "arrayConcat", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayConcat", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayConcat", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayDistinct", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayDistinct", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayDistinct", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arraySort", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arraySort", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arraySort", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayReverseSort", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayReverseSort", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayReverseSort", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayReverse", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayReverse", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayReverse", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arraySlice", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arraySlice", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arraySlice", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayResize", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayResize", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayResize", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPushBack", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayPushBack", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPushBack", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPushFront", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayPushFront", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPushFront", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPopBack", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayPopBack", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPopBack", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPopFront", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayPopFront", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayPopFront", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayFlatten", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayFlatten", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayFlatten", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayCompact", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayCompact", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayCompact", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayIntersect", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayIntersect", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayIntersect", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayUnion", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayUnion", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayUnion", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayShuffle", "args": [{"type": "any"}], "returns": "$1"}
{"name": "arrayShuffle", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayShuffle", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "arrayCount", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "arrayCount", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt32"}
{"name": "arrayUniq", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "arrayExists", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "arrayAll", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "hasSubstr", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "arrayEnumerate", "args": [{"type": "any"}], "returns": "Array(UInt32)"}
{"name": "arrayEnumerateUniq", "args": [{"type": "any"}], "returns": "Array(UInt32)"}
{"name": "range", "args": [{"type": "any"}], "returns": "Array(UInt64)"}
{"name": "range", "args": [{"type": "any"}, {"type": "any"}], "returns": "Array(UInt64)"}
{"name": "range", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Array(UInt64)"}
{"name": "mapKeys", "args": [{"type": "any"}], "returns": "$1"}
{"name": "mapValues", "args": [{"type": "any"}], "returns": "$1"}
{"name": "length", "args": [{"type": "any"}], "returns": "UInt64"}
{"name": "JSONExtractInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "JSONExtractInt64", "args": [{"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "JSONExtractUInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "JSONExtractFloat", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "JSONExtractBool", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "JSONHas", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "JSONLength", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "JSONType", "args": [{"type": "any"}, {"type": "any"}], "returns": "Enum8"}
{"name": "isValidJSON", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "JSONArrayLength", "args": [{"type": "any"}], "returns": "UInt64", "nullable": true}
{"name": "simpleJSONExtractInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "simpleJSONExtractUInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "simpleJSONExtractFloat", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "simpleJSONExtractBool", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "simpleJSONHas", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "visitParamExtractInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "visitParamExtractUInt", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "visitParamExtractFloat", "args": [{"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "visitParamExtractBool", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "visitParamHas", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "IPv4StringToNum", "args": [{"type": "any"}], "returns": "UInt32"}
{"name": "IPv4StringToNumOrNull", "args": [{"type": "any"}], "returns": "UInt32", "nullable": true}
{"name": "IPv6StringToNum", "args": [{"type": "any"}], "returns": "FixedString(16)"}
{"name": "isIPv4String", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "isIPv6String", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "sleep", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "blockSize", "returns": "UInt64", "never_null": true}
{"name": "rowNumberInAllBlocks", "returns": "UInt64", "never_null": true}
{"name": "materialize", "args": [{"type": "any"}], "returns": "$1"}
{"name": "ignore", "args": [{"type": "any"}], "returns": "UInt8", "never_null": true}
{"name": "ifNotFinite", "args": [{"type": "any"}, {"type": "any"}], "returns": "$1"}
{"name": "throwIf", "args": [{"type": "any"}], "returns": "UInt8"}
{"name": "transform", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$4"}
{"name": "bar", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "bar", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "dictGetString", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "String"}
{"name": "dictGetUInt64", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "UInt64"}
{"name": "dictGetInt64", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Int64"}
{"name": "dictGetFloat64", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Float64"}
{"name": "dictGetDate", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "Date"}
{"name": "dictGetDateTime", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "DateTime"}
{"name": "dictHas", "args": [{"type": "any"}, {"type": "any"}], "returns": "UInt8"}
{"name": "tuple", "args": [{"type": "any"}], "returns": "Tuple"}
{"name": "tupleElement", "args": [{"type": "any"}, {"type": "any"}], "returns": "any"}
{"name": "map", "args": [{"type": "any"}, {"type": "any"}], "returns": "Map"}
{"name": "multiIf", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$2"}
{"name": "multiIf", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$2"}
{"name": "multiIf", "args": [{"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}, {"type": "any"}], "returns": "$2"}

View File

@@ -0,0 +1,66 @@
{"name":"AggregateFunction","category":"U"}
{"name":"Array","category":"A"}
{"name":"BFloat16","category":"N"}
{"name":"Bool","category":"B","aliases":["boolean"]}
{"name":"Date","category":"D"}
{"name":"Date32","category":"D"}
{"name":"DateTime","category":"D","aliases":["TIMESTAMP"]}
{"name":"DateTime32","category":"D"}
{"name":"DateTime64","category":"D"}
{"name":"Decimal","category":"N","aliases":["DEC","FIXED","NUMERIC"]}
{"name":"Decimal128","category":"N"}
{"name":"Decimal256","category":"N"}
{"name":"Decimal32","category":"N"}
{"name":"Decimal64","category":"N"}
{"name":"Dynamic","category":"U"}
{"name":"Enum","category":"U"}
{"name":"Enum16","category":"U"}
{"name":"Enum8","category":"U"}
{"name":"FixedString","category":"S","aliases":["BINARY"]}
{"name":"Float32","category":"N","aliases":["FLOAT","REAL","SINGLE"]}
{"name":"Float64","category":"N","aliases":["DOUBLE","DOUBLE PRECISION"]}
{"name":"IPv4","category":"S","aliases":["INET4"]}
{"name":"IPv6","category":"S","aliases":["INET6"]}
{"name":"Int128","category":"N"}
{"name":"Int16","category":"N","aliases":["SMALLINT","SMALLINT SIGNED"]}
{"name":"Int256","category":"N"}
{"name":"Int32","category":"N","aliases":["INT","INT SIGNED","INTEGER","INTEGER SIGNED","MEDIUMINT","MEDIUMINT SIGNED"]}
{"name":"Int64","category":"N","aliases":["BIGINT","BIGINT SIGNED","SIGNED"]}
{"name":"Int8","category":"N","aliases":["BYTE","INT1","INT1 SIGNED","TINYINT","TINYINT SIGNED"]}
{"name":"IntervalDay","category":"T"}
{"name":"IntervalHour","category":"T"}
{"name":"IntervalMicrosecond","category":"T"}
{"name":"IntervalMillisecond","category":"T"}
{"name":"IntervalMinute","category":"T"}
{"name":"IntervalMonth","category":"T"}
{"name":"IntervalNanosecond","category":"T"}
{"name":"IntervalQuarter","category":"T"}
{"name":"IntervalSecond","category":"T"}
{"name":"IntervalWeek","category":"T"}
{"name":"IntervalYear","category":"T"}
{"name":"JSON","category":"U"}
{"name":"LineString","category":"U"}
{"name":"LowCardinality","category":"U"}
{"name":"Map","category":"U"}
{"name":"MultiLineString","category":"U"}
{"name":"MultiPolygon","category":"U"}
{"name":"Nested","category":"U"}
{"name":"Nothing","category":"U"}
{"name":"Nullable","category":"U"}
{"name":"Object","category":"U"}
{"name":"Point","category":"U"}
{"name":"Polygon","category":"U"}
{"name":"Ring","category":"U"}
{"name":"SimpleAggregateFunction","category":"U"}
{"name":"String","category":"S","aliases":["BINARY LARGE OBJECT","BINARY VARYING","BLOB","BYTEA","CHAR","CHAR LARGE OBJECT","CHAR VARYING","CHARACTER","CHARACTER LARGE OBJECT","CHARACTER VARYING","CLOB","GEOMETRY","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMTEXT","NATIONAL CHAR","NATIONAL CHAR VARYING","NATIONAL CHARACTER","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NCHAR","NCHAR LARGE OBJECT","NCHAR VARYING","NVARCHAR","TEXT","TINYBLOB","TINYTEXT","VARBINARY","VARCHAR","VARCHAR2"]}
{"name":"Time","category":"D"}
{"name":"Time64","category":"D"}
{"name":"Tuple","category":"U"}
{"name":"UInt128","category":"N"}
{"name":"UInt16","category":"N","aliases":["SMALLINT UNSIGNED","YEAR"]}
{"name":"UInt256","category":"N"}
{"name":"UInt32","category":"N","aliases":["INT UNSIGNED","INTEGER UNSIGNED","MEDIUMINT UNSIGNED"]}
{"name":"UInt64","category":"N","aliases":["BIGINT UNSIGNED","BIT","SET","UNSIGNED"]}
{"name":"UInt8","category":"N","aliases":["INT1 UNSIGNED","TINYINT UNSIGNED"]}
{"name":"UUID","category":"S"}
{"name":"Variant","category":"U"}

View File

@@ -0,0 +1,29 @@
package clickhouse
// QuoteIdent returns a quoted identifier if it needs quoting.
// ClickHouse uses backticks or double quotes for quoting identifiers.
func (p *Parser) QuoteIdent(s string) string {
// For now, don't quote - can be extended to quote when necessary
return s
}
// TypeName returns the SQL type name for the given namespace and name.
func (p *Parser) TypeName(ns, name string) string {
if ns != "" {
return ns + "." + name
}
return name
}
// Param returns the parameter placeholder for the given number.
// ClickHouse uses {name:Type} for named parameters, but for positional
// parameters we use ? which is supported by the clickhouse-go driver.
func (p *Parser) Param(n int, numbered bool) string {
return "?"
}
// Cast returns a type cast expression.
// ClickHouse uses CAST(expr AS type) syntax, same as MySQL.
func (p *Parser) Cast(arg, typeName string) string {
return "CAST(" + arg + " AS " + typeName + ")"
}

View File

@@ -0,0 +1,125 @@
package clickhouse
import (
"bytes"
"context"
"io"
"github.com/sqlc-dev/doubleclick/parser"
"github.com/sqlc-dev/sqlc/internal/source"
"github.com/sqlc-dev/sqlc/internal/sql/ast"
)
func NewParser() *Parser {
return &Parser{}
}
type Parser struct{}
func (p *Parser) Parse(r io.Reader) ([]ast.Statement, error) {
blob, err := io.ReadAll(r)
if err != nil {
return nil, err
}
ctx := context.Background()
stmtNodes, err := parser.Parse(ctx, bytes.NewReader(blob))
if err != nil {
return nil, err
}
var stmts []ast.Statement
loc := 0
for _, stmt := range stmtNodes {
start := stmt.Pos().Offset - 1
if start < loc {
start = loc
}
end := statementEnd(blob, start)
converter := &cc{}
out := converter.convert(stmt)
if _, ok := out.(*ast.TODO); ok {
loc = end
continue
}
stmts = append(stmts, ast.Statement{
Raw: &ast.RawStmt{
Stmt: out,
StmtLocation: loc,
StmtLen: end - loc,
},
})
loc = end
}
return stmts, nil
}
func statementEnd(blob []byte, start int) int {
for i := start; i < len(blob); i++ {
switch blob[i] {
case '\'', '"', '`':
i = skipQuoted(blob, i)
case '-':
if i+1 < len(blob) && blob[i+1] == '-' {
i = skipLineComment(blob, i)
}
case '#':
i = skipLineComment(blob, i)
case '/':
if i+1 < len(blob) && blob[i+1] == '*' {
i = skipBlockComment(blob, i)
}
case ';':
return i + 1
}
}
return len(blob)
}
func skipQuoted(blob []byte, i int) int {
q := blob[i]
for j := i + 1; j < len(blob); j++ {
switch blob[j] {
case '\\':
j++
case q:
if j+1 < len(blob) && blob[j+1] == q {
j++
continue
}
return j
}
}
return len(blob) - 1
}
func skipLineComment(blob []byte, i int) int {
for j := i; j < len(blob); j++ {
if blob[j] == '\n' {
return j
}
}
return len(blob) - 1
}
func skipBlockComment(blob []byte, i int) int {
for j := i + 2; j < len(blob); j++ {
if blob[j] == '*' && j+1 < len(blob) && blob[j+1] == '/' {
return j + 1
}
}
return len(blob) - 1
}
// https://clickhouse.com/docs/en/sql-reference/syntax#comments
func (p *Parser) CommentSyntax() source.CommentSyntax {
return source.CommentSyntax{
Dash: true, // -- comment
SlashStar: true, // /* comment */
Hash: true, // # comment (ClickHouse supports this)
}
}

View File

@@ -0,0 +1,150 @@
package clickhouse
import "strings"
// https://clickhouse.com/docs/en/sql-reference/syntax#keywords
func (p *Parser) IsReservedKeyword(s string) bool {
switch strings.ToLower(s) {
case "add":
case "after":
case "alias":
case "all":
case "alter":
case "and":
case "anti":
case "any":
case "array":
case "as":
case "asc":
case "asof":
case "between":
case "both":
case "by":
case "case":
case "cast":
case "check":
case "cluster":
case "collate":
case "column":
case "comment":
case "constraint":
case "create":
case "cross":
case "cube":
case "database":
case "databases":
case "default":
case "delete":
case "desc":
case "describe":
case "detach":
case "distinct":
case "distributed":
case "drop":
case "else":
case "end":
case "engine":
case "exists":
case "explain":
case "expression":
case "extract":
case "false":
case "fetch":
case "final":
case "first":
case "for":
case "format":
case "from":
case "full":
case "function":
case "global":
case "grant":
case "group":
case "having":
case "if":
case "ilike":
case "in":
case "index":
case "inner":
case "insert":
case "interpolate":
case "interval":
case "into":
case "is":
case "join":
case "key":
case "kill":
case "last":
case "leading":
case "left":
case "like":
case "limit":
case "live":
case "local":
case "logs":
case "materialized":
case "modify":
case "natural":
case "not":
case "null":
case "nulls":
case "offset":
case "on":
case "optimize":
case "or":
case "order":
case "outer":
case "outfile":
case "over":
case "partition":
case "paste":
case "populate":
case "prewhere":
case "primary":
case "projection":
case "rename":
case "replace":
case "right":
case "rollup":
case "sample":
case "select":
case "semi":
case "set":
case "settings":
case "show":
case "storage":
case "substring":
case "sync":
case "system":
case "table":
case "tables":
case "temporary":
case "test":
case "then":
case "ties":
case "to":
case "top":
case "totals":
case "trailing":
case "trim":
case "true":
case "truncate":
case "ttl":
case "type":
case "union":
case "update":
case "use":
case "using":
case "uuid":
case "values":
case "view":
case "watch":
case "when":
case "where":
case "window":
case "with":
default:
return false
}
return true
}

View File

@@ -0,0 +1,25 @@
package clickhouse
import (
"embed"
"github.com/sqlc-dev/sqlc/internal/core"
"github.com/sqlc-dev/sqlc/internal/core/seed"
)
// The dialect directory describes ClickHouse's type system. types.jsonl is
// generated from system.data_type_families of the pinned ClickHouse release
// by goldeneye (internal/goldeneye), which also checks it against one;
// dialect.json and functions.jsonl are authored by hand, since ClickHouse
// publishes no function signatures. Regenerate from internal/goldeneye with:
//
// go run ./cmd/goldeneye install clickhouse
// go run ./cmd/goldeneye generate clickhouse
//
//go:embed dialect
var dialectFS embed.FS
// Dialect returns the catalog option that seeds ClickHouse's type system.
func Dialect() core.Option {
return seed.Dialect(dialectFS, "dialect")
}

View File

@@ -0,0 +1,9 @@
package clickhouse
import (
"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)
func defaultSchema(name string) *catalog.Schema {
return &catalog.Schema{Name: name}
}

View File

@@ -0,0 +1,59 @@
package clickhouse
import (
"log"
"strings"
chast "github.com/sqlc-dev/doubleclick/ast"
"github.com/sqlc-dev/sqlc/internal/debug"
"github.com/sqlc-dev/sqlc/internal/sql/ast"
)
func todo(n chast.Node) *ast.TODO {
if debug.Active {
log.Printf("clickhouse.convert: Unknown node type %T\n", n)
}
return &ast.TODO{}
}
func identifier(id string) string {
return strings.ToLower(id)
}
func NewIdentifier(t string) *ast.String {
return &ast.String{Str: identifier(t)}
}
func parseTableName(n *chast.TableIdentifier) *ast.TableName {
return &ast.TableName{
Schema: identifier(n.Database),
Name: identifier(n.Table),
}
}
func parseTableIdentifierToRangeVar(n *chast.TableIdentifier) *ast.RangeVar {
schemaname := identifier(n.Database)
relname := identifier(n.Table)
return &ast.RangeVar{
Schemaname: &schemaname,
Relname: &relname,
}
}
func isNotNull(n *chast.ColumnDeclaration) bool {
if n.Type == nil {
return false
}
// Check if type is wrapped in Nullable()
// If it's Nullable, it can be null, so return false
// If it's not Nullable, it's NOT NULL by default in ClickHouse
if n.Type.Name != "" && strings.ToLower(n.Type.Name) == "nullable" {
return false
}
// Also check if Nullable field is explicitly set
if n.Nullable != nil && *n.Nullable {
return false
}
return true
}