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 { PgColumn } from "../columns/index.js";
|
|
4
3
|
import type { PgDialect } from "../dialect.js";
|
|
@@ -14,7 +13,7 @@ import { SQL } from "../../sql/sql.js";
|
|
|
14
13
|
import type { ColumnsSelection, Placeholder, Query, SQLWrapper } from "../../sql/sql.js";
|
|
15
14
|
import { Subquery } from "../../subquery.js";
|
|
16
15
|
import { type DrizzleTypeError, type ValueOrArray } from "../../utils.js";
|
|
17
|
-
import type { CreatePgSelectFromBuilderMode, GetPgSetOperators, LockConfig, LockStrength, PgCreateSetOperatorFn, PgSelectConfig, PgSelectDynamic, PgSelectHKT, PgSelectHKTBase,
|
|
16
|
+
import type { CreatePgSelectFromBuilderMode, GetPgSetOperators, LockConfig, LockStrength, PgCreateSetOperatorFn, PgSelectConfig, PgSelectDynamic, PgSelectHKT, PgSelectHKTBase, PgSelectPrepare, PgSelectWithout, PgSetOperatorExcludedMethods, PgSetOperatorWithResult, SelectedFields, SetOperatorRightSelect, TableLikeHasEmptySelection } from "./select.types.js";
|
|
18
17
|
export declare class PgSelectBuilder<TSelection extends SelectedFields | undefined, TBuilderMode extends 'db' | 'qb' = 'db'> {
|
|
19
18
|
static readonly [entityKind]: string;
|
|
20
19
|
private fields;
|
|
@@ -53,16 +52,13 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
53
52
|
readonly excludedMethods: TExcludedMethods;
|
|
54
53
|
readonly result: TResult;
|
|
55
54
|
readonly selectedFields: TSelectedFields;
|
|
56
|
-
readonly config: PgSelectConfig;
|
|
57
55
|
};
|
|
58
56
|
protected config: PgSelectConfig;
|
|
59
57
|
protected joinsNotNullableMap: Record<string, boolean>;
|
|
60
|
-
|
|
58
|
+
private tableName;
|
|
61
59
|
private isPartialSelect;
|
|
62
60
|
protected session: PgSession | undefined;
|
|
63
61
|
protected dialect: PgDialect;
|
|
64
|
-
protected cacheConfig?: WithCacheConfig;
|
|
65
|
-
protected usedTables: Set<string>;
|
|
66
62
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }: {
|
|
67
63
|
table: PgSelectConfig['table'];
|
|
68
64
|
fields: PgSelectConfig['fields'];
|
|
@@ -89,12 +85,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
89
85
|
*
|
|
90
86
|
* ```ts
|
|
91
87
|
* // Select all users and their pets
|
|
92
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
88
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
93
89
|
* .from(users)
|
|
94
90
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
95
91
|
*
|
|
96
92
|
* // Select userId and petId
|
|
97
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
93
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
98
94
|
* userId: users.id,
|
|
99
95
|
* petId: pets.id,
|
|
100
96
|
* })
|
|
@@ -102,7 +98,20 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
102
98
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
103
99
|
* ```
|
|
104
100
|
*/
|
|
105
|
-
leftJoin:
|
|
101
|
+
leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
102
|
+
/**
|
|
103
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
104
|
+
*
|
|
105
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
106
|
+
*
|
|
107
|
+
* 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.
|
|
108
|
+
*
|
|
109
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
110
|
+
*
|
|
111
|
+
* @param table the subquery to join.
|
|
112
|
+
* @param on the `on` clause.
|
|
113
|
+
*/
|
|
114
|
+
leftJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
106
115
|
/**
|
|
107
116
|
* Executes a `right join` operation by adding another table to the current query.
|
|
108
117
|
*
|
|
@@ -117,12 +126,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
117
126
|
*
|
|
118
127
|
* ```ts
|
|
119
128
|
* // Select all users and their pets
|
|
120
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
129
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
121
130
|
* .from(users)
|
|
122
131
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
123
132
|
*
|
|
124
133
|
* // Select userId and petId
|
|
125
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
134
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
126
135
|
* userId: users.id,
|
|
127
136
|
* petId: pets.id,
|
|
128
137
|
* })
|
|
@@ -130,7 +139,7 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
130
139
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
131
140
|
* ```
|
|
132
141
|
*/
|
|
133
|
-
rightJoin:
|
|
142
|
+
rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
|
|
134
143
|
/**
|
|
135
144
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
136
145
|
*
|
|
@@ -145,12 +154,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
145
154
|
*
|
|
146
155
|
* ```ts
|
|
147
156
|
* // Select all users and their pets
|
|
148
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
157
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
149
158
|
* .from(users)
|
|
150
159
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
151
160
|
*
|
|
152
161
|
* // Select userId and petId
|
|
153
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
162
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
154
163
|
* userId: users.id,
|
|
155
164
|
* petId: pets.id,
|
|
156
165
|
* })
|
|
@@ -158,7 +167,20 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
158
167
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
159
168
|
* ```
|
|
160
169
|
*/
|
|
161
|
-
innerJoin:
|
|
170
|
+
innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
171
|
+
/**
|
|
172
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
173
|
+
*
|
|
174
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
175
|
+
*
|
|
176
|
+
* 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.
|
|
177
|
+
*
|
|
178
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
179
|
+
*
|
|
180
|
+
* @param table the subquery to join.
|
|
181
|
+
* @param on the `on` clause.
|
|
182
|
+
*/
|
|
183
|
+
innerJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
162
184
|
/**
|
|
163
185
|
* Executes a `full join` operation by combining rows from two tables into a new table.
|
|
164
186
|
*
|
|
@@ -173,12 +195,12 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
173
195
|
*
|
|
174
196
|
* ```ts
|
|
175
197
|
* // Select all users and their pets
|
|
176
|
-
* const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
|
|
198
|
+
* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
|
|
177
199
|
* .from(users)
|
|
178
200
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
179
201
|
*
|
|
180
202
|
* // Select userId and petId
|
|
181
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
|
|
203
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
|
|
182
204
|
* userId: users.id,
|
|
183
205
|
* petId: pets.id,
|
|
184
206
|
* })
|
|
@@ -186,7 +208,46 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
186
208
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
187
209
|
* ```
|
|
188
210
|
*/
|
|
189
|
-
fullJoin:
|
|
211
|
+
fullJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").PgSelectJoin<this, TDynamic, "full", TJoinedTable, TJoinedName>;
|
|
212
|
+
/**
|
|
213
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
214
|
+
*
|
|
215
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
216
|
+
*
|
|
217
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
218
|
+
*
|
|
219
|
+
* @param table the table to join.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* // Select all users, each user with every pet
|
|
225
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
226
|
+
* .from(users)
|
|
227
|
+
* .crossJoin(pets)
|
|
228
|
+
*
|
|
229
|
+
* // Select userId and petId
|
|
230
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
231
|
+
* userId: users.id,
|
|
232
|
+
* petId: pets.id,
|
|
233
|
+
* })
|
|
234
|
+
* .from(users)
|
|
235
|
+
* .crossJoin(pets)
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | PgTable<import("../table.js").TableConfig> | PgViewBase<string, boolean, ColumnsSelection>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable) => import("./select.types.js").PgSelectJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
239
|
+
/**
|
|
240
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
241
|
+
*
|
|
242
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
243
|
+
*
|
|
244
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
245
|
+
*
|
|
246
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
247
|
+
*
|
|
248
|
+
* @param table the query to join.
|
|
249
|
+
*/
|
|
250
|
+
crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TableLikeHasEmptySelection<TJoinedTable> extends true ? DrizzleTypeError<"Cannot reference a data-modifying statement subquery if it doesn't contain a `returning` clause"> : TJoinedTable) => import("./select.types.js").PgSelectJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
190
251
|
private createSetOperator;
|
|
191
252
|
/**
|
|
192
253
|
* Adds `union` set operator to the query.
|
|
@@ -522,11 +583,6 @@ export declare abstract class PgSelectQueryBuilderBase<THKT extends PgSelectHKTB
|
|
|
522
583
|
toSQL(): Query;
|
|
523
584
|
as<TAlias extends string>(alias: TAlias): SubqueryWithSelection<this['_']['selectedFields'], TAlias>;
|
|
524
585
|
$dynamic(): PgSelectDynamic<this>;
|
|
525
|
-
$withCache(config?: {
|
|
526
|
-
config?: CacheConfig;
|
|
527
|
-
tag?: string;
|
|
528
|
-
autoInvalidate?: boolean;
|
|
529
|
-
} | false): this;
|
|
530
586
|
}
|
|
531
587
|
export interface PgSelectBase<TTableName extends string | undefined, TSelection extends ColumnsSelection, TSelectMode extends SelectMode, 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 PgSelectQueryBuilderBase<PgSelectHKT, TTableName, TSelection, TSelectMode, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields>, QueryPromise<TResult>, SQLWrapper {
|
|
532
588
|
}
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
} from "../../utils.js";
|
|
16
16
|
import { orderSelectedFields } from "../../utils.js";
|
|
17
17
|
import { ViewBaseConfig } from "../../view-common.js";
|
|
18
|
-
import { extractUsedTable } from "../utils.js";
|
|
19
18
|
class PgSelectBuilder {
|
|
20
19
|
static [entityKind] = "PgSelectBuilder";
|
|
21
20
|
fields;
|
|
@@ -81,8 +80,6 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
81
80
|
isPartialSelect;
|
|
82
81
|
session;
|
|
83
82
|
dialect;
|
|
84
|
-
cacheConfig = void 0;
|
|
85
|
-
usedTables = /* @__PURE__ */ new Set();
|
|
86
83
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }) {
|
|
87
84
|
super();
|
|
88
85
|
this.config = {
|
|
@@ -96,24 +93,15 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
96
93
|
this.session = session;
|
|
97
94
|
this.dialect = dialect;
|
|
98
95
|
this._ = {
|
|
99
|
-
selectedFields: fields
|
|
100
|
-
config: this.config
|
|
96
|
+
selectedFields: fields
|
|
101
97
|
};
|
|
102
98
|
this.tableName = getTableLikeName(table);
|
|
103
99
|
this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
|
|
104
|
-
for (const item of extractUsedTable(table))
|
|
105
|
-
this.usedTables.add(item);
|
|
106
100
|
}
|
|
107
|
-
|
|
108
|
-
getUsedTables() {
|
|
109
|
-
return [...this.usedTables];
|
|
110
|
-
}
|
|
111
|
-
createJoin(joinType) {
|
|
101
|
+
createJoin(joinType, lateral) {
|
|
112
102
|
return (table, on) => {
|
|
113
103
|
const baseTableName = this.tableName;
|
|
114
104
|
const tableName = getTableLikeName(table);
|
|
115
|
-
for (const item of extractUsedTable(table))
|
|
116
|
-
this.usedTables.add(item);
|
|
117
105
|
if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
|
|
118
106
|
throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
119
107
|
}
|
|
@@ -139,7 +127,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
139
127
|
if (!this.config.joins) {
|
|
140
128
|
this.config.joins = [];
|
|
141
129
|
}
|
|
142
|
-
this.config.joins.push({ on, table, joinType, alias: tableName });
|
|
130
|
+
this.config.joins.push({ on, table, joinType, alias: tableName, lateral });
|
|
143
131
|
if (typeof tableName === "string") {
|
|
144
132
|
switch (joinType) {
|
|
145
133
|
case "left": {
|
|
@@ -153,6 +141,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
153
141
|
this.joinsNotNullableMap[tableName] = true;
|
|
154
142
|
break;
|
|
155
143
|
}
|
|
144
|
+
case "cross":
|
|
156
145
|
case "inner": {
|
|
157
146
|
this.joinsNotNullableMap[tableName] = true;
|
|
158
147
|
break;
|
|
@@ -183,12 +172,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
183
172
|
*
|
|
184
173
|
* ```ts
|
|
185
174
|
* // Select all users and their pets
|
|
186
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
175
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
187
176
|
* .from(users)
|
|
188
177
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
189
178
|
*
|
|
190
179
|
* // Select userId and petId
|
|
191
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
180
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
192
181
|
* userId: users.id,
|
|
193
182
|
* petId: pets.id,
|
|
194
183
|
* })
|
|
@@ -196,7 +185,20 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
196
185
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
197
186
|
* ```
|
|
198
187
|
*/
|
|
199
|
-
leftJoin = this.createJoin("left");
|
|
188
|
+
leftJoin = this.createJoin("left", false);
|
|
189
|
+
/**
|
|
190
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
191
|
+
*
|
|
192
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
193
|
+
*
|
|
194
|
+
* 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.
|
|
195
|
+
*
|
|
196
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
197
|
+
*
|
|
198
|
+
* @param table the subquery to join.
|
|
199
|
+
* @param on the `on` clause.
|
|
200
|
+
*/
|
|
201
|
+
leftJoinLateral = this.createJoin("left", true);
|
|
200
202
|
/**
|
|
201
203
|
* Executes a `right join` operation by adding another table to the current query.
|
|
202
204
|
*
|
|
@@ -211,12 +213,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
211
213
|
*
|
|
212
214
|
* ```ts
|
|
213
215
|
* // Select all users and their pets
|
|
214
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
216
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
215
217
|
* .from(users)
|
|
216
218
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
217
219
|
*
|
|
218
220
|
* // Select userId and petId
|
|
219
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
221
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
220
222
|
* userId: users.id,
|
|
221
223
|
* petId: pets.id,
|
|
222
224
|
* })
|
|
@@ -224,7 +226,7 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
224
226
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
225
227
|
* ```
|
|
226
228
|
*/
|
|
227
|
-
rightJoin = this.createJoin("right");
|
|
229
|
+
rightJoin = this.createJoin("right", false);
|
|
228
230
|
/**
|
|
229
231
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
230
232
|
*
|
|
@@ -239,12 +241,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
239
241
|
*
|
|
240
242
|
* ```ts
|
|
241
243
|
* // Select all users and their pets
|
|
242
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
244
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
243
245
|
* .from(users)
|
|
244
246
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
245
247
|
*
|
|
246
248
|
* // Select userId and petId
|
|
247
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
249
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
248
250
|
* userId: users.id,
|
|
249
251
|
* petId: pets.id,
|
|
250
252
|
* })
|
|
@@ -252,7 +254,20 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
252
254
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
253
255
|
* ```
|
|
254
256
|
*/
|
|
255
|
-
innerJoin = this.createJoin("inner");
|
|
257
|
+
innerJoin = this.createJoin("inner", false);
|
|
258
|
+
/**
|
|
259
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
260
|
+
*
|
|
261
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
262
|
+
*
|
|
263
|
+
* 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.
|
|
264
|
+
*
|
|
265
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
266
|
+
*
|
|
267
|
+
* @param table the subquery to join.
|
|
268
|
+
* @param on the `on` clause.
|
|
269
|
+
*/
|
|
270
|
+
innerJoinLateral = this.createJoin("inner", true);
|
|
256
271
|
/**
|
|
257
272
|
* Executes a `full join` operation by combining rows from two tables into a new table.
|
|
258
273
|
*
|
|
@@ -267,12 +282,12 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
267
282
|
*
|
|
268
283
|
* ```ts
|
|
269
284
|
* // Select all users and their pets
|
|
270
|
-
* const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
|
|
285
|
+
* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
|
|
271
286
|
* .from(users)
|
|
272
287
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
273
288
|
*
|
|
274
289
|
* // Select userId and petId
|
|
275
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
|
|
290
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
|
|
276
291
|
* userId: users.id,
|
|
277
292
|
* petId: pets.id,
|
|
278
293
|
* })
|
|
@@ -280,7 +295,46 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
280
295
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
281
296
|
* ```
|
|
282
297
|
*/
|
|
283
|
-
fullJoin = this.createJoin("full");
|
|
298
|
+
fullJoin = this.createJoin("full", false);
|
|
299
|
+
/**
|
|
300
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
301
|
+
*
|
|
302
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
303
|
+
*
|
|
304
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
305
|
+
*
|
|
306
|
+
* @param table the table to join.
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
*
|
|
310
|
+
* ```ts
|
|
311
|
+
* // Select all users, each user with every pet
|
|
312
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
313
|
+
* .from(users)
|
|
314
|
+
* .crossJoin(pets)
|
|
315
|
+
*
|
|
316
|
+
* // Select userId and petId
|
|
317
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
318
|
+
* userId: users.id,
|
|
319
|
+
* petId: pets.id,
|
|
320
|
+
* })
|
|
321
|
+
* .from(users)
|
|
322
|
+
* .crossJoin(pets)
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
crossJoin = this.createJoin("cross", false);
|
|
326
|
+
/**
|
|
327
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
328
|
+
*
|
|
329
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
330
|
+
*
|
|
331
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
332
|
+
*
|
|
333
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
334
|
+
*
|
|
335
|
+
* @param table the query to join.
|
|
336
|
+
*/
|
|
337
|
+
crossJoinLateral = this.createJoin("cross", true);
|
|
284
338
|
createSetOperator(type, isAll) {
|
|
285
339
|
return (rightSelection) => {
|
|
286
340
|
const rightSelect = typeof rightSelection === "function" ? rightSelection(getPgSetOperators()) : rightSelection;
|
|
@@ -668,14 +722,8 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
668
722
|
return rest;
|
|
669
723
|
}
|
|
670
724
|
as(alias) {
|
|
671
|
-
const usedTables = [];
|
|
672
|
-
usedTables.push(...extractUsedTable(this.config.table));
|
|
673
|
-
if (this.config.joins) {
|
|
674
|
-
for (const it of this.config.joins)
|
|
675
|
-
usedTables.push(...extractUsedTable(it.table));
|
|
676
|
-
}
|
|
677
725
|
return new Proxy(
|
|
678
|
-
new Subquery(this.getSQL(), this.config.fields, alias
|
|
726
|
+
new Subquery(this.getSQL(), this.config.fields, alias),
|
|
679
727
|
new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
|
|
680
728
|
);
|
|
681
729
|
}
|
|
@@ -689,26 +737,18 @@ class PgSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
689
737
|
$dynamic() {
|
|
690
738
|
return this;
|
|
691
739
|
}
|
|
692
|
-
$withCache(config) {
|
|
693
|
-
this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
|
|
694
|
-
return this;
|
|
695
|
-
}
|
|
696
740
|
}
|
|
697
741
|
class PgSelectBase extends PgSelectQueryBuilderBase {
|
|
698
742
|
static [entityKind] = "PgSelect";
|
|
699
743
|
/** @internal */
|
|
700
744
|
_prepare(name) {
|
|
701
|
-
const { session, config, dialect, joinsNotNullableMap, authToken
|
|
745
|
+
const { session, config, dialect, joinsNotNullableMap, authToken } = this;
|
|
702
746
|
if (!session) {
|
|
703
747
|
throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
|
|
704
748
|
}
|
|
705
|
-
const { fields } = config;
|
|
706
749
|
return tracer.startActiveSpan("drizzle.prepareQuery", () => {
|
|
707
|
-
const fieldsList = orderSelectedFields(fields);
|
|
708
|
-
const query = session.prepareQuery(dialect.sqlToQuery(this.getSQL()), fieldsList, name, true
|
|
709
|
-
type: "select",
|
|
710
|
-
tables: [...usedTables]
|
|
711
|
-
}, cacheConfig);
|
|
750
|
+
const fieldsList = orderSelectedFields(config.fields);
|
|
751
|
+
const query = session.prepareQuery(dialect.sqlToQuery(this.getSQL()), fieldsList, name, true);
|
|
712
752
|
query.joinsNotNullableMap = joinsNotNullableMap;
|
|
713
753
|
return query.setToken(authToken);
|
|
714
754
|
});
|