@rudderjs/database 1.1.0 → 1.2.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 (126) hide show
  1. package/README.md +70 -0
  2. package/dist/db.d.ts +21 -3
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +27 -5
  5. package/dist/db.js.map +1 -1
  6. package/dist/index.d.ts +14 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +23 -4
  9. package/dist/index.js.map +1 -1
  10. package/dist/native/adapter.d.ts +202 -0
  11. package/dist/native/adapter.d.ts.map +1 -0
  12. package/dist/native/adapter.js +440 -0
  13. package/dist/native/adapter.js.map +1 -0
  14. package/dist/native/compiler.d.ts +371 -0
  15. package/dist/native/compiler.d.ts.map +1 -0
  16. package/dist/native/compiler.js +978 -0
  17. package/dist/native/compiler.js.map +1 -0
  18. package/dist/native/dialect-mysql.d.ts +26 -0
  19. package/dist/native/dialect-mysql.d.ts.map +1 -0
  20. package/dist/native/dialect-mysql.js +188 -0
  21. package/dist/native/dialect-mysql.js.map +1 -0
  22. package/dist/native/dialect-pg.d.ts +26 -0
  23. package/dist/native/dialect-pg.d.ts.map +1 -0
  24. package/dist/native/dialect-pg.js +192 -0
  25. package/dist/native/dialect-pg.js.map +1 -0
  26. package/dist/native/dialect.d.ts +255 -0
  27. package/dist/native/dialect.d.ts.map +1 -0
  28. package/dist/native/dialect.js +237 -0
  29. package/dist/native/dialect.js.map +1 -0
  30. package/dist/native/driver.d.ts +37 -0
  31. package/dist/native/driver.d.ts.map +1 -0
  32. package/dist/native/driver.js +19 -0
  33. package/dist/native/driver.js.map +1 -0
  34. package/dist/native/drivers/better-sqlite3.d.ts +56 -0
  35. package/dist/native/drivers/better-sqlite3.d.ts.map +1 -0
  36. package/dist/native/drivers/better-sqlite3.js +171 -0
  37. package/dist/native/drivers/better-sqlite3.js.map +1 -0
  38. package/dist/native/drivers/mysql.d.ts +30 -0
  39. package/dist/native/drivers/mysql.d.ts.map +1 -0
  40. package/dist/native/drivers/mysql.js +176 -0
  41. package/dist/native/drivers/mysql.js.map +1 -0
  42. package/dist/native/drivers/postgres.d.ts +57 -0
  43. package/dist/native/drivers/postgres.d.ts.map +1 -0
  44. package/dist/native/drivers/postgres.js +155 -0
  45. package/dist/native/drivers/postgres.js.map +1 -0
  46. package/dist/native/errors.d.ts +43 -0
  47. package/dist/native/errors.d.ts.map +1 -0
  48. package/dist/native/errors.js +64 -0
  49. package/dist/native/errors.js.map +1 -0
  50. package/dist/native/index.d.ts +27 -0
  51. package/dist/native/index.d.ts.map +1 -0
  52. package/dist/native/index.js +55 -0
  53. package/dist/native/index.js.map +1 -0
  54. package/dist/native/isolation.d.ts +14 -0
  55. package/dist/native/isolation.d.ts.map +1 -0
  56. package/dist/native/isolation.js +37 -0
  57. package/dist/native/isolation.js.map +1 -0
  58. package/dist/native/query-builder.d.ts +303 -0
  59. package/dist/native/query-builder.d.ts.map +1 -0
  60. package/dist/native/query-builder.js +984 -0
  61. package/dist/native/query-builder.js.map +1 -0
  62. package/dist/native/replica-picker.d.ts +22 -0
  63. package/dist/native/replica-picker.d.ts.map +1 -0
  64. package/dist/native/replica-picker.js +65 -0
  65. package/dist/native/replica-picker.js.map +1 -0
  66. package/dist/native/schema/alter-blueprint.d.ts +37 -0
  67. package/dist/native/schema/alter-blueprint.d.ts.map +1 -0
  68. package/dist/native/schema/alter-blueprint.js +56 -0
  69. package/dist/native/schema/alter-blueprint.js.map +1 -0
  70. package/dist/native/schema/blueprint.d.ts +151 -0
  71. package/dist/native/schema/blueprint.d.ts.map +1 -0
  72. package/dist/native/schema/blueprint.js +286 -0
  73. package/dist/native/schema/blueprint.js.map +1 -0
  74. package/dist/native/schema/column.d.ts +168 -0
  75. package/dist/native/schema/column.d.ts.map +1 -0
  76. package/dist/native/schema/column.js +190 -0
  77. package/dist/native/schema/column.js.map +1 -0
  78. package/dist/native/schema/ddl-compiler.d.ts +34 -0
  79. package/dist/native/schema/ddl-compiler.d.ts.map +1 -0
  80. package/dist/native/schema/ddl-compiler.js +352 -0
  81. package/dist/native/schema/ddl-compiler.js.map +1 -0
  82. package/dist/native/schema/inspect.d.ts +67 -0
  83. package/dist/native/schema/inspect.d.ts.map +1 -0
  84. package/dist/native/schema/inspect.js +312 -0
  85. package/dist/native/schema/inspect.js.map +1 -0
  86. package/dist/native/schema/introspect.d.ts +34 -0
  87. package/dist/native/schema/introspect.d.ts.map +1 -0
  88. package/dist/native/schema/introspect.js +101 -0
  89. package/dist/native/schema/introspect.js.map +1 -0
  90. package/dist/native/schema/migration.d.ts +8 -0
  91. package/dist/native/schema/migration.d.ts.map +1 -0
  92. package/dist/native/schema/migration.js +19 -0
  93. package/dist/native/schema/migration.js.map +1 -0
  94. package/dist/native/schema/migrator.d.ts +144 -0
  95. package/dist/native/schema/migrator.d.ts.map +1 -0
  96. package/dist/native/schema/migrator.js +240 -0
  97. package/dist/native/schema/migrator.js.map +1 -0
  98. package/dist/native/schema/rebuild.d.ts +11 -0
  99. package/dist/native/schema/rebuild.d.ts.map +1 -0
  100. package/dist/native/schema/rebuild.js +92 -0
  101. package/dist/native/schema/rebuild.js.map +1 -0
  102. package/dist/native/schema/schema-builder.d.ts +46 -0
  103. package/dist/native/schema/schema-builder.d.ts.map +1 -0
  104. package/dist/native/schema/schema-builder.js +153 -0
  105. package/dist/native/schema/schema-builder.js.map +1 -0
  106. package/dist/native/schema/schema-facade.d.ts +63 -0
  107. package/dist/native/schema/schema-facade.d.ts.map +1 -0
  108. package/dist/native/schema/schema-facade.js +124 -0
  109. package/dist/native/schema/schema-facade.js.map +1 -0
  110. package/dist/native/schema/schema-types.d.ts +27 -0
  111. package/dist/native/schema/schema-types.d.ts.map +1 -0
  112. package/dist/native/schema/schema-types.js +52 -0
  113. package/dist/native/schema/schema-types.js.map +1 -0
  114. package/dist/native/schema/types-generator.d.ts +73 -0
  115. package/dist/native/schema/types-generator.d.ts.map +1 -0
  116. package/dist/native/schema/types-generator.js +181 -0
  117. package/dist/native/schema/types-generator.js.map +1 -0
  118. package/dist/registry-bridge.d.ts +24 -4
  119. package/dist/registry-bridge.d.ts.map +1 -1
  120. package/dist/registry-bridge.js +20 -0
  121. package/dist/registry-bridge.js.map +1 -1
  122. package/dist/sticky.d.ts +22 -0
  123. package/dist/sticky.d.ts.map +1 -0
  124. package/dist/sticky.js +61 -0
  125. package/dist/sticky.js.map +1 -0
  126. package/package.json +32 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/native/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type LockOptions } from '@rudderjs/contracts';
