uql-orm 0.7.5 → 0.7.9

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 (250) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +21 -0
  3. package/dist/browser/mongoSchemaGenerator-B1IameRz.js +721 -0
  4. package/dist/browser/mongoSchemaGenerator-B1IameRz.js.map +1 -0
  5. package/dist/browser/uql-browser.min.js +23 -1
  6. package/dist/browser/uql-browser.min.js.map +1 -1
  7. package/dist/bunSql/bunSql.util.d.ts +4 -4
  8. package/dist/bunSql/bunSql.util.d.ts.map +1 -1
  9. package/dist/bunSql/bunSql.util.js +7 -7
  10. package/dist/bunSql/bunSql.util.js.map +1 -1
  11. package/dist/bunSql/bunSqlPostgresDialect.d.ts +12 -0
  12. package/dist/bunSql/bunSqlPostgresDialect.d.ts.map +1 -0
  13. package/dist/bunSql/bunSqlPostgresDialect.js +21 -0
  14. package/dist/bunSql/bunSqlPostgresDialect.js.map +1 -0
  15. package/dist/bunSql/bunSqlQuerierPool.d.ts +3 -3
  16. package/dist/bunSql/bunSqlQuerierPool.d.ts.map +1 -1
  17. package/dist/bunSql/bunSqlQuerierPool.js +14 -14
  18. package/dist/bunSql/bunSqlQuerierPool.js.map +1 -1
  19. package/dist/bunSql/bunSqliteDialect.d.ts +7 -0
  20. package/dist/bunSql/bunSqliteDialect.d.ts.map +1 -0
  21. package/dist/bunSql/bunSqliteDialect.js +7 -0
  22. package/dist/bunSql/bunSqliteDialect.js.map +1 -0
  23. package/dist/bunSql/index.d.ts +2 -0
  24. package/dist/bunSql/index.d.ts.map +1 -1
  25. package/dist/bunSql/index.js +2 -0
  26. package/dist/bunSql/index.js.map +1 -1
  27. package/dist/cockroachdb/cockroachDialect.d.ts +5 -2
  28. package/dist/cockroachdb/cockroachDialect.d.ts.map +1 -1
  29. package/dist/cockroachdb/cockroachDialect.js +4 -3
  30. package/dist/cockroachdb/cockroachDialect.js.map +1 -1
  31. package/dist/cockroachdb/crdbQuerierPool.js +2 -2
  32. package/dist/cockroachdb/crdbQuerierPool.js.map +1 -1
  33. package/dist/d1/d1QuerierPool.d.ts +2 -2
  34. package/dist/d1/d1QuerierPool.d.ts.map +1 -1
  35. package/dist/d1/d1QuerierPool.js +3 -3
  36. package/dist/d1/d1QuerierPool.js.map +1 -1
  37. package/dist/d1/d1SqliteDialect.d.ts +10 -0
  38. package/dist/d1/d1SqliteDialect.d.ts.map +1 -0
  39. package/dist/d1/d1SqliteDialect.js +10 -0
  40. package/dist/d1/d1SqliteDialect.js.map +1 -0
  41. package/dist/d1/index.d.ts +1 -0
  42. package/dist/d1/index.d.ts.map +1 -1
  43. package/dist/d1/index.js +1 -0
  44. package/dist/d1/index.js.map +1 -1
  45. package/dist/dialect/abstractDialect.d.ts +18 -10
  46. package/dist/dialect/abstractDialect.d.ts.map +1 -1
  47. package/dist/dialect/abstractDialect.js +12 -16
  48. package/dist/dialect/abstractDialect.js.map +1 -1
  49. package/dist/dialect/abstractSqlDialect.d.ts +29 -10
  50. package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
  51. package/dist/dialect/abstractSqlDialect.js +80 -34
  52. package/dist/dialect/abstractSqlDialect.js.map +1 -1
  53. package/dist/dialect/index.d.ts +4 -1
  54. package/dist/dialect/index.d.ts.map +1 -1
  55. package/dist/dialect/index.js +4 -1
  56. package/dist/dialect/index.js.map +1 -1
  57. package/dist/dialect/mysqlLikeSqlDialect.d.ts +20 -8
  58. package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +1 -1
  59. package/dist/dialect/mysqlLikeSqlDialect.js +50 -48
  60. package/dist/dialect/mysqlLikeSqlDialect.js.map +1 -1
  61. package/dist/libsql/index.d.ts +1 -0
  62. package/dist/libsql/index.d.ts.map +1 -1
  63. package/dist/libsql/index.js +1 -0
  64. package/dist/libsql/index.js.map +1 -1
  65. package/dist/libsql/libsqlDialect.d.ts +10 -0
  66. package/dist/libsql/libsqlDialect.d.ts.map +1 -0
  67. package/dist/libsql/libsqlDialect.js +10 -0
  68. package/dist/libsql/libsqlDialect.js.map +1 -0
  69. package/dist/libsql/libsqlQuerierPool.d.ts +3 -4
  70. package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -1
  71. package/dist/libsql/libsqlQuerierPool.js +5 -7
  72. package/dist/libsql/libsqlQuerierPool.js.map +1 -1
  73. package/dist/maria/mariaDialect.d.ts +6 -3
  74. package/dist/maria/mariaDialect.d.ts.map +1 -1
  75. package/dist/maria/mariaDialect.js +11 -3
  76. package/dist/maria/mariaDialect.js.map +1 -1
  77. package/dist/maria/mariadbQuerierPool.js +2 -2
  78. package/dist/maria/mariadbQuerierPool.js.map +1 -1
  79. package/dist/migrate/assertCliConfig.d.ts +6 -0
  80. package/dist/migrate/assertCliConfig.d.ts.map +1 -0
  81. package/dist/migrate/assertCliConfig.js +31 -0
  82. package/dist/migrate/assertCliConfig.js.map +1 -0
  83. package/dist/migrate/builder/migrationBuilder.js +2 -2
  84. package/dist/migrate/builder/migrationBuilder.js.map +1 -1
  85. package/dist/migrate/cli.d.ts +6 -2
  86. package/dist/migrate/cli.d.ts.map +1 -1
  87. package/dist/migrate/cli.js +14 -10
  88. package/dist/migrate/cli.js.map +1 -1
  89. package/dist/migrate/drift/driftDetector.d.ts +3 -4
  90. package/dist/migrate/drift/driftDetector.d.ts.map +1 -1
  91. package/dist/migrate/drift/driftDetector.js +5 -6
  92. package/dist/migrate/drift/driftDetector.js.map +1 -1
  93. package/dist/migrate/generator/index.d.ts +1 -1
  94. package/dist/migrate/generator/index.d.ts.map +1 -1
  95. package/dist/migrate/generator/index.js +1 -1
  96. package/dist/migrate/generator/index.js.map +1 -1
  97. package/dist/migrate/generator/mongoSchemaGenerator.d.ts +5 -2
  98. package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -1
  99. package/dist/migrate/generator/mongoSchemaGenerator.js +7 -2
  100. package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -1
  101. package/dist/migrate/index.d.ts +4 -2
  102. package/dist/migrate/index.d.ts.map +1 -1
  103. package/dist/migrate/index.js +3 -1
  104. package/dist/migrate/index.js.map +1 -1
  105. package/dist/migrate/introspection/baseSqlIntrospector.d.ts +3 -5
  106. package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +1 -1
  107. package/dist/migrate/introspection/baseSqlIntrospector.js +1 -4
  108. package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -1
  109. package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -1
  110. package/dist/migrate/introspection/mysqlIntrospector.js +1 -1
  111. package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -1
  112. package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -1
  113. package/dist/migrate/introspection/postgresIntrospector.js +1 -1
  114. package/dist/migrate/introspection/postgresIntrospector.js.map +1 -1
  115. package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -1
  116. package/dist/migrate/introspection/sqliteIntrospector.js +9 -1
  117. package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -1
  118. package/dist/migrate/migrator.d.ts +7 -7
  119. package/dist/migrate/migrator.d.ts.map +1 -1
  120. package/dist/migrate/migrator.js +47 -18
  121. package/dist/migrate/migrator.js.map +1 -1
  122. package/dist/migrate/schemaGenerator.d.ts +13 -8
  123. package/dist/migrate/schemaGenerator.d.ts.map +1 -1
  124. package/dist/migrate/schemaGenerator.js +47 -39
  125. package/dist/migrate/schemaGenerator.js.map +1 -1
  126. package/dist/migrate/schemaGeneratorAsync.d.ts +9 -0
  127. package/dist/migrate/schemaGeneratorAsync.d.ts.map +1 -0
  128. package/dist/migrate/schemaGeneratorAsync.js +13 -0
  129. package/dist/migrate/schemaGeneratorAsync.js.map +1 -0
  130. package/dist/mongo/index.d.ts +2 -0
  131. package/dist/mongo/index.d.ts.map +1 -1
  132. package/dist/mongo/index.js +2 -0
  133. package/dist/mongo/index.js.map +1 -1
  134. package/dist/mongo/mongoDialect.d.ts +8 -3
  135. package/dist/mongo/mongoDialect.d.ts.map +1 -1
  136. package/dist/mongo/mongoDialect.js +23 -4
  137. package/dist/mongo/mongoDialect.js.map +1 -1
  138. package/dist/mongo/mongodbNativeDialect.d.ts +10 -0
  139. package/dist/mongo/mongodbNativeDialect.d.ts.map +1 -0
  140. package/dist/mongo/mongodbNativeDialect.js +10 -0
  141. package/dist/mongo/mongodbNativeDialect.js.map +1 -0
  142. package/dist/mongo/mongodbQuerierPool.d.ts +2 -2
  143. package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -1
  144. package/dist/mongo/mongodbQuerierPool.js +3 -3
  145. package/dist/mongo/mongodbQuerierPool.js.map +1 -1
  146. package/dist/mysql/index.d.ts +1 -0
  147. package/dist/mysql/index.d.ts.map +1 -1
  148. package/dist/mysql/index.js +1 -0
  149. package/dist/mysql/index.js.map +1 -1
  150. package/dist/mysql/mysql2Dialect.d.ts +10 -0
  151. package/dist/mysql/mysql2Dialect.d.ts.map +1 -0
  152. package/dist/mysql/mysql2Dialect.js +10 -0
  153. package/dist/mysql/mysql2Dialect.js.map +1 -0
  154. package/dist/mysql/mysql2QuerierPool.d.ts +2 -2
  155. package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -1
  156. package/dist/mysql/mysql2QuerierPool.js +3 -3
  157. package/dist/mysql/mysql2QuerierPool.js.map +1 -1
  158. package/dist/mysql/mysqlDialect.d.ts +3 -3
  159. package/dist/mysql/mysqlDialect.d.ts.map +1 -1
  160. package/dist/mysql/mysqlDialect.js +3 -4
  161. package/dist/mysql/mysqlDialect.js.map +1 -1
  162. package/dist/neon/index.d.ts +1 -0
  163. package/dist/neon/index.d.ts.map +1 -1
  164. package/dist/neon/index.js +1 -0
  165. package/dist/neon/index.js.map +1 -1
  166. package/dist/neon/neonDialect.d.ts +11 -0
  167. package/dist/neon/neonDialect.d.ts.map +1 -0
  168. package/dist/neon/neonDialect.js +11 -0
  169. package/dist/neon/neonDialect.js.map +1 -0
  170. package/dist/neon/neonQuerierPool.d.ts +2 -2
  171. package/dist/neon/neonQuerierPool.d.ts.map +1 -1
  172. package/dist/neon/neonQuerierPool.js +3 -3
  173. package/dist/neon/neonQuerierPool.js.map +1 -1
  174. package/dist/postgres/index.d.ts +2 -0
  175. package/dist/postgres/index.d.ts.map +1 -1
  176. package/dist/postgres/index.js +2 -0
  177. package/dist/postgres/index.js.map +1 -1
  178. package/dist/postgres/pgDialect.d.ts +13 -0
  179. package/dist/postgres/pgDialect.d.ts.map +1 -0
  180. package/dist/postgres/pgDialect.js +14 -0
  181. package/dist/postgres/pgDialect.js.map +1 -0
  182. package/dist/postgres/pgQuerierPool.d.ts +2 -2
  183. package/dist/postgres/pgQuerierPool.d.ts.map +1 -1
  184. package/dist/postgres/pgQuerierPool.js +3 -3
  185. package/dist/postgres/pgQuerierPool.js.map +1 -1
  186. package/dist/postgres/postgresDialect.d.ts +28 -10
  187. package/dist/postgres/postgresDialect.d.ts.map +1 -1
  188. package/dist/postgres/postgresDialect.js +81 -64
  189. package/dist/postgres/postgresDialect.js.map +1 -1
  190. package/dist/postgres/postgresWireDriverCapabilities.d.ts +15 -0
  191. package/dist/postgres/postgresWireDriverCapabilities.d.ts.map +1 -0
  192. package/dist/postgres/postgresWireDriverCapabilities.js +15 -0
  193. package/dist/postgres/postgresWireDriverCapabilities.js.map +1 -0
  194. package/dist/querier/abstractQuerierPool.d.ts +7 -5
  195. package/dist/querier/abstractQuerierPool.d.ts.map +1 -1
  196. package/dist/querier/abstractQuerierPool.js +6 -6
  197. package/dist/querier/abstractQuerierPool.js.map +1 -1
  198. package/dist/schema/canonicalType.d.ts +3 -3
  199. package/dist/schema/canonicalType.d.ts.map +1 -1
  200. package/dist/schema/canonicalType.js +13 -12
  201. package/dist/schema/canonicalType.js.map +1 -1
  202. package/dist/schema/index.d.ts +0 -2
  203. package/dist/schema/index.d.ts.map +1 -1
  204. package/dist/schema/index.js +0 -2
  205. package/dist/schema/index.js.map +1 -1
  206. package/dist/sqlite/betterSqlite3Dialect.d.ts +10 -0
  207. package/dist/sqlite/betterSqlite3Dialect.d.ts.map +1 -0
  208. package/dist/sqlite/betterSqlite3Dialect.js +10 -0
  209. package/dist/sqlite/betterSqlite3Dialect.js.map +1 -0
  210. package/dist/sqlite/index.d.ts +1 -0
  211. package/dist/sqlite/index.d.ts.map +1 -1
  212. package/dist/sqlite/index.js +1 -0
  213. package/dist/sqlite/index.js.map +1 -1
  214. package/dist/sqlite/sqliteDialect.d.ts +17 -3
  215. package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
  216. package/dist/sqlite/sqliteDialect.js +34 -6
  217. package/dist/sqlite/sqliteDialect.js.map +1 -1
  218. package/dist/sqlite/sqliteQuerierPool.d.ts +4 -4
  219. package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -1
  220. package/dist/sqlite/sqliteQuerierPool.js +4 -4
  221. package/dist/sqlite/sqliteQuerierPool.js.map +1 -1
  222. package/dist/type/config.d.ts +4 -7
  223. package/dist/type/config.d.ts.map +1 -1
  224. package/dist/type/index.d.ts +1 -0
  225. package/dist/type/index.d.ts.map +1 -1
  226. package/dist/type/index.js +1 -0
  227. package/dist/type/index.js.map +1 -1
  228. package/dist/type/migration.d.ts +2 -6
  229. package/dist/type/migration.d.ts.map +1 -1
  230. package/dist/type/migratorDialect.d.ts +10 -0
  231. package/dist/type/migratorDialect.d.ts.map +1 -0
  232. package/dist/type/migratorDialect.js +16 -0
  233. package/dist/type/migratorDialect.js.map +1 -0
  234. package/dist/type/querier.d.ts +6 -9
  235. package/dist/type/querier.d.ts.map +1 -1
  236. package/dist/type/querier.js +1 -1
  237. package/dist/type/querier.js.map +1 -1
  238. package/dist/type/querierPool.d.ts +13 -5
  239. package/dist/type/querierPool.d.ts.map +1 -1
  240. package/dist/type/query.d.ts +26 -5
  241. package/dist/type/query.d.ts.map +1 -1
  242. package/dist/util/ansiSqlLiteral.d.ts +21 -0
  243. package/dist/util/ansiSqlLiteral.d.ts.map +1 -0
  244. package/dist/util/ansiSqlLiteral.js +101 -0
  245. package/dist/util/ansiSqlLiteral.js.map +1 -0
  246. package/package.json +4 -3
  247. package/dist/dialect/dialectConfig.d.ts +0 -40
  248. package/dist/dialect/dialectConfig.d.ts.map +0 -1
  249. package/dist/dialect/dialectConfig.js +0 -197
  250. package/dist/dialect/dialectConfig.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file. Please add
