sqllens 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -10
- package/README.md +95 -85
- package/THIRD-PARTY-NOTICES.md +70 -5
- package/dist/api.d.ts +5 -3
- package/dist/api.js +17 -4
- package/dist/bigquery/behavior.d.ts +2 -0
- package/dist/bigquery/behavior.js +20 -0
- package/dist/bigquery/dot-path.d.ts +0 -2
- package/dist/bigquery/dot-path.js +0 -1
- package/dist/bigquery/fold.d.ts +8 -0
- package/dist/bigquery/fold.js +39 -0
- package/dist/bigquery/index.d.ts +7 -0
- package/dist/bigquery/index.js +10 -0
- package/dist/{infer/bigquery.d.ts → bigquery/infer.d.ts} +2 -2
- package/dist/{infer/bigquery.js → bigquery/infer.js} +4 -3
- package/dist/bigquery/lower.js +35 -12
- package/dist/bigquery/signatures.generated.d.ts +6 -0
- package/dist/bigquery/signatures.generated.js +1068 -0
- package/dist/completion/atn-walk.d.ts +13 -2
- package/dist/completion/atn-walk.js +13 -10
- package/dist/completion/complete.d.ts +4 -3
- package/dist/completion/complete.js +101 -45
- package/dist/completion/config.js +66 -0
- package/dist/completion/jinja-slot.d.ts +24 -0
- package/dist/completion/jinja-slot.js +126 -0
- package/dist/completion/parser-factory.d.ts +13 -1
- package/dist/completion/parser-factory.js +48 -0
- package/dist/databricks/behavior.d.ts +2 -0
- package/dist/databricks/behavior.js +19 -0
- package/dist/databricks/fold.d.ts +8 -0
- package/dist/databricks/fold.js +27 -0
- package/dist/databricks/index.d.ts +7 -0
- package/dist/databricks/index.js +10 -0
- package/dist/databricks/infer.d.ts +6 -0
- package/dist/databricks/infer.js +638 -0
- package/dist/databricks/signatures.generated.d.ts +6 -0
- package/dist/databricks/signatures.generated.js +1745 -0
- package/dist/derived-dialects.js +19 -1
- package/dist/dialect-behavior/behavior.d.ts +26 -0
- package/dist/dialect-behavior/behavior.js +1 -0
- package/dist/dialect-behavior/carrier.d.ts +5 -0
- package/dist/dialect-behavior/carrier.js +5 -0
- package/dist/dialect-behavior/coerce-rules.d.ts +7 -0
- package/dist/dialect-behavior/coerce-rules.js +69 -0
- package/dist/dialect-behavior/public-fold.d.ts +6 -0
- package/dist/dialect-behavior/public-fold.js +9 -0
- package/dist/dialect-behavior/registry.d.ts +6 -0
- package/dist/dialect-behavior/registry.js +34 -0
- package/dist/dialect-symbols.js +22 -17
- package/dist/dialect.d.ts +2 -2
- package/dist/document/document.d.ts +1 -1
- package/dist/document/document.js +8 -7
- package/dist/duckdb/behavior.d.ts +2 -0
- package/dist/duckdb/behavior.js +21 -0
- package/dist/duckdb/fold.d.ts +8 -0
- package/dist/duckdb/fold.js +29 -0
- package/dist/duckdb/index.d.ts +7 -0
- package/dist/duckdb/index.js +10 -0
- package/dist/{infer/duckdb.d.ts → duckdb/infer.d.ts} +2 -2
- package/dist/{infer/duckdb.js → duckdb/infer.js} +4 -3
- package/dist/duckdb/lower.js +47 -15
- package/dist/duckdb/signatures.generated.d.ts +6 -0
- package/dist/duckdb/signatures.generated.js +1072 -0
- package/dist/generated/bigquery/GoogleSQLParser.js +0 -7060
- package/dist/generated/databricks/DatabricksParser.js +0 -4800
- package/dist/generated/duckdb/DuckdbParser.js +0 -9100
- package/dist/generated/minijinja/MinijinjaParser.js +0 -380
- package/dist/generated/mysql/MysqlLexer.js +7357 -0
- package/dist/generated/mysql/MysqlParser.js +78520 -0
- package/dist/generated/postgres/PostgresParser.js +0 -8530
- package/dist/generated/redshift/RedshiftParser.js +0 -10970
- package/dist/generated/snowflake/SnowflakeParser.js +0 -7320
- package/dist/generated/sqlite/SqliteLexer.js +945 -0
- package/dist/generated/sqlite/SqliteParser.js +14682 -0
- package/dist/generated/trino/TrinoParser.js +0 -3770
- package/dist/generated/tsql/TSqlParser.js +0 -8420
- package/dist/ident/fold.d.ts +24 -15
- package/dist/ident/fold.js +12 -145
- package/dist/index.d.ts +6 -2
- package/dist/index.js +14 -8
- package/dist/infer/functions.d.ts +22 -11
- package/dist/infer/functions.js +26 -888
- package/dist/infer/infer.js +16 -14
- package/dist/infer/nullability.js +3 -4
- package/dist/infer/types.d.ts +1 -1
- package/dist/infer/types.js +7 -7
- package/dist/ir/ir.d.ts +26 -17
- package/dist/ir/part-span.d.ts +16 -1
- package/dist/ir/part-span.js +38 -10
- package/dist/ir/span.js +0 -2
- package/dist/ir/walk.js +3 -3
- package/dist/lineage/hops.js +13 -10
- package/dist/lineage/lineage.js +10 -7
- package/dist/minijinja/apply-tags.d.ts +14 -7
- package/dist/minijinja/apply-tags.js +66 -121
- package/dist/minijinja/parse.js +6 -6
- package/dist/minijinja/tag-ast.d.ts +29 -36
- package/dist/minijinja/tag-ast.js +210 -90
- package/dist/mysql/behavior.d.ts +2 -0
- package/dist/mysql/behavior.js +21 -0
- package/dist/mysql/fold.d.ts +8 -0
- package/dist/mysql/fold.js +49 -0
- package/dist/mysql/index.d.ts +7 -0
- package/dist/mysql/index.js +10 -0
- package/dist/mysql/infer.d.ts +20 -0
- package/dist/mysql/infer.js +156 -0
- package/dist/mysql/lower.d.ts +13 -0
- package/dist/mysql/lower.js +1443 -0
- package/dist/mysql/parse.d.ts +10 -0
- package/dist/mysql/parse.js +70 -0
- package/dist/mysql/signatures.generated.d.ts +6 -0
- package/dist/mysql/signatures.generated.js +508 -0
- package/dist/postgres/behavior.d.ts +2 -0
- package/dist/postgres/behavior.js +19 -0
- package/dist/postgres/fold.d.ts +8 -0
- package/dist/postgres/fold.js +30 -0
- package/dist/postgres/index.d.ts +7 -0
- package/dist/postgres/index.js +10 -0
- package/dist/{infer/postgres.d.ts → postgres/infer.d.ts} +2 -2
- package/dist/{infer/postgres.js → postgres/infer.js} +4 -3
- package/dist/postgres/lower.js +2 -2
- package/dist/postgres/signatures.generated.d.ts +6 -0
- package/dist/postgres/signatures.generated.js +2973 -0
- package/dist/qualify/check-calls.js +80 -134
- package/dist/qualify/qualify.js +16 -14
- package/dist/qualify/schema-provider.js +2 -2
- package/dist/qualify/schema.js +3 -3
- package/dist/qualify/template-provider.d.ts +45 -12
- package/dist/qualify/template-provider.js +69 -38
- package/dist/redshift/behavior.d.ts +2 -0
- package/dist/redshift/behavior.js +19 -0
- package/dist/redshift/fold.d.ts +8 -0
- package/dist/redshift/fold.js +31 -0
- package/dist/redshift/index.d.ts +7 -0
- package/dist/redshift/index.js +10 -0
- package/dist/{infer/redshift.d.ts → redshift/infer.d.ts} +2 -2
- package/dist/{infer/redshift.js → redshift/infer.js} +4 -3
- package/dist/redshift/lower.js +2 -2
- package/dist/redshift/signatures.generated.d.ts +6 -0
- package/dist/redshift/signatures.generated.js +757 -0
- package/dist/references/references.js +17 -12
- package/dist/scope/like-pattern.d.ts +2 -0
- package/dist/scope/like-pattern.js +15 -0
- package/dist/scope/scope.d.ts +5 -5
- package/dist/scope/scope.js +48 -42
- package/dist/sema/resolve.js +17 -12
- package/dist/session.d.ts +2 -2
- package/dist/signature/signature.d.ts +14 -6
- package/dist/signature/signature.js +30 -22
- package/dist/signature/signatures.d.ts +14 -12
- package/dist/signature/signatures.js +42 -582
- package/dist/snowflake/behavior.d.ts +2 -0
- package/dist/snowflake/behavior.js +22 -0
- package/dist/snowflake/fold.d.ts +8 -0
- package/dist/snowflake/fold.js +25 -0
- package/dist/snowflake/index.d.ts +7 -0
- package/dist/snowflake/index.js +10 -0
- package/dist/{infer/snowflake.d.ts → snowflake/infer.d.ts} +2 -2
- package/dist/{infer/snowflake.js → snowflake/infer.js} +4 -3
- package/dist/snowflake/lower.js +59 -19
- package/dist/snowflake/signatures.generated.d.ts +6 -0
- package/dist/snowflake/signatures.generated.js +2080 -0
- package/dist/sqlite/behavior.d.ts +2 -0
- package/dist/sqlite/behavior.js +19 -0
- package/dist/sqlite/fold.d.ts +8 -0
- package/dist/sqlite/fold.js +41 -0
- package/dist/sqlite/index.d.ts +7 -0
- package/dist/sqlite/index.js +10 -0
- package/dist/sqlite/infer.d.ts +12 -0
- package/dist/sqlite/infer.js +122 -0
- package/dist/sqlite/lower.d.ts +11 -0
- package/dist/sqlite/lower.js +1093 -0
- package/dist/sqlite/parse.d.ts +10 -0
- package/dist/sqlite/parse.js +70 -0
- package/dist/sqlite/signatures.generated.d.ts +6 -0
- package/dist/sqlite/signatures.generated.js +277 -0
- package/dist/symbols/symbols.js +14 -12
- package/dist/token/classify.js +31 -0
- package/dist/token/tokenize.js +4 -0
- package/dist/trino/behavior.d.ts +2 -0
- package/dist/trino/behavior.js +21 -0
- package/dist/trino/fold.d.ts +8 -0
- package/dist/trino/fold.js +39 -0
- package/dist/trino/index.d.ts +7 -0
- package/dist/trino/index.js +10 -0
- package/dist/{infer/trino.d.ts → trino/infer.d.ts} +2 -2
- package/dist/{infer/trino.js → trino/infer.js} +4 -3
- package/dist/trino/lower.js +5 -5
- package/dist/trino/signatures.generated.d.ts +6 -0
- package/dist/trino/signatures.generated.js +968 -0
- package/dist/tsql/behavior.d.ts +2 -0
- package/dist/tsql/behavior.js +20 -0
- package/dist/tsql/fold.d.ts +8 -0
- package/dist/tsql/fold.js +34 -0
- package/dist/tsql/index.d.ts +7 -0
- package/dist/tsql/index.js +10 -0
- package/dist/tsql/infer.d.ts +16 -0
- package/dist/tsql/infer.js +289 -0
- package/dist/tsql/lower.js +4 -4
- package/dist/tsql/signatures.generated.d.ts +6 -0
- package/dist/tsql/signatures.generated.js +640 -0
- package/package.json +15 -11
- package/dist/generated/bigquery/GoogleSQLLexer.d.ts +0 -407
- package/dist/generated/bigquery/GoogleSQLParser.d.ts +0 -9558
- package/dist/generated/bigquery/GoogleSQLParserListener.d.ts +0 -7777
- package/dist/generated/bigquery/GoogleSQLParserListener.js +0 -7070
- package/dist/generated/databricks/DatabricksLexer.d.ts +0 -566
- package/dist/generated/databricks/DatabricksParser.d.ts +0 -7771
- package/dist/generated/databricks/DatabricksParserListener.d.ts +0 -5737
- package/dist/generated/databricks/DatabricksParserListener.js +0 -5256
- package/dist/generated/duckdb/DuckdbLexer.d.ts +0 -691
- package/dist/generated/duckdb/DuckdbParser.d.ts +0 -13932
- package/dist/generated/duckdb/DuckdbParserListener.d.ts +0 -10049
- package/dist/generated/duckdb/DuckdbParserListener.js +0 -9138
- package/dist/generated/minijinja/MinijinjaLexer.d.ts +0 -108
- package/dist/generated/minijinja/MinijinjaParser.d.ts +0 -604
- package/dist/generated/minijinja/MinijinjaParserListener.d.ts +0 -449
- package/dist/generated/minijinja/MinijinjaParserListener.js +0 -410
- package/dist/generated/postgres/PostgresLexer.d.ts +0 -663
- package/dist/generated/postgres/PostgresParser.d.ts +0 -12963
- package/dist/generated/postgres/PostgresParserListener.d.ts +0 -9408
- package/dist/generated/postgres/PostgresParserListener.js +0 -8554
- package/dist/generated/redshift/RedshiftLexer.d.ts +0 -954
- package/dist/generated/redshift/RedshiftParser.d.ts +0 -16939
- package/dist/generated/redshift/RedshiftParserListener.d.ts +0 -12092
- package/dist/generated/redshift/RedshiftParserListener.js +0 -10994
- package/dist/generated/snowflake/SnowflakeLexer.d.ts +0 -1046
- package/dist/generated/snowflake/SnowflakeParser.d.ts +0 -14196
- package/dist/generated/snowflake/SnowflakeParserListener.d.ts +0 -8063
- package/dist/generated/snowflake/SnowflakeParserListener.js +0 -7330
- package/dist/generated/trino/TrinoLexer.d.ts +0 -381
- package/dist/generated/trino/TrinoParser.d.ts +0 -5340
- package/dist/generated/trino/TrinoParserListener.d.ts +0 -4704
- package/dist/generated/trino/TrinoParserListener.js +0 -4326
- package/dist/generated/tsql/TSqlLexer.d.ts +0 -1278
- package/dist/generated/tsql/TSqlParser.d.ts +0 -17267
- package/dist/generated/tsql/TSqlParserListener.d.ts +0 -9697
- package/dist/generated/tsql/TSqlParserListener.js +0 -8854
- package/dist/infer/dialect.d.ts +0 -21
- package/dist/infer/dialect.js +0 -74
- package/dist/infer/literals.d.ts +0 -6
- package/dist/infer/literals.js +0 -44
- package/dist/signature/generated/tsql.d.ts +0 -3
- package/dist/signature/generated/tsql.js +0 -260
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ParseResult } from "../parse-result.js";
|
|
2
|
+
/** The CST rooted at `root` (a semicolon-separated batch of statements); see
|
|
3
|
+
* `ParseResult` for the full result shape. */
|
|
4
|
+
export type { ParseResult } from "../parse-result.js";
|
|
5
|
+
/**
|
|
6
|
+
* Lex + parse MySQL SQL (one statement or a `;`-separated batch). Two-stage parsing:
|
|
7
|
+
* try the fast SLL prediction mode first (bail on the first conflict), fall back to full LL
|
|
8
|
+
* only when SLL fails — same result LL alone would give, just faster on valid input.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseMysql(sql: string): ParseResult;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BailErrorStrategy, CharStream, CommonTokenStream, PredictionMode, } from "antlr4ng";
|
|
2
|
+
import { MysqlLexer } from "../generated/mysql/MysqlLexer.js";
|
|
3
|
+
import { MysqlParser } from "../generated/mysql/MysqlParser.js";
|
|
4
|
+
import { makeErrorCollector } from "../parse-diagnostics.js";
|
|
5
|
+
import { mapTokens } from "../token/map.js";
|
|
6
|
+
/**
|
|
7
|
+
* Lex + parse MySQL SQL (one statement or a `;`-separated batch). Two-stage parsing:
|
|
8
|
+
* try the fast SLL prediction mode first (bail on the first conflict), fall back to full LL
|
|
9
|
+
* only when SLL fails — same result LL alone would give, just faster on valid input.
|
|
10
|
+
*/
|
|
11
|
+
export function parseMysql(sql) {
|
|
12
|
+
const lexer = new MysqlLexer(CharStream.fromString(sql));
|
|
13
|
+
const tokens = new CommonTokenStream(lexer);
|
|
14
|
+
const parser = new MysqlParser(tokens);
|
|
15
|
+
const sim = parser.interpreter;
|
|
16
|
+
const collector = makeErrorCollector();
|
|
17
|
+
attachErrorCounter(lexer, parser, collector.listener);
|
|
18
|
+
// Force a full lex now so every lexer error fires eagerly (CommonTokenStream lexes lazily, and the
|
|
19
|
+
// SLL→LL retry reseeks the SAME buffered tokens without re-lexing — so lexer errors are NOT
|
|
20
|
+
// re-emitted on the LL path). Snapshot them so they can be re-pushed after the retry's
|
|
21
|
+
// collector.reset(), which clears parser AND lexer diagnostics.
|
|
22
|
+
tokens.fill();
|
|
23
|
+
const lexDiags = [...collector.diagnostics];
|
|
24
|
+
// The token list is stable once filled — the SLL→LL retry reseeks the same buffer, never re-lexes.
|
|
25
|
+
// Projecting it to neutral `Token`s is deferred behind a lazy getter: most consumers (the corpus
|
|
26
|
+
// gates especially) never read `.tokens`, so they should not pay for the mapping. `fill()` above
|
|
27
|
+
// still runs eagerly — it surfaces lexer diagnostics — but the projection maps once, on first read.
|
|
28
|
+
const withTokens = (base) => {
|
|
29
|
+
let cached;
|
|
30
|
+
return Object.defineProperty(base, "tokens", {
|
|
31
|
+
get: () => (cached ??= mapTokens(lexer, tokens.getTokens(), "mysql")),
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
const defaultErrorHandler = parser.errorHandler;
|
|
37
|
+
parser.errorHandler = new BailErrorStrategy();
|
|
38
|
+
sim.predictionMode = PredictionMode.SLL;
|
|
39
|
+
try {
|
|
40
|
+
const tree = parser.root();
|
|
41
|
+
return withTokens({
|
|
42
|
+
tree,
|
|
43
|
+
errors: collector.diagnostics.length,
|
|
44
|
+
diagnostics: collector.diagnostics,
|
|
45
|
+
sllFallback: false,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
tokens.seek(0);
|
|
50
|
+
parser.reset();
|
|
51
|
+
parser.errorHandler = defaultErrorHandler;
|
|
52
|
+
sim.predictionMode = PredictionMode.LL;
|
|
53
|
+
collector.reset(); // discount anything the SLL attempt may have reported
|
|
54
|
+
collector.diagnostics.push(...lexDiags); // restore lexer diagnostics (not re-emitted on the LL path)
|
|
55
|
+
attachErrorCounter(lexer, parser, collector.listener);
|
|
56
|
+
const tree = parser.root();
|
|
57
|
+
return withTokens({
|
|
58
|
+
tree,
|
|
59
|
+
errors: collector.diagnostics.length,
|
|
60
|
+
diagnostics: collector.diagnostics,
|
|
61
|
+
sllFallback: true,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function attachErrorCounter(lexer, parser, listener) {
|
|
66
|
+
lexer.removeErrorListeners();
|
|
67
|
+
lexer.addErrorListener(listener);
|
|
68
|
+
parser.removeErrorListeners();
|
|
69
|
+
parser.addErrorListener(listener);
|
|
70
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FnSignature } from "../signature/signatures.js";
|
|
2
|
+
/** The merged function-signature table for mysql: curated overrides folded over the harvested
|
|
3
|
+
* doc-derived long tail (overrides win by key, replacing the whole overload set), keyed by
|
|
4
|
+
* lowercased name. Each name maps to an ORDERED overload set - a name with one documented shape
|
|
5
|
+
* is a one-element array. `origin` says which layer produced the set. */
|
|
6
|
+
export declare const MYSQL_SIGNATURES: Record<string, FnSignature[]>;
|
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
/** The merged function-signature table for mysql: curated overrides folded over the harvested
|
|
2
|
+
* doc-derived long tail (overrides win by key, replacing the whole overload set), keyed by
|
|
3
|
+
* lowercased name. Each name maps to an ORDERED overload set - a name with one documented shape
|
|
4
|
+
* is a one-element array. `origin` says which layer produced the set. */
|
|
5
|
+
export const MYSQL_SIGNATURES = {
|
|
6
|
+
abs: [{ name: "ABS", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/1.txt
|
|
7
|
+
acos: [{ name: "ACOS", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/2.txt
|
|
8
|
+
adddate: [{ name: "ADDDATE", params: [{ name: "date" }, { name: "days" }], origin: "harvested" }], // date-and-time-functions/1.txt
|
|
9
|
+
addtime: [{ name: "ADDTIME", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // date-and-time-functions/2.txt
|
|
10
|
+
any_value: [{ name: "ANY_VALUE", params: [{ name: "arg" }], origin: "harvested" }], // miscellaneous-functions/1.txt
|
|
11
|
+
ascii: [{ name: "ASCII", params: [{ name: "str" }], origin: "harvested" }], // string-functions/1.txt
|
|
12
|
+
asin: [{ name: "ASIN", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/3.txt
|
|
13
|
+
atan: [
|
|
14
|
+
{ name: "ATAN", params: [{ name: "Y" }, { name: "X" }], origin: "harvested" },
|
|
15
|
+
{ name: "ATAN", params: [{ name: "X" }], origin: "harvested" },
|
|
16
|
+
], // mathematical-functions/5.txt, mathematical-functions/4.txt
|
|
17
|
+
atan2: [{ name: "ATAN2", params: [{ name: "Y" }, { name: "X" }], origin: "harvested" }], // mathematical-functions/5.txt
|
|
18
|
+
avg: [{ name: "AVG", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/1.txt
|
|
19
|
+
benchmark: [{ name: "BENCHMARK", params: [{ name: "count" }, { name: "expr" }], origin: "harvested" }], // information-functions/1.txt
|
|
20
|
+
bin: [{ name: "BIN", params: [{ name: "N" }], origin: "harvested" }], // string-functions/2.txt
|
|
21
|
+
bin_to_uuid: [
|
|
22
|
+
{
|
|
23
|
+
name: "BIN_TO_UUID",
|
|
24
|
+
params: [{ name: "binary_uuid" }, { name: "swap_flag", optional: true }],
|
|
25
|
+
origin: "harvested",
|
|
26
|
+
},
|
|
27
|
+
], // miscellaneous-functions/2.txt
|
|
28
|
+
bit_and: [{ name: "BIT_AND", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/2.txt
|
|
29
|
+
bit_count: [{ name: "BIT_COUNT", params: [{ name: "N" }], origin: "harvested" }], // bit-functions/7.txt
|
|
30
|
+
bit_length: [{ name: "BIT_LENGTH", params: [{ name: "str" }], origin: "harvested" }], // string-functions/3.txt
|
|
31
|
+
bit_or: [{ name: "BIT_OR", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/3.txt
|
|
32
|
+
bit_xor: [{ name: "BIT_XOR", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/4.txt
|
|
33
|
+
cast: [{ name: "CAST", params: [{ name: "expr" }, { name: "type" }], origin: "curated" }], // curated: CAST(expr AS type)
|
|
34
|
+
ceil: [{ name: "CEIL", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/6.txt
|
|
35
|
+
ceiling: [{ name: "CEILING", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/7.txt
|
|
36
|
+
char_length: [{ name: "CHAR_LENGTH", params: [{ name: "str" }], origin: "harvested" }], // string-functions/5.txt
|
|
37
|
+
character_length: [{ name: "CHARACTER_LENGTH", params: [{ name: "str" }], origin: "harvested" }], // string-functions/6.txt
|
|
38
|
+
charset: [{ name: "CHARSET", params: [{ name: "str" }], origin: "harvested" }], // information-functions/2.txt
|
|
39
|
+
coalesce: [{ name: "COALESCE", params: [{ name: "value" }], variadic: true, origin: "harvested" }], // comparison-operators/10.txt
|
|
40
|
+
coercibility: [{ name: "COERCIBILITY", params: [{ name: "str" }], origin: "harvested" }], // information-functions/3.txt
|
|
41
|
+
collation: [{ name: "COLLATION", params: [{ name: "str" }], origin: "harvested" }], // information-functions/4.txt
|
|
42
|
+
compress: [{ name: "COMPRESS", params: [{ name: "string_to_compress" }], origin: "harvested" }], // encryption-functions/3.txt
|
|
43
|
+
concat: [{ name: "CONCAT", params: [{ name: "str1" }, { name: "str2" }], variadic: true, origin: "harvested" }], // string-functions/7.txt
|
|
44
|
+
concat_ws: [
|
|
45
|
+
{
|
|
46
|
+
name: "CONCAT_WS",
|
|
47
|
+
params: [{ name: "separator" }, { name: "str1" }, { name: "str2" }],
|
|
48
|
+
variadic: true,
|
|
49
|
+
origin: "harvested",
|
|
50
|
+
},
|
|
51
|
+
], // string-functions/8.txt
|
|
52
|
+
connection_id: [{ name: "CONNECTION_ID", params: [], origin: "harvested" }], // information-functions/5.txt
|
|
53
|
+
conv: [{ name: "CONV", params: [{ name: "N" }, { name: "from_base" }, { name: "to_base" }], origin: "harvested" }], // mathematical-functions/8.txt
|
|
54
|
+
convert: [{ name: "CONVERT", params: [{ name: "expr" }, { name: "type" }], origin: "harvested" }], // cast-functions/3.txt
|
|
55
|
+
convert_tz: [
|
|
56
|
+
{ name: "CONVERT_TZ", params: [{ name: "dt" }, { name: "from_tz" }, { name: "to_tz" }], origin: "harvested" },
|
|
57
|
+
], // date-and-time-functions/3.txt
|
|
58
|
+
cos: [{ name: "COS", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/9.txt
|
|
59
|
+
cot: [{ name: "COT", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/10.txt
|
|
60
|
+
count: [{ name: "COUNT", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/5.txt
|
|
61
|
+
crc32: [{ name: "CRC32", params: [{ name: "expr" }], origin: "harvested" }], // mathematical-functions/11.txt
|
|
62
|
+
cume_dist: [{ name: "CUME_DIST", params: [], origin: "harvested" }], // window-function-descriptions/1.txt
|
|
63
|
+
curdate: [{ name: "CURDATE", params: [], origin: "harvested" }], // date-and-time-functions/4.txt
|
|
64
|
+
current_date: [{ name: "CURRENT_DATE", params: [], origin: "harvested" }], // date-and-time-functions/5.txt
|
|
65
|
+
current_role: [{ name: "CURRENT_ROLE", params: [], origin: "harvested" }], // information-functions/6.txt
|
|
66
|
+
current_time: [{ name: "CURRENT_TIME", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/6.txt
|
|
67
|
+
current_timestamp: [{ name: "CURRENT_TIMESTAMP", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/7.txt
|
|
68
|
+
current_user: [{ name: "CURRENT_USER", params: [], origin: "harvested" }], // information-functions/7.txt
|
|
69
|
+
curtime: [{ name: "CURTIME", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/8.txt
|
|
70
|
+
database: [{ name: "DATABASE", params: [], origin: "harvested" }], // information-functions/8.txt
|
|
71
|
+
date: [{ name: "DATE", params: [{ name: "expr" }], origin: "harvested" }], // date-and-time-functions/9.txt
|
|
72
|
+
date_add: [
|
|
73
|
+
{
|
|
74
|
+
name: "DATE_ADD",
|
|
75
|
+
params: [
|
|
76
|
+
{ name: "date", type: "date" },
|
|
77
|
+
{ name: "expr", type: "interval" },
|
|
78
|
+
],
|
|
79
|
+
origin: "curated",
|
|
80
|
+
},
|
|
81
|
+
], // curated: DATE_ADD(date, INTERVAL expr unit)
|
|
82
|
+
date_format: [{ name: "DATE_FORMAT", params: [{ name: "date" }, { name: "format" }], origin: "harvested" }], // date-and-time-functions/12.txt
|
|
83
|
+
date_sub: [
|
|
84
|
+
{
|
|
85
|
+
name: "DATE_SUB",
|
|
86
|
+
params: [
|
|
87
|
+
{ name: "date", type: "date" },
|
|
88
|
+
{ name: "expr", type: "interval" },
|
|
89
|
+
],
|
|
90
|
+
origin: "curated",
|
|
91
|
+
},
|
|
92
|
+
], // curated: DATE_SUB(date, INTERVAL expr unit)
|
|
93
|
+
datediff: [{ name: "DATEDIFF", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // date-and-time-functions/10.txt
|
|
94
|
+
day: [{ name: "DAY", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/14.txt
|
|
95
|
+
dayname: [{ name: "DAYNAME", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/15.txt
|
|
96
|
+
dayofmonth: [{ name: "DAYOFMONTH", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/16.txt
|
|
97
|
+
dayofweek: [{ name: "DAYOFWEEK", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/17.txt
|
|
98
|
+
dayofyear: [{ name: "DAYOFYEAR", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/18.txt
|
|
99
|
+
default: [{ name: "DEFAULT", params: [{ name: "col_name" }], origin: "harvested" }], // miscellaneous-functions/3.txt
|
|
100
|
+
degrees: [{ name: "DEGREES", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/12.txt
|
|
101
|
+
dense_rank: [{ name: "DENSE_RANK", params: [], origin: "harvested" }], // window-function-descriptions/2.txt
|
|
102
|
+
elt: [
|
|
103
|
+
{
|
|
104
|
+
name: "ELT",
|
|
105
|
+
params: [{ name: "N" }, { name: "str1" }, { name: "str2" }, { name: "str3" }],
|
|
106
|
+
variadic: true,
|
|
107
|
+
origin: "harvested",
|
|
108
|
+
},
|
|
109
|
+
], // string-functions/9.txt
|
|
110
|
+
exp: [{ name: "EXP", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/13.txt
|
|
111
|
+
export_set: [
|
|
112
|
+
{
|
|
113
|
+
name: "EXPORT_SET",
|
|
114
|
+
params: [
|
|
115
|
+
{ name: "bits" },
|
|
116
|
+
{ name: "on" },
|
|
117
|
+
{ name: "off" },
|
|
118
|
+
{ name: "separator", optional: true },
|
|
119
|
+
{ name: "number_of_bits", optional: true },
|
|
120
|
+
],
|
|
121
|
+
origin: "harvested",
|
|
122
|
+
},
|
|
123
|
+
], // string-functions/10.txt
|
|
124
|
+
field: [
|
|
125
|
+
{
|
|
126
|
+
name: "FIELD",
|
|
127
|
+
params: [{ name: "str" }, { name: "str1" }, { name: "str2" }, { name: "str3" }],
|
|
128
|
+
variadic: true,
|
|
129
|
+
origin: "harvested",
|
|
130
|
+
},
|
|
131
|
+
], // string-functions/11.txt
|
|
132
|
+
find_in_set: [{ name: "FIND_IN_SET", params: [{ name: "str" }, { name: "strlist" }], origin: "harvested" }], // string-functions/12.txt
|
|
133
|
+
first_value: [{ name: "FIRST_VALUE", params: [{ name: "expr" }], origin: "harvested" }], // window-function-descriptions/3.txt
|
|
134
|
+
floor: [{ name: "FLOOR", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/14.txt
|
|
135
|
+
format: [
|
|
136
|
+
{
|
|
137
|
+
name: "FORMAT",
|
|
138
|
+
params: [{ name: "X" }, { name: "D" }, { name: "locale", optional: true }],
|
|
139
|
+
origin: "harvested",
|
|
140
|
+
},
|
|
141
|
+
], // string-functions/13.txt
|
|
142
|
+
found_rows: [{ name: "FOUND_ROWS", params: [], origin: "harvested" }], // information-functions/9.txt
|
|
143
|
+
from_base64: [{ name: "FROM_BASE64", params: [{ name: "str" }], origin: "harvested" }], // string-functions/14.txt
|
|
144
|
+
from_days: [{ name: "FROM_DAYS", params: [{ name: "N" }], origin: "harvested" }], // date-and-time-functions/20.txt
|
|
145
|
+
from_unixtime: [
|
|
146
|
+
{
|
|
147
|
+
name: "FROM_UNIXTIME",
|
|
148
|
+
params: [{ name: "unix_timestamp" }, { name: "format", optional: true }],
|
|
149
|
+
origin: "harvested",
|
|
150
|
+
},
|
|
151
|
+
], // date-and-time-functions/21.txt
|
|
152
|
+
get_lock: [{ name: "GET_LOCK", params: [{ name: "str" }, { name: "timeout" }], origin: "harvested" }], // locking-functions/1.txt
|
|
153
|
+
greatest: [
|
|
154
|
+
{ name: "GREATEST", params: [{ name: "value1" }, { name: "value2" }], variadic: true, origin: "harvested" },
|
|
155
|
+
], // comparison-operators/13.txt
|
|
156
|
+
group_concat: [{ name: "GROUP_CONCAT", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/7.txt
|
|
157
|
+
hex: [
|
|
158
|
+
{ name: "HEX", params: [{ name: "str" }], origin: "harvested" },
|
|
159
|
+
{ name: "HEX", params: [{ name: "N" }], origin: "harvested" },
|
|
160
|
+
], // string-functions/15.txt
|
|
161
|
+
hour: [{ name: "HOUR", params: [{ name: "time" }], origin: "harvested" }], // date-and-time-functions/23.txt
|
|
162
|
+
icu_version: [{ name: "ICU_VERSION", params: [], origin: "harvested" }], // information-functions/10.txt
|
|
163
|
+
if: [{ name: "IF", params: [{ name: "expr1" }, { name: "expr2" }, { name: "expr3" }], origin: "harvested" }], // flow-control-functions/2.txt
|
|
164
|
+
ifnull: [{ name: "IFNULL", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // flow-control-functions/3.txt
|
|
165
|
+
inet6_aton: [{ name: "INET6_ATON", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/7.txt
|
|
166
|
+
inet6_ntoa: [{ name: "INET6_NTOA", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/8.txt
|
|
167
|
+
inet_aton: [{ name: "INET_ATON", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/5.txt
|
|
168
|
+
inet_ntoa: [{ name: "INET_NTOA", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/6.txt
|
|
169
|
+
insert: [
|
|
170
|
+
{
|
|
171
|
+
name: "INSERT",
|
|
172
|
+
params: [{ name: "str" }, { name: "pos" }, { name: "len" }, { name: "newstr" }],
|
|
173
|
+
origin: "harvested",
|
|
174
|
+
},
|
|
175
|
+
], // string-functions/16.txt
|
|
176
|
+
instr: [{ name: "INSTR", params: [{ name: "str" }, { name: "substr" }], origin: "harvested" }], // string-functions/17.txt
|
|
177
|
+
interval: [
|
|
178
|
+
{
|
|
179
|
+
name: "INTERVAL",
|
|
180
|
+
params: [{ name: "N" }, { name: "N1" }, { name: "N2" }, { name: "N3" }],
|
|
181
|
+
variadic: true,
|
|
182
|
+
origin: "harvested",
|
|
183
|
+
},
|
|
184
|
+
], // comparison-operators/16.txt
|
|
185
|
+
is_free_lock: [{ name: "IS_FREE_LOCK", params: [{ name: "str" }], origin: "harvested" }], // locking-functions/2.txt
|
|
186
|
+
is_ipv4: [{ name: "IS_IPV4", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/9.txt
|
|
187
|
+
is_ipv4_compat: [{ name: "IS_IPV4_COMPAT", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/10.txt
|
|
188
|
+
is_ipv4_mapped: [{ name: "IS_IPV4_MAPPED", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/11.txt
|
|
189
|
+
is_ipv6: [{ name: "IS_IPV6", params: [{ name: "expr" }], origin: "harvested" }], // miscellaneous-functions/12.txt
|
|
190
|
+
is_used_lock: [{ name: "IS_USED_LOCK", params: [{ name: "str" }], origin: "harvested" }], // locking-functions/3.txt
|
|
191
|
+
is_uuid: [{ name: "IS_UUID", params: [{ name: "string_uuid" }], origin: "harvested" }], // miscellaneous-functions/13.txt
|
|
192
|
+
isnull: [{ name: "ISNULL", params: [{ name: "expr" }], origin: "harvested" }], // comparison-operators/21.txt
|
|
193
|
+
json_arrayagg: [{ name: "JSON_ARRAYAGG", params: [{ name: "col_or_expr" }], origin: "harvested" }], // aggregate-functions/8.txt
|
|
194
|
+
json_contains: [
|
|
195
|
+
{
|
|
196
|
+
name: "JSON_CONTAINS",
|
|
197
|
+
params: [{ name: "target" }, { name: "candidate" }, { name: "path", optional: true }],
|
|
198
|
+
origin: "harvested",
|
|
199
|
+
},
|
|
200
|
+
], // json-search-functions/1.txt
|
|
201
|
+
json_depth: [{ name: "JSON_DEPTH", params: [{ name: "json_doc" }], origin: "harvested" }], // json-attribute-functions/1.txt
|
|
202
|
+
json_extract: [
|
|
203
|
+
{
|
|
204
|
+
name: "JSON_EXTRACT",
|
|
205
|
+
params: [
|
|
206
|
+
{ name: "json_doc", type: "json" },
|
|
207
|
+
{ name: "path", type: "string" },
|
|
208
|
+
],
|
|
209
|
+
variadic: true,
|
|
210
|
+
origin: "curated",
|
|
211
|
+
},
|
|
212
|
+
], // curated: JSON_EXTRACT(json_doc,path[,path]...)
|
|
213
|
+
json_keys: [
|
|
214
|
+
{ name: "JSON_KEYS", params: [{ name: "json_doc" }, { name: "path", optional: true }], origin: "harvested" },
|
|
215
|
+
], // json-search-functions/6.txt
|
|
216
|
+
json_length: [
|
|
217
|
+
{ name: "JSON_LENGTH", params: [{ name: "json_doc" }, { name: "path", optional: true }], origin: "harvested" },
|
|
218
|
+
], // json-attribute-functions/2.txt
|
|
219
|
+
json_objectagg: [{ name: "JSON_OBJECTAGG", params: [{ name: "key" }, { name: "value" }], origin: "harvested" }], // aggregate-functions/9.txt
|
|
220
|
+
json_overlaps: [
|
|
221
|
+
{ name: "JSON_OVERLAPS", params: [{ name: "json_doc1" }, { name: "json_doc2" }], origin: "harvested" },
|
|
222
|
+
], // json-search-functions/7.txt
|
|
223
|
+
json_pretty: [{ name: "JSON_PRETTY", params: [{ name: "json_val" }], origin: "harvested" }], // json-utility-functions/1.txt
|
|
224
|
+
json_quote: [{ name: "JSON_QUOTE", params: [{ name: "string" }], origin: "harvested" }], // json-creation-functions/3.txt
|
|
225
|
+
json_schema_valid: [
|
|
226
|
+
{ name: "JSON_SCHEMA_VALID", params: [{ name: "schema" }, { name: "document" }], origin: "harvested" },
|
|
227
|
+
], // json-validation-functions/1.txt
|
|
228
|
+
json_schema_validation_report: [
|
|
229
|
+
{
|
|
230
|
+
name: "JSON_SCHEMA_VALIDATION_REPORT",
|
|
231
|
+
params: [{ name: "schema" }, { name: "document" }],
|
|
232
|
+
origin: "harvested",
|
|
233
|
+
},
|
|
234
|
+
], // json-validation-functions/2.txt
|
|
235
|
+
json_storage_free: [{ name: "JSON_STORAGE_FREE", params: [{ name: "json_val" }], origin: "harvested" }], // json-utility-functions/2.txt
|
|
236
|
+
json_storage_size: [{ name: "JSON_STORAGE_SIZE", params: [{ name: "json_val" }], origin: "harvested" }], // json-utility-functions/3.txt
|
|
237
|
+
json_type: [{ name: "JSON_TYPE", params: [{ name: "json_val" }], origin: "harvested" }], // json-attribute-functions/3.txt
|
|
238
|
+
json_unquote: [{ name: "JSON_UNQUOTE", params: [{ name: "json_val" }], origin: "harvested" }], // json-modification-functions/10.txt
|
|
239
|
+
json_valid: [{ name: "JSON_VALID", params: [{ name: "val" }], origin: "harvested" }], // json-attribute-functions/4.txt
|
|
240
|
+
json_value: [{ name: "JSON_VALUE", params: [{ name: "json_doc" }, { name: "path" }], origin: "harvested" }], // json-search-functions/9.txt
|
|
241
|
+
lag: [
|
|
242
|
+
{
|
|
243
|
+
name: "LAG",
|
|
244
|
+
params: [{ name: "expr" }, { name: "N", optional: true }, { name: "default", optional: true }],
|
|
245
|
+
origin: "harvested",
|
|
246
|
+
},
|
|
247
|
+
], // window-function-descriptions/4.txt
|
|
248
|
+
last_day: [{ name: "LAST_DAY", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/24.txt
|
|
249
|
+
last_insert_id: [{ name: "LAST_INSERT_ID", params: [{ name: "expr", optional: true }], origin: "harvested" }], // information-functions/11.txt
|
|
250
|
+
last_value: [{ name: "LAST_VALUE", params: [{ name: "expr" }], origin: "harvested" }], // window-function-descriptions/5.txt
|
|
251
|
+
lcase: [{ name: "LCASE", params: [{ name: "str" }], origin: "harvested" }], // string-functions/18.txt
|
|
252
|
+
lead: [
|
|
253
|
+
{
|
|
254
|
+
name: "LEAD",
|
|
255
|
+
params: [{ name: "expr" }, { name: "N", optional: true }, { name: "default", optional: true }],
|
|
256
|
+
origin: "harvested",
|
|
257
|
+
},
|
|
258
|
+
], // window-function-descriptions/6.txt
|
|
259
|
+
least: [{ name: "LEAST", params: [{ name: "value1" }, { name: "value2" }], variadic: true, origin: "harvested" }], // comparison-operators/22.txt
|
|
260
|
+
left: [{ name: "LEFT", params: [{ name: "str" }, { name: "len" }], origin: "harvested" }], // string-functions/19.txt
|
|
261
|
+
length: [{ name: "LENGTH", params: [{ name: "str" }], origin: "harvested" }], // string-functions/20.txt
|
|
262
|
+
ln: [{ name: "LN", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/15.txt
|
|
263
|
+
load_file: [{ name: "LOAD_FILE", params: [{ name: "file_name" }], origin: "harvested" }], // string-functions/21.txt
|
|
264
|
+
localtime: [{ name: "LOCALTIME", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/25.txt
|
|
265
|
+
localtimestamp: [{ name: "LOCALTIMESTAMP", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/26.txt
|
|
266
|
+
locate: [
|
|
267
|
+
{
|
|
268
|
+
name: "LOCATE",
|
|
269
|
+
params: [{ name: "substr" }, { name: "str" }, { name: "pos", optional: true }],
|
|
270
|
+
origin: "harvested",
|
|
271
|
+
},
|
|
272
|
+
], // string-functions/22.txt
|
|
273
|
+
log: [
|
|
274
|
+
{ name: "LOG", params: [{ name: "B" }, { name: "X" }], origin: "harvested" },
|
|
275
|
+
{ name: "LOG", params: [{ name: "X" }], origin: "harvested" },
|
|
276
|
+
], // mathematical-functions/16.txt
|
|
277
|
+
log10: [{ name: "LOG10", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/18.txt
|
|
278
|
+
log2: [{ name: "LOG2", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/17.txt
|
|
279
|
+
lower: [{ name: "LOWER", params: [{ name: "str" }], origin: "harvested" }], // string-functions/23.txt
|
|
280
|
+
lpad: [{ name: "LPAD", params: [{ name: "str" }, { name: "len" }, { name: "padstr" }], origin: "harvested" }], // string-functions/24.txt
|
|
281
|
+
ltrim: [{ name: "LTRIM", params: [{ name: "str" }], origin: "harvested" }], // string-functions/25.txt
|
|
282
|
+
make_set: [
|
|
283
|
+
{
|
|
284
|
+
name: "MAKE_SET",
|
|
285
|
+
params: [{ name: "bits" }, { name: "str1" }, { name: "str2" }],
|
|
286
|
+
variadic: true,
|
|
287
|
+
origin: "harvested",
|
|
288
|
+
},
|
|
289
|
+
], // string-functions/26.txt
|
|
290
|
+
makedate: [{ name: "MAKEDATE", params: [{ name: "year" }, { name: "dayofyear" }], origin: "harvested" }], // date-and-time-functions/27.txt
|
|
291
|
+
maketime: [
|
|
292
|
+
{ name: "MAKETIME", params: [{ name: "hour" }, { name: "minute" }, { name: "second" }], origin: "harvested" },
|
|
293
|
+
], // date-and-time-functions/28.txt
|
|
294
|
+
max: [{ name: "MAX", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/10.txt
|
|
295
|
+
md5: [{ name: "MD5", params: [{ name: "str" }], origin: "harvested" }], // encryption-functions/4.txt
|
|
296
|
+
microsecond: [{ name: "MICROSECOND", params: [{ name: "expr" }], origin: "harvested" }], // date-and-time-functions/29.txt
|
|
297
|
+
mid: [
|
|
298
|
+
{
|
|
299
|
+
name: "MID",
|
|
300
|
+
params: [{ name: "str" }, { name: "pos" }, { name: "len", optional: true }],
|
|
301
|
+
origin: "harvested",
|
|
302
|
+
},
|
|
303
|
+
], // string-functions/27.txt
|
|
304
|
+
min: [{ name: "MIN", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/11.txt
|
|
305
|
+
minute: [{ name: "MINUTE", params: [{ name: "time" }], origin: "harvested" }], // date-and-time-functions/30.txt
|
|
306
|
+
mod: [{ name: "MOD", params: [{ name: "N" }, { name: "M" }], origin: "harvested" }], // mathematical-functions/19.txt
|
|
307
|
+
month: [{ name: "MONTH", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/31.txt
|
|
308
|
+
monthname: [{ name: "MONTHNAME", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/32.txt
|
|
309
|
+
name_const: [{ name: "NAME_CONST", params: [{ name: "name" }, { name: "value" }], origin: "harvested" }], // miscellaneous-functions/14.txt
|
|
310
|
+
now: [{ name: "NOW", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/33.txt
|
|
311
|
+
nth_value: [{ name: "NTH_VALUE", params: [{ name: "expr" }, { name: "N" }], origin: "harvested" }], // window-function-descriptions/7.txt
|
|
312
|
+
ntile: [{ name: "NTILE", params: [{ name: "N" }], origin: "harvested" }], // window-function-descriptions/8.txt
|
|
313
|
+
nullif: [{ name: "NULLIF", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // flow-control-functions/4.txt
|
|
314
|
+
oct: [{ name: "OCT", params: [{ name: "N" }], origin: "harvested" }], // string-functions/28.txt
|
|
315
|
+
octet_length: [{ name: "OCTET_LENGTH", params: [{ name: "str" }], origin: "harvested" }], // string-functions/29.txt
|
|
316
|
+
ord: [{ name: "ORD", params: [{ name: "str" }], origin: "harvested" }], // string-functions/30.txt
|
|
317
|
+
percent_rank: [{ name: "PERCENT_RANK", params: [], origin: "harvested" }], // window-function-descriptions/9.txt
|
|
318
|
+
period_add: [{ name: "PERIOD_ADD", params: [{ name: "P" }, { name: "N" }], origin: "harvested" }], // date-and-time-functions/34.txt
|
|
319
|
+
period_diff: [{ name: "PERIOD_DIFF", params: [{ name: "P1" }, { name: "P2" }], origin: "harvested" }], // date-and-time-functions/35.txt
|
|
320
|
+
pi: [{ name: "PI", params: [], origin: "harvested" }], // mathematical-functions/20.txt
|
|
321
|
+
pow: [{ name: "POW", params: [{ name: "X" }, { name: "Y" }], origin: "harvested" }], // mathematical-functions/21.txt
|
|
322
|
+
power: [{ name: "POWER", params: [{ name: "X" }, { name: "Y" }], origin: "harvested" }], // mathematical-functions/22.txt
|
|
323
|
+
quarter: [{ name: "QUARTER", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/36.txt
|
|
324
|
+
quote: [{ name: "QUOTE", params: [{ name: "str" }], origin: "harvested" }], // string-functions/32.txt
|
|
325
|
+
radians: [{ name: "RADIANS", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/23.txt
|
|
326
|
+
rand: [{ name: "RAND", params: [{ name: "N", optional: true }], origin: "harvested" }], // mathematical-functions/24.txt
|
|
327
|
+
random_bytes: [{ name: "RANDOM_BYTES", params: [{ name: "len" }], origin: "harvested" }], // encryption-functions/5.txt
|
|
328
|
+
rank: [{ name: "RANK", params: [], origin: "harvested" }], // window-function-descriptions/10.txt
|
|
329
|
+
regexp_instr: [
|
|
330
|
+
{
|
|
331
|
+
name: "REGEXP_INSTR",
|
|
332
|
+
params: [
|
|
333
|
+
{ name: "expr" },
|
|
334
|
+
{ name: "pat" },
|
|
335
|
+
{ name: "pos", optional: true },
|
|
336
|
+
{ name: "occurrence", optional: true },
|
|
337
|
+
{ name: "return_option", optional: true },
|
|
338
|
+
{ name: "match_type", optional: true },
|
|
339
|
+
],
|
|
340
|
+
origin: "harvested",
|
|
341
|
+
},
|
|
342
|
+
], // regexp/3.txt
|
|
343
|
+
regexp_like: [
|
|
344
|
+
{
|
|
345
|
+
name: "REGEXP_LIKE",
|
|
346
|
+
params: [{ name: "expr" }, { name: "pat" }, { name: "match_type", optional: true }],
|
|
347
|
+
origin: "harvested",
|
|
348
|
+
},
|
|
349
|
+
], // regexp/4.txt
|
|
350
|
+
regexp_replace: [
|
|
351
|
+
{
|
|
352
|
+
name: "REGEXP_REPLACE",
|
|
353
|
+
params: [
|
|
354
|
+
{ name: "expr" },
|
|
355
|
+
{ name: "pat" },
|
|
356
|
+
{ name: "repl" },
|
|
357
|
+
{ name: "pos", optional: true },
|
|
358
|
+
{ name: "occurrence", optional: true },
|
|
359
|
+
{ name: "match_type", optional: true },
|
|
360
|
+
],
|
|
361
|
+
origin: "harvested",
|
|
362
|
+
},
|
|
363
|
+
], // regexp/5.txt
|
|
364
|
+
regexp_substr: [
|
|
365
|
+
{
|
|
366
|
+
name: "REGEXP_SUBSTR",
|
|
367
|
+
params: [
|
|
368
|
+
{ name: "expr" },
|
|
369
|
+
{ name: "pat" },
|
|
370
|
+
{ name: "pos", optional: true },
|
|
371
|
+
{ name: "occurrence", optional: true },
|
|
372
|
+
{ name: "match_type", optional: true },
|
|
373
|
+
],
|
|
374
|
+
origin: "harvested",
|
|
375
|
+
},
|
|
376
|
+
], // regexp/6.txt
|
|
377
|
+
release_all_locks: [{ name: "RELEASE_ALL_LOCKS", params: [], origin: "harvested" }], // locking-functions/4.txt
|
|
378
|
+
release_lock: [{ name: "RELEASE_LOCK", params: [{ name: "str" }], origin: "harvested" }], // locking-functions/5.txt
|
|
379
|
+
repeat: [{ name: "REPEAT", params: [{ name: "str" }, { name: "count" }], origin: "harvested" }], // string-functions/33.txt
|
|
380
|
+
replace: [
|
|
381
|
+
{ name: "REPLACE", params: [{ name: "str" }, { name: "from_str" }, { name: "to_str" }], origin: "harvested" },
|
|
382
|
+
], // string-functions/34.txt
|
|
383
|
+
reverse: [{ name: "REVERSE", params: [{ name: "str" }], origin: "harvested" }], // string-functions/35.txt
|
|
384
|
+
right: [{ name: "RIGHT", params: [{ name: "str" }, { name: "len" }], origin: "harvested" }], // string-functions/36.txt
|
|
385
|
+
roles_graphml: [{ name: "ROLES_GRAPHML", params: [], origin: "harvested" }], // information-functions/12.txt
|
|
386
|
+
round: [{ name: "ROUND", params: [{ name: "X" }, { name: "D", optional: true }], origin: "harvested" }], // mathematical-functions/25.txt
|
|
387
|
+
row_count: [{ name: "ROW_COUNT", params: [], origin: "harvested" }], // information-functions/13.txt
|
|
388
|
+
row_number: [{ name: "ROW_NUMBER", params: [], origin: "harvested" }], // window-function-descriptions/11.txt
|
|
389
|
+
rpad: [{ name: "RPAD", params: [{ name: "str" }, { name: "len" }, { name: "padstr" }], origin: "harvested" }], // string-functions/37.txt
|
|
390
|
+
rtrim: [{ name: "RTRIM", params: [{ name: "str" }], origin: "harvested" }], // string-functions/38.txt
|
|
391
|
+
schema: [{ name: "SCHEMA", params: [], origin: "harvested" }], // information-functions/14.txt
|
|
392
|
+
sec_to_time: [{ name: "SEC_TO_TIME", params: [{ name: "seconds" }], origin: "harvested" }], // date-and-time-functions/38.txt
|
|
393
|
+
second: [{ name: "SECOND", params: [{ name: "time" }], origin: "harvested" }], // date-and-time-functions/37.txt
|
|
394
|
+
session_user: [{ name: "SESSION_USER", params: [], origin: "harvested" }], // information-functions/15.txt
|
|
395
|
+
sha: [{ name: "SHA", params: [{ name: "str" }], origin: "harvested" }], // encryption-functions/6.txt
|
|
396
|
+
sha1: [{ name: "SHA1", params: [{ name: "str" }], origin: "harvested" }], // encryption-functions/6.txt
|
|
397
|
+
sha2: [{ name: "SHA2", params: [{ name: "str" }, { name: "hash_length" }], origin: "harvested" }], // encryption-functions/7.txt
|
|
398
|
+
sign: [{ name: "SIGN", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/26.txt
|
|
399
|
+
sin: [{ name: "SIN", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/27.txt
|
|
400
|
+
sleep: [{ name: "SLEEP", params: [{ name: "duration" }], origin: "harvested" }], // miscellaneous-functions/15.txt
|
|
401
|
+
soundex: [{ name: "SOUNDEX", params: [{ name: "str" }], origin: "harvested" }], // string-functions/39.txt
|
|
402
|
+
space: [{ name: "SPACE", params: [{ name: "N" }], origin: "harvested" }], // string-functions/41.txt
|
|
403
|
+
sqrt: [{ name: "SQRT", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/28.txt
|
|
404
|
+
statement_digest: [{ name: "STATEMENT_DIGEST", params: [{ name: "statement" }], origin: "harvested" }], // encryption-functions/8.txt
|
|
405
|
+
statement_digest_text: [{ name: "STATEMENT_DIGEST_TEXT", params: [{ name: "statement" }], origin: "harvested" }], // encryption-functions/9.txt
|
|
406
|
+
std: [{ name: "STD", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/12.txt
|
|
407
|
+
stddev: [{ name: "STDDEV", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/13.txt
|
|
408
|
+
stddev_pop: [{ name: "STDDEV_POP", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/14.txt
|
|
409
|
+
stddev_samp: [{ name: "STDDEV_SAMP", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/15.txt
|
|
410
|
+
str_to_date: [{ name: "STR_TO_DATE", params: [{ name: "str" }, { name: "format" }], origin: "harvested" }], // date-and-time-functions/39.txt
|
|
411
|
+
strcmp: [
|
|
412
|
+
{
|
|
413
|
+
name: "STRCMP",
|
|
414
|
+
params: [
|
|
415
|
+
{ name: "str1", type: "string" },
|
|
416
|
+
{ name: "str2", type: "string" },
|
|
417
|
+
],
|
|
418
|
+
origin: "curated",
|
|
419
|
+
},
|
|
420
|
+
], // curated: STRCMP(str1,str2)
|
|
421
|
+
subdate: [{ name: "SUBDATE", params: [{ name: "expr" }, { name: "days" }], origin: "harvested" }], // date-and-time-functions/40.txt
|
|
422
|
+
substr: [
|
|
423
|
+
{
|
|
424
|
+
name: "SUBSTR",
|
|
425
|
+
params: [{ name: "str" }, { name: "pos" }, { name: "len", optional: true }],
|
|
426
|
+
origin: "harvested",
|
|
427
|
+
},
|
|
428
|
+
], // string-functions/42.txt
|
|
429
|
+
substring: [
|
|
430
|
+
{
|
|
431
|
+
name: "SUBSTRING",
|
|
432
|
+
params: [{ name: "str" }, { name: "pos" }, { name: "len", optional: true }],
|
|
433
|
+
origin: "harvested",
|
|
434
|
+
},
|
|
435
|
+
], // string-functions/43.txt
|
|
436
|
+
substring_index: [
|
|
437
|
+
{
|
|
438
|
+
name: "SUBSTRING_INDEX",
|
|
439
|
+
params: [{ name: "str" }, { name: "delim" }, { name: "count" }],
|
|
440
|
+
origin: "harvested",
|
|
441
|
+
},
|
|
442
|
+
], // string-functions/44.txt
|
|
443
|
+
subtime: [{ name: "SUBTIME", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // date-and-time-functions/41.txt
|
|
444
|
+
sum: [{ name: "SUM", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/16.txt
|
|
445
|
+
sysdate: [{ name: "SYSDATE", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/42.txt
|
|
446
|
+
system_user: [{ name: "SYSTEM_USER", params: [], origin: "harvested" }], // information-functions/16.txt
|
|
447
|
+
tan: [{ name: "TAN", params: [{ name: "X" }], origin: "harvested" }], // mathematical-functions/29.txt
|
|
448
|
+
time: [{ name: "TIME", params: [{ name: "expr" }], origin: "harvested" }], // date-and-time-functions/43.txt
|
|
449
|
+
time_format: [{ name: "TIME_FORMAT", params: [{ name: "time" }, { name: "format" }], origin: "harvested" }], // date-and-time-functions/48.txt
|
|
450
|
+
time_to_sec: [{ name: "TIME_TO_SEC", params: [{ name: "time" }], origin: "harvested" }], // date-and-time-functions/49.txt
|
|
451
|
+
timediff: [{ name: "TIMEDIFF", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" }], // date-and-time-functions/44.txt
|
|
452
|
+
timestamp: [
|
|
453
|
+
{ name: "TIMESTAMP", params: [{ name: "expr1" }, { name: "expr2" }], origin: "harvested" },
|
|
454
|
+
{ name: "TIMESTAMP", params: [{ name: "expr" }], origin: "harvested" },
|
|
455
|
+
], // date-and-time-functions/45.txt
|
|
456
|
+
timestampadd: [
|
|
457
|
+
{
|
|
458
|
+
name: "TIMESTAMPADD",
|
|
459
|
+
params: [{ name: "unit" }, { name: "interval" }, { name: "datetime_expr" }],
|
|
460
|
+
origin: "harvested",
|
|
461
|
+
},
|
|
462
|
+
], // date-and-time-functions/46.txt
|
|
463
|
+
timestampdiff: [
|
|
464
|
+
{
|
|
465
|
+
name: "TIMESTAMPDIFF",
|
|
466
|
+
params: [{ name: "unit" }, { name: "datetime_expr1" }, { name: "datetime_expr2" }],
|
|
467
|
+
origin: "harvested",
|
|
468
|
+
},
|
|
469
|
+
], // date-and-time-functions/47.txt
|
|
470
|
+
to_base64: [{ name: "TO_BASE64", params: [{ name: "str" }], origin: "harvested" }], // string-functions/45.txt
|
|
471
|
+
to_days: [{ name: "TO_DAYS", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/50.txt
|
|
472
|
+
to_seconds: [{ name: "TO_SECONDS", params: [{ name: "expr" }], origin: "harvested" }], // date-and-time-functions/51.txt
|
|
473
|
+
truncate: [{ name: "TRUNCATE", params: [{ name: "X" }, { name: "D" }], origin: "harvested" }], // mathematical-functions/30.txt
|
|
474
|
+
ucase: [{ name: "UCASE", params: [{ name: "str" }], origin: "harvested" }], // string-functions/47.txt
|
|
475
|
+
uncompress: [{ name: "UNCOMPRESS", params: [{ name: "string_to_uncompress" }], origin: "harvested" }], // encryption-functions/10.txt
|
|
476
|
+
uncompressed_length: [
|
|
477
|
+
{ name: "UNCOMPRESSED_LENGTH", params: [{ name: "compressed_string" }], origin: "harvested" },
|
|
478
|
+
], // encryption-functions/11.txt
|
|
479
|
+
unhex: [{ name: "UNHEX", params: [{ name: "str" }], origin: "harvested" }], // string-functions/48.txt
|
|
480
|
+
unix_timestamp: [{ name: "UNIX_TIMESTAMP", params: [{ name: "date", optional: true }], origin: "harvested" }], // date-and-time-functions/52.txt
|
|
481
|
+
upper: [{ name: "UPPER", params: [{ name: "str" }], origin: "harvested" }], // string-functions/49.txt
|
|
482
|
+
user: [{ name: "USER", params: [], origin: "harvested" }], // information-functions/17.txt
|
|
483
|
+
utc_date: [{ name: "UTC_DATE", params: [], origin: "harvested" }], // date-and-time-functions/53.txt
|
|
484
|
+
utc_time: [{ name: "UTC_TIME", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/54.txt
|
|
485
|
+
utc_timestamp: [{ name: "UTC_TIMESTAMP", params: [{ name: "fsp", optional: true }], origin: "harvested" }], // date-and-time-functions/55.txt
|
|
486
|
+
uuid: [{ name: "UUID", params: [], origin: "harvested" }], // miscellaneous-functions/16.txt
|
|
487
|
+
uuid_short: [{ name: "UUID_SHORT", params: [], origin: "harvested" }], // miscellaneous-functions/17.txt
|
|
488
|
+
uuid_to_bin: [
|
|
489
|
+
{
|
|
490
|
+
name: "UUID_TO_BIN",
|
|
491
|
+
params: [{ name: "string_uuid" }, { name: "swap_flag", optional: true }],
|
|
492
|
+
origin: "harvested",
|
|
493
|
+
},
|
|
494
|
+
], // miscellaneous-functions/18.txt
|
|
495
|
+
validate_password_strength: [
|
|
496
|
+
{ name: "VALIDATE_PASSWORD_STRENGTH", params: [{ name: "str" }], origin: "harvested" },
|
|
497
|
+
], // encryption-functions/12.txt
|
|
498
|
+
values: [{ name: "VALUES", params: [{ name: "col_name" }], origin: "harvested" }], // miscellaneous-functions/19.txt
|
|
499
|
+
var_pop: [{ name: "VAR_POP", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/17.txt
|
|
500
|
+
var_samp: [{ name: "VAR_SAMP", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/18.txt
|
|
501
|
+
variance: [{ name: "VARIANCE", params: [{ name: "expr" }], origin: "harvested" }], // aggregate-functions/19.txt
|
|
502
|
+
version: [{ name: "VERSION", params: [], origin: "harvested" }], // information-functions/18.txt
|
|
503
|
+
week: [{ name: "WEEK", params: [{ name: "date" }, { name: "mode", optional: true }], origin: "harvested" }], // date-and-time-functions/56.txt
|
|
504
|
+
weekday: [{ name: "WEEKDAY", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/57.txt
|
|
505
|
+
weekofyear: [{ name: "WEEKOFYEAR", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/58.txt
|
|
506
|
+
year: [{ name: "YEAR", params: [{ name: "date" }], origin: "harvested" }], // date-and-time-functions/59.txt
|
|
507
|
+
yearweek: [{ name: "YEARWEEK", params: [{ name: "date" }, { name: "mode", optional: true }], origin: "harvested" }], // date-and-time-functions/60.txt
|
|
508
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { acceptsFor } from "../dialect-behavior/coerce-rules.js";
|
|
2
|
+
import { likePatternToRegExp } from "../scope/like-pattern.js";
|
|
3
|
+
import { SIGNATURES } from "../signature/signatures.js";
|
|
4
|
+
import { displayName, fold, foldTableName, matchesSourceKey } from "./fold.js";
|
|
5
|
+
import { postgresLiteral, postgresParseType, POSTGRES_FUNCTION_RETURNS } from "./infer.js";
|
|
6
|
+
// PostgreSQL implicit coercion: str->num=true, bool<->num=false.
|
|
7
|
+
export const postgresBehavior = {
|
|
8
|
+
fold,
|
|
9
|
+
displayName,
|
|
10
|
+
foldTableName,
|
|
11
|
+
matchesSourceKey,
|
|
12
|
+
likeMatch: (pattern, value) => likePatternToRegExp(pattern).test(value),
|
|
13
|
+
literal: postgresLiteral,
|
|
14
|
+
parseType: postgresParseType,
|
|
15
|
+
functions: POSTGRES_FUNCTION_RETURNS,
|
|
16
|
+
division: "integer",
|
|
17
|
+
signatures: SIGNATURES.postgres,
|
|
18
|
+
accepts: (argType, paramText) => acceptsFor(postgresParseType, true, false, argType, paramText),
|
|
19
|
+
};
|