drizzle-orm 0.42.0-da9af74 → 0.43.0-62ea5c4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aws-data-api/pg/driver.cjs +1 -5
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +0 -1
- package/aws-data-api/pg/driver.d.ts +0 -1
- package/aws-data-api/pg/driver.js +1 -5
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/session.cjs +4 -15
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +2 -13
- package/aws-data-api/pg/session.d.ts +2 -13
- package/aws-data-api/pg/session.js +4 -15
- package/aws-data-api/pg/session.js.map +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/session.cjs +3 -9
- package/better-sqlite3/session.cjs.map +1 -1
- package/better-sqlite3/session.d.cts +2 -12
- package/better-sqlite3/session.d.ts +2 -12
- package/better-sqlite3/session.js +3 -9
- package/better-sqlite3/session.js.map +1 -1
- package/bun-sql/driver.cjs +1 -5
- package/bun-sql/driver.cjs.map +1 -1
- package/bun-sql/driver.js +1 -5
- package/bun-sql/driver.js.map +1 -1
- package/bun-sql/session.cjs +9 -21
- package/bun-sql/session.cjs.map +1 -1
- package/bun-sql/session.d.cts +2 -12
- package/bun-sql/session.d.ts +2 -12
- package/bun-sql/session.js +9 -21
- package/bun-sql/session.js.map +1 -1
- package/d1/driver.cjs +1 -5
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.js +1 -5
- package/d1/driver.js.map +1 -1
- package/d1/session.cjs +9 -23
- package/d1/session.cjs.map +1 -1
- package/d1/session.d.cts +2 -12
- package/d1/session.d.ts +2 -12
- package/d1/session.js +9 -23
- package/d1/session.js.map +1 -1
- package/durable-sqlite/session.cjs +1 -1
- package/durable-sqlite/session.cjs.map +1 -1
- package/durable-sqlite/session.js +1 -1
- package/durable-sqlite/session.js.map +1 -1
- package/gel/driver.cjs +2 -9
- package/gel/driver.cjs.map +1 -1
- package/gel/driver.d.cts +0 -2
- package/gel/driver.d.ts +0 -2
- package/gel/driver.js +2 -9
- package/gel/driver.js.map +1 -1
- package/gel/session.cjs +10 -25
- package/gel/session.cjs.map +1 -1
- package/gel/session.d.cts +2 -12
- package/gel/session.d.ts +2 -12
- package/gel/session.js +10 -25
- package/gel/session.js.map +1 -1
- package/gel-core/db.cjs +0 -1
- package/gel-core/db.cjs.map +1 -1
- package/gel-core/db.d.cts +0 -4
- package/gel-core/db.d.ts +0 -4
- package/gel-core/db.js +0 -1
- package/gel-core/db.js.map +1 -1
- package/gel-core/dialect.cjs +8 -23
- package/gel-core/dialect.cjs.map +1 -1
- package/gel-core/dialect.d.cts +1 -0
- package/gel-core/dialect.d.ts +1 -0
- package/gel-core/dialect.js +8 -23
- package/gel-core/dialect.js.map +1 -1
- package/gel-core/query-builders/delete.cjs +1 -5
- package/gel-core/query-builders/delete.cjs.map +1 -1
- package/gel-core/query-builders/delete.js +1 -5
- package/gel-core/query-builders/delete.js.map +1 -1
- package/gel-core/query-builders/insert.cjs +1 -5
- package/gel-core/query-builders/insert.cjs.map +1 -1
- package/gel-core/query-builders/insert.js +1 -5
- package/gel-core/query-builders/insert.js.map +1 -1
- package/gel-core/query-builders/select.cjs +84 -43
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.d.cts +78 -22
- package/gel-core/query-builders/select.d.ts +78 -22
- package/gel-core/query-builders/select.js +84 -43
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/query-builders/select.types.cjs.map +1 -1
- package/gel-core/query-builders/select.types.d.cts +1 -1
- package/gel-core/query-builders/select.types.d.ts +1 -1
- package/gel-core/query-builders/update.cjs +1 -5
- package/gel-core/query-builders/update.cjs.map +1 -1
- package/gel-core/query-builders/update.js +1 -5
- package/gel-core/query-builders/update.js.map +1 -1
- package/gel-core/session.cjs +1 -52
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.d.cts +3 -14
- package/gel-core/session.d.ts +3 -14
- package/gel-core/session.js +2 -53
- package/gel-core/session.js.map +1 -1
- package/gel-core/utils.cjs +0 -16
- package/gel-core/utils.cjs.map +1 -1
- package/gel-core/utils.d.cts +4 -8
- package/gel-core/utils.d.ts +4 -8
- package/gel-core/utils.js +0 -15
- package/gel-core/utils.js.map +1 -1
- package/libsql/driver-core.cjs +1 -5
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +1 -5
- package/libsql/driver-core.js.map +1 -1
- package/libsql/session.cjs +13 -27
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +2 -12
- package/libsql/session.d.ts +2 -12
- package/libsql/session.js +13 -27
- package/libsql/session.js.map +1 -1
- package/mysql-core/db.cjs +0 -1
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +0 -4
- package/mysql-core/db.d.ts +0 -4
- package/mysql-core/db.js +0 -1
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +5 -4
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.js +5 -4
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/delete.cjs +1 -9
- package/mysql-core/query-builders/delete.cjs.map +1 -1
- package/mysql-core/query-builders/delete.js +1 -9
- package/mysql-core/query-builders/delete.js.map +1 -1
- package/mysql-core/query-builders/insert.cjs +1 -8
- package/mysql-core/query-builders/insert.cjs.map +1 -1
- package/mysql-core/query-builders/insert.d.cts +0 -2
- package/mysql-core/query-builders/insert.d.ts +0 -2
- package/mysql-core/query-builders/insert.js +1 -8
- package/mysql-core/query-builders/insert.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +75 -61
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.d.cts +66 -34
- package/mysql-core/query-builders/select.d.ts +66 -34
- package/mysql-core/query-builders/select.js +76 -62
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/select.types.cjs.map +1 -1
- package/mysql-core/query-builders/select.types.d.cts +5 -4
- package/mysql-core/query-builders/select.types.d.ts +5 -4
- package/mysql-core/query-builders/update.cjs +1 -11
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +0 -2
- package/mysql-core/query-builders/update.d.ts +0 -2
- package/mysql-core/query-builders/update.js +1 -11
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/session.cjs +0 -53
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +2 -15
- package/mysql-core/session.d.ts +2 -15
- package/mysql-core/session.js +1 -54
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/utils.cjs +0 -16
- package/mysql-core/utils.cjs.map +1 -1
- package/mysql-core/utils.d.cts +2 -6
- package/mysql-core/utils.d.ts +2 -6
- package/mysql-core/utils.js +0 -15
- package/mysql-core/utils.js.map +1 -1
- package/mysql-proxy/session.cjs +5 -15
- package/mysql-proxy/session.cjs.map +1 -1
- package/mysql-proxy/session.d.cts +2 -12
- package/mysql-proxy/session.d.ts +2 -12
- package/mysql-proxy/session.js +5 -15
- package/mysql-proxy/session.js.map +1 -1
- package/mysql2/driver.cjs +2 -10
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +0 -2
- package/mysql2/driver.d.ts +0 -2
- package/mysql2/driver.js +2 -10
- package/mysql2/driver.js.map +1 -1
- package/mysql2/session.cjs +5 -15
- package/mysql2/session.cjs.map +1 -1
- package/mysql2/session.d.cts +2 -12
- package/mysql2/session.d.ts +2 -12
- package/mysql2/session.js +5 -15
- package/mysql2/session.js.map +1 -1
- package/neon-http/driver.cjs +2 -9
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +0 -2
- package/neon-http/driver.d.ts +0 -2
- package/neon-http/driver.js +2 -9
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs +15 -25
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +2 -12
- package/neon-http/session.d.ts +2 -12
- package/neon-http/session.js +15 -25
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +2 -9
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +0 -2
- package/neon-serverless/driver.d.ts +0 -2
- package/neon-serverless/driver.js +2 -9
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/session.cjs +7 -21
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +2 -12
- package/neon-serverless/session.d.ts +2 -12
- package/neon-serverless/session.js +7 -21
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +2 -9
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +0 -2
- package/node-postgres/driver.d.ts +0 -2
- package/node-postgres/driver.js +2 -9
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/session.cjs +6 -19
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +2 -13
- package/node-postgres/session.d.ts +2 -13
- package/node-postgres/session.js +6 -19
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +1 -5
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.js +1 -5
- package/op-sqlite/driver.js.map +1 -1
- package/op-sqlite/session.cjs +9 -23
- package/op-sqlite/session.cjs.map +1 -1
- package/op-sqlite/session.d.cts +2 -12
- package/op-sqlite/session.d.ts +2 -12
- package/op-sqlite/session.js +9 -23
- package/op-sqlite/session.js.map +1 -1
- package/operations.cjs.map +1 -1
- package/operations.d.cts +5 -1
- package/operations.d.ts +5 -1
- package/package.json +4 -69
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.d.cts +1 -2
- package/pg-core/columns/text.d.ts +1 -2
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/db.cjs +0 -1
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +0 -4
- package/pg-core/db.d.ts +0 -4
- package/pg-core/db.js +0 -1
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +5 -4
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.js +5 -4
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +1 -6
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.d.cts +1 -3
- package/pg-core/query-builders/delete.d.ts +1 -3
- package/pg-core/query-builders/delete.js +1 -6
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +1 -6
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.d.cts +0 -2
- package/pg-core/query-builders/insert.d.ts +0 -2
- package/pg-core/query-builders/insert.js +1 -6
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/select.cjs +85 -45
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.d.cts +79 -23
- package/pg-core/query-builders/select.d.ts +79 -23
- package/pg-core/query-builders/select.js +85 -45
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/select.types.cjs.map +1 -1
- package/pg-core/query-builders/select.types.d.cts +1 -1
- package/pg-core/query-builders/select.types.d.ts +1 -1
- package/pg-core/query-builders/update.cjs +1 -6
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +2 -4
- package/pg-core/query-builders/update.d.ts +2 -4
- package/pg-core/query-builders/update.js +1 -6
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +1 -52
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +3 -14
- package/pg-core/session.d.ts +3 -14
- package/pg-core/session.js +2 -53
- package/pg-core/session.js.map +1 -1
- package/pg-core/utils.cjs +0 -16
- package/pg-core/utils.cjs.map +1 -1
- package/pg-core/utils.d.cts +4 -8
- package/pg-core/utils.d.ts +4 -8
- package/pg-core/utils.js +1 -16
- package/pg-core/utils.js.map +1 -1
- package/pg-proxy/driver.cjs +2 -7
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.js +2 -7
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs +5 -15
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +2 -12
- package/pg-proxy/session.d.ts +2 -12
- package/pg-proxy/session.js +5 -15
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +2 -9
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +0 -2
- package/pglite/driver.d.ts +0 -2
- package/pglite/driver.js +2 -9
- package/pglite/driver.js.map +1 -1
- package/pglite/session.cjs +7 -19
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +2 -12
- package/pglite/session.d.ts +2 -12
- package/pglite/session.js +7 -19
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +1 -5
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +0 -1
- package/planetscale-serverless/driver.d.ts +0 -1
- package/planetscale-serverless/driver.js +1 -5
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/session.cjs +5 -15
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +2 -12
- package/planetscale-serverless/session.d.ts +2 -12
- package/planetscale-serverless/session.js +5 -15
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +1 -5
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +1 -5
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/session.cjs +6 -18
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +2 -12
- package/postgres-js/session.d.ts +2 -12
- package/postgres-js/session.js +6 -18
- package/postgres-js/session.js.map +1 -1
- package/prisma/mysql/session.cjs +1 -1
- package/prisma/mysql/session.cjs.map +1 -1
- package/prisma/mysql/session.js +1 -1
- package/prisma/mysql/session.js.map +1 -1
- package/prisma/pg/session.cjs +1 -1
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.js +1 -1
- package/prisma/pg/session.js.map +1 -1
- package/query-builders/query-builder.cjs.map +1 -1
- package/query-builders/query-builder.d.cts +1 -2
- package/query-builders/query-builder.d.ts +1 -2
- package/query-builders/query-builder.js.map +1 -1
- package/query-builders/select.types.cjs.map +1 -1
- package/query-builders/select.types.d.cts +3 -1
- package/query-builders/select.types.d.ts +3 -1
- package/singlestore/driver.cjs +26 -14
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.d.cts +3 -7
- package/singlestore/driver.d.ts +3 -7
- package/singlestore/driver.js +26 -14
- package/singlestore/driver.js.map +1 -1
- package/singlestore/session.cjs +5 -15
- package/singlestore/session.cjs.map +1 -1
- package/singlestore/session.d.cts +2 -12
- package/singlestore/session.d.ts +2 -12
- package/singlestore/session.js +5 -15
- package/singlestore/session.js.map +1 -1
- package/singlestore-core/db.cjs +0 -1
- package/singlestore-core/db.cjs.map +1 -1
- package/singlestore-core/db.d.cts +0 -4
- package/singlestore-core/db.d.ts +0 -4
- package/singlestore-core/db.js +0 -1
- package/singlestore-core/db.js.map +1 -1
- package/singlestore-core/dialect.cjs +5 -4
- package/singlestore-core/dialect.cjs.map +1 -1
- package/singlestore-core/dialect.js +5 -4
- package/singlestore-core/dialect.js.map +1 -1
- package/singlestore-core/query-builders/delete.cjs +1 -9
- package/singlestore-core/query-builders/delete.cjs.map +1 -1
- package/singlestore-core/query-builders/delete.js +1 -9
- package/singlestore-core/query-builders/delete.js.map +1 -1
- package/singlestore-core/query-builders/insert.cjs +1 -6
- package/singlestore-core/query-builders/insert.cjs.map +1 -1
- package/singlestore-core/query-builders/insert.js +1 -6
- package/singlestore-core/query-builders/insert.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +83 -42
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.d.cts +78 -22
- package/singlestore-core/query-builders/select.d.ts +78 -22
- package/singlestore-core/query-builders/select.js +83 -42
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/query-builders/select.types.cjs.map +1 -1
- package/singlestore-core/query-builders/select.types.d.cts +1 -2
- package/singlestore-core/query-builders/select.types.d.ts +1 -2
- package/singlestore-core/query-builders/update.cjs +1 -9
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.js +1 -9
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/session.cjs +0 -53
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.d.cts +2 -14
- package/singlestore-core/session.d.ts +2 -14
- package/singlestore-core/session.js +1 -54
- package/singlestore-core/session.js.map +1 -1
- package/singlestore-core/utils.cjs +0 -16
- package/singlestore-core/utils.cjs.map +1 -1
- package/singlestore-core/utils.d.cts +0 -3
- package/singlestore-core/utils.d.ts +0 -3
- package/singlestore-core/utils.js +0 -15
- package/singlestore-core/utils.js.map +1 -1
- package/sql/sql.cjs +0 -10
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.js +0 -10
- package/sql/sql.js.map +1 -1
- package/sqlite-core/db.cjs +0 -1
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +0 -4
- package/sqlite-core/db.d.ts +0 -4
- package/sqlite-core/db.js +0 -1
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +3 -2
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.js +3 -2
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/delete.cjs +1 -7
- package/sqlite-core/query-builders/delete.cjs.map +1 -1
- package/sqlite-core/query-builders/delete.js +1 -7
- package/sqlite-core/query-builders/delete.js.map +1 -1
- package/sqlite-core/query-builders/insert.cjs +1 -7
- package/sqlite-core/query-builders/insert.cjs.map +1 -1
- package/sqlite-core/query-builders/insert.js +1 -7
- package/sqlite-core/query-builders/insert.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +39 -39
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.d.cts +40 -22
- package/sqlite-core/query-builders/select.d.ts +40 -22
- package/sqlite-core/query-builders/select.js +39 -39
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/query-builders/select.types.cjs.map +1 -1
- package/sqlite-core/query-builders/select.types.d.cts +1 -1
- package/sqlite-core/query-builders/select.types.d.ts +1 -1
- package/sqlite-core/query-builders/update.cjs +1 -7
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.js +1 -7
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/session.cjs +3 -62
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +4 -18
- package/sqlite-core/session.d.ts +4 -18
- package/sqlite-core/session.js +4 -63
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/utils.cjs +0 -16
- package/sqlite-core/utils.cjs.map +1 -1
- package/sqlite-core/utils.d.cts +2 -6
- package/sqlite-core/utils.d.ts +2 -6
- package/sqlite-core/utils.js +0 -15
- package/sqlite-core/utils.js.map +1 -1
- package/sqlite-proxy/driver.cjs +2 -9
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +2 -9
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/session.cjs +8 -22
- package/sqlite-proxy/session.cjs.map +1 -1
- package/sqlite-proxy/session.d.cts +2 -12
- package/sqlite-proxy/session.d.ts +2 -12
- package/sqlite-proxy/session.js +8 -22
- package/sqlite-proxy/session.js.map +1 -1
- package/subquery.cjs +3 -4
- package/subquery.cjs.map +1 -1
- package/subquery.d.cts +1 -2
- package/subquery.d.ts +1 -2
- package/subquery.js +3 -4
- package/subquery.js.map +1 -1
- package/tidb-serverless/driver.cjs +1 -5
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +0 -1
- package/tidb-serverless/driver.d.ts +0 -1
- package/tidb-serverless/driver.js +1 -5
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +5 -15
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +2 -12
- package/tidb-serverless/session.d.ts +2 -12
- package/tidb-serverless/session.js +5 -15
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +0 -22
- package/utils.cjs.map +1 -1
- package/utils.d.cts +0 -3
- package/utils.d.ts +0 -3
- package/utils.js +0 -11
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +2 -9
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +0 -2
- package/vercel-postgres/driver.d.ts +0 -2
- package/vercel-postgres/driver.js +2 -9
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/session.cjs +7 -21
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +2 -12
- package/vercel-postgres/session.d.ts +2 -12
- package/vercel-postgres/session.js +7 -21
- package/vercel-postgres/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/xata-http/driver.cjs +2 -7
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +0 -2
- package/xata-http/driver.d.ts +0 -2
- package/xata-http/driver.js +2 -7
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs +7 -21
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +2 -12
- package/xata-http/session.d.ts +2 -12
- package/xata-http/session.js +7 -21
- package/xata-http/session.js.map +1 -1
- package/cache/core/cache.cjs +0 -47
- package/cache/core/cache.cjs.map +0 -1
- package/cache/core/cache.d.cts +0 -35
- package/cache/core/cache.d.ts +0 -35
- package/cache/core/cache.js +0 -22
- package/cache/core/cache.js.map +0 -1
- package/cache/core/index.cjs +0 -23
- package/cache/core/index.cjs.map +0 -1
- package/cache/core/index.d.cts +0 -1
- package/cache/core/index.d.ts +0 -1
- package/cache/core/index.js +0 -2
- package/cache/core/index.js.map +0 -1
- package/cache/core/types.cjs +0 -17
- package/cache/core/types.cjs.map +0 -1
- package/cache/core/types.d.cts +0 -33
- package/cache/core/types.d.ts +0 -33
- package/cache/core/types.js +0 -1
- package/cache/core/types.js.map +0 -1
- package/cache/upstash/cache.cjs +0 -148
- package/cache/upstash/cache.cjs.map +0 -1
- package/cache/upstash/cache.d.cts +0 -29
- package/cache/upstash/cache.d.ts +0 -29
- package/cache/upstash/cache.js +0 -123
- package/cache/upstash/cache.js.map +0 -1
- package/cache/upstash/index.cjs +0 -23
- package/cache/upstash/index.cjs.map +0 -1
- package/cache/upstash/index.d.cts +0 -1
- package/cache/upstash/index.d.ts +0 -1
- package/cache/upstash/index.js +0 -2
- package/cache/upstash/index.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CacheConfig, WithCacheConfig } from "../../cache/core/types.js";
|
|
2
1
|
import { entityKind } from "../../entity.js";
|
|
3
2
|
import type { MySqlColumn } from "../columns/index.js";
|
|
4
3
|
import type { MySqlDialect } from "../dialect.js";
|
|
@@ -14,7 +13,7 @@ import { Subquery } from "../../subquery.js";
|
|
|
14
13
|
import type { ValueOrArray } from "../../utils.js";
|
|
15
14
|
import type { IndexBuilder } from "../indexes.js";
|
|
16
15
|
import { MySqlViewBase } from "../view-base.js";
|
|
17
|
-
import type { CreateMySqlSelectFromBuilderMode, GetMySqlSetOperators, LockConfig, LockStrength, MySqlCreateSetOperatorFn,
|
|
16
|
+
import type { CreateMySqlSelectFromBuilderMode, GetMySqlSetOperators, LockConfig, LockStrength, MySqlCreateSetOperatorFn, MySqlSelectConfig, MySqlSelectDynamic, MySqlSelectHKT, MySqlSelectHKTBase, MySqlSelectPrepare, MySqlSelectWithout, MySqlSetOperatorExcludedMethods, MySqlSetOperatorWithResult, SelectedFields, SetOperatorRightSelect } from "./select.types.js";
|
|
18
17
|
export type IndexForHint = IndexBuilder | string;
|
|
19
18
|
export type IndexConfig = {
|
|
20
19
|
useIndex?: IndexForHint | IndexForHint[];
|
|
@@ -50,15 +49,12 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
50
49
|
readonly excludedMethods: TExcludedMethods;
|
|
51
50
|
readonly result: TResult;
|
|
52
51
|
readonly selectedFields: TSelectedFields;
|
|
53
|
-
readonly config: MySqlSelectConfig;
|
|
54
52
|
};
|
|
55
53
|
protected config: MySqlSelectConfig;
|
|
56
54
|
protected joinsNotNullableMap: Record<string, boolean>;
|
|
57
55
|
private tableName;
|
|
58
56
|
private isPartialSelect;
|
|
59
57
|
protected dialect: MySqlDialect;
|
|
60
|
-
protected cacheConfig?: WithCacheConfig;
|
|
61
|
-
protected usedTables: Set<string>;
|
|
62
58
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct, useIndex, forceIndex, ignoreIndex }: {
|
|
63
59
|
table: MySqlSelectConfig['table'];
|
|
64
60
|
fields: MySqlSelectConfig['fields'];
|
|
@@ -81,17 +77,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
81
77
|
*
|
|
82
78
|
* @param table the table to join.
|
|
83
79
|
* @param on the `on` clause.
|
|
80
|
+
* @param onIndex index hint.
|
|
84
81
|
*
|
|
85
82
|
* @example
|
|
86
83
|
*
|
|
87
84
|
* ```ts
|
|
88
85
|
* // Select all users and their pets
|
|
89
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
86
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
90
87
|
* .from(users)
|
|
91
88
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
92
89
|
*
|
|
93
90
|
* // Select userId and petId
|
|
94
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
91
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
95
92
|
* userId: users.id,
|
|
96
93
|
* petId: pets.id,
|
|
97
94
|
* })
|
|
@@ -99,7 +96,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
99
96
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
100
97
|
*
|
|
101
98
|
* // Select userId and petId with use index hint
|
|
102
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
99
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
103
100
|
* userId: users.id,
|
|
104
101
|
* petId: pets.id,
|
|
105
102
|
* })
|
|
@@ -109,7 +106,20 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
109
106
|
* })
|
|
110
107
|
* ```
|
|
111
108
|
*/
|
|
112
|
-
leftJoin:
|
|
109
|
+
leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
110
|
+
/**
|
|
111
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
112
|
+
*
|
|
113
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
114
|
+
*
|
|
115
|
+
* Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.
|
|
116
|
+
*
|
|
117
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
118
|
+
*
|
|
119
|
+
* @param table the subquery to join.
|
|
120
|
+
* @param on the `on` clause.
|
|
121
|
+
*/
|
|
122
|
+
leftJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
113
123
|
/**
|
|
114
124
|
* Executes a `right join` operation by adding another table to the current query.
|
|
115
125
|
*
|
|
@@ -119,17 +129,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
119
129
|
*
|
|
120
130
|
* @param table the table to join.
|
|
121
131
|
* @param on the `on` clause.
|
|
132
|
+
* @param onIndex index hint.
|
|
122
133
|
*
|
|
123
134
|
* @example
|
|
124
135
|
*
|
|
125
136
|
* ```ts
|
|
126
137
|
* // Select all users and their pets
|
|
127
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
138
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
128
139
|
* .from(users)
|
|
129
140
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
130
141
|
*
|
|
131
142
|
* // Select userId and petId
|
|
132
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
143
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
133
144
|
* userId: users.id,
|
|
134
145
|
* petId: pets.id,
|
|
135
146
|
* })
|
|
@@ -137,7 +148,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
137
148
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
138
149
|
*
|
|
139
150
|
* // Select userId and petId with use index hint
|
|
140
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
151
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
141
152
|
* userId: users.id,
|
|
142
153
|
* petId: pets.id,
|
|
143
154
|
* })
|
|
@@ -147,7 +158,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
147
158
|
* })
|
|
148
159
|
* ```
|
|
149
160
|
*/
|
|
150
|
-
rightJoin:
|
|
161
|
+
rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
|
|
151
162
|
/**
|
|
152
163
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
153
164
|
*
|
|
@@ -157,17 +168,18 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
157
168
|
*
|
|
158
169
|
* @param table the table to join.
|
|
159
170
|
* @param on the `on` clause.
|
|
171
|
+
* @param onIndex index hint.
|
|
160
172
|
*
|
|
161
173
|
* @example
|
|
162
174
|
*
|
|
163
175
|
* ```ts
|
|
164
176
|
* // Select all users and their pets
|
|
165
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
177
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
166
178
|
* .from(users)
|
|
167
179
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
168
180
|
*
|
|
169
181
|
* // Select userId and petId
|
|
170
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
182
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
171
183
|
* userId: users.id,
|
|
172
184
|
* petId: pets.id,
|
|
173
185
|
* })
|
|
@@ -175,7 +187,7 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
175
187
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
176
188
|
*
|
|
177
189
|
* // Select userId and petId with use index hint
|
|
178
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
190
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
179
191
|
* userId: users.id,
|
|
180
192
|
* petId: pets.id,
|
|
181
193
|
* })
|
|
@@ -185,45 +197,70 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
185
197
|
* })
|
|
186
198
|
* ```
|
|
187
199
|
*/
|
|
188
|
-
innerJoin:
|
|
200
|
+
innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
189
201
|
/**
|
|
190
|
-
* Executes
|
|
202
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
191
203
|
*
|
|
192
|
-
*
|
|
204
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
193
205
|
*
|
|
194
|
-
*
|
|
206
|
+
* Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.
|
|
195
207
|
*
|
|
196
|
-
*
|
|
208
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
209
|
+
*
|
|
210
|
+
* @param table the subquery to join.
|
|
197
211
|
* @param on the `on` clause.
|
|
212
|
+
*/
|
|
213
|
+
innerJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
214
|
+
/**
|
|
215
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
216
|
+
*
|
|
217
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
218
|
+
*
|
|
219
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
220
|
+
*
|
|
221
|
+
* @param table the table to join.
|
|
222
|
+
* @param onIndex index hint.
|
|
198
223
|
*
|
|
199
224
|
* @example
|
|
200
225
|
*
|
|
201
226
|
* ```ts
|
|
202
|
-
* // Select all users
|
|
203
|
-
* const usersWithPets: { user: User
|
|
227
|
+
* // Select all users, each user with every pet
|
|
228
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
204
229
|
* .from(users)
|
|
205
|
-
* .
|
|
230
|
+
* .crossJoin(pets)
|
|
206
231
|
*
|
|
207
232
|
* // Select userId and petId
|
|
208
|
-
* const usersIdsAndPetIds: { userId: number
|
|
233
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
209
234
|
* userId: users.id,
|
|
210
235
|
* petId: pets.id,
|
|
211
236
|
* })
|
|
212
237
|
* .from(users)
|
|
213
|
-
* .
|
|
238
|
+
* .crossJoin(pets)
|
|
214
239
|
*
|
|
215
240
|
* // Select userId and petId with use index hint
|
|
216
|
-
* const usersIdsAndPetIds: { userId: number; petId: number
|
|
241
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
217
242
|
* userId: users.id,
|
|
218
243
|
* petId: pets.id,
|
|
219
244
|
* })
|
|
220
245
|
* .from(users)
|
|
221
|
-
* .
|
|
246
|
+
* .crossJoin(pets, {
|
|
222
247
|
* useIndex: ['pets_owner_id_index']
|
|
223
248
|
* })
|
|
224
249
|
* ```
|
|
225
250
|
*/
|
|
226
|
-
|
|
251
|
+
crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | MySqlTable<import("../table.js").TableConfig> | MySqlViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
252
|
+
/**
|
|
253
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
254
|
+
*
|
|
255
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
256
|
+
*
|
|
257
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
258
|
+
*
|
|
259
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
260
|
+
*
|
|
261
|
+
* @param table the query to join.
|
|
262
|
+
*/
|
|
263
|
+
crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, onIndex?: (TJoinedTable extends MySqlTable<import("../table.js").TableConfig> ? IndexConfig : "Index hint configuration is allowed only for MySqlTable and not for subqueries or views") | undefined) => import("./select.types.js").MySqlJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
227
264
|
private createSetOperator;
|
|
228
265
|
/**
|
|
229
266
|
* Adds `union` set operator to the query.
|
|
@@ -559,11 +596,6 @@ export declare abstract class MySqlSelectQueryBuilderBase<THKT extends MySqlSele
|
|
|
559
596
|
toSQL(): Query;
|
|
560
597
|
as<TAlias extends string>(alias: TAlias): SubqueryWithSelection<this['_']['selectedFields'], TAlias>;
|
|
561
598
|
$dynamic(): MySqlSelectDynamic<this>;
|
|
562
|
-
$withCache(config?: {
|
|
563
|
-
config?: CacheConfig;
|
|
564
|
-
tag?: string;
|
|
565
|
-
autoInvalidate?: boolean;
|
|
566
|
-
} | false): this;
|
|
567
599
|
}
|
|
568
600
|
export interface MySqlSelectBase<TTableName extends string | undefined, TSelection extends ColumnsSelection, TSelectMode extends SelectMode, TPreparedQueryHKT extends PreparedQueryHKTBase, TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'> : {}, TDynamic extends boolean = false, TExcludedMethods extends string = never, TResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>> extends MySqlSelectQueryBuilderBase<MySqlSelectHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields>, QueryPromise<TResult> {
|
|
569
601
|
}
|
|
@@ -8,7 +8,7 @@ import { Subquery } from "../../subquery.js";
|
|
|
8
8
|
import { Table } from "../../table.js";
|
|
9
9
|
import { applyMixins, getTableColumns, getTableLikeName, haveSameKeys, orderSelectedFields } from "../../utils.js";
|
|
10
10
|
import { ViewBaseConfig } from "../../view-common.js";
|
|
11
|
-
import { convertIndexToString,
|
|
11
|
+
import { convertIndexToString, toArray } from "../utils.js";
|
|
12
12
|
import { MySqlViewBase } from "../view-base.js";
|
|
13
13
|
class MySqlSelectBuilder {
|
|
14
14
|
static [entityKind] = "MySqlSelectBuilder";
|
|
@@ -82,8 +82,6 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
82
82
|
/** @internal */
|
|
83
83
|
session;
|
|
84
84
|
dialect;
|
|
85
|
-
cacheConfig = void 0;
|
|
86
|
-
usedTables = /* @__PURE__ */ new Set();
|
|
87
85
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct, useIndex, forceIndex, ignoreIndex }) {
|
|
88
86
|
super();
|
|
89
87
|
this.config = {
|
|
@@ -100,24 +98,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
100
98
|
this.session = session;
|
|
101
99
|
this.dialect = dialect;
|
|
102
100
|
this._ = {
|
|
103
|
-
selectedFields: fields
|
|
104
|
-
config: this.config
|
|
101
|
+
selectedFields: fields
|
|
105
102
|
};
|
|
106
103
|
this.tableName = getTableLikeName(table);
|
|
107
104
|
this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
|
|
108
|
-
for (const item of extractUsedTable(table))
|
|
109
|
-
this.usedTables.add(item);
|
|
110
105
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return (table, on, onIndex) => {
|
|
106
|
+
createJoin(joinType, lateral) {
|
|
107
|
+
return (table, a, b) => {
|
|
108
|
+
const isCrossJoin = joinType === "cross";
|
|
109
|
+
let on = isCrossJoin ? void 0 : a;
|
|
110
|
+
const onIndex = isCrossJoin ? a : b;
|
|
117
111
|
const baseTableName = this.tableName;
|
|
118
112
|
const tableName = getTableLikeName(table);
|
|
119
|
-
for (const item of extractUsedTable(table))
|
|
120
|
-
this.usedTables.add(item);
|
|
121
113
|
if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
|
|
122
114
|
throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
123
115
|
}
|
|
@@ -157,7 +149,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
157
149
|
ignoreIndex = convertIndexToString(toArray(onIndex.ignoreIndex));
|
|
158
150
|
}
|
|
159
151
|
}
|
|
160
|
-
this.config.joins.push({ on, table, joinType, alias: tableName, useIndex, forceIndex, ignoreIndex });
|
|
152
|
+
this.config.joins.push({ on, table, joinType, alias: tableName, useIndex, forceIndex, ignoreIndex, lateral });
|
|
161
153
|
if (typeof tableName === "string") {
|
|
162
154
|
switch (joinType) {
|
|
163
155
|
case "left": {
|
|
@@ -171,17 +163,11 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
171
163
|
this.joinsNotNullableMap[tableName] = true;
|
|
172
164
|
break;
|
|
173
165
|
}
|
|
166
|
+
case "cross":
|
|
174
167
|
case "inner": {
|
|
175
168
|
this.joinsNotNullableMap[tableName] = true;
|
|
176
169
|
break;
|
|
177
170
|
}
|
|
178
|
-
case "full": {
|
|
179
|
-
this.joinsNotNullableMap = Object.fromEntries(
|
|
180
|
-
Object.entries(this.joinsNotNullableMap).map(([key]) => [key, false])
|
|
181
|
-
);
|
|
182
|
-
this.joinsNotNullableMap[tableName] = false;
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
171
|
}
|
|
186
172
|
}
|
|
187
173
|
return this;
|
|
@@ -196,17 +182,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
196
182
|
*
|
|
197
183
|
* @param table the table to join.
|
|
198
184
|
* @param on the `on` clause.
|
|
185
|
+
* @param onIndex index hint.
|
|
199
186
|
*
|
|
200
187
|
* @example
|
|
201
188
|
*
|
|
202
189
|
* ```ts
|
|
203
190
|
* // Select all users and their pets
|
|
204
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
191
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
205
192
|
* .from(users)
|
|
206
193
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
207
194
|
*
|
|
208
195
|
* // Select userId and petId
|
|
209
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
196
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
210
197
|
* userId: users.id,
|
|
211
198
|
* petId: pets.id,
|
|
212
199
|
* })
|
|
@@ -214,7 +201,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
214
201
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
215
202
|
*
|
|
216
203
|
* // Select userId and petId with use index hint
|
|
217
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
204
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
218
205
|
* userId: users.id,
|
|
219
206
|
* petId: pets.id,
|
|
220
207
|
* })
|
|
@@ -224,7 +211,20 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
224
211
|
* })
|
|
225
212
|
* ```
|
|
226
213
|
*/
|
|
227
|
-
leftJoin = this.createJoin("left");
|
|
214
|
+
leftJoin = this.createJoin("left", false);
|
|
215
|
+
/**
|
|
216
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
217
|
+
*
|
|
218
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
219
|
+
*
|
|
220
|
+
* Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.
|
|
221
|
+
*
|
|
222
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
223
|
+
*
|
|
224
|
+
* @param table the subquery to join.
|
|
225
|
+
* @param on the `on` clause.
|
|
226
|
+
*/
|
|
227
|
+
leftJoinLateral = this.createJoin("left", true);
|
|
228
228
|
/**
|
|
229
229
|
* Executes a `right join` operation by adding another table to the current query.
|
|
230
230
|
*
|
|
@@ -234,17 +234,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
234
234
|
*
|
|
235
235
|
* @param table the table to join.
|
|
236
236
|
* @param on the `on` clause.
|
|
237
|
+
* @param onIndex index hint.
|
|
237
238
|
*
|
|
238
239
|
* @example
|
|
239
240
|
*
|
|
240
241
|
* ```ts
|
|
241
242
|
* // Select all users and their pets
|
|
242
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
243
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
243
244
|
* .from(users)
|
|
244
245
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
245
246
|
*
|
|
246
247
|
* // Select userId and petId
|
|
247
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
248
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
248
249
|
* userId: users.id,
|
|
249
250
|
* petId: pets.id,
|
|
250
251
|
* })
|
|
@@ -252,7 +253,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
252
253
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
253
254
|
*
|
|
254
255
|
* // Select userId and petId with use index hint
|
|
255
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
256
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
256
257
|
* userId: users.id,
|
|
257
258
|
* petId: pets.id,
|
|
258
259
|
* })
|
|
@@ -262,7 +263,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
262
263
|
* })
|
|
263
264
|
* ```
|
|
264
265
|
*/
|
|
265
|
-
rightJoin = this.createJoin("right");
|
|
266
|
+
rightJoin = this.createJoin("right", false);
|
|
266
267
|
/**
|
|
267
268
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
268
269
|
*
|
|
@@ -272,17 +273,18 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
272
273
|
*
|
|
273
274
|
* @param table the table to join.
|
|
274
275
|
* @param on the `on` clause.
|
|
276
|
+
* @param onIndex index hint.
|
|
275
277
|
*
|
|
276
278
|
* @example
|
|
277
279
|
*
|
|
278
280
|
* ```ts
|
|
279
281
|
* // Select all users and their pets
|
|
280
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
282
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
281
283
|
* .from(users)
|
|
282
284
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
283
285
|
*
|
|
284
286
|
* // Select userId and petId
|
|
285
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
287
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
286
288
|
* userId: users.id,
|
|
287
289
|
* petId: pets.id,
|
|
288
290
|
* })
|
|
@@ -290,7 +292,7 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
290
292
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
291
293
|
*
|
|
292
294
|
* // Select userId and petId with use index hint
|
|
293
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
295
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
294
296
|
* userId: users.id,
|
|
295
297
|
* petId: pets.id,
|
|
296
298
|
* })
|
|
@@ -300,45 +302,70 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
300
302
|
* })
|
|
301
303
|
* ```
|
|
302
304
|
*/
|
|
303
|
-
innerJoin = this.createJoin("inner");
|
|
305
|
+
innerJoin = this.createJoin("inner", false);
|
|
304
306
|
/**
|
|
305
|
-
* Executes
|
|
307
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
306
308
|
*
|
|
307
|
-
*
|
|
309
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
308
310
|
*
|
|
309
|
-
*
|
|
311
|
+
* Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.
|
|
310
312
|
*
|
|
311
|
-
*
|
|
313
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
314
|
+
*
|
|
315
|
+
* @param table the subquery to join.
|
|
312
316
|
* @param on the `on` clause.
|
|
317
|
+
*/
|
|
318
|
+
innerJoinLateral = this.createJoin("inner", true);
|
|
319
|
+
/**
|
|
320
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
321
|
+
*
|
|
322
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
323
|
+
*
|
|
324
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
325
|
+
*
|
|
326
|
+
* @param table the table to join.
|
|
327
|
+
* @param onIndex index hint.
|
|
313
328
|
*
|
|
314
329
|
* @example
|
|
315
330
|
*
|
|
316
331
|
* ```ts
|
|
317
|
-
* // Select all users
|
|
318
|
-
* const usersWithPets: { user: User
|
|
332
|
+
* // Select all users, each user with every pet
|
|
333
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
319
334
|
* .from(users)
|
|
320
|
-
* .
|
|
335
|
+
* .crossJoin(pets)
|
|
321
336
|
*
|
|
322
337
|
* // Select userId and petId
|
|
323
|
-
* const usersIdsAndPetIds: { userId: number
|
|
338
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
324
339
|
* userId: users.id,
|
|
325
340
|
* petId: pets.id,
|
|
326
341
|
* })
|
|
327
342
|
* .from(users)
|
|
328
|
-
* .
|
|
343
|
+
* .crossJoin(pets)
|
|
329
344
|
*
|
|
330
345
|
* // Select userId and petId with use index hint
|
|
331
|
-
* const usersIdsAndPetIds: { userId: number; petId: number
|
|
346
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
332
347
|
* userId: users.id,
|
|
333
348
|
* petId: pets.id,
|
|
334
349
|
* })
|
|
335
350
|
* .from(users)
|
|
336
|
-
* .
|
|
351
|
+
* .crossJoin(pets, {
|
|
337
352
|
* useIndex: ['pets_owner_id_index']
|
|
338
353
|
* })
|
|
339
354
|
* ```
|
|
340
355
|
*/
|
|
341
|
-
|
|
356
|
+
crossJoin = this.createJoin("cross", false);
|
|
357
|
+
/**
|
|
358
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
359
|
+
*
|
|
360
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
361
|
+
*
|
|
362
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
363
|
+
*
|
|
364
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
365
|
+
*
|
|
366
|
+
* @param table the query to join.
|
|
367
|
+
*/
|
|
368
|
+
crossJoinLateral = this.createJoin("cross", true);
|
|
342
369
|
createSetOperator(type, isAll) {
|
|
343
370
|
return (rightSelection) => {
|
|
344
371
|
const rightSelect = typeof rightSelection === "function" ? rightSelection(getMySqlSetOperators()) : rightSelection;
|
|
@@ -726,14 +753,8 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
726
753
|
return rest;
|
|
727
754
|
}
|
|
728
755
|
as(alias) {
|
|
729
|
-
const usedTables = [];
|
|
730
|
-
usedTables.push(...extractUsedTable(this.config.table));
|
|
731
|
-
if (this.config.joins) {
|
|
732
|
-
for (const it of this.config.joins)
|
|
733
|
-
usedTables.push(...extractUsedTable(it.table));
|
|
734
|
-
}
|
|
735
756
|
return new Proxy(
|
|
736
|
-
new Subquery(this.getSQL(), this.config.fields, alias
|
|
757
|
+
new Subquery(this.getSQL(), this.config.fields, alias),
|
|
737
758
|
new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
|
|
738
759
|
);
|
|
739
760
|
}
|
|
@@ -747,10 +768,6 @@ class MySqlSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
747
768
|
$dynamic() {
|
|
748
769
|
return this;
|
|
749
770
|
}
|
|
750
|
-
$withCache(config) {
|
|
751
|
-
this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
|
|
752
|
-
return this;
|
|
753
|
-
}
|
|
754
771
|
}
|
|
755
772
|
class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
|
|
756
773
|
static [entityKind] = "MySqlSelect";
|
|
@@ -759,10 +776,7 @@ class MySqlSelectBase extends MySqlSelectQueryBuilderBase {
|
|
|
759
776
|
throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
|
|
760
777
|
}
|
|
761
778
|
const fieldsList = orderSelectedFields(this.config.fields);
|
|
762
|
-
const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList
|
|
763
|
-
type: "select",
|
|
764
|
-
tables: [...this.usedTables]
|
|
765
|
-
}, this.cacheConfig);
|
|
779
|
+
const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList);
|
|
766
780
|
query.joinsNotNullableMap = this.joinsNotNullableMap;
|
|
767
781
|
return query;
|
|
768
782
|
}
|