4
4
 
5
5
  date format is [yyyy-mm-dd]
6
6
 
7
+ ## [0.7.8] - 2026-03-31
8
+
9
+ ### Breaking Changes
10
+ - **Dialect barrel**: **`MongoDialect`** is no longer re-exported from **`uql-orm/dialect`** or the root **`uql-orm`** package (it previously pulled the Mongo dialect graph into SQL-only apps). Import it from **`uql-orm/mongo`**.
11
+ - **Migrate and optional `mongodb` peer**: `createSchemaGenerator` is **SQL-only** (returns `undefined` for non-`AbstractSqlDialect`). For MongoDB use **`createSchemaGeneratorAsync`** from `uql-orm/migrate` (or the CLI re-export). **`MongoSchemaGenerator`** is exported from **`uql-orm/mongo`**, not from the `uql-orm/migrate` barrel, so importing migrate alone does not evaluate the Mongo generator graph. **`Migrator.findEntityForTable`** is now **async**. **`getSchemaGenerator`** (CLI) returns **`undefined`** for MongoDB; `uql-migrate` resolves the generator with **`createSchemaGeneratorAsync`**.
12
+
13
+ ## [0.7.7] - 2026-03-31
14
+
15
+ ### Breaking Changes (Internal API)
16
+ - **Pools and config**: `QuerierPool` exposes `dialect` (renamed from `dialectInstance`). The engine id string is `dialect.dialectName` (replacing the old `dialect` property on the dialect instance). Removed top-level `dialect` from `Config` and `MigratorOptions`—migrations and `uql-migrate` use **`pool.dialect.dialectName`** only.
17
+ - **Dialect API**: Removed `dialectConfig` / `DialectConfig` from the public dialect barrel. Configure behavior with `DialectOptions`, `DialectFeatures` on `AbstractDialect.features`, and **per-driver dialect classes** attached to each pool.
18
+
19
+ ### Improvements
20
+
21
+ - **Per-driver dialect classes**: Pools use explicit dialect types (e.g. `PgDialect`, `NeonDialect`, `MySql2Dialect`, `BetterSqlite3Dialect`, `LibsqlDialect`, `D1SqliteDialect`, `MongodbNativeDialect`, `BunSqlPostgresDialect`). Migrator and schema generation read **`pool.dialect.dialectName`** instead of a separate config field.
22
+ - **PostgreSQL (`pg` vs Bun SQL)**: `PgDialect` uses base Postgres defaults (native JS arrays for `ANY`/`ALL`, `$n::jsonb` for JSON). Bun SQL Postgres uses `BunSqlPostgresDialect` with `POSTGRES_WIRE_DRIVER_CAPABILITIES` from `uql-orm/postgres/wireCapabilities` plus `explicitJsonCast` where Bun’s bindings require `( $n::text )::jsonb` and array literal encoding.
23
+ - **Migrations CLI**: Exported **`assertCliConfig`** (`uql-orm/migrate`) validates the default-exported config shape before commands run.
24
+ - **Escaping**: Inlined **`escapeAnsiSqlLiteral`** for Postgres/SQLite literal escaping; dropped **`sqlstring-sqlite`** from those code paths. Prefer bound parameters for user input in production.
25
+ - **Types and tests**: `Config.pool` is typed as `QuerierPool<Querier, AbstractDialect>`. **`createMockQuerierPool`** is available from `uql-orm/test`.
26
+
27
+ ## [0.7.6] - 2026-03-31
28
+ ### Improvements
29
+ - **Bulletproof Postgres JSONB Serialization**: We've standardized how JSONB data travels to the database to ensure absolute reliability. By handling stringification at the ORM level and using explicit Postgres casts (`::text::jsonb`), we've eliminated subtle ambiguities between JSON arrays and native Postgres arrays. This ensures your data always arrives exactly as intended.
30
+ - **Unified Driver Experience**: Whether you're running on `node-postgres` or the high-performance `bun:sql`, the behavior is now identical. This refactor definitively resolves "double-stringification" and "invalid syntax" edge cases, providing a truly seamless experience across all supported environments.
31
+ - **Internal Architectural Polish**: Simplified the core normalization logic in the base SQL dialect, keeping the ORM engine lean while making the Postgres-specific implementation more declarative and easier to maintain.
32
+
7
33
  ## [0.7.5] - 2026-03-29