2
+ import { type Dialect, type DatePart, type JsonPathSegment, type JsonPathWrite, type JsonValueKind } from './dialect.js';
3
+ import type { ColumnDefinition } from './schema/column.js';
4
+ /**
5
+ * MySQL {@link Dialect} — backtick-quoted identifiers, `?` placeholders, and
6
+ * **no** `RETURNING`. Maps the portable {@link ColumnDefinition} types to MySQL
7
+ * storage types (parent plan Part 2's column-type table).
8
+ */
9
+ export declare class MysqlDialect implements Dialect {
10
+ readonly name: "mysql";
11
+ readonly supportsReturning = false;
12
+ quoteId(identifier: string): string;
13
+ placeholder(_index: number): string;
14
+ booleanLiteral(value: boolean): string;
15
+ dateExtract(part: DatePart, column: string): string;
16
+ jsonExtract(column: string, segments: readonly JsonPathSegment[], valueKind: JsonValueKind): string;
17
+ jsonNullComparison(column: string, segments: readonly JsonPathSegment[], negated: boolean): string;
18
+ jsonBoolean(value: boolean): unknown;
19
+ jsonContains(column: string, segments: readonly JsonPathSegment[], value: unknown, bind: (v: unknown) => string): string;
20
+ jsonLength(column: string, segments: readonly JsonPathSegment[]): string;
21
+ jsonSet(column: string, writes: readonly JsonPathWrite[], bind: (v: unknown) => string): string;
22
+ lockSql(mode: 'update' | 'shared', opts?: LockOptions): string;
23
+ upsertClause(uniqueBy: readonly string[], update: readonly string[]): string;
24
+ columnTypeSql(column: ColumnDefinition): string;
25
+ }
26
+ //# sourceMappingURL=dialect-mysql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-mysql.d.ts","sourceRoot":"","sources":["../../src/native/dialect-mysql.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;;;GAIG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAGhC,QAAQ,CAAC,iBAAiB,SAAQ;IAElC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAQnC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOnC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAOtC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAcnD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM;IAYnG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAclG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAKpC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAMxH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM;IASxE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAa/F,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM;IAY9D,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAM5E,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAsDhD"}
@@ -0,0 +1,188 @@
1
+ // ─── MySQL dialect (per-SQL-flavor) ────────────────────────
2
+ //
3
+ // The MySQL half of the {@link Dialect} seam (Phase 7.8). PURE — string building
4
+ // only, no `node:`, no driver, no I/O; the MySQL `Driver` (`drivers/mysql.ts`)
5
+ // and information_schema introspection live elsewhere.
6
+ //
7
+ // MySQL diverges from Postgres in three load-bearing ways the rest of the engine
8
+ // branches on:
9
+ // - **No `RETURNING`** (`supportsReturning = false`). MySQL 8 can't return the
10
+ // written rows, so the query builder takes its no-RETURNING path: reads the
11
+ // auto-increment id / affected-row count from the driver's result metadata
12
+ // (see `AffectingExecutor` in `driver.js`) and re-SELECTs by primary key.
13
+ // - **Backtick identifier quoting** (`` `id` ``), not double quotes.
14
+ // - **No real boolean type** — booleans store as `tinyint(1)` integers, so a
15
+ // boolean default renders as `1`/`0` (same as SQLite). On READ the driver's
16
+ // typeCast maps `tinyint(1)` back to JS booleans (Postgres parity).
17
+ import { raw } from '@rudderjs/contracts';
18
+ import { NativeOrmError } from './errors.js';
19
+ import { validateIdentifier, quoteValueList, jsonPathLiteral, } from './dialect.js';
20
+ /**
21
+ * MySQL {@link Dialect} — backtick-quoted identifiers, `?` placeholders, and
22
+ * **no** `RETURNING`. Maps the portable {@link ColumnDefinition} types to MySQL
23
+ * storage types (parent plan Part 2's column-type table).
24
+ */
25
+ export class MysqlDialect {
26
+ name = 'mysql';
27
+ // MySQL 8 has no INSERT/UPDATE/DELETE ... RETURNING. The query builder reads
28
+ // write results from the driver's metadata instead (AffectingExecutor).
29
+ supportsReturning = false;
30
+ quoteId(identifier) {
31
+ const segments = validateIdentifier(identifier);
32
+ // MySQL quotes with backticks. Double any embedded backtick defensively —
33
+ // the allowlist already forbids them.
34
+ return segments.map(s => `\`${s.replace(/`/g, '``')}\``).join('.');
35
+ }
36
+ // MySQL uses literal `?` positional placeholders (index ignored), like SQLite.
37
+ placeholder(_index) {
38
+ return '?';
39
+ }
40
+ // MySQL has no boolean type — `BOOLEAN` is an alias for `tinyint(1)`, stored as
41
+ // an integer, so a boolean default renders as the matching integer literal.
42
+ // On read the driver's typeCast maps `tinyint(1)` back to JS booleans.
43
+ booleanLiteral(value) {
44
+ return value ? '1' : '0';
45
+ }
46
+ // MySQL ships dedicated extraction functions: DATE()/TIME() return date/time
47
+ // values that compare against bound 'YYYY-MM-DD' / 'HH:MM:SS' text, and
48
+ // DAY()/MONTH()/YEAR() return integers.
49
+ dateExtract(part, column) {
50
+ switch (part) {
51
+ case 'date': return `DATE(${column})`;
52
+ case 'time': return `TIME(${column})`;
53
+ case 'day': return `DAY(${column})`;
54
+ case 'month': return `MONTH(${column})`;
55
+ case 'year': return `YEAR(${column})`;
56
+ }
57
+ }
58
+ // JSON_UNQUOTE(JSON_EXTRACT(col, '$."a"."b"')) — text for strings, and MySQL's
59
+ // loose comparison coerces text numbers against a bound number. Booleans skip
60
+ // the UNQUOTE: the raw JSON_EXTRACT (json true/false) compares against the
61
+ // spliced SQL literal `true`/`false` — Laravel's MySQL grammar shape.
62
+ jsonExtract(column, segments, valueKind) {
63
+ const extract = `JSON_EXTRACT(${column}, ${jsonPathLiteral(segments)})`;
64
+ return valueKind === 'boolean' ? extract : `JSON_UNQUOTE(${extract})`;
65
+ }
66
+ // MySQL's JSON_EXTRACT returns a JSON `null` LITERAL (not SQL NULL) for an
67
+ // explicit json null — `extract IS NULL` alone matches missing keys only,
68
+ // and JSON_UNQUOTE would turn the literal into the STRING 'null'. Laravel's
69
+ // grammar shape unifies both as null: missing key → IS NULL, explicit null
70
+ // → JSON_TYPE(extract) = 'NULL'. The negation must AND the inverses (note
71
+ // JSON_TYPE(NULL) is NULL, so the != 'NULL' arm alone is three-valued —
72
+ // the IS NOT NULL arm keeps a missing key from slipping through).
73
+ jsonNullComparison(column, segments, negated) {
74
+ const extract = `JSON_EXTRACT(${column}, ${jsonPathLiteral(segments)})`;
75
+ return negated
76
+ ? `(${extract} IS NOT NULL AND JSON_TYPE(${extract}) != 'NULL')`
77
+ : `(${extract} IS NULL OR JSON_TYPE(${extract}) = 'NULL')`;
78
+ }
79
+ // Paired with the no-UNQUOTE boolean extraction above — splice the SQL
80
+ // literal `true`/`false` (an Expression rides compileComparison's verbatim
81
+ // path; nothing user-controlled, so inlining is safe). A BOUND 'true' string
82
+ // does NOT work: in a comparison with a JSON value MySQL coerces a string
83
+ // comparand to a JSON *string* ("true"), never a boolean, so
84
+ // `JSON_EXTRACT(…) = ?` with 'true' matched nothing (verified on MySQL 8 —
85
+ // `= 'true'` → 0, `= true` → 1, `= CAST('true' AS JSON)` → 1).
86
+ jsonBoolean(value) {
87
+ return raw(value ? 'true' : 'false');
88
+ }
89
+ // Native JSON_CONTAINS(col, candidate[, path]) — candidate bound as JSON text.
90
+ jsonContains(column, segments, value, bind) {
91
+ const path = segments.length === 0 ? '' : `, ${jsonPathLiteral(segments)}`;
92
+ return `JSON_CONTAINS(${column}, ${bind(JSON.stringify(value))}${path})`;
93
+ }
94
+ // JSON_LENGTH(col[, path]).
95
+ jsonLength(column, segments) {
96
+ const path = segments.length === 0 ? '' : `, ${jsonPathLiteral(segments)}`;
97
+ return `JSON_LENGTH(${column}${path})`;
98
+ }
99
+ // JSON_SET takes (path, value) varargs — one call covers every write on the
100
+ // column. `CAST(? AS JSON)` parses the bound JSON text so all value types
101
+ // land as real JSON values (a bare bound string would store a JSON string —
102
+ // fine for strings, wrong for booleans/numbers/objects).
103
+ jsonSet(column, writes, bind) {
104
+ const args = writes
105
+ .map(w => `${jsonPathLiteral(w.segments)}, CAST(${bind(JSON.stringify(w.value))} AS JSON)`)
106
+ .join(', ');
107
+ return `JSON_SET(${column}, ${args})`;
108
+ }
109
+ // MySQL 8 row-level locking — suffix trails ORDER BY / LIMIT. `FOR SHARE`
110
+ // replaced the legacy `LOCK IN SHARE MODE` in 8.0.1 and is the form used
111
+ // here; `SKIP LOCKED` / `NOWAIT` arrived in the same release (8.0.1) and
112
+ // only attach to the FOR UPDATE/FOR SHARE forms (never the legacy one).
113
+ // NOWAIT raises ER_LOCK_NOWAIT (3572) instead of blocking. Mutual
114
+ // exclusivity is validated upstream by the QueryBuilder.
115
+ lockSql(mode, opts) {
116
+ const base = mode === 'shared' ? ' FOR SHARE' : ' FOR UPDATE';
117
+ if (opts?.skipLocked)
118
+ return `${base} SKIP LOCKED`;
119
+ if (opts?.noWait)
120
+ return `${base} NOWAIT`;
121
+ return base;
122
+ }
123
+ // MySQL has no ON CONFLICT target — it keys off whatever unique index the row
124
+ // collides with, so `uniqueBy` is ignored. `VALUES(col)` references the would-be
125
+ // inserted value (deprecated in 8.0.20+ but still supported and the widely
126
+ // compatible form). An empty `update` degrades to a no-op self-assignment on the
127
+ // first uniqueBy column so a conflicting row is left untouched (insert-or-ignore).
128
+ upsertClause(uniqueBy, update) {
129
+ const cols = update.length > 0 ? update : uniqueBy.slice(0, 1);
130
+ const sets = cols.map(c => `${this.quoteId(c)} = VALUES(${this.quoteId(c)})`).join(', ');
131
+ return `ON DUPLICATE KEY UPDATE ${sets}`;
132
+ }
133
+ columnTypeSql(column) {
134
+ if (column.autoIncrement) {
135
+ // MySQL requires an AUTO_INCREMENT column to be a key; bundling PRIMARY KEY
136
+ // here means the compiler appends no further modifiers (matching the
137
+ // SqliteDialect / PgDialect contract for auto-increment columns). Signed
138
+ // `bigint` (not UNSIGNED) so it matches `bigInteger` foreign keys — MySQL
139
+ // rejects an FK whose signedness differs from the referenced column.
140
+ return 'bigint AUTO_INCREMENT PRIMARY KEY';
141
+ }
142
+ switch (column.type) {
143
+ // A non-auto `increments` column is defensive (Blueprint always sets
144
+ // autoIncrement on increments) — fall back to a plain int.
145
+ case 'increments': return 'int';
146
+ case 'integer': return 'int';
147
+ case 'bigInteger': return 'bigint';
148
+ // MySQL has the full small-integer family natively.
149
+ case 'tinyInteger': return 'tinyint';
150
+ case 'smallInteger': return 'smallint';
151
+ case 'mediumInteger': return 'mediumint';
152
+ // `string` carries a length (Blueprint defaults it to 255); MySQL honours it.
153
+ case 'string': return `varchar(${column.length ?? 255})`;
154
+ case 'char': return `char(${column.length ?? 255})`;
155
+ case 'text': return 'text';
156
+ case 'mediumText': return 'mediumtext';
157
+ case 'longText': return 'longtext';
158
+ // BOOLEAN is a tinyint(1) alias; spell it out so introspection reads
159
+ // `tinyint` and a `boolean` cast refines it back to `boolean`.
160
+ case 'boolean': return 'tinyint(1)';
161
+ case 'date': return 'date';
162
+ case 'time': return column.precision === undefined ? 'time' : `time(${column.precision})`;
163
+ // MySQL distinguishes datetime (no tz, full range) from timestamp (UTC,
164
+ // 1970–2038, auto-update quirks). Map the portable types straight across.
165
+ case 'dateTime': return 'datetime';
166
+ case 'timestamp': return 'timestamp';
167
+ // MySQL has no jsonb — its `json` type is already binary-backed.
168
+ case 'json':
169
+ case 'jsonb': return 'json';
170
+ // MySQL has no native UUID/ULID type — store as fixed-width char.
171
+ case 'uuid': return 'char(36)';
172
+ case 'ulid': return 'char(26)';
173
+ case 'decimal': return `decimal(${column.precision ?? 8}, ${column.scale ?? 2})`;
174
+ case 'float': return 'double';
175
+ case 'double': return 'double';
176
+ case 'binary': return 'blob';
177
+ // MySQL has both enum and set natively.
178
+ case 'enum': return `enum(${quoteValueList(column.enumValues ?? [])})`;
179
+ case 'set': return `set(${quoteValueList(column.enumValues ?? [])})`;
180
+ default: {
181
+ // Exhaustiveness guard — a new ColumnType must extend this switch.
182
+ const unreachable = column.type;
183
+ throw new NativeOrmError('NATIVE_DDL_UNKNOWN_TYPE', `[RudderJS ORM native] No MySQL type mapping for column type ${JSON.stringify(unreachable)}.`);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ //# sourceMappingURL=dialect-mysql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-mysql.js","sourceRoot":"","sources":["../../src/native/dialect-mysql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Dialect, type DatePart, type JsonPathSegment, type JsonPathWrite, type JsonValueKind } from './dialect.js';
2
+ import type { ColumnDefinition } from './schema/column.js';
3
+ import type { LockOptions } from '@rudderjs/contracts';
4
+ /**
5
+ * Postgres {@link Dialect} — `"`-quoted identifiers, `$1`/`$2`/… placeholders,
6
+ * `RETURNING` supported. Maps the portable {@link ColumnDefinition} types to
7
+ * Postgres storage types (parent plan Part 2's column-type table).
8
+ */
9
+ export declare class PgDialect implements Dialect {
10
+ readonly name: "pg";
11
+ readonly supportsReturning = true;
12
+ quoteId(identifier: string): string;
13
+ placeholder(index: number): string;
14
+ booleanLiteral(value: boolean): string;
15
+ dateExtract(part: DatePart, column: string): string;
16
+ jsonExtract(column: string, segments: readonly JsonPathSegment[], valueKind: JsonValueKind): string;
17
+ jsonNullComparison(column: string, segments: readonly JsonPathSegment[], negated: boolean): string;
18
+ jsonBoolean(value: boolean): unknown;
19
+ jsonContains(column: string, segments: readonly JsonPathSegment[], value: unknown, bind: (v: unknown) => string): string;
20
+ jsonLength(column: string, segments: readonly JsonPathSegment[]): string;
21
+ jsonSet(column: string, writes: readonly JsonPathWrite[], bind: (v: unknown) => string): string;
22
+ lockSql(mode: 'update' | 'shared', opts?: LockOptions): string;
23
+ upsertClause(uniqueBy: readonly string[], update: readonly string[]): string;
24
+ columnTypeSql(column: ColumnDefinition): string;
25
+ }
26
+ //# sourceMappingURL=dialect-pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-pg.d.ts","sourceRoot":"","sources":["../../src/native/dialect-pg.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAiBtD;;;;GAIG;AACH,qBAAa,SAAU,YAAW,OAAO;IACvC,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAS;IAC7B,QAAQ,CAAC,iBAAiB,QAAO;IAEjC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAUnC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAMlC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAStC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAcnD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM;IASnG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAKlG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAOpC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAMxH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM;IAYxE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAc/F,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM;IAS9D,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAO5E,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CA0DhD"}
@@ -0,0 +1,192 @@
1
+ // ─── Postgres dialect (per-SQL-flavor) ─────────────────────
2
+ //
3
+ // The Postgres half of the {@link Dialect} seam (Phase 7.7). PURE — string
4
+ // building only, no `node:`, no driver, no I/O; the Postgres `Driver`
5
+ // (`drivers/postgres.ts`) and information_schema introspection live elsewhere.
6
+ //
7
+ // Postgres is the richest dialect: real `boolean`, `jsonb`, `timestamptz`,
8
+ // native `uuid`/`bytea`, sequence-backed `bigserial` identity, and `$n`
9
+ // positional placeholders. Identifiers are double-quoted (same as SQLite) and
10
+ // validated through the shared {@link validateIdentifier} security gate.
11
+ import { NativeOrmError } from './errors.js';
12
+ import { validateIdentifier, quoteValueList, } from './dialect.js';
13
+ /**
14
+ * Render a pg JSON arrow chain — `col->'a'->'b'`, with the LAST hop as `->>`
15
+ * (text) when `lastAsText`. String segments are single-quoted literals (safe:
16
+ * {@link parseJsonPath} rejected quotes/backslashes); numeric segments splice
17
+ * bare (`->0` = array index — quoting would make pg treat it as an object key).
18
+ */
19
+ function pgJsonChain(column, segments, lastAsText) {
20
+ return column + segments
21
+ .map((s, i) => {
22
+ const op = lastAsText && i === segments.length - 1 ? '->>' : '->';
23
+ return typeof s === 'number' ? `${op}${s}` : `${op}'${s}'`;
24
+ })
25
+ .join('');
26
+ }
27
+ /**
28
+ * Postgres {@link Dialect} — `"`-quoted identifiers, `$1`/`$2`/… placeholders,
29
+ * `RETURNING` supported. Maps the portable {@link ColumnDefinition} types to
30
+ * Postgres storage types (parent plan Part 2's column-type table).
31
+ */
32
+ export class PgDialect {
33
+ name = 'pg';
34
+ supportsReturning = true;
35
+ quoteId(identifier) {
36
+ const segments = validateIdentifier(identifier);
37
+ // Postgres folds unquoted identifiers to lowercase, so we always quote to
38
+ // preserve casing and let reserved words through. Double any embedded `"`
39
+ // defensively — the allowlist already forbids them.
40
+ return segments.map(s => `"${s.replace(/"/g, '""')}"`).join('.');
41
+ }
42
+ // Postgres uses 1-based positional placeholders ($1, $2, …); the query
43
+ // compiler feeds a zero-based index.
44
+ placeholder(index) {
45
+ return `$${index + 1}`;
46
+ }
47
+ // Postgres has a real boolean type — `DEFAULT 1` is a type error; it wants the
48
+ // `true`/`false` keyword.
49
+ booleanLiteral(value) {
50
+ return value ? 'true' : 'false';
51
+ }
52
+ // Postgres date-component extraction: `::date`/`::time` casts compare against
53
+ // a bound text value (the planner types the parameter from context), and
54
+ // `EXTRACT(... )::int` yields a real integer for `day`/`month`/`year`
55
+ // (EXTRACT alone returns `numeric`, which compares fine, but `::int` keeps
56
+ // the driver-returned value an int for any projection reuse).
57
+ dateExtract(part, column) {
58
+ switch (part) {
59
+ case 'date': return `${column}::date`;
60
+ case 'time': return `${column}::time`;
61
+ case 'day': return `EXTRACT(DAY FROM ${column})::int`;
62
+ case 'month': return `EXTRACT(MONTH FROM ${column})::int`;
63
+ case 'year': return `EXTRACT(YEAR FROM ${column})::int`;
64
+ }
65
+ }
66
+ // Arrow chain with a text (`->>`) last hop, cast when the comparison value
67
+ // is typed: `::numeric` so `>`/`<` compare numbers (text '10' < '9'),
68
+ // `::boolean` so a bound JS boolean compares ('true'/'false' text coerces).
69
+ // Text comparisons stay uncast — the planner types the parameter from context.
70
+ jsonExtract(column, segments, valueKind) {
71
+ const chain = pgJsonChain(column, segments, true);
72
+ if (valueKind === 'number')
73
+ return `(${chain})::numeric`;
74
+ if (valueKind === 'boolean')
75
+ return `(${chain})::boolean`;
76
+ return chain;
77
+ }
78
+ // `->>` surfaces BOTH a missing key and an explicit json null as SQL NULL —
79
+ // the plain IS [NOT] NULL on the (uncast) text chain is correct.
80
+ jsonNullComparison(column, segments, negated) {
81
+ return `${this.jsonExtract(column, segments, 'text')} IS ${negated ? 'NOT ' : ''}NULL`;
82
+ }
83
+ // The extraction is `::boolean`-cast — bind the JS boolean itself.
84
+ jsonBoolean(value) {
85
+ return value;
86
+ }
87
+ // jsonb containment: `(col->'a')::jsonb @> $n::jsonb`, the value bound as
88
+ // JSON text. The `->` chain (no `->>`) keeps the LHS json; `::jsonb` covers
89
+ // plain-json columns (no-op on jsonb, which our `json` column type maps to).
90
+ jsonContains(column, segments, value, bind) {
91
+ const lhs = segments.length === 0 ? column : pgJsonChain(column, segments, false);
92
+ return `(${lhs})::jsonb @> ${bind(JSON.stringify(value))}::jsonb`;
93
+ }
94
+ // jsonb_array_length over the (cast) arrow chain — matches Laravel's pg grammar.
95
+ jsonLength(column, segments) {
96
+ const lhs = segments.length === 0 ? column : pgJsonChain(column, segments, false);
97
+ return `jsonb_array_length((${lhs})::jsonb)`;
98
+ }
99
+ // jsonb_set takes a single text[] path — nest one wrap per write. Path
100
+ // elements are single-quoted literals (safe: parseJsonPath rejected quotes/
101
+ // backslashes); numeric segments render as their text form ('0'), which
102
+ // jsonb_set treats as an array index against a JSON array. The bound value
103
+ // is JSON text re-typed via `::jsonb` (the PostgresDriver's json type
104
+ // override passes the pre-stringified text verbatim — #871). `(col)::jsonb`
105
+ // covers plain-json columns (no-op on jsonb, which our `json` type maps to).
106
+ jsonSet(column, writes, bind) {
107
+ let expr = `(${column})::jsonb`;
108
+ for (const w of writes) {
109
+ const path = `ARRAY[${w.segments.map(s => `'${s}'`).join(', ')}]`;
110
+ expr = `jsonb_set(${expr}, ${path}, ${bind(JSON.stringify(w.value))}::jsonb)`;
111
+ }
112
+ return expr;
113
+ }
114
+ // Real row-level pessimistic locking — the suffix trails ORDER BY / LIMIT.
115
+ // `FOR UPDATE` blocks concurrent writers; `FOR SHARE` blocks only writers.
116
+ // Wait behavior: `SKIP LOCKED` skips rows another transaction holds (the
117
+ // job-reservation pattern), `NOWAIT` raises 55P03 instead of blocking.
118
+ // Mutual exclusivity is validated upstream by the QueryBuilder.
119
+ lockSql(mode, opts) {
120
+ const base = mode === 'shared' ? ' FOR SHARE' : ' FOR UPDATE';
121
+ if (opts?.skipLocked)
122
+ return `${base} SKIP LOCKED`;
123
+ if (opts?.noWait)
124
+ return `${base} NOWAIT`;
125
+ return base;
126
+ }
127
+ // Postgres shares SQLite's `ON CONFLICT (target) DO UPDATE`/`DO NOTHING` form,
128
+ // referencing the rejected row via the `excluded` pseudo-table.
129
+ upsertClause(uniqueBy, update) {
130
+ const target = uniqueBy.map(c => this.quoteId(c)).join(', ');
131
+ if (update.length === 0)
132
+ return `ON CONFLICT (${target}) DO NOTHING`;
133
+ const sets = update.map(c => `${this.quoteId(c)} = excluded.${this.quoteId(c)}`).join(', ');
134
+ return `ON CONFLICT (${target}) DO UPDATE SET ${sets}`;
135
+ }
136
+ columnTypeSql(column) {
137
+ if (column.autoIncrement) {
138
+ // `bigserial` is the sequence-backed auto-increment column; bundling the
139
+ // PRIMARY KEY here means the compiler appends no further modifiers (matching
140
+ // the SqliteDialect contract for auto-increment columns).
141
+ return 'bigserial PRIMARY KEY';
142
+ }
143
+ switch (column.type) {
144
+ // A non-auto `increments` column is defensive (Blueprint always sets
145
+ // autoIncrement on increments) — fall back to a plain `serial`.
146
+ case 'increments': return 'serial';
147
+ case 'integer': return 'integer';
148
+ case 'bigInteger': return 'bigint';
149
+ // pg has no tinyint/mediumint — smallint covers tiny/small, integer covers medium.
150
+ case 'tinyInteger':
151
+ case 'smallInteger': return 'smallint';
152
+ case 'mediumInteger': return 'integer';
153
+ // `string` carries a length (Blueprint defaults it to 255); pg honours it.
154
+ case 'string': return `varchar(${column.length ?? 255})`;
155
+ case 'char': return `char(${column.length ?? 255})`;
156
+ // pg has no mediumtext/longtext — `text` is unbounded and covers both.
157
+ case 'text':
158
+ case 'mediumText':
159
+ case 'longText': return 'text';
160
+ case 'boolean': return 'boolean';
161
+ case 'date': return 'date';
162
+ // Optional fractional-seconds precision → time(p); plain time otherwise.
163
+ case 'time': return column.precision === undefined ? 'time' : `time(${column.precision})`;
164
+ // Both dateTime and timestamp map to timestamptz — timezone-aware is the
165
+ // safer default and matches the plan's column-type table.
166
+ case 'dateTime':
167
+ case 'timestamp': return 'timestamptz';
168
+ // json maps to jsonb (binary, indexable) — the pg-idiomatic default; jsonb
169
+ // is explicit.
170
+ case 'json':
171
+ case 'jsonb': return 'jsonb';
172
+ case 'uuid': return 'uuid';
173
+ case 'ulid': return 'char(26)';
174
+ case 'decimal': return `numeric(${column.precision ?? 8}, ${column.scale ?? 2})`;
175
+ case 'float': return 'double precision';
176
+ case 'double': return 'double precision';
177
+ case 'binary': return 'bytea';
178
+ // pg has no native enum-by-value-list inline; mirror Laravel's pg grammar:
179
+ // a varchar + CHECK (… IN (…)). `set` has no pg equivalent.
180
+ case 'enum':
181
+ return `varchar(255) CHECK (${this.quoteId(column.name)} IN (${quoteValueList(column.enumValues ?? [])}))`;
182
+ case 'set':
183
+ throw new NativeOrmError('NATIVE_DDL_UNSUPPORTED_TYPE', `[RudderJS ORM native] Postgres has no SET column type ("${column.name}"). Use enum(), a json column, or a join table.`);
184
+ default: {
185
+ // Exhaustiveness guard — a new ColumnType must extend this switch.
186
+ const unreachable = column.type;
187
+ throw new NativeOrmError('NATIVE_DDL_UNKNOWN_TYPE', `[RudderJS ORM native] No Postgres type mapping for column type ${JSON.stringify(unreachable)}.`);
188
+ }
189
+ }
190
+ }
191
+ }
192
+ //# sourceMappingURL=dialect-pg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-pg.js","sourceRoot":"","sources":["../../src/native/dialect-pg.ts"],"names":[],"mappings":"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"}