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.
Files changed (244) hide show
  1. package/LICENSE +0 -10
  2. package/README.md +95 -85
  3. package/THIRD-PARTY-NOTICES.md +70 -5
  4. package/dist/api.d.ts +5 -3
  5. package/dist/api.js +17 -4
  6. package/dist/bigquery/behavior.d.ts +2 -0
  7. package/dist/bigquery/behavior.js +20 -0
  8. package/dist/bigquery/dot-path.d.ts +0 -2
  9. package/dist/bigquery/dot-path.js +0 -1
  10. package/dist/bigquery/fold.d.ts +8 -0
  11. package/dist/bigquery/fold.js +39 -0
  12. package/dist/bigquery/index.d.ts +7 -0
  13. package/dist/bigquery/index.js +10 -0
  14. package/dist/{infer/bigquery.d.ts → bigquery/infer.d.ts} +2 -2
  15. package/dist/{infer/bigquery.js → bigquery/infer.js} +4 -3
  16. package/dist/bigquery/lower.js +35 -12
  17. package/dist/bigquery/signatures.generated.d.ts +6 -0
  18. package/dist/bigquery/signatures.generated.js +1068 -0
  19. package/dist/completion/atn-walk.d.ts +13 -2
  20. package/dist/completion/atn-walk.js +13 -10
  21. package/dist/completion/complete.d.ts +4 -3
  22. package/dist/completion/complete.js +101 -45
  23. package/dist/completion/config.js +66 -0
  24. package/dist/completion/jinja-slot.d.ts +24 -0
  25. package/dist/completion/jinja-slot.js +126 -0
  26. package/dist/completion/parser-factory.d.ts +13 -1
  27. package/dist/completion/parser-factory.js +48 -0
  28. package/dist/databricks/behavior.d.ts +2 -0
  29. package/dist/databricks/behavior.js +19 -0
  30. package/dist/databricks/fold.d.ts +8 -0
  31. package/dist/databricks/fold.js +27 -0
  32. package/dist/databricks/index.d.ts +7 -0
  33. package/dist/databricks/index.js +10 -0
  34. package/dist/databricks/infer.d.ts +6 -0
  35. package/dist/databricks/infer.js +638 -0
  36. package/dist/databricks/signatures.generated.d.ts +6 -0
  37. package/dist/databricks/signatures.generated.js +1745 -0
  38. package/dist/derived-dialects.js +19 -1
  39. package/dist/dialect-behavior/behavior.d.ts +26 -0
  40. package/dist/dialect-behavior/behavior.js +1 -0
  41. package/dist/dialect-behavior/carrier.d.ts +5 -0
  42. package/dist/dialect-behavior/carrier.js +5 -0
  43. package/dist/dialect-behavior/coerce-rules.d.ts +7 -0
  44. package/dist/dialect-behavior/coerce-rules.js +69 -0
  45. package/dist/dialect-behavior/public-fold.d.ts +6 -0
  46. package/dist/dialect-behavior/public-fold.js +9 -0
  47. package/dist/dialect-behavior/registry.d.ts +6 -0
  48. package/dist/dialect-behavior/registry.js +34 -0
  49. package/dist/dialect-symbols.js +22 -17
  50. package/dist/dialect.d.ts +2 -2
  51. package/dist/document/document.d.ts +1 -1
  52. package/dist/document/document.js +8 -7
  53. package/dist/duckdb/behavior.d.ts +2 -0
  54. package/dist/duckdb/behavior.js +21 -0
  55. package/dist/duckdb/fold.d.ts +8 -0
  56. package/dist/duckdb/fold.js +29 -0
  57. package/dist/duckdb/index.d.ts +7 -0
  58. package/dist/duckdb/index.js +10 -0
  59. package/dist/{infer/duckdb.d.ts → duckdb/infer.d.ts} +2 -2
  60. package/dist/{infer/duckdb.js → duckdb/infer.js} +4 -3
  61. package/dist/duckdb/lower.js +47 -15
  62. package/dist/duckdb/signatures.generated.d.ts +6 -0
  63. package/dist/duckdb/signatures.generated.js +1072 -0
  64. package/dist/generated/bigquery/GoogleSQLParser.js +0 -7060
  65. package/dist/generated/databricks/DatabricksParser.js +0 -4800
  66. package/dist/generated/duckdb/DuckdbParser.js +0 -9100
  67. package/dist/generated/minijinja/MinijinjaParser.js +0 -380
  68. package/dist/generated/mysql/MysqlLexer.js +7357 -0
  69. package/dist/generated/mysql/MysqlParser.js +78520 -0
  70. package/dist/generated/postgres/PostgresParser.js +0 -8530
  71. package/dist/generated/redshift/RedshiftParser.js +0 -10970
  72. package/dist/generated/snowflake/SnowflakeParser.js +0 -7320
  73. package/dist/generated/sqlite/SqliteLexer.js +945 -0
  74. package/dist/generated/sqlite/SqliteParser.js +14682 -0
  75. package/dist/generated/trino/TrinoParser.js +0 -3770
  76. package/dist/generated/tsql/TSqlParser.js +0 -8420
  77. package/dist/ident/fold.d.ts +24 -15
  78. package/dist/ident/fold.js +12 -145
  79. package/dist/index.d.ts +6 -2
  80. package/dist/index.js +14 -8
  81. package/dist/infer/functions.d.ts +22 -11
  82. package/dist/infer/functions.js +26 -888
  83. package/dist/infer/infer.js +16 -14
  84. package/dist/infer/nullability.js +3 -4
  85. package/dist/infer/types.d.ts +1 -1
  86. package/dist/infer/types.js +7 -7
  87. package/dist/ir/ir.d.ts +26 -17
  88. package/dist/ir/part-span.d.ts +16 -1
  89. package/dist/ir/part-span.js +38 -10
  90. package/dist/ir/span.js +0 -2
  91. package/dist/ir/walk.js +3 -3
  92. package/dist/lineage/hops.js +13 -10
  93. package/dist/lineage/lineage.js +10 -7
  94. package/dist/minijinja/apply-tags.d.ts +14 -7
  95. package/dist/minijinja/apply-tags.js +66 -121
  96. package/dist/minijinja/parse.js +6 -6
  97. package/dist/minijinja/tag-ast.d.ts +29 -36
  98. package/dist/minijinja/tag-ast.js +210 -90
  99. package/dist/mysql/behavior.d.ts +2 -0
  100. package/dist/mysql/behavior.js +21 -0
  101. package/dist/mysql/fold.d.ts +8 -0
  102. package/dist/mysql/fold.js +49 -0
  103. package/dist/mysql/index.d.ts +7 -0
  104. package/dist/mysql/index.js +10 -0
  105. package/dist/mysql/infer.d.ts +20 -0
  106. package/dist/mysql/infer.js +156 -0
  107. package/dist/mysql/lower.d.ts +13 -0
  108. package/dist/mysql/lower.js +1443 -0
  109. package/dist/mysql/parse.d.ts +10 -0
  110. package/dist/mysql/parse.js +70 -0
  111. package/dist/mysql/signatures.generated.d.ts +6 -0
  112. package/dist/mysql/signatures.generated.js +508 -0
  113. package/dist/postgres/behavior.d.ts +2 -0
  114. package/dist/postgres/behavior.js +19 -0
  115. package/dist/postgres/fold.d.ts +8 -0
  116. package/dist/postgres/fold.js +30 -0
  117. package/dist/postgres/index.d.ts +7 -0
  118. package/dist/postgres/index.js +10 -0
  119. package/dist/{infer/postgres.d.ts → postgres/infer.d.ts} +2 -2
  120. package/dist/{infer/postgres.js → postgres/infer.js} +4 -3
  121. package/dist/postgres/lower.js +2 -2
  122. package/dist/postgres/signatures.generated.d.ts +6 -0
  123. package/dist/postgres/signatures.generated.js +2973 -0
  124. package/dist/qualify/check-calls.js +80 -134
  125. package/dist/qualify/qualify.js +16 -14
  126. package/dist/qualify/schema-provider.js +2 -2
  127. package/dist/qualify/schema.js +3 -3
  128. package/dist/qualify/template-provider.d.ts +45 -12
  129. package/dist/qualify/template-provider.js +69 -38
  130. package/dist/redshift/behavior.d.ts +2 -0
  131. package/dist/redshift/behavior.js +19 -0
  132. package/dist/redshift/fold.d.ts +8 -0
  133. package/dist/redshift/fold.js +31 -0
  134. package/dist/redshift/index.d.ts +7 -0
  135. package/dist/redshift/index.js +10 -0
  136. package/dist/{infer/redshift.d.ts → redshift/infer.d.ts} +2 -2
  137. package/dist/{infer/redshift.js → redshift/infer.js} +4 -3
  138. package/dist/redshift/lower.js +2 -2
  139. package/dist/redshift/signatures.generated.d.ts +6 -0
  140. package/dist/redshift/signatures.generated.js +757 -0
  141. package/dist/references/references.js +17 -12
  142. package/dist/scope/like-pattern.d.ts +2 -0
  143. package/dist/scope/like-pattern.js +15 -0
  144. package/dist/scope/scope.d.ts +5 -5
  145. package/dist/scope/scope.js +48 -42
  146. package/dist/sema/resolve.js +17 -12
  147. package/dist/session.d.ts +2 -2
  148. package/dist/signature/signature.d.ts +14 -6
  149. package/dist/signature/signature.js +30 -22
  150. package/dist/signature/signatures.d.ts +14 -12
  151. package/dist/signature/signatures.js +42 -582
  152. package/dist/snowflake/behavior.d.ts +2 -0
  153. package/dist/snowflake/behavior.js +22 -0
  154. package/dist/snowflake/fold.d.ts +8 -0
  155. package/dist/snowflake/fold.js +25 -0
  156. package/dist/snowflake/index.d.ts +7 -0
  157. package/dist/snowflake/index.js +10 -0
  158. package/dist/{infer/snowflake.d.ts → snowflake/infer.d.ts} +2 -2
  159. package/dist/{infer/snowflake.js → snowflake/infer.js} +4 -3
  160. package/dist/snowflake/lower.js +59 -19
  161. package/dist/snowflake/signatures.generated.d.ts +6 -0
  162. package/dist/snowflake/signatures.generated.js +2080 -0
  163. package/dist/sqlite/behavior.d.ts +2 -0
  164. package/dist/sqlite/behavior.js +19 -0
  165. package/dist/sqlite/fold.d.ts +8 -0
  166. package/dist/sqlite/fold.js +41 -0
  167. package/dist/sqlite/index.d.ts +7 -0
  168. package/dist/sqlite/index.js +10 -0
  169. package/dist/sqlite/infer.d.ts +12 -0
  170. package/dist/sqlite/infer.js +122 -0
  171. package/dist/sqlite/lower.d.ts +11 -0
  172. package/dist/sqlite/lower.js +1093 -0
  173. package/dist/sqlite/parse.d.ts +10 -0
  174. package/dist/sqlite/parse.js +70 -0
  175. package/dist/sqlite/signatures.generated.d.ts +6 -0
  176. package/dist/sqlite/signatures.generated.js +277 -0
  177. package/dist/symbols/symbols.js +14 -12
  178. package/dist/token/classify.js +31 -0
  179. package/dist/token/tokenize.js +4 -0
  180. package/dist/trino/behavior.d.ts +2 -0
  181. package/dist/trino/behavior.js +21 -0
  182. package/dist/trino/fold.d.ts +8 -0
  183. package/dist/trino/fold.js +39 -0
  184. package/dist/trino/index.d.ts +7 -0
  185. package/dist/trino/index.js +10 -0
  186. package/dist/{infer/trino.d.ts → trino/infer.d.ts} +2 -2
  187. package/dist/{infer/trino.js → trino/infer.js} +4 -3
  188. package/dist/trino/lower.js +5 -5
  189. package/dist/trino/signatures.generated.d.ts +6 -0
  190. package/dist/trino/signatures.generated.js +968 -0
  191. package/dist/tsql/behavior.d.ts +2 -0
  192. package/dist/tsql/behavior.js +20 -0
  193. package/dist/tsql/fold.d.ts +8 -0
  194. package/dist/tsql/fold.js +34 -0
  195. package/dist/tsql/index.d.ts +7 -0
  196. package/dist/tsql/index.js +10 -0
  197. package/dist/tsql/infer.d.ts +16 -0
  198. package/dist/tsql/infer.js +289 -0
  199. package/dist/tsql/lower.js +4 -4
  200. package/dist/tsql/signatures.generated.d.ts +6 -0
  201. package/dist/tsql/signatures.generated.js +640 -0
  202. package/package.json +15 -11
  203. package/dist/generated/bigquery/GoogleSQLLexer.d.ts +0 -407
  204. package/dist/generated/bigquery/GoogleSQLParser.d.ts +0 -9558
  205. package/dist/generated/bigquery/GoogleSQLParserListener.d.ts +0 -7777
  206. package/dist/generated/bigquery/GoogleSQLParserListener.js +0 -7070
  207. package/dist/generated/databricks/DatabricksLexer.d.ts +0 -566
  208. package/dist/generated/databricks/DatabricksParser.d.ts +0 -7771
  209. package/dist/generated/databricks/DatabricksParserListener.d.ts +0 -5737
  210. package/dist/generated/databricks/DatabricksParserListener.js +0 -5256
  211. package/dist/generated/duckdb/DuckdbLexer.d.ts +0 -691
  212. package/dist/generated/duckdb/DuckdbParser.d.ts +0 -13932
  213. package/dist/generated/duckdb/DuckdbParserListener.d.ts +0 -10049
  214. package/dist/generated/duckdb/DuckdbParserListener.js +0 -9138
  215. package/dist/generated/minijinja/MinijinjaLexer.d.ts +0 -108
  216. package/dist/generated/minijinja/MinijinjaParser.d.ts +0 -604
  217. package/dist/generated/minijinja/MinijinjaParserListener.d.ts +0 -449
  218. package/dist/generated/minijinja/MinijinjaParserListener.js +0 -410
  219. package/dist/generated/postgres/PostgresLexer.d.ts +0 -663
  220. package/dist/generated/postgres/PostgresParser.d.ts +0 -12963
  221. package/dist/generated/postgres/PostgresParserListener.d.ts +0 -9408
  222. package/dist/generated/postgres/PostgresParserListener.js +0 -8554
  223. package/dist/generated/redshift/RedshiftLexer.d.ts +0 -954
  224. package/dist/generated/redshift/RedshiftParser.d.ts +0 -16939
  225. package/dist/generated/redshift/RedshiftParserListener.d.ts +0 -12092
  226. package/dist/generated/redshift/RedshiftParserListener.js +0 -10994
  227. package/dist/generated/snowflake/SnowflakeLexer.d.ts +0 -1046
  228. package/dist/generated/snowflake/SnowflakeParser.d.ts +0 -14196
  229. package/dist/generated/snowflake/SnowflakeParserListener.d.ts +0 -8063
  230. package/dist/generated/snowflake/SnowflakeParserListener.js +0 -7330
  231. package/dist/generated/trino/TrinoLexer.d.ts +0 -381
  232. package/dist/generated/trino/TrinoParser.d.ts +0 -5340
  233. package/dist/generated/trino/TrinoParserListener.d.ts +0 -4704
  234. package/dist/generated/trino/TrinoParserListener.js +0 -4326
  235. package/dist/generated/tsql/TSqlLexer.d.ts +0 -1278
  236. package/dist/generated/tsql/TSqlParser.d.ts +0 -17267
  237. package/dist/generated/tsql/TSqlParserListener.d.ts +0 -9697
  238. package/dist/generated/tsql/TSqlParserListener.js +0 -8854
  239. package/dist/infer/dialect.d.ts +0 -21
  240. package/dist/infer/dialect.js +0 -74
  241. package/dist/infer/literals.d.ts +0 -6
  242. package/dist/infer/literals.js +0 -44
  243. package/dist/signature/generated/tsql.d.ts +0 -3
  244. package/dist/signature/generated/tsql.js +0 -260