8
34
  ### New Features
9
35
  - **Type-Safe Aggregate Inference**: Enhanced `querier.aggregate()` to automatically infer return types from the `$group` definition. Aggregate results (e.g. `$sum`, `$avg`, `$max`) are now precisely typed without requiring manual casts or `any`.
package/README.md CHANGED
@@ -284,6 +284,27 @@ export default {
284
284
  > **Notes:**
285
285
  > - Reuse one pool for both app queries and migrations to keep behavior (for example naming strategy) consistent.
286
286
  > - If your architecture spans backend + browser, `HttpQuerier` reduces custom API mapping and keeps query semantics aligned.
287
+ > - **Upgrading:** use `pool.dialect` (not `pool.dialectInstance`), read `pool.dialect.dialectName`, and remove any top-level `dialect` from migrate config (see `CHANGELOG.md`).
288
+
289
+ ### Driver → pool → dialect class
290
+
291
+ Migrations and the CLI read **`pool.dialect.dialectName`** only (there is no separate top-level `dialect` in config). Pick the pool (and thus the dialect class) for your driver.
292
+
293
+ | Import path | Pool class | Dialect class (on the pool) | Notes |
294
+ | :--- | :--- | :--- | :--- |
295
+ | `uql-orm/postgres` | `PgQuerierPool` | `PgDialect` | Node `pg`; base Postgres capabilities (native arrays, `$n::jsonb`). |
296
+ | `uql-orm/postgres` | — | `PostgresDialect` | Base Postgres AST; subclass for other Postgres wire drivers. |
297
+ | `uql-orm/neon` | `NeonQuerierPool` | `NeonDialect` | `@neondatabase/serverless`; extends `PostgresDialect` with Neon-oriented defaults. |
298
+ | `uql-orm/cockroachdb` | `CrdbQuerierPool` | `CockroachDialect` | `dialectName` is `cockroachdb`; extends `PostgresDialect`. |
299
+ | `uql-orm/mysql` | `Mysql2QuerierPool` | `MySql2Dialect` | `mysql2` driver. |
300
+ | `uql-orm/maria` | `MariadbQuerierPool` | `MariaDialect` | `mariadb` driver. |
301
+ | `uql-orm/sqlite` | `Sqlite3QuerierPool` | `BetterSqlite3Dialect` | `better-sqlite3` (or Bun SQLite in that pool). |
302
+ | `uql-orm/libsql` | `LibsqlQuerierPool` | `LibsqlDialect` | `@libsql/client`. |
303
+ | `uql-orm/d1` | `D1QuerierPool` | `D1SqliteDialect` | Cloudflare D1. |
304
+ | `uql-orm/mongo` | `MongodbQuerierPool` | `MongodbNativeDialect` | Official `mongodb` driver. |
305
+ | `uql-orm/bunSql` | `BunSqlQuerierPool` | _inferred_ | Dialect class chosen from `SQL.Options` (Postgres / MySQL / MariaDB / SQLite / Cockroach). |
306
+
307
+ For **wire-level** differences on PostgreSQL (e.g. Bun SQL vs `pg`), `BunSqlPostgresDialect` merges `POSTGRES_WIRE_DRIVER_CAPABILITIES` from `uql-orm/postgres/wireCapabilities` (array literals + JSON text cast); `PgDialect` does not.
287
308
 
288
309
  ## 4. Manipulate the Data
289
310