@typed-sql/mysql 2.0.0-rc.1 → 2.1.0-rc.1

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 (89) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +12 -0
  3. package/dist/packages/mysql/src/bulk.d.ts.map +1 -1
  4. package/dist/packages/mysql/src/bulk.js +9 -3
  5. package/dist/packages/mysql/src/bulk.js.map +1 -1
  6. package/dist/packages/mysql/src/capabilities.d.ts +30 -0
  7. package/dist/packages/mysql/src/capabilities.d.ts.map +1 -0
  8. package/dist/packages/mysql/src/capabilities.js +233 -0
  9. package/dist/packages/mysql/src/capabilities.js.map +1 -0
  10. package/dist/packages/mysql/src/catalog/generated/26.7.d.ts +4 -0
  11. package/dist/packages/mysql/src/catalog/generated/26.7.d.ts.map +1 -0
  12. package/dist/packages/mysql/src/catalog/generated/26.7.js +3 -0
  13. package/dist/packages/mysql/src/catalog/generated/26.7.js.map +1 -0
  14. package/dist/packages/mysql/src/catalog/generated/8.4.d.ts +4 -0
  15. package/dist/packages/mysql/src/catalog/generated/8.4.d.ts.map +1 -0
  16. package/dist/packages/mysql/src/catalog/generated/8.4.js +3 -0
  17. package/dist/packages/mysql/src/catalog/generated/8.4.js.map +1 -0
  18. package/dist/packages/mysql/src/catalog/generated/9.7.d.ts +4 -0
  19. package/dist/packages/mysql/src/catalog/generated/9.7.d.ts.map +1 -0
  20. package/dist/packages/mysql/src/catalog/generated/9.7.js +3 -0
  21. package/dist/packages/mysql/src/catalog/generated/9.7.js.map +1 -0
  22. package/dist/packages/mysql/src/catalog/index.d.ts +15 -0
  23. package/dist/packages/mysql/src/catalog/index.d.ts.map +1 -0
  24. package/dist/packages/mysql/src/catalog/index.js +129 -0
  25. package/dist/packages/mysql/src/catalog/index.js.map +1 -0
  26. package/dist/packages/mysql/src/catalog/types.d.ts +50 -0
  27. package/dist/packages/mysql/src/catalog/types.d.ts.map +1 -0
  28. package/dist/packages/mysql/src/catalog/types.js +2 -0
  29. package/dist/packages/mysql/src/catalog/types.js.map +1 -0
  30. package/dist/packages/mysql/src/index.d.ts +9 -1
  31. package/dist/packages/mysql/src/index.d.ts.map +1 -1
  32. package/dist/packages/mysql/src/index.js +37 -15
  33. package/dist/packages/mysql/src/index.js.map +1 -1
  34. package/dist/packages/mysql/src/mysql2.d.ts +9 -1
  35. package/dist/packages/mysql/src/mysql2.d.ts.map +1 -1
  36. package/dist/packages/mysql/src/mysql2.js +86 -3
  37. package/dist/packages/mysql/src/mysql2.js.map +1 -1
  38. package/dist/packages/mysql/src/parser/index.d.ts +8 -0
  39. package/dist/packages/mysql/src/parser/index.d.ts.map +1 -0
  40. package/dist/packages/mysql/src/parser/index.js +4 -0
  41. package/dist/packages/mysql/src/parser/index.js.map +1 -0
  42. package/dist/packages/mysql/src/parser/parser.d.ts +14 -0
  43. package/dist/packages/mysql/src/parser/parser.d.ts.map +1 -0
  44. package/dist/packages/mysql/src/parser/parser.js +1276 -0
  45. package/dist/packages/mysql/src/parser/parser.js.map +1 -0
  46. package/dist/packages/mysql/src/parser/tokenizer.d.ts +18 -0
  47. package/dist/packages/mysql/src/parser/tokenizer.d.ts.map +1 -0
  48. package/dist/packages/mysql/src/parser/tokenizer.js +385 -0
  49. package/dist/packages/mysql/src/parser/tokenizer.js.map +1 -0
  50. package/dist/packages/mysql/src/parser/types.d.ts +313 -0
  51. package/dist/packages/mysql/src/parser/types.d.ts.map +1 -0
  52. package/dist/packages/mysql/src/parser/types.js +9 -0
  53. package/dist/packages/mysql/src/parser/types.js.map +1 -0
  54. package/dist/packages/mysql/src/parser/walk.d.ts +13 -0
  55. package/dist/packages/mysql/src/parser/walk.d.ts.map +1 -0
  56. package/dist/packages/mysql/src/parser/walk.js +190 -0
  57. package/dist/packages/mysql/src/parser/walk.js.map +1 -0
  58. package/dist/packages/mysql/src/prepared.d.ts +6 -3
  59. package/dist/packages/mysql/src/prepared.d.ts.map +1 -1
  60. package/dist/packages/mysql/src/prepared.js +15 -14
  61. package/dist/packages/mysql/src/prepared.js.map +1 -1
  62. package/dist/packages/mysql/src/provider.d.ts +21 -5
  63. package/dist/packages/mysql/src/provider.d.ts.map +1 -1
  64. package/dist/packages/mysql/src/provider.js +647 -44
  65. package/dist/packages/mysql/src/provider.js.map +1 -1
  66. package/dist/packages/mysql/src/resolver.d.ts +5 -1
  67. package/dist/packages/mysql/src/resolver.d.ts.map +1 -1
  68. package/dist/packages/mysql/src/resolver.js +1207 -95
  69. package/dist/packages/mysql/src/resolver.js.map +1 -1
  70. package/dist/packages/mysql/src/routing.d.ts.map +1 -1
  71. package/dist/packages/mysql/src/routing.js +3 -2
  72. package/dist/packages/mysql/src/routing.js.map +1 -1
  73. package/dist/packages/mysql/src/runtime.d.ts +33 -0
  74. package/dist/packages/mysql/src/runtime.d.ts.map +1 -1
  75. package/dist/packages/mysql/src/runtime.js +166 -12
  76. package/dist/packages/mysql/src/runtime.js.map +1 -1
  77. package/dist/packages/mysql/src/semantics.d.ts +1 -1
  78. package/dist/packages/mysql/src/semantics.d.ts.map +1 -1
  79. package/dist/packages/mysql/src/semantics.js +27 -3
  80. package/dist/packages/mysql/src/semantics.js.map +1 -1
  81. package/dist/packages/mysql/src/support.d.ts +43 -0
  82. package/dist/packages/mysql/src/support.d.ts.map +1 -0
  83. package/dist/packages/mysql/src/support.js +102 -0
  84. package/dist/packages/mysql/src/support.js.map +1 -0
  85. package/dist/packages/mysql/src/type-policy.d.ts +2 -0
  86. package/dist/packages/mysql/src/type-policy.d.ts.map +1 -1
  87. package/dist/packages/mysql/src/type-policy.js +24 -50
  88. package/dist/packages/mysql/src/type-policy.js.map +1 -1
  89. package/package.json +8 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,131 @@