@@ -1,21 +0,0 @@
1
- import type { Expr } from "../ir/ir.js";
2
- import { type FnRule } from "./functions.js";
3
- import { type Type } from "./types.js";
4
- export interface InferDialect {
5
- functions: Record<string, FnRule>;
6
- literal(text: string): Type;
7
- parseType(text: string): Type;
8
- /** What `/` returns:
9
- * - "float" — double for any numerics except decimal/decimal (Spark: int/int → double);
10
- * - "integer" — ordinary coercion (T-SQL: int/int → int, "typed division");
11
- * - "decimal" — a scaled NUMBER unless a float is involved (Snowflake: 10/3 → 3.333333). */
12
- division: "float" | "integer" | "decimal";
13
- /** Optional pre-registry hook for calls whose return type a plain FnRule can't express because it
14
- * depends on a non-argument-TYPE detail — e.g. BigQuery EXTRACT's datepart keyword. Given the
15
- * function IR node, returns a Type to short-circuit the registry, or undefined to fall through. */
16
- special?(fn: Extract<Expr, {
17
- kind: "function";
18
- }>): Type | undefined;
19
- }
20
- /** Resolve a dialect tag to its inference knowledge; defaults to Databricks. */
21
- export declare function inferDialect(name: string | undefined): InferDialect;
@@ -1,74 +0,0 @@
1
- import { BIGQUERY_FUNCTION_RETURNS, bigqueryLiteral, bigqueryParseType, bigquerySpecial } from "./bigquery.js";
2
- import { FUNCTION_RETURNS, TSQL_FUNCTION_RETURNS, tsqlSpecial } from "./functions.js";
3
- import { SNOWFLAKE_FUNCTION_RETURNS, snowflakeLiteral, snowflakeParseType, snowflakeSpecial } from "./snowflake.js";
4
- import { databricksLiteral, tsqlLiteral } from "./literals.js";
5
- import { REDSHIFT_FUNCTION_RETURNS, redshiftLiteral, redshiftParseType } from "./redshift.js";
6
- import { POSTGRES_FUNCTION_RETURNS, postgresLiteral, postgresParseType } from "./postgres.js";
7
- import { DUCKDB_FUNCTION_RETURNS, duckdbLiteral, duckdbParseType } from "./duckdb.js";
8
- import { TRINO_FUNCTION_RETURNS, trinoLiteral, trinoParseType } from "./trino.js";
9
- import { parseType, TSQL_ALIASES } from "./types.js";
10
- const databricks = {
11
- functions: FUNCTION_RETURNS,
12
- literal: databricksLiteral,
13
- parseType: (t) => parseType(t, undefined, "databricks"),
14
- division: "float",
15
- };
16
- const tsql = {
17
- functions: TSQL_FUNCTION_RETURNS,
18
- literal: tsqlLiteral,
19
- parseType: (t) => parseType(t, TSQL_ALIASES, "tsql"),
20
- division: "integer",
21
- special: tsqlSpecial, // XML data type methods: value()/exist()/query() typed by method + sqltype
22
- };
23
- const snowflake = {
24
- functions: SNOWFLAKE_FUNCTION_RETURNS,
25
- literal: snowflakeLiteral,
26
- parseType: snowflakeParseType,
27
- division: "decimal",
28
- special: snowflakeSpecial, // <seq>.NEXTVAL → NUMBER (the sequence rides as a variable qualifier)
29
- };
30
- const bigquery = {
31
- functions: BIGQUERY_FUNCTION_RETURNS,
32
- literal: bigqueryLiteral,
33
- parseType: bigqueryParseType,
34
- division: "float", // BigQuery: INT64 / INT64 → FLOAT64
35
- special: bigquerySpecial, // EXTRACT(part FROM …) typed by its datepart keyword
36
- };
37
- const redshift = {
38
- functions: REDSHIFT_FUNCTION_RETURNS,
39
- literal: redshiftLiteral,
40
- parseType: redshiftParseType,
41
- division: "integer", // Redshift: INT4 / INT4 → INT4 (truncates) — AWS r_numeric_computations201
42
- };
43
- const postgres = {
44
- functions: POSTGRES_FUNCTION_RETURNS,
45
- literal: postgresLiteral,
46
- parseType: postgresParseType,
47
- division: "integer", // PostgreSQL: integer / integer truncates toward zero — functions-math.html
48
- };
49
- const duckdb = {
50
- functions: DUCKDB_FUNCTION_RETURNS,
51
- literal: duckdbLiteral,
52
- parseType: duckdbParseType,
53
- division: "float", // DuckDB: `/` is DOUBLE division even for integers (`//` divides) — functions/numeric.md
54
- };
55
- const trino = {
56
- functions: TRINO_FUNCTION_RETURNS,
57
- literal: trinoLiteral,
58
- parseType: trinoParseType,
59
- division: "integer", // Trino: integer / integer truncates - functions/math.html
60
- };
61
- const DIALECTS = {
62
- databricks,
63
- tsql,
64
- snowflake,
65
- bigquery,
66
- redshift,
67
- postgres,
68
- duckdb,
69
- trino,
70
- };
71
- /** Resolve a dialect tag to its inference knowledge; defaults to Databricks. */
72
- export function inferDialect(name) {
73
- return DIALECTS[name ?? "databricks"] ?? databricks;
74
- }
@@ -1,6 +0,0 @@
1
- import { type Type } from "./types.js";
2
- /** Databricks/Spark literal forms. */
3
- export declare function databricksLiteral(text: string): Type;
4
- /** T-SQL literal forms: `'str'` / `N'unicode'` → string, `0x…` → binary, `1` → int, `1.5` → decimal
5
- * (numeric), `1e3` → float. */
6
- export declare function tsqlLiteral(text: string): Type;
@@ -1,44 +0,0 @@
1
- import { scalar, UNKNOWN } from "./types.js";
2
- // Literal typing per dialect — the lexeme as written → a Type. Kept out of the inference engine so
3
- // each dialect's literal forms (Spark `date '…'` / `interval`, T-SQL `N'…'` / `0x…`) stay localised.
4
- // NULL is context-dependent → unknown, never guessed.
5
- const BOOLEAN = scalar("boolean");
6
- /** Databricks/Spark literal forms. */
7
- export function databricksLiteral(text) {
8
- const t = text.trim();
9
- if (/^['"]/.test(t))
10
- return scalar("string");
11
- if (/^(true|false)$/i.test(t))
12
- return BOOLEAN;
13
- if (/^null$/i.test(t))
14
- return UNKNOWN;
15
- if (/^date\s*'/i.test(t))
16
- return scalar("date");
17
- if (/^timestamp\s*'/i.test(t))
18
- return scalar("timestamp");
19
- if (/^interval\b/i.test(t))
20
- return scalar("interval");
21
- if (/^[+-]?\d+$/.test(t))
22
- return scalar("int");
23
- if (/^[+-]?(\d+\.\d*|\.\d+|\d+)([eed][+-]?\d+)?$/i.test(t) && /[.eed]/i.test(t))
24
- return scalar("double");
25
- return UNKNOWN;
26
- }
27
- /** T-SQL literal forms: `'str'` / `N'unicode'` → string, `0x…` → binary, `1` → int, `1.5` → decimal
28
- * (numeric), `1e3` → float. */
29
- export function tsqlLiteral(text) {
30
- const t = text.trim();
31
- if (/^n?['"]/i.test(t))
32
- return scalar("string");
33
- if (/^0x/i.test(t))
34
- return scalar("binary");
35
- if (/^null$/i.test(t))
36
- return UNKNOWN;
37
- if (/^[+-]?\d+$/.test(t))
38
- return scalar("int");
39
- if (/^[+-]?(\d+\.?\d*|\.\d+)e[+-]?\d+$/i.test(t))
40
- return scalar("float");
41
- if (/^[+-]?(\d+\.\d*|\.\d+)$/.test(t))
42
- return scalar("decimal");
43
- return UNKNOWN;
44
- }
@@ -1,3 +0,0 @@
1
- import type { FnSignature } from "../signatures.js";
2
- /** Harvested (doc-syntax-derived) parameter signatures for tsql, keyed by lowercased name. */
3
- export declare const TSQL_HARVESTED: Record<string, FnSignature>;
@@ -1,260 +0,0 @@
1
- /** Harvested (doc-syntax-derived) parameter signatures for tsql, keyed by lowercased name. */
2
- export const TSQL_HARVESTED = {
3
- abs: { name: "ABS", params: [{ name: "numeric_expression" }] }, // functions/abs-transact-sql.md
4
- acos: { name: "ACOS", params: [{ name: "float_expression" }] }, // functions/acos-transact-sql.md
5
- app_name: { name: "APP_NAME", params: [] }, // functions/app-name-transact-sql.md
6
- approx_count_distinct: { name: "APPROX_COUNT_DISTINCT", params: [{ name: "expression" }] }, // functions/approx-count-distinct-transact-sql.md
7
- approx_percentile_cont: { name: "APPROX_PERCENTILE_CONT", params: [{ name: "numeric_literal" }] }, // functions/approx-percentile-cont-transact-sql.md
8
- approx_percentile_disc: { name: "APPROX_PERCENTILE_DISC", params: [{ name: "numeric_literal" }] }, // functions/approx-percentile-disc-transact-sql.md
9
- ascii: { name: "ASCII", params: [{ name: "character_expression" }] }, // functions/ascii-transact-sql.md
10
- asin: { name: "ASIN", params: [{ name: "float_expression" }] }, // functions/asin-transact-sql.md
11
- atan: { name: "ATAN", params: [{ name: "float_expression" }] }, // functions/atan-transact-sql.md
12
- atn2: { name: "ATN2", params: [{ name: "float_expression" }, { name: "float_expression" }] }, // functions/atn2-transact-sql.md
13
- base64_decode: { name: "BASE64_DECODE", params: [{ name: "expression" }] }, // functions/base64-decode-transact-sql.md
14
- base64_encode: { name: "BASE64_ENCODE", params: [{ name: "expression" }, { name: "url_safe" }] }, // functions/base64-encode-transact-sql.md
15
- bit_count: { name: "BIT_COUNT", params: [{ name: "expression_value" }] }, // functions/bit-count-transact-sql.md
16
- ceiling: { name: "CEILING", params: [{ name: "numeric_expression" }] }, // functions/ceiling-transact-sql.md
17
- certencoded: { name: "CERTENCODED", params: [{ name: "cert_id" }] }, // functions/certencoded-transact-sql.md
18
- char: { name: "CHAR", params: [{ name: "integer_expression" }] }, // functions/char-transact-sql.md
19
- charindex: {
20
- name: "CHARINDEX",
21
- params: [{ name: "expressionToFind" }, { name: "expressionToSearch" }, { name: "start_location" }],
22
- }, // functions/charindex-transact-sql.md
23
- choose: { name: "CHOOSE", params: [{ name: "index" }, { name: "val_1" }, { name: "val_2" }, { name: "val_n" }] }, // functions/logical-functions-choose-transact-sql.md
24
- col_name: { name: "COL_NAME", params: [{ name: "table_id" }, { name: "column_id" }] }, // functions/col-name-transact-sql.md
25
- collationproperty: { name: "COLLATIONPROPERTY", params: [{ name: "collation_name" }, { name: "property" }] }, // functions/collation-functions-collationproperty-transact-sql.md
26
- columnproperty: { name: "COLUMNPROPERTY", params: [{ name: "id" }, { name: "column" }, { name: "property" }] }, // functions/columnproperty-transact-sql.md
27
- columns_updated: { name: "COLUMNS_UPDATED", params: [] }, // functions/columns-updated-transact-sql.md
28
- compress: { name: "COMPRESS", params: [{ name: "expression" }] }, // functions/compress-transact-sql.md
29
- concat: {
30
- name: "CONCAT",
31
- params: [{ name: "argument1" }, { name: "argument2" }, { name: "argumentN" }],
32
- variadic: true,
33
- }, // functions/concat-transact-sql.md
34
- concat_ws: {
35
- name: "CONCAT_WS",
36
- params: [{ name: "separator" }, { name: "argument1" }, { name: "argument2" }, { name: "argumentN" }],
37
- variadic: true,
38
- }, // functions/concat-ws-transact-sql.md
39
- connectionproperty: { name: "CONNECTIONPROPERTY", params: [{ name: "property" }] }, // functions/connectionproperty-transact-sql.md
40
- context_info: { name: "CONTEXT_INFO", params: [] }, // functions/context-info-transact-sql.md
41
- cos: { name: "COS", params: [{ name: "float_expression" }] }, // functions/cos-transact-sql.md
42
- cot: { name: "COT", params: [{ name: "float_expression" }] }, // functions/cot-transact-sql.md
43
- crypt_gen_random: { name: "CRYPT_GEN_RANDOM", params: [{ name: "length" }, { name: "seed" }] }, // functions/crypt-gen-random-transact-sql.md
44
- cume_dist: { name: "CUME_DIST", params: [] }, // functions/cume-dist-transact-sql.md
45
- current_request_id: { name: "CURRENT_REQUEST_ID", params: [] }, // functions/current-request-id-transact-sql.md
46
- current_timezone: { name: "CURRENT_TIMEZONE", params: [] }, // functions/current-timezone-transact-sql.md
47
- current_timezone_id: { name: "CURRENT_TIMEZONE_ID", params: [] }, // functions/current-timezone-id-transact-sql.md
48
- current_transaction_id: { name: "CURRENT_TRANSACTION_ID", params: [] }, // functions/current-transaction-id-transact-sql.md
49
- databasepropertyex: { name: "DATABASEPROPERTYEX", params: [{ name: "database" }, { name: "property" }] }, // functions/databasepropertyex-transact-sql.md
50
- datalength: { name: "DATALENGTH", params: [{ name: "expression" }] }, // functions/datalength-transact-sql.md
51
- date_bucket: {
52
- name: "DATE_BUCKET",
53
- params: [{ name: "datepart" }, { name: "number" }, { name: "date" }, { name: "origin" }],
54
- }, // functions/date-bucket-transact-sql.md
55
- dateadd: { name: "DATEADD", params: [{ name: "datepart" }, { name: "number" }, { name: "date" }] }, // functions/dateadd-transact-sql.md
56
- datediff: { name: "DATEDIFF", params: [{ name: "datepart" }, { name: "startdate" }, { name: "enddate" }] }, // functions/datediff-transact-sql.md
57
- datediff_big: { name: "DATEDIFF_BIG", params: [{ name: "datepart" }, { name: "startdate" }, { name: "enddate" }] }, // functions/datediff-big-transact-sql.md
58
- datefromparts: { name: "DATEFROMPARTS", params: [{ name: "year" }, { name: "month" }, { name: "day" }] }, // functions/datefromparts-transact-sql.md
59
- datename: { name: "DATENAME", params: [{ name: "datepart" }, { name: "date" }] }, // functions/datename-transact-sql.md
60
- datepart: { name: "DATEPART", params: [{ name: "datepart" }, { name: "date" }] }, // functions/datepart-transact-sql.md
61
- datetime2fromparts: {
62
- name: "DATETIME2FROMPARTS",
63
- params: [
64
- { name: "year" },
65
- { name: "month" },
66
- { name: "day" },
67
- { name: "hour" },
68
- { name: "minute" },
69
- { name: "seconds" },
70
- { name: "fractions" },
71
- { name: "precision" },
72
- ],
73
- }, // functions/datetime2fromparts-transact-sql.md
74
- datetimefromparts: {
75
- name: "DATETIMEFROMPARTS",
76
- params: [
77
- { name: "year" },
78
- { name: "month" },
79
- { name: "day" },
80
- { name: "hour" },
81
- { name: "minute" },
82
- { name: "seconds" },
83
- { name: "milliseconds" },
84
- ],
85
- }, // functions/datetimefromparts-transact-sql.md
86
- datetimeoffsetfromparts: {
87
- name: "DATETIMEOFFSETFROMPARTS",
88
- params: [
89
- { name: "year" },
90
- { name: "month" },
91
- { name: "day" },
92
- { name: "hour" },
93
- { name: "minute" },
94
- { name: "seconds" },
95
- { name: "fractions" },
96
- { name: "hour_offset" },
97
- { name: "minute_offset" },
98
- { name: "precision" },
99
- ],
100
- }, // functions/datetimeoffsetfromparts-transact-sql.md
101
- datetrunc: { name: "DATETRUNC", params: [{ name: "datepart" }, { name: "date" }] }, // functions/datetrunc-transact-sql.md
102
- day: { name: "DAY", params: [{ name: "date" }] }, // functions/day-transact-sql.md
103
- db_name: { name: "DB_NAME", params: [{ name: "database_id" }] }, // functions/db-name-transact-sql.md
104
- decompress: { name: "DECOMPRESS", params: [{ name: "expression" }] }, // functions/decompress-transact-sql.md
105
- degrees: { name: "DEGREES", params: [{ name: "numeric_expression" }] }, // functions/degrees-transact-sql.md
106
- difference: { name: "DIFFERENCE", params: [{ name: "character_expression" }, { name: "character_expression" }] }, // functions/difference-transact-sql.md
107
- eomonth: { name: "EOMONTH", params: [{ name: "start_date" }, { name: "month_to_add" }] }, // functions/eomonth-transact-sql.md
108
- error_line: { name: "ERROR_LINE", params: [] }, // functions/error-line-transact-sql.md
109
- error_procedure: { name: "ERROR_PROCEDURE", params: [] }, // functions/error-procedure-transact-sql.md
110
- error_severity: { name: "ERROR_SEVERITY", params: [] }, // functions/error-severity-transact-sql.md
111
- eventdata: { name: "EVENTDATA", params: [] }, // functions/eventdata-transact-sql.md
112
- exp: { name: "EXP", params: [{ name: "float_expression" }] }, // functions/exp-transact-sql.md
113
- filegroupproperty: { name: "FILEGROUPPROPERTY", params: [{ name: "filegroup_name" }, { name: "property" }] }, // functions/filegroupproperty-transact-sql.md
114
- fileproperty: { name: "FILEPROPERTY", params: [{ name: "file_name" }, { name: "property" }] }, // functions/fileproperty-transact-sql.md
115
- first_value: { name: "FIRST_VALUE", params: [{ name: "scalar_expression" }] }, // functions/first-value-transact-sql.md
116
- floor: { name: "FLOOR", params: [{ name: "numeric_expression" }] }, // functions/floor-transact-sql.md
117
- generate_series: { name: "GENERATE_SERIES", params: [{ name: "start" }, { name: "stop" }, { name: "step" }] }, // functions/generate-series-transact-sql.md
118
- get_bit: { name: "GET_BIT", params: [{ name: "expression_value" }, { name: "bit_offset" }] }, // functions/get-bit-transact-sql.md
119
- get_filestream_transaction_context: { name: "GET_FILESTREAM_TRANSACTION_CONTEXT", params: [] }, // functions/get-filestream-transaction-context-transact-sql.md
120
- getdate: { name: "GETDATE", params: [] }, // functions/getdate-transact-sql.md
121
- getutcdate: { name: "GETUTCDATE", params: [] }, // functions/getutcdate-transact-sql.md
122
- greatest: { name: "GREATEST", params: [{ name: "expression1" }, { name: "expressionN" }], variadic: true }, // functions/logical-functions-greatest-transact-sql.md
123
- host_id: { name: "HOST_ID", params: [] }, // functions/host-id-transact-sql.md
124
- host_name: { name: "HOST_NAME", params: [] }, // functions/host-name-transact-sql.md
125
- iif: { name: "IIF", params: [{ name: "boolean_expression" }, { name: "true_value" }, { name: "false_value" }] }, // functions/logical-functions-iif-transact-sql.md
126
- indexkey_property: {
127
- name: "INDEXKEY_PROPERTY",
128
- params: [{ name: "object_ID" }, { name: "index_ID" }, { name: "key_ID" }, { name: "property" }],
129
- }, // functions/indexkey-property-transact-sql.md
130
- indexproperty: {
131
- name: "INDEXPROPERTY",
132
- params: [{ name: "object_ID" }, { name: "index_or_statistics_name" }, { name: "property" }],
133
- }, // functions/indexproperty-transact-sql.md
134
- isdate: { name: "ISDATE", params: [{ name: "expression" }] }, // functions/isdate-transact-sql.md
135
- isjson: { name: "ISJSON", params: [{ name: "expression" }, { name: "json_type_constraint" }] }, // functions/isjson-transact-sql.md
136
- isnull: { name: "ISNULL", params: [{ name: "check_expression" }, { name: "replacement_value" }] }, // functions/isnull-transact-sql.md
137
- isnumeric: { name: "ISNUMERIC", params: [{ name: "expression" }] }, // functions/isnumeric-transact-sql.md
138
- json_contains: {
139
- name: "JSON_CONTAINS",
140
- params: [
141
- { name: "target_expression" },
142
- { name: "search_value_expression" },
143
- { name: "path_expression" },
144
- { name: "search_mode" },
145
- ],
146
- }, // functions/json-contains-transact-sql.md
147
- json_modify: { name: "JSON_MODIFY", params: [{ name: "expression" }, { name: "path" }, { name: "newValue" }] }, // functions/json-modify-transact-sql.md
148
- json_path_exists: { name: "JSON_PATH_EXISTS", params: [{ name: "value_expression" }, { name: "sql_json_path" }] }, // functions/json-path-exists-transact-sql.md
149
- json_value: { name: "JSON_VALUE", params: [{ name: "expression" }, { name: "path" }] }, // functions/json-value-transact-sql.md
150
- last_value: { name: "LAST_VALUE", params: [{ name: "scalar_expression" }] }, // functions/last-value-transact-sql.md
151
- lead: { name: "LEAD", params: [{ name: "scalar_expression" }, { name: "offset" }, { name: "default" }] }, // functions/lead-transact-sql.md
152
- least: { name: "LEAST", params: [{ name: "expression1" }, { name: "expressionN" }], variadic: true }, // functions/logical-functions-least-transact-sql.md
153
- left: { name: "LEFT", params: [{ name: "character_expression" }, { name: "integer_expression" }] }, // functions/left-transact-sql.md
154
- left_shift: { name: "LEFT_SHIFT", params: [{ name: "expression_value" }, { name: "shift_amount" }] }, // functions/left-shift-transact-sql.md
155
- len: { name: "LEN", params: [{ name: "string_expression" }] }, // functions/len-transact-sql.md
156
- nchar: { name: "NCHAR", params: [{ name: "integer_expression" }] }, // functions/nchar-transact-sql.md
157
- newsequentialid: { name: "NEWSEQUENTIALID", params: [] }, // functions/newsequentialid-transact-sql.md
158
- ntile: { name: "NTILE", params: [{ name: "integer_expression" }] }, // functions/ntile-transact-sql.md
159
- object_definition: { name: "OBJECT_DEFINITION", params: [{ name: "object_id" }] }, // functions/object-definition-transact-sql.md
160
- object_name: { name: "OBJECT_NAME", params: [{ name: "object_id" }, { name: "database_id" }] }, // functions/object-name-transact-sql.md
161
- object_schema_name: { name: "OBJECT_SCHEMA_NAME", params: [{ name: "object_id" }, { name: "database_id" }] }, // functions/object-schema-name-transact-sql.md
162
- objectproperty: { name: "OBJECTPROPERTY", params: [{ name: "ID" }, { name: "property" }] }, // functions/objectproperty-transact-sql.md
163
- objectpropertyex: { name: "OBJECTPROPERTYEX", params: [{ name: "id" }, { name: "property" }] }, // functions/objectpropertyex-transact-sql.md
164
- openjson: { name: "OPENJSON", params: [{ name: "jsonExpression" }, { name: "path" }] }, // functions/openjson-transact-sql.md
165
- original_db_name: { name: "ORIGINAL_DB_NAME", params: [] }, // functions/original-db-name-transact-sql.md
166
- original_login: { name: "ORIGINAL_LOGIN", params: [] }, // functions/original-login-transact-sql.md
167
- percent_rank: { name: "PERCENT_RANK", params: [] }, // functions/percent-rank-transact-sql.md
168
- percentile_cont: { name: "PERCENTILE_CONT", params: [{ name: "numeric_literal" }] }, // functions/percentile-cont-transact-sql.md
169
- percentile_disc: { name: "PERCENTILE_DISC", params: [{ name: "numeric_literal" }] }, // functions/percentile-disc-transact-sql.md
170
- publishingservername: { name: "PUBLISHINGSERVERNAME", params: [] }, // functions/replication-functions-publishingservername.md
171
- radians: { name: "RADIANS", params: [{ name: "numeric_expression" }] }, // functions/radians-transact-sql.md
172
- rand: { name: "RAND", params: [{ name: "seed" }] }, // functions/rand-transact-sql.md
173
- rank: { name: "RANK", params: [] }, // functions/rank-transact-sql.md
174
- replace: {
175
- name: "REPLACE",
176
- params: [{ name: "string_expression" }, { name: "string_pattern" }, { name: "string_replacement" }],
177
- }, // functions/replace-transact-sql.md
178
- replicate: { name: "REPLICATE", params: [{ name: "string_expression" }, { name: "integer_expression" }] }, // functions/replicate-transact-sql.md
179
- right: { name: "RIGHT", params: [{ name: "character_expression" }, { name: "integer_expression" }] }, // functions/right-transact-sql.md
180
- right_shift: { name: "RIGHT_SHIFT", params: [{ name: "expression_value" }, { name: "shift_amount" }] }, // functions/right-shift-transact-sql.md
181
- round: { name: "ROUND", params: [{ name: "numeric_expression" }, { name: "length" }, { name: "function" }] }, // functions/round-transact-sql.md
182
- row_number: { name: "ROW_NUMBER", params: [] }, // functions/row-number-transact-sql.md
183
- rowcount_big: { name: "ROWCOUNT_BIG", params: [] }, // functions/rowcount-big-transact-sql.md
184
- schema_id: { name: "SCHEMA_ID", params: [{ name: "schema_name" }] }, // functions/schema-id-transact-sql.md
185
- schema_name: { name: "SCHEMA_NAME", params: [{ name: "schema_id" }] }, // functions/schema-name-transact-sql.md
186
- sessionproperty: { name: "SESSIONPROPERTY", params: [{ name: "option" }] }, // functions/sessionproperty-transact-sql.md
187
- set_bit: { name: "SET_BIT", params: [{ name: "expression_value" }, { name: "bit_offset" }] }, // functions/set-bit-transact-sql.md
188
- sin: { name: "SIN", params: [{ name: "float_expression" }] }, // functions/sin-transact-sql.md
189
- soundex: { name: "SOUNDEX", params: [{ name: "character_expression" }] }, // functions/soundex-transact-sql.md
190
- space: { name: "SPACE", params: [{ name: "integer_expression" }] }, // functions/space-transact-sql.md
191
- stats_date: { name: "STATS_DATE", params: [{ name: "object_id" }, { name: "stats_id" }] }, // functions/stats-date-transact-sql.md
192
- string_agg: { name: "STRING_AGG", params: [{ name: "expression" }, { name: "separator" }] }, // functions/string-agg-transact-sql.md
193
- string_escape: { name: "STRING_ESCAPE", params: [{ name: "text" }, { name: "type" }] }, // functions/string-escape-transact-sql.md
194
- string_split: {
195
- name: "STRING_SPLIT",
196
- params: [{ name: "string" }, { name: "separator" }, { name: "enable_ordinal" }],
197
- }, // functions/string-split-transact-sql.md
198
- stuff: {
199
- name: "STUFF",
200
- params: [
201
- { name: "character_expression" },
202
- { name: "start" },
203
- { name: "length" },
204
- { name: "replace_with_expression" },
205
- ],
206
- }, // functions/stuff-transact-sql.md
207
- substring: { name: "SUBSTRING", params: [{ name: "expression" }, { name: "start" }, { name: "length" }] }, // functions/substring-transact-sql.md
208
- suser_name: { name: "SUSER_NAME", params: [{ name: "server_user_id" }] }, // functions/suser-name-transact-sql.md
209
- suser_sname: { name: "SUSER_SNAME", params: [{ name: "server_user_sid" }] }, // functions/suser-sname-transact-sql.md
210
- switchoffset: {
211
- name: "SWITCHOFFSET",
212
- params: [{ name: "datetimeoffset_expression" }, { name: "timezoneoffset_expression" }],
213
- }, // functions/switchoffset-transact-sql.md
214
- sysdatetime: { name: "SYSDATETIME", params: [] }, // functions/sysdatetime-transact-sql.md
215
- sysdatetimeoffset: { name: "SYSDATETIMEOFFSET", params: [] }, // functions/sysdatetimeoffset-transact-sql.md
216
- sysutcdatetime: { name: "SYSUTCDATETIME", params: [] }, // functions/sysutcdatetime-transact-sql.md
217
- tan: { name: "TAN", params: [{ name: "float_expression" }] }, // functions/tan-transact-sql.md
218
- tertiary_weights: { name: "TERTIARY_WEIGHTS", params: [{ name: "non_Unicode_character_string_expression" }] }, // functions/collation-functions-tertiary-weights-transact-sql.md
219
- textptr: { name: "TEXTPTR", params: [{ name: "column" }] }, // functions/text-and-image-functions-textptr-transact-sql.md
220
- timefromparts: {
221
- name: "TIMEFROMPARTS",
222
- params: [
223
- { name: "hour" },
224
- { name: "minute" },
225
- { name: "seconds" },
226
- { name: "fractions" },
227
- { name: "precision" },
228
- ],
229
- }, // functions/timefromparts-transact-sql.md
230
- todatetimeoffset: {
231
- name: "TODATETIMEOFFSET",
232
- params: [{ name: "datetime_expression" }, { name: "timezoneoffset_expression" }],
233
- }, // functions/todatetimeoffset-transact-sql.md
234
- translate: {
235
- name: "TRANSLATE",
236
- params: [{ name: "inputString" }, { name: "characters" }, { name: "translations" }],
237
- }, // functions/translate-transact-sql.md
238
- type_name: { name: "TYPE_NAME", params: [{ name: "type_id" }] }, // functions/type-name-transact-sql.md
239
- typeproperty: { name: "TYPEPROPERTY", params: [{ name: "type" }, { name: "property" }] }, // functions/typeproperty-transact-sql.md
240
- update: { name: "UPDATE", params: [{ name: "column" }] }, // functions/update-trigger-functions-transact-sql.md
241
- upper: { name: "UPPER", params: [{ name: "character_expression" }] }, // functions/upper-transact-sql.md
242
- user_name: { name: "USER_NAME", params: [{ name: "ID" }] }, // functions/user-name-transact-sql.md
243
- vector_distance: {
244
- name: "VECTOR_DISTANCE",
245
- params: [{ name: "distance_metric" }, { name: "vector1" }, { name: "vector2" }],
246
- }, // functions/vector-distance-transact-sql.md
247
- vector_norm: { name: "VECTOR_NORM", params: [{ name: "vector" }, { name: "norm_type" }] }, // functions/vector-norm-transact-sql.md
248
- vector_normalize: { name: "VECTOR_NORMALIZE", params: [{ name: "vector" }, { name: "norm_type" }] }, // functions/vector-normalize-transact-sql.md
249
- vectorproperty: { name: "VECTORPROPERTY", params: [{ name: "vector" }, { name: "property" }] }, // functions/vectorproperty-transact-sql.md
250
- verifysignedbyasymkey: {
251
- name: "VerifySignedByAsymKey",
252
- params: [{ name: "Asym_Key_ID" }, { name: "clear_text" }, { name: "signature" }],
253
- }, // functions/verifysignedbyasymkey-transact-sql.md
254
- verifysignedbycert: {
255
- name: "VerifySignedByCert",
256
- params: [{ name: "Cert_ID" }, { name: "signed_data" }, { name: "signature" }],
257
- }, // functions/verifysignedbycert-transact-sql.md
258
- version: { name: "VERSION", params: [] }, // functions/version-transact-sql-metadata-functions.md
259
- xact_state: { name: "XACT_STATE", params: [] }, // functions/xact-state-transact-sql.md
260
- };