1
1
  # @typed-sql/mysql
2
2
 
3
+ ## 2.1.0-rc.1
4
+
5
+ ### Patch Changes
6
+
7
+ - f3b9e6c: Align the published MySQL support evidence with the exact currently available Docker Official Image patches for the 8.4 and 9.7 LTS lines and the 26.7 innovation canary. Keep typed bulk loading portable across modeled SQL modes by expressing field, escape, and line delimiters as hexadecimal SQL literals instead of mode-sensitive escaped strings.
8
+
9
+ ## 2.1.0-rc.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 1c64475: Add the grammar-neutral parser toolkit and move first-party parsing, ASTs, tokenization, and walking into each grammar package. The historical multi-dialect AST parser is isolated as a deprecated typed-sql 2.x compatibility surface for removal in 3.0.
14
+ - e433feb: Allow non-empty arrays of typed SQL fragments to be interpolated directly as homogeneous,
15
+ comma-separated structure. Add fail-closed compiler analysis for direct map callbacks and fragment
16
+ literals, cardinality-independent artifacts, bounded prepared-cardinality caches, shared grammar
17
+ conformance, and runtime limits while preserving ordinary arrays as single bound values.
18
+ - b5311d8: Complete MySQL data-modification parsing and analysis for insert modifiers, inserted-row aliases,
19
+ duplicate-key updates, `REPLACE`, joined multi-table updates and deletes, partitions, and
20
+ single-table ordering and limits.
21
+ - 9770923: Apply normalized MySQL SQL modes before scanning. `ANSI_QUOTES`, `NO_BACKSLASH_ESCAPES`, and
22
+ `PIPES_AS_CONCAT` now select exact lexical behavior, and executable server comments fail closed.
23
+ - aaa5504: Complete MySQL query-structure analysis for recursive CTEs, set operations, lateral derived tables,
24
+ locking placement, window frames and inheritance, `ROLLUP`, and `ONLY_FULL_GROUP_BY`.
25
+ - 8325545: Harden MySQL execution with per-connection snapshot compatibility checks, redacted warning reporting and strict warning rejection, bounded logical/native prepared-statement and decoder caches, and adapter-owned multi-statement disablement.
26
+ - 1c1e713: Capture normalized MySQL distribution, SQL mode, server and connection charset/collation, session
27
+ and system time zone, and identifier-case evidence. Exact capability selection now fails closed when
28
+ any required semantic setting is absent.
29
+ - 0f0f271: Complete MySQL schema format 2 introspection for namespace defaults, invisible and spatial columns,
30
+ type attributes, constraint enforcement, index prefixes and visibility, routine metadata, and
31
+ permission-limited fail-closed diagnostics. Reject MariaDB and unidentified compatible servers
32
+ instead of emitting MySQL snapshots for unverified products.
33
+ - e3e0cfe: Publish the grammar-owned MySQL LTS, innovation-canary, patch-compatibility, and deprecation policy,
34
+ publish the default, lexical, and numeric SQL-mode profiles, and expose fail-closed server-version
35
+ classification through `mySqlVersionSupport()`. Custom profiles containing an unmodeled mode now
36
+ remain conservative instead of receiving exact capability evidence.
37
+ - 0efc90c: Add neutral column charset and collation evidence, generated versioned MySQL built-in catalogs,
38
+ catalog-backed type and function availability, MySQL collation coercibility, and signed/unsigned
39
+ numeric expression resolution.
40
+ Conformance v2 now compares grammar analysis against the neutral resolved-column contract while
41
+ allowing grammar-owned result evidence.
42
+ - 1c64475: Add canonical schema snapshot format 2 with isolated v1/v2 codecs, conservative v1 upgrades,
43
+ neutral relation/constraint/index/type/routine evidence, and complete provider introspection.
44
+ Resolvers now consume structural write and routine evidence, while drift, compatibility, manifests,
45
+ verification proofs, and plan artifacts bind to the schema format and canonical hash.
46
+
47
+ ### Patch Changes
48
+
49
+ - 1c64475: Add the canonical, version-aware grammar feature ledger API and fail closed for PostgreSQL-style `UPDATE FROM` and `INSERT DEFAULT VALUES` when analyzed by the MySQL grammar.
50
+ - 1c64475: Add deterministic versioned dialect capability states backed by normalized server versions,
51
+ settings, extensions, and compile options. Query manifests now invalidate on capability changes and
52
+ record evidence for capabilities each query uses, while the CLI exposes a human-readable capability
53
+ report. The boolean capability map remains available as an additive migration bridge.
54
+ - Updated dependencies [58bd4d1]
55
+ - Updated dependencies [58aa9ef]
56
+ - Updated dependencies [1c64475]
57
+ - Updated dependencies [65b662f]
58
+ - Updated dependencies [e433feb]
59
+ - Updated dependencies [0efc90c]
60
+ - Updated dependencies [ff0e3bb]
61
+ - Updated dependencies [6f5b977]
62
+ - Updated dependencies [1c64475]
63
+ - Updated dependencies [1c64475]
64
+ - Updated dependencies [1c64475]
65
+ - Updated dependencies [1c64475]
66
+ - @typed-sql/core@2.1.0-rc.0
67
+ - @typed-sql/ast@2.1.0-rc.0
68
+ - @typed-sql/schema@2.1.0-rc.0
69
+
70
+ ## 2.0.0
71
+
72
+ ### Major Changes
73
+
74
+ - 29afc3d: Add conservative semantic primary/replica routing over application-owned databases, scoped
75
+ read-after-write pinning, explicit role requirements, stable unsafe-route errors, dialect runtime
76
+ semantic resolvers, and bounded abortable transaction retry policies with native PostgreSQL and
77
+ MySQL error classifiers. Parse and classify dialect locking reads so uncertain or affine work
78
+ always fails closed to primary.
79
+ - 6a7ae58: Add opt-in live query verification through grammar-owned PostgreSQL PREPARE and MySQL
80
+ COM_STMT_PREPARE adapters, bounded neutral comparison, deterministic secret-free proof artifacts,
81
+ offline cache validation, explicit unsupported classifications, CLI workflows, real database E2E,
82
+ and performance budgets.
83
+ - b06fd0a: Add grammar-neutral optional adapter capability discovery, typed PostgreSQL COPY import and export
84
+ through application-owned `pg-copy-streams`, and typed MySQL LOAD DATA import through mysql2's
85
+ application-owned infile stream. Bulk transfers preserve ordinary `INSERT` parameter evidence,
86
+ enforce structural row stability, apply bounded backpressure, support cancellation and progress,
87
+ and integrate with transaction ownership and conservative connection cleanup.
88
+ - 3050209: Add the dialect contract v4 semantic query evidence foundation. PostgreSQL and MySQL now report operation, dependencies, cardinality, volatility, locking, connection affinity, and required capabilities; compiler results add deterministic query and structural-variant fingerprints and conservatively merged source-mapped semantics. Schema snapshots can record function volatility, and the AST package exposes a neutral statement walker for grammar implementations.
89
+ - 1b054b6: Add an adapter-neutral, redacted database observation lifecycle for queries, cardinality contracts,
90
+ batches, PostgreSQL pipelines, streams, cancellation, and nested transactions. Runtime fingerprints
91
+ correlate with compiler structural variants while SQL, parameter values, connection configuration,
92
+ and driver causes remain excluded by default. Publish the optional OpenTelemetry bridge with current
93
+ database semantic conventions and explicit high-cardinality or exception-capture opt-ins.
94
+ - 87189c3: Add grammar-neutral `all`, `one`, and `maybeOne` execution with exact row types, stable cardinality
95
+ and cancellation errors, explicit adapter capabilities, AbortSignal support, and absolute deadlines.
96
+ The pg and mysql2 adapters conservatively discard interrupted connections, including transaction
97
+ leases, while the existing uncontrolled `execute` path remains unchanged.
98
+ - e654fae: Add opt-in Standard Schema V1 result validation with compile-time output compatibility, immutable
99
+ query attachment, sync and async validators, redacted fingerprinted errors, and consistent decoded-row
100
+ handling across buffered cardinality methods, batches, PostgreSQL pipelines, streams, and transactions.
101
+ - b2ec119: Add opt-in, grammar-neutral query-plan governance with PostgreSQL and MySQL structured EXPLAIN
102
+ adapters, transient application-owned samples, redacted fingerprint-keyed artifacts, absolute and
103
+ comparable regression budgets, explicit uncertainty, CLI capture and review, documentation, and
104
+ performance coverage.
105
+
106
+ ### Minor Changes
107
+
108
+ - 9c72dab: Use live MySQL catalog origins to preserve enum result evidence, and compare parameter metadata in
109
+ the safe input direction so compiler-enforced literal subsets do not become false mismatches.
110
+
111
+ ### Patch Changes
112
+
113
+ - Updated dependencies [7ea5d2f]
114
+ - Updated dependencies [29afc3d]
115
+ - Updated dependencies [3f063f6]
116
+ - Updated dependencies [6a7ae58]
117
+ - Updated dependencies [af27a0e]
118
+ - Updated dependencies [b06fd0a]
119
+ - Updated dependencies [3050209]
120
+ - Updated dependencies [1b054b6]
121
+ - Updated dependencies [b4f1b6e]
122
+ - Updated dependencies [87189c3]
123
+ - Updated dependencies [e654fae]
124
+ - Updated dependencies [b2ec119]
125
+ - @typed-sql/core@2.0.0
126
+ - @typed-sql/ast@2.0.0
127
+ - @typed-sql/schema@2.0.0
128
+
3
129
  ## 2.0.0-rc.1
4
130
 
5
131
  ### Minor Changes
package/README.md CHANGED
@@ -12,6 +12,12 @@ pnpm add -D @typed-sql/cli typescript@7.0.2
12
12
  `mysql2` is loaded only through `@typed-sql/mysql/mysql2`; it is not a dependency or peer dependency
13
13
  of the grammar.
14
14
 
15
+ The stable grammar contract covers the MySQL 8.4 and 9.7 LTS series. Protected differential jobs
16
+ exercise exact 8.4.11 and 9.7.2 images under default, lexical, and unsigned-arithmetic SQL-mode
17
+ profiles. MySQL 26.7.0 is reported separately as a non-blocking innovation canary and requires
18
+ `mysql({ versionPolicy: "canary" })`.
19
+ These are the supported SQL-mode profiles; custom profiles containing an unmodeled mode fail closed.
20
+
15
21
  ```ts
16
22
  import { requireAdapterCapability } from "@typed-sql/core";
17
23
  import { mysqlBulk, sql, typePolicy } from "@typed-sql/mysql";
@@ -26,6 +32,7 @@ const query = sql`
26
32
  const database = await createMySql2Database({
27
33
  connectionUri: process.env.DATABASE_URL!,
28
34
  typePolicy,
35
+ preparedStatementLimit: 16_000,
29
36
  // observer: createOpenTelemetryObserver(),
30
37
  });
31
38
 
@@ -55,6 +62,11 @@ The package root exports `sql`, `mysql`, and the MySQL type policy. The `/mysql2
55
62
  the schema provider, execution adapter, `createMySql2LiveVerifier`, and `createMySql2PlanInspector`;
56
63
  `/runtime` exposes driver-neutral MySQL rendering and codecs.
57
64
 
65
+ The adapter can validate a schema format 2 `compatibilitySnapshot` against each leased session,
66
+ report redacted execution warning counts through `onWarning`, reject warnings with
67
+ `rejectWarnings`, and bound prepared and decoder caches. Multi-statement strings remain disabled;
68
+ use the ordered batch API instead. The canonical MySQL guide documents these runtime contracts.
69
+
58
70
  The root also exports `createMySqlRoutedDatabase`, the runtime semantic resolver, and the native
59
71
  transaction retry classifier. These compose application-owned adapters without installing or
60
72
  creating `mysql2` pools.
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../../../src/bulk.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,KAAK,EAGX,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;CAAG;AAE7D,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1G;AAED,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAC9C,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,SAAS,kEAAkE,CAAC;AAwGzF,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,GAAG,mBAAmB,CAqG5F"}
1
+ {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../../../src/bulk.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,KAAK,EAGX,MAAM,iBAAiB,CAAC;AAQzB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;CAAG;AAE7D,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1G;AAED,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,SAAS,OAAO,EAAE,EACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAC9C,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,SAAS,kEAAkE,CAAC;AA8GzF,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,GAAG,mBAAmB,CAqG5F"}
@@ -1,5 +1,5 @@
1
- import { parseStatement } from "@typed-sql/ast";
2
1
  import { bindQueryRenderSkeleton, compileQueryRenderSkeleton, defineAdapterCapability, QueryCancelledError, } from "@typed-sql/core";
2
+ import { parseStatement } from "./parser/index.js";
3
3
  const mysqlRenderer = Object.freeze({
4
4
  placeholder: () => "?",
5
5
  quoteIdentifier: (name) => `\`${name.replaceAll("`", "``")}\``,
@@ -51,13 +51,19 @@ function chunkSize(value) {
51
51
  return resolved;
52
52
  }
53
53
  function loadDataStatement(text, parameterCount) {
54
- const statement = parseStatement(text, { syntax: "mysql" });
54
+ const statement = parseStatement(text);
55
55
  if (statement.kind !== "insert" ||
56
+ statement.operation !== "insert" ||
56
57
  statement.with !== undefined ||
58
+ statement.priority !== undefined ||
59
+ statement.ignore ||
57
60
  statement.table.alias !== undefined ||
61
+ (statement.table.partitions?.length ?? 0) > 0 ||
58
62
  statement.source.kind !== "values" ||
59
63
  statement.source.rows.length !== 1 ||
60
64
  statement.returning.length !== 0 ||
65
+ statement.rowAlias !== undefined ||
66
+ statement.duplicateKey.length > 0 ||
61
67
  statement.columns.length === 0) {
62
68
  throw new TypeError("MySQL LOAD DATA requires a plain single-row INSERT with an explicit column list and one VALUES row");
63
69
  }
@@ -70,7 +76,7 @@ function loadDataStatement(text, parameterCount) {
70
76
  const quote = mysqlRenderer.quoteIdentifier;
71
77
  const table = `${statement.table.schema === undefined ? "" : `${quote(statement.table.schema.name)}.`}${quote(statement.table.name.name)}`;
72
78
  const columns = statement.columns.map(({ name }) => quote(name)).join(", ");
73
- return `LOAD DATA LOCAL INFILE 'typed-sql-stream' INTO TABLE ${table} CHARACTER SET utf8mb4 FIELDS TERMINATED BY '\\t' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n' (${columns})`;
79
+ return `LOAD DATA LOCAL INFILE 'typed-sql-stream' INTO TABLE ${table} CHARACTER SET utf8mb4 FIELDS TERMINATED BY X'09' ESCAPED BY X'5C' LINES TERMINATED BY X'0A' (${columns})`;
74
80
  }
75
81
  function cancelled(signal) {
76
82
  if (signal?.aborted === true)
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../../src/bulk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../../src/bulk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type DialectCapabilityStates, type DialectServerEvidence } from "@typed-sql/core";
2
+ import type { MySqlSchemaSnapshot } from "./index.js";
3
+ import { type MySqlVersionPolicy } from "./support.js";
4
+ export declare const MYSQL_CAPABILITIES: Readonly<{
5
+ aggregateFilter: false;
6
+ arrays: false;
7
+ distinctOn: false;
8
+ fullJoins: false;
9
+ lockingReads: true;
10
+ recursiveCtes: true;
11
+ returning: false;
12
+ setOperations: true;
13
+ }>;
14
+ export type MySqlServerEdition = "commercial" | "community" | "enterprise" | "source" | "unknown";
15
+ export interface MySqlServerEvidenceOptions {
16
+ readonly sqlMode?: string;
17
+ readonly characterSetServer?: string;
18
+ readonly collationServer?: string;
19
+ readonly characterSetConnection?: string;
20
+ readonly collationConnection?: string;
21
+ readonly timeZone?: string;
22
+ readonly systemTimeZone?: string;
23
+ readonly lowerCaseTableNames?: number | string;
24
+ readonly versionComment?: string;
25
+ }
26
+ export declare function unmodeledMySqlSqlModes(sqlMode: string): readonly string[];
27
+ export declare function assertMySqlServerEvidence(server: DialectServerEvidence): void;
28
+ export declare function mySqlServerEvidence(version: string, sqlModeOrOptions?: string | MySqlServerEvidenceOptions): DialectServerEvidence;
29
+ export declare function resolveMySqlCapabilities(snapshot: MySqlSchemaSnapshot, versionPolicy?: MySqlVersionPolicy): DialectCapabilityStates;
30
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAI3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAwB,KAAK,kBAAkB,EAA0C,MAAM,cAAc,CAAC;AAGrH,eAAO,MAAM,kBAAkB;;;;;;;;;EAS7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAiBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAEzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAsC7E;AAyDD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GAAG,0BAA0B,GACrD,qBAAqB,CAgCvB;AAiDD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,GAAE,kBAA6B,GAC3C,uBAAuB,CA8FzB"}
@@ -0,0 +1,233 @@
1
+ import { defineDialectCapabilityStates, defineDialectServerEvidence, staticDialectCapabilityStates, } from "@typed-sql/core";
2
+ import { MYSQL_SUPPORT_POLICY, mySqlVersionSupport, parseMySqlVersion } from "./support.js";
3
+ import { MYSQL_DIALECT_VERSION } from "./version.js";
4
+ export const MYSQL_CAPABILITIES = Object.freeze({
5
+ aggregateFilter: false,
6
+ arrays: false,
7
+ distinctOn: false,
8
+ fullJoins: false,
9
+ lockingReads: true,
10
+ recursiveCtes: true,
11
+ returning: false,
12
+ setOperations: true,
13
+ });
14
+ const mysqlSettingKeys = Object.freeze([
15
+ "characterSetConnection",
16
+ "characterSetServer",
17
+ "collationConnection",
18
+ "collationServer",
19
+ "edition",
20
+ "lowerCaseTableNames",
21
+ "sqlMode",
22
+ "systemTimeZone",
23
+ "timeZone",
24
+ ]);
25
+ const exactMySqlSettingKeys = Object.freeze([...mysqlSettingKeys]);
26
+ const modeledSqlModes = new Set(MYSQL_SUPPORT_POLICY.sqlModeProfiles.flatMap(({ modes }) => modes));
27
+ export function unmodeledMySqlSqlModes(sqlMode) {
28
+ return Object.freeze(sqlMode.split(",").filter((mode) => mode.length > 0 && !modeledSqlModes.has(mode)));
29
+ }
30
+ export function assertMySqlServerEvidence(server) {
31
+ const settings = Object.keys(server.settings);
32
+ if (settings.some((key) => !mysqlSettingKeys.includes(key))) {
33
+ throw new TypeError("MySQL server evidence contains a non-allowlisted semantic setting");
34
+ }
35
+ const sqlMode = server.settings.sqlMode;
36
+ if (sqlMode !== undefined && (typeof sqlMode !== "string" || normalizeSqlMode(sqlMode) !== sqlMode)) {
37
+ throw new TypeError("MySQL sqlMode evidence must be a normalized mode list");
38
+ }
39
+ for (const key of [
40
+ "characterSetConnection",
41
+ "characterSetServer",
42
+ "collationConnection",
43
+ "collationServer",
44
+ ]) {
45
+ const value = server.settings[key];
46
+ if (value !== undefined && (typeof value !== "string" || normalizeIdentifier(value, key) !== value)) {
47
+ throw new TypeError(`MySQL ${key} evidence must be a normalized identifier`);
48
+ }
49
+ }
50
+ for (const key of ["timeZone", "systemTimeZone"]) {
51
+ const value = server.settings[key];
52
+ if (value !== undefined && (typeof value !== "string" || normalizeTimeZone(value) !== value)) {
53
+ throw new TypeError(`MySQL ${key} evidence must be normalized`);
54
+ }
55
+ }
56
+ const lowerCaseTableNames = server.settings.lowerCaseTableNames;
57
+ if (lowerCaseTableNames !== undefined && ![0, 1, 2].includes(lowerCaseTableNames)) {
58
+ throw new TypeError("MySQL lowerCaseTableNames evidence must be 0, 1, or 2");
59
+ }
60
+ const edition = server.settings.edition;
61
+ if (edition !== undefined &&
62
+ (typeof edition !== "string" || !["commercial", "community", "enterprise", "source", "unknown"].includes(edition))) {
63
+ throw new TypeError("MySQL edition evidence is invalid");
64
+ }
65
+ if (server.features.length > 0)
66
+ throw new TypeError("MySQL server evidence does not allow feature identifiers");
67
+ }
68
+ function normalizeSqlMode(value) {
69
+ return [
70
+ ...new Set(value
71
+ .split(",")
72
+ .map((mode) => mode.trim().toUpperCase())
73
+ .filter(Boolean)),
74
+ ]
75
+ .sort()
76
+ .join(",");
77
+ }
78
+ function normalizeIdentifier(value, name) {
79
+ const normalized = value.trim().toLowerCase();
80
+ if (!/^[a-z0-9_]+$/u.test(normalized))
81
+ throw new TypeError(`MySQL ${name} is not a safe identifier`);
82
+ return normalized;
83
+ }
84
+ function normalizeTimeZone(value) {
85
+ const normalized = value.trim();
86
+ if (normalized.length === 0 ||
87
+ [...normalized].some((character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127)) {
88
+ throw new TypeError("MySQL time-zone evidence is invalid");
89
+ }
90
+ return /^system$/iu.test(normalized) ? "SYSTEM" : normalized;
91
+ }
92
+ function normalizeLowerCaseTableNames(value) {
93
+ const normalized = typeof value === "string" && /^[012]$/u.test(value.trim()) ? Number(value.trim()) : value;
94
+ if (normalized !== 0 && normalized !== 1 && normalized !== 2) {
95
+ throw new TypeError("MySQL lower_case_table_names must be 0, 1, or 2");
96
+ }
97
+ return normalized;
98
+ }
99
+ function mysqlServerEdition(comment) {
100
+ if (comment === undefined)
101
+ return "unknown";
102
+ if (/community/iu.test(comment))
103
+ return "community";
104
+ if (/enterprise/iu.test(comment))
105
+ return "enterprise";
106
+ if (/commercial/iu.test(comment))
107
+ return "commercial";
108
+ if (/source distribution/iu.test(comment))
109
+ return "source";
110
+ return "unknown";
111
+ }
112
+ function mysqlServerProduct(version, comment) {
113
+ const identity = `${version}\n${comment ?? ""}`;
114
+ if (/mariadb/iu.test(identity))
115
+ return "mariadb";
116
+ if (/(?:percona|tidb|vitess|planetscale|aurora)/iu.test(identity))
117
+ return "mysql-compatible";
118
+ if (comment === undefined || /mysql|source distribution/iu.test(comment))
119
+ return "mysql";
120
+ return "mysql-compatible";
121
+ }
122
+ export function mySqlServerEvidence(version, sqlModeOrOptions) {
123
+ const parsed = parseMySqlVersion(version);
124
+ if (parsed === undefined)
125
+ throw new TypeError(`Cannot normalize MySQL version ${JSON.stringify(version)}`);
126
+ const options = typeof sqlModeOrOptions === "string" ? { sqlMode: sqlModeOrOptions } : (sqlModeOrOptions ?? {});
127
+ const settings = {
128
+ ...(options.sqlMode === undefined ? {} : { sqlMode: normalizeSqlMode(options.sqlMode) }),
129
+ ...(options.characterSetServer === undefined
130
+ ? {}
131
+ : { characterSetServer: normalizeIdentifier(options.characterSetServer, "characterSetServer") }),
132
+ ...(options.collationServer === undefined
133
+ ? {}
134
+ : { collationServer: normalizeIdentifier(options.collationServer, "collationServer") }),
135
+ ...(options.characterSetConnection === undefined
136
+ ? {}
137
+ : { characterSetConnection: normalizeIdentifier(options.characterSetConnection, "characterSetConnection") }),
138
+ ...(options.collationConnection === undefined
139
+ ? {}
140
+ : { collationConnection: normalizeIdentifier(options.collationConnection, "collationConnection") }),
141
+ ...(options.timeZone === undefined ? {} : { timeZone: normalizeTimeZone(options.timeZone) }),
142
+ ...(options.systemTimeZone === undefined ? {} : { systemTimeZone: normalizeTimeZone(options.systemTimeZone) }),
143
+ ...(options.lowerCaseTableNames === undefined
144
+ ? {}
145
+ : { lowerCaseTableNames: normalizeLowerCaseTableNames(options.lowerCaseTableNames) }),
146
+ ...(options.versionComment === undefined ? {} : { edition: mysqlServerEdition(options.versionComment) }),
147
+ };
148
+ return defineDialectServerEvidence({
149
+ product: mysqlServerProduct(version, options.versionComment),
150
+ version,
151
+ versionKey: parsed.join("."),
152
+ features: [],
153
+ settings,
154
+ });
155
+ }
156
+ function serverConditions(server, versionPolicy) {
157
+ return [
158
+ { kind: "policy", key: "versionChannel", value: versionPolicy },
159
+ ...Object.entries(server.settings).map(([key, value]) => ({
160
+ kind: "setting",
161
+ key,
162
+ value: String(value) || "<empty>",
163
+ })),
164
+ ];
165
+ }
166
+ function conservativeStates(reason, server, diagnostic = "TSQ402", versionPolicy = "stable") {
167
+ const evidence = [
168
+ { kind: "grammar", key: "grammarVersion", value: MYSQL_DIALECT_VERSION },
169
+ ...(server === undefined
170
+ ? []
171
+ : [{ kind: "server-version", key: server.product, value: server.versionKey }]),
172
+ ...(server === undefined
173
+ ? [{ kind: "policy", key: "versionChannel", value: versionPolicy }]
174
+ : serverConditions(server, versionPolicy)),
175
+ ];
176
+ return defineDialectCapabilityStates(Object.fromEntries(Object.entries(MYSQL_CAPABILITIES).map(([capability, supported]) => [
177
+ capability,
178
+ supported
179
+ ? { level: "conservative", reason, diagnostic, evidence }
180
+ : {
181
+ level: "unsupported",
182
+ reason: "This MySQL grammar version does not implement the feature.",
183
+ diagnostic: "TSQ401",
184
+ evidence,
185
+ },
186
+ ])), Object.keys(MYSQL_CAPABILITIES));
187
+ }
188
+ export function resolveMySqlCapabilities(snapshot, versionPolicy = "stable") {
189
+ let server = snapshot.server;
190
+ if (server === undefined && snapshot.version !== undefined) {
191
+ try {
192
+ server = mySqlServerEvidence(snapshot.version);
193
+ }
194
+ catch {
195
+ return conservativeStates("The MySQL server version could not be normalized.", undefined, "TSQ402", versionPolicy);
196
+ }
197
+ }
198
+ if (server === undefined) {
199
+ return conservativeStates("Exact support requires MySQL server-version evidence.", undefined, "TSQ402", versionPolicy);
200
+ }
201
+ assertMySqlServerEvidence(server);
202
+ if (server.product !== "mysql") {
203
+ return conservativeStates(`${server.product} is not covered by the MySQL grammar support contract.`, server, "TSQ403", versionPolicy);
204
+ }
205
+ const version = parseMySqlVersion(server.versionKey);
206
+ if (version === undefined) {
207
+ return conservativeStates("The MySQL server version could not be normalized.", server, "TSQ402", versionPolicy);
208
+ }
209
+ const support = mySqlVersionSupport(server.version, versionPolicy);
210
+ if (support === "prerelease") {
211
+ return conservativeStates("Pre-release MySQL versions require an explicit canary support policy.", server, "TSQ403", versionPolicy);
212
+ }
213
+ if (support !== "supported" && support !== "canary") {
214
+ return conservativeStates(`MySQL ${version.join(".")} is not in the tested 8.4 or 9.7 LTS support lines.`, server, "TSQ403", versionPolicy);
215
+ }
216
+ const missingSettings = exactMySqlSettingKeys.filter((key) => !Object.hasOwn(server.settings, key));
217
+ if (missingSettings.length > 0) {
218
+ return conservativeStates(`Exact MySQL analysis requires normalized server settings: ${missingSettings.join(", ")}.`, server, "TSQ402", versionPolicy);
219
+ }
220
+ if (server.settings.edition === "unknown") {
221
+ return conservativeStates("The MySQL server edition could not be identified as an approved distribution.", server, "TSQ403", versionPolicy);
222
+ }
223
+ const sqlMode = server.settings.sqlMode;
224
+ if (typeof sqlMode !== "string") {
225
+ return conservativeStates("Exact MySQL lexical analysis requires normalized sql_mode evidence.", server, "TSQ402", versionPolicy);
226
+ }
227
+ const unmodeledModes = unmodeledMySqlSqlModes(sqlMode);
228
+ if (unmodeledModes.length > 0) {
229
+ return conservativeStates(`Exact MySQL analysis does not cover these sql_mode values: ${unmodeledModes.join(", ")}.`, server, "TSQ407", versionPolicy);
230
+ }
231
+ return staticDialectCapabilityStates(MYSQL_CAPABILITIES, MYSQL_DIALECT_VERSION, server, "TSQ401", serverConditions(server, versionPolicy));
232
+ }
233
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../../src/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { MySqlCoreCatalog } from "../types.js";
2
+ declare const catalog: MySqlCoreCatalog;
3
+ export default catalog;
4
+ //# sourceMappingURL=26.7.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"26.7.d.ts","sourceRoot":"","sources":["../../../../../../src/catalog/generated/26.7.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,QAAA,MAAM,OAAO,EAER,gBAAgB,CAAC;eAEP,OAAO"}
@@ -0,0 +1,3 @@
1
+ const catalog = JSON.parse(`{"coercions":[{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"bigint","target":"decimal"},{"contexts":["explicit","string"],"safety":"lossless","source":"bigint","target":"varchar"},{"contexts":["assignment","comparison","explicit","string"],"safety":"lossless","source":"binary","target":"varbinary"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"boolean","target":"bigint"},{"contexts":["assignment","comparison","explicit","string"],"safety":"lossless","source":"char","target":"varchar"},{"contexts":["assignment","comparison","explicit"],"safety":"lossless","source":"date","target":"datetime"},{"contexts":["explicit","string"],"safety":"lossless","source":"date","target":"varchar"},{"contexts":["assignment","explicit"],"safety":"lossy","source":"datetime","target":"date"},{"contexts":["explicit","string"],"safety":"lossless","source":"datetime","target":"varchar"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossy","source":"decimal","target":"double"},{"contexts":["explicit","string"],"safety":"lossless","source":"decimal","target":"varchar"},{"contexts":["explicit","string"],"safety":"lossy","source":"double","target":"varchar"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"float","target":"double"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"int","target":"bigint"},{"contexts":["comparison","explicit","string"],"safety":"warning","source":"json","target":"varchar"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"mediumint","target":"bigint"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"smallint","target":"bigint"},{"contexts":["arithmetic","comparison","explicit"],"safety":"warning","source":"text","target":"double"},{"contexts":["arithmetic","assignment","comparison","explicit"],"safety":"lossless","source":"tinyint","target":"bigint"},{"contexts":["assignment","comparison","explicit","string"],"safety":"lossless","source":"varbinary","target":"blob"},{"contexts":["arithmetic","comparison","explicit"],"safety":"warning","source":"varchar","target":"double"},{"contexts":["assignment","comparison","explicit","string"],"safety":"lossless","source":"varchar","target":"text"}],"collations":[{"binary":true,"characterSet":"ascii","name":"ascii_bin","unicode":false},{"binary":false,"characterSet":"ascii","name":"ascii_general_ci","unicode":false},{"binary":true,"characterSet":"binary","name":"binary","unicode":false},{"binary":true,"characterSet":"latin1","name":"latin1_bin","unicode":false},{"binary":false,"characterSet":"latin1","name":"latin1_swedish_ci","unicode":false},{"binary":true,"characterSet":"utf8mb3","name":"utf8mb3_bin","unicode":true},{"binary":false,"characterSet":"utf8mb3","name":"utf8mb3_general_ci","unicode":true},{"binary":false,"characterSet":"utf8mb4","name":"utf8mb4_0900_ai_ci","unicode":true},{"binary":false,"characterSet":"utf8mb4","name":"utf8mb4_0900_as_ci","unicode":true},{"binary":false,"characterSet":"utf8mb4","name":"utf8mb4_0900_as_cs","unicode":true},{"binary":true,"characterSet":"utf8mb4","name":"utf8mb4_0900_bin","unicode":true},{"binary":true,"characterSet":"utf8mb4","name":"utf8mb4_bin","unicode":true},{"binary":false,"characterSet":"utf8mb4","name":"utf8mb4_general_ci","unicode":true},{"binary":false,"characterSet":"utf8mb4","name":"utf8mb4_unicode_ci","unicode":true}],"formatVersion":1,"operators":[{"name":"bitwise","operators":["&","<<",">>","^","|"],"result":"bitwise"},{"name":"comparison","operators":["!=","<","<=","<=>","<>","=",">",">=","IS","IS NOT","LIKE","NOT LIKE"],"result":"boolean"},{"name":"json","operators":["->"],"result":"json"},{"name":"json-text","operators":["->>"],"result":"json-text"},{"name":"logical","operators":["AND","OR","XOR"],"result":"boolean"},{"name":"numeric","operators":["%","*","+","-","/"],"result":"numeric"}],"routines":[{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":0,"name":"bigint-window","nullability":"never","result":"bigint","routines":["DENSE_RANK","NTILE","RANK","ROW_NUMBER"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"bytes","nullability":"arguments","result":"bytes","routines":["FROM_BASE64","RANDOM_BYTES","UNHEX"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":null,"minimumArguments":1,"name":"coalesce","nullability":"arguments","result":"coalesce","routines":["COALESCE"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"coercibility","nullability":"never","result":"coercibility","routines":["COERCIBILITY"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":null,"minimumArguments":1,"name":"concat","nullability":"arguments","result":"concat","routines":["CONCAT"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"count","nullability":"never","result":"count","routines":["COUNT"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":0,"name":"date","nullability":"never","result":"date","routines":["CURDATE","CURRENT_DATE","CURRENT_TIMESTAMP","NOW"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"decimal-aggregate","nullability":"always","result":"decimal-aggregate","routines":["AVG","SUM"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":2,"minimumArguments":0,"name":"double","nullability":"arguments","result":"double","routines":["ABS","ACOS","ASIN","ATAN","ATAN2","CEIL","CEILING","COS","COT","EXP","FLOOR","LN","LOG","LOG10","LOG2","POW","POWER","RAND","ROUND","SIN","SQRT","TAN"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":0,"minimumArguments":0,"name":"double-window","nullability":"never","result":"double","routines":["CUME_DIST","PERCENT_RANK"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"extrema","nullability":"always","result":"extrema","routines":["MAX","MIN"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":2,"minimumArguments":1,"name":"first-argument","nullability":"arguments","result":"first-argument","routines":["ANY_VALUE","IFNULL","NULLIF"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":3,"minimumArguments":1,"name":"integer","nullability":"arguments","result":"integer","routines":["ASCII","BIT_LENGTH","CHARACTER_LENGTH","CHAR_LENGTH","JSON_LENGTH","LENGTH","LOCATE","SIGN"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":null,"minimumArguments":1,"name":"json","nullability":"arguments","result":"json","routines":["JSON_ARRAY","JSON_ARRAYAGG","JSON_EXTRACT","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_VALUE"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":null,"minimumArguments":0,"name":"string","nullability":"arguments","result":"string","routines":["CHARSET","COLLATION","CONCAT_WS","CURRENT_USER","DATABASE","GROUP_CONCAT","LCASE","LOWER","REPLACE","SUBSTR","SUBSTRING","TRIM","UCASE","UPPER","USER","UUID","VERSION"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":3,"minimumArguments":1,"name":"value-window","nullability":"arguments","result":"value-window","routines":["FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"vector-dimension","nullability":"arguments","result":"integer","routines":["VECTOR_DIM"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"vector-from-string","nullability":"arguments","result":"vector","routines":["STRING_TO_VECTOR","TO_VECTOR"]},{"editions":["commercial","community","enterprise","source"],"maximumArguments":1,"minimumArguments":1,"name":"vector-to-string","nullability":"arguments","result":"string","routines":["FROM_VECTOR","VECTOR_TO_STRING"]}],"series":"26.7","types":[{"aliases":[],"category":"numeric-integer","mapping":"bigint","name":"bigint","signedness":"both"},{"aliases":[],"category":"binary","mapping":"bytes","name":"binary","signedness":"none"},{"aliases":[],"category":"binary","mapping":"bytes","name":"bit","signedness":"none"},{"aliases":["longblob","mediumblob","tinyblob"],"category":"binary","mapping":"bytes","name":"blob","signedness":"none"},{"aliases":["bool"],"category":"boolean","mapping":"boolean","name":"boolean","signedness":"none"},{"aliases":["character"],"category":"string","mapping":"string","name":"char","signedness":"none"},{"aliases":[],"category":"temporal","mapping":"date","name":"date","signedness":"none"},{"aliases":["timestamp"],"category":"temporal","mapping":"date","name":"datetime","signedness":"none"},{"aliases":["dec","fixed","numeric"],"category":"numeric-decimal","mapping":"numeric","name":"decimal","signedness":"both"},{"aliases":["real"],"category":"numeric-approximate","mapping":"number","name":"double","signedness":"both"},{"aliases":[],"category":"collection","mapping":"string","name":"enum","signedness":"none"},{"aliases":[],"category":"numeric-approximate","mapping":"number","name":"float","signedness":"both"},{"aliases":["geometrycollection","linestring","multilinestring","multipoint","multipolygon","point","polygon"],"category":"spatial","mapping":"bytes","name":"geometry","signedness":"none"},{"aliases":["integer"],"category":"numeric-integer","mapping":"number","name":"int","signedness":"both"},{"aliases":[],"category":"json","mapping":"json","name":"json","signedness":"none"},{"aliases":[],"category":"numeric-integer","mapping":"number","name":"mediumint","signedness":"both"},{"aliases":[],"category":"collection","mapping":"string","name":"set","signedness":"none"},{"aliases":[],"category":"numeric-integer","mapping":"number","name":"smallint","signedness":"both"},{"aliases":["longtext","mediumtext","tinytext"],"category":"string","mapping":"string","name":"text","signedness":"none"},{"aliases":[],"category":"temporal","mapping":"string","name":"time","signedness":"none"},{"aliases":[],"category":"numeric-integer","mapping":"number","name":"tinyint","signedness":"both"},{"aliases":[],"category":"binary","mapping":"bytes","name":"varbinary","signedness":"none"},{"aliases":["character varying"],"category":"string","mapping":"string","name":"varchar","signedness":"none"},{"aliases":[],"category":"vector","mapping":"bytes","name":"vector","signedness":"none"},{"aliases":[],"category":"temporal","mapping":"number","name":"year","signedness":"none"}],"revision":"sha256:dc604b434a9ffd30c99d7b2cf5c896627c461e60a8542111418dfa3d0d742dac"}`);
2
+ export default catalog;
3
+ //# sourceMappingURL=26.7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"26.7.js","sourceRoot":"","sources":["../../../../../../src/catalog/generated/26.7.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,22VAA22V,CACx1V,CAAC;AAEtB,eAAe,OAAO,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { MySqlCoreCatalog } from "../types.js";
2
+ declare const catalog: MySqlCoreCatalog;
3
+ export default catalog;
4
+ //# sourceMappingURL=8.4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8.4.d.ts","sourceRoot":"","sources":["../../../../../../src/catalog/generated/8.4.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,QAAA,MAAM,OAAO,EAER,gBAAgB,CAAC;eAEP,OAAO"}