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.cjs";
|
|
2
1
|
import { entityKind } from "../../entity.cjs";
|
|
3
2
|
import { TypedQueryBuilder } from "../../query-builders/query-builder.cjs";
|
|
4
3
|
import type { BuildSubquerySelection, GetSelectTableName, GetSelectTableSelection, JoinNullability, SelectMode, SelectResult } from "../../query-builders/select.types.cjs";
|
|
@@ -12,7 +11,7 @@ import type { ColumnsSelection, Query } from "../../sql/sql.cjs";
|
|
|
12
11
|
import { SQL } from "../../sql/sql.cjs";
|
|
13
12
|
import { Subquery } from "../../subquery.cjs";
|
|
14
13
|
import { type ValueOrArray } from "../../utils.cjs";
|
|
15
|
-
import type { CreateSingleStoreSelectFromBuilderMode, GetSingleStoreSetOperators, LockConfig, LockStrength, SelectedFields, SetOperatorRightSelect, SingleStoreCreateSetOperatorFn,
|
|
14
|
+
import type { CreateSingleStoreSelectFromBuilderMode, GetSingleStoreSetOperators, LockConfig, LockStrength, SelectedFields, SetOperatorRightSelect, SingleStoreCreateSetOperatorFn, SingleStoreSelectConfig, SingleStoreSelectDynamic, SingleStoreSelectHKT, SingleStoreSelectHKTBase, SingleStoreSelectPrepare, SingleStoreSelectWithout, SingleStoreSetOperatorExcludedMethods, SingleStoreSetOperatorWithResult } from "./select.types.cjs";
|
|
16
15
|
export declare class SingleStoreSelectBuilder<TSelection extends SelectedFields | undefined, TPreparedQueryHKT extends PreparedQueryHKTBase, TBuilderMode extends 'db' | 'qb' = 'db'> {
|
|
17
16
|
static readonly [entityKind]: string;
|
|
18
17
|
private fields;
|
|
@@ -43,15 +42,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
43
42
|
readonly excludedMethods: TExcludedMethods;
|
|
44
43
|
readonly result: TResult;
|
|
45
44
|
readonly selectedFields: TSelectedFields;
|
|
46
|
-
readonly config: SingleStoreSelectConfig;
|
|
47
45
|
};
|
|
48
46
|
protected config: SingleStoreSelectConfig;
|
|
49
47
|
protected joinsNotNullableMap: Record<string, boolean>;
|
|
50
48
|
private tableName;
|
|
51
49
|
private isPartialSelect;
|
|
52
50
|
protected dialect: SingleStoreDialect;
|
|
53
|
-
protected cacheConfig?: WithCacheConfig;
|
|
54
|
-
protected usedTables: Set<string>;
|
|
55
51
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }: {
|
|
56
52
|
table: SingleStoreSelectConfig['table'];
|
|
57
53
|
fields: SingleStoreSelectConfig['fields'];
|
|
@@ -76,12 +72,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
76
72
|
*
|
|
77
73
|
* ```ts
|
|
78
74
|
* // Select all users and their pets
|
|
79
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
75
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
80
76
|
* .from(users)
|
|
81
77
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
82
78
|
*
|
|
83
79
|
* // Select userId and petId
|
|
84
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
80
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
85
81
|
* userId: users.id,
|
|
86
82
|
* petId: pets.id,
|
|
87
83
|
* })
|
|
@@ -89,7 +85,20 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
89
85
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
90
86
|
* ```
|
|
91
87
|
*/
|
|
92
|
-
leftJoin:
|
|
88
|
+
leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.ts").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
89
|
+
/**
|
|
90
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
91
|
+
*
|
|
92
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
93
|
+
*
|
|
94
|
+
* 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.
|
|
95
|
+
*
|
|
96
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
97
|
+
*
|
|
98
|
+
* @param table the subquery to join.
|
|
99
|
+
* @param on the `on` clause.
|
|
100
|
+
*/
|
|
101
|
+
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) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
93
102
|
/**
|
|
94
103
|
* Executes a `right join` operation by adding another table to the current query.
|
|
95
104
|
*
|
|
@@ -104,12 +113,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
104
113
|
*
|
|
105
114
|
* ```ts
|
|
106
115
|
* // Select all users and their pets
|
|
107
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
116
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
108
117
|
* .from(users)
|
|
109
118
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
110
119
|
*
|
|
111
120
|
* // Select userId and petId
|
|
112
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
121
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
113
122
|
* userId: users.id,
|
|
114
123
|
* petId: pets.id,
|
|
115
124
|
* })
|
|
@@ -117,7 +126,7 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
117
126
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
118
127
|
* ```
|
|
119
128
|
*/
|
|
120
|
-
rightJoin:
|
|
129
|
+
rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.ts").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
|
|
121
130
|
/**
|
|
122
131
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
123
132
|
*
|
|
@@ -132,12 +141,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
132
141
|
*
|
|
133
142
|
* ```ts
|
|
134
143
|
* // Select all users and their pets
|
|
135
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
144
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
136
145
|
* .from(users)
|
|
137
146
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
138
147
|
*
|
|
139
148
|
* // Select userId and petId
|
|
140
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
149
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
141
150
|
* userId: users.id,
|
|
142
151
|
* petId: pets.id,
|
|
143
152
|
* })
|
|
@@ -145,7 +154,20 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
145
154
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
146
155
|
* ```
|
|
147
156
|
*/
|
|
148
|
-
innerJoin:
|
|
157
|
+
innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.ts").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
158
|
+
/**
|
|
159
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
160
|
+
*
|
|
161
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
162
|
+
*
|
|
163
|
+
* 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.
|
|
164
|
+
*
|
|
165
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
166
|
+
*
|
|
167
|
+
* @param table the subquery to join.
|
|
168
|
+
* @param on the `on` clause.
|
|
169
|
+
*/
|
|
170
|
+
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) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
149
171
|
/**
|
|
150
172
|
* Executes a `full join` operation by combining rows from two tables into a new table.
|
|
151
173
|
*
|
|
@@ -160,12 +182,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
160
182
|
*
|
|
161
183
|
* ```ts
|
|
162
184
|
* // Select all users and their pets
|
|
163
|
-
* const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
|
|
185
|
+
* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
|
|
164
186
|
* .from(users)
|
|
165
187
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
166
188
|
*
|
|
167
189
|
* // Select userId and petId
|
|
168
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
|
|
190
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
|
|
169
191
|
* userId: users.id,
|
|
170
192
|
* petId: pets.id,
|
|
171
193
|
* })
|
|
@@ -173,7 +195,46 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
173
195
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
174
196
|
* ```
|
|
175
197
|
*/
|
|
176
|
-
fullJoin:
|
|
198
|
+
fullJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.ts").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "full", TJoinedTable, TJoinedName>;
|
|
199
|
+
/**
|
|
200
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
201
|
+
*
|
|
202
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
203
|
+
*
|
|
204
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
205
|
+
*
|
|
206
|
+
* @param table the table to join.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
*
|
|
210
|
+
* ```ts
|
|
211
|
+
* // Select all users, each user with every pet
|
|
212
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
213
|
+
* .from(users)
|
|
214
|
+
* .crossJoin(pets)
|
|
215
|
+
*
|
|
216
|
+
* // Select userId and petId
|
|
217
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
218
|
+
* userId: users.id,
|
|
219
|
+
* petId: pets.id,
|
|
220
|
+
* })
|
|
221
|
+
* .from(users)
|
|
222
|
+
* .crossJoin(pets)
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.ts").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
226
|
+
/**
|
|
227
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
228
|
+
*
|
|
229
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
230
|
+
*
|
|
231
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
232
|
+
*
|
|
233
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
234
|
+
*
|
|
235
|
+
* @param table the query to join.
|
|
236
|
+
*/
|
|
237
|
+
crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable) => import("./select.types.ts").SingleStoreJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
177
238
|
private createSetOperator;
|
|
178
239
|
/**
|
|
179
240
|
* Adds `union` set operator to the query.
|
|
@@ -455,11 +516,6 @@ export interface SingleStoreSelectBase<TTableName extends string | undefined, TS
|
|
|
455
516
|
export declare class SingleStoreSelectBase<TTableName extends string | undefined, TSelection, 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 = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>> extends SingleStoreSelectQueryBuilderBase<SingleStoreSelectHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields> {
|
|
456
517
|
static readonly [entityKind]: string;
|
|
457
518
|
prepare(): SingleStoreSelectPrepare<this>;
|
|
458
|
-
$withCache(config?: {
|
|
459
|
-
config?: CacheConfig;
|
|
460
|
-
tag?: string;
|
|
461
|
-
autoInvalidate?: boolean;
|
|
462
|
-
} | false): this;
|
|
463
519
|
execute: ReturnType<this["prepare"]>["execute"];
|
|
464
520
|
private createIterator;
|
|
465
521
|
iterator: ReturnType<this["prepare"]>["iterator"];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CacheConfig, WithCacheConfig } from "../../cache/core/types.js";
|
|
2
1
|
import { entityKind } from "../../entity.js";
|
|
3
2
|
import { TypedQueryBuilder } from "../../query-builders/query-builder.js";
|
|
4
3
|
import type { BuildSubquerySelection, GetSelectTableName, GetSelectTableSelection, JoinNullability, SelectMode, SelectResult } from "../../query-builders/select.types.js";
|
|
@@ -12,7 +11,7 @@ import type { ColumnsSelection, Query } from "../../sql/sql.js";
|
|
|
12
11
|
import { SQL } from "../../sql/sql.js";
|
|
13
12
|
import { Subquery } from "../../subquery.js";
|
|
14
13
|
import { type ValueOrArray } from "../../utils.js";
|
|
15
|
-
import type { CreateSingleStoreSelectFromBuilderMode, GetSingleStoreSetOperators, LockConfig, LockStrength, SelectedFields, SetOperatorRightSelect, SingleStoreCreateSetOperatorFn,
|
|
14
|
+
import type { CreateSingleStoreSelectFromBuilderMode, GetSingleStoreSetOperators, LockConfig, LockStrength, SelectedFields, SetOperatorRightSelect, SingleStoreCreateSetOperatorFn, SingleStoreSelectConfig, SingleStoreSelectDynamic, SingleStoreSelectHKT, SingleStoreSelectHKTBase, SingleStoreSelectPrepare, SingleStoreSelectWithout, SingleStoreSetOperatorExcludedMethods, SingleStoreSetOperatorWithResult } from "./select.types.js";
|
|
16
15
|
export declare class SingleStoreSelectBuilder<TSelection extends SelectedFields | undefined, TPreparedQueryHKT extends PreparedQueryHKTBase, TBuilderMode extends 'db' | 'qb' = 'db'> {
|
|
17
16
|
static readonly [entityKind]: string;
|
|
18
17
|
private fields;
|
|
@@ -43,15 +42,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
43
42
|
readonly excludedMethods: TExcludedMethods;
|
|
44
43
|
readonly result: TResult;
|
|
45
44
|
readonly selectedFields: TSelectedFields;
|
|
46
|
-
readonly config: SingleStoreSelectConfig;
|
|
47
45
|
};
|
|
48
46
|
protected config: SingleStoreSelectConfig;
|
|
49
47
|
protected joinsNotNullableMap: Record<string, boolean>;
|
|
50
48
|
private tableName;
|
|
51
49
|
private isPartialSelect;
|
|
52
50
|
protected dialect: SingleStoreDialect;
|
|
53
|
-
protected cacheConfig?: WithCacheConfig;
|
|
54
|
-
protected usedTables: Set<string>;
|
|
55
51
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }: {
|
|
56
52
|
table: SingleStoreSelectConfig['table'];
|
|
57
53
|
fields: SingleStoreSelectConfig['fields'];
|
|
@@ -76,12 +72,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
76
72
|
*
|
|
77
73
|
* ```ts
|
|
78
74
|
* // Select all users and their pets
|
|
79
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
75
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
80
76
|
* .from(users)
|
|
81
77
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
82
78
|
*
|
|
83
79
|
* // Select userId and petId
|
|
84
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
80
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
85
81
|
* userId: users.id,
|
|
86
82
|
* petId: pets.id,
|
|
87
83
|
* })
|
|
@@ -89,7 +85,20 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
89
85
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
90
86
|
* ```
|
|
91
87
|
*/
|
|
92
|
-
leftJoin:
|
|
88
|
+
leftJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.js").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
89
|
+
/**
|
|
90
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
91
|
+
*
|
|
92
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
93
|
+
*
|
|
94
|
+
* 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.
|
|
95
|
+
*
|
|
96
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
97
|
+
*
|
|
98
|
+
* @param table the subquery to join.
|
|
99
|
+
* @param on the `on` clause.
|
|
100
|
+
*/
|
|
101
|
+
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) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "left", TJoinedTable, TJoinedName>;
|
|
93
102
|
/**
|
|
94
103
|
* Executes a `right join` operation by adding another table to the current query.
|
|
95
104
|
*
|
|
@@ -104,12 +113,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
104
113
|
*
|
|
105
114
|
* ```ts
|
|
106
115
|
* // Select all users and their pets
|
|
107
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
116
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
108
117
|
* .from(users)
|
|
109
118
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
110
119
|
*
|
|
111
120
|
* // Select userId and petId
|
|
112
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
121
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
113
122
|
* userId: users.id,
|
|
114
123
|
* petId: pets.id,
|
|
115
124
|
* })
|
|
@@ -117,7 +126,7 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
117
126
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
118
127
|
* ```
|
|
119
128
|
*/
|
|
120
|
-
rightJoin:
|
|
129
|
+
rightJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.js").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "right", TJoinedTable, TJoinedName>;
|
|
121
130
|
/**
|
|
122
131
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
123
132
|
*
|
|
@@ -132,12 +141,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
132
141
|
*
|
|
133
142
|
* ```ts
|
|
134
143
|
* // Select all users and their pets
|
|
135
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
144
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
136
145
|
* .from(users)
|
|
137
146
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
138
147
|
*
|
|
139
148
|
* // Select userId and petId
|
|
140
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
149
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
141
150
|
* userId: users.id,
|
|
142
151
|
* petId: pets.id,
|
|
143
152
|
* })
|
|
@@ -145,7 +154,20 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
145
154
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
146
155
|
* ```
|
|
147
156
|
*/
|
|
148
|
-
innerJoin:
|
|
157
|
+
innerJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.js").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
158
|
+
/**
|
|
159
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
160
|
+
*
|
|
161
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
162
|
+
*
|
|
163
|
+
* 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.
|
|
164
|
+
*
|
|
165
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
166
|
+
*
|
|
167
|
+
* @param table the subquery to join.
|
|
168
|
+
* @param on the `on` clause.
|
|
169
|
+
*/
|
|
170
|
+
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) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "inner", TJoinedTable, TJoinedName>;
|
|
149
171
|
/**
|
|
150
172
|
* Executes a `full join` operation by combining rows from two tables into a new table.
|
|
151
173
|
*
|
|
@@ -160,12 +182,12 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
160
182
|
*
|
|
161
183
|
* ```ts
|
|
162
184
|
* // Select all users and their pets
|
|
163
|
-
* const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
|
|
185
|
+
* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
|
|
164
186
|
* .from(users)
|
|
165
187
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
166
188
|
*
|
|
167
189
|
* // Select userId and petId
|
|
168
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
|
|
190
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
|
|
169
191
|
* userId: users.id,
|
|
170
192
|
* petId: pets.id,
|
|
171
193
|
* })
|
|
@@ -173,7 +195,46 @@ export declare abstract class SingleStoreSelectQueryBuilderBase<THKT extends Sin
|
|
|
173
195
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
174
196
|
* ```
|
|
175
197
|
*/
|
|
176
|
-
fullJoin:
|
|
198
|
+
fullJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.js").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable, on: SQL<unknown> | ((aliases: this["_"]["selection"]) => SQL | undefined) | undefined) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "full", TJoinedTable, TJoinedName>;
|
|
199
|
+
/**
|
|
200
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
201
|
+
*
|
|
202
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
203
|
+
*
|
|
204
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
205
|
+
*
|
|
206
|
+
* @param table the table to join.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
*
|
|
210
|
+
* ```ts
|
|
211
|
+
* // Select all users, each user with every pet
|
|
212
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
213
|
+
* .from(users)
|
|
214
|
+
* .crossJoin(pets)
|
|
215
|
+
*
|
|
216
|
+
* // Select userId and petId
|
|
217
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
218
|
+
* userId: users.id,
|
|
219
|
+
* petId: pets.id,
|
|
220
|
+
* })
|
|
221
|
+
* .from(users)
|
|
222
|
+
* .crossJoin(pets)
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
crossJoin: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>> | SingleStoreTable<import("../table.js").TableConfig>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
226
|
+
/**
|
|
227
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
228
|
+
*
|
|
229
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
230
|
+
*
|
|
231
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
232
|
+
*
|
|
233
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
234
|
+
*
|
|
235
|
+
* @param table the query to join.
|
|
236
|
+
*/
|
|
237
|
+
crossJoinLateral: <TJoinedTable extends SQL<unknown> | Subquery<string, Record<string, unknown>>, TJoinedName extends GetSelectTableName<TJoinedTable> = GetSelectTableName<TJoinedTable>>(table: TJoinedTable) => import("./select.types.js").SingleStoreJoin<this, TDynamic, "cross", TJoinedTable, TJoinedName>;
|
|
177
238
|
private createSetOperator;
|
|
178
239
|
/**
|
|
179
240
|
* Adds `union` set operator to the query.
|
|
@@ -455,11 +516,6 @@ export interface SingleStoreSelectBase<TTableName extends string | undefined, TS
|
|
|
455
516
|
export declare class SingleStoreSelectBase<TTableName extends string | undefined, TSelection, 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 = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields = BuildSubquerySelection<TSelection, TNullabilityMap>> extends SingleStoreSelectQueryBuilderBase<SingleStoreSelectHKT, TTableName, TSelection, TSelectMode, TPreparedQueryHKT, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields> {
|
|
456
517
|
static readonly [entityKind]: string;
|
|
457
518
|
prepare(): SingleStoreSelectPrepare<this>;
|
|
458
|
-
$withCache(config?: {
|
|
459
|
-
config?: CacheConfig;
|
|
460
|
-
tag?: string;
|
|
461
|
-
autoInvalidate?: boolean;
|
|
462
|
-
} | false): this;
|
|
463
519
|
execute: ReturnType<this["prepare"]>["execute"];
|
|
464
520
|
private createIterator;
|
|
465
521
|
iterator: ReturnType<this["prepare"]>["iterator"];
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
haveSameKeys,
|
|
13
13
|
orderSelectedFields
|
|
14
14
|
} from "../../utils.js";
|
|
15
|
-
import { extractUsedTable } from "../utils.js";
|
|
16
15
|
class SingleStoreSelectBuilder {
|
|
17
16
|
static [entityKind] = "SingleStoreSelectBuilder";
|
|
18
17
|
fields;
|
|
@@ -66,8 +65,6 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
66
65
|
/** @internal */
|
|
67
66
|
session;
|
|
68
67
|
dialect;
|
|
69
|
-
cacheConfig = void 0;
|
|
70
|
-
usedTables = /* @__PURE__ */ new Set();
|
|
71
68
|
constructor({ table, fields, isPartialSelect, session, dialect, withList, distinct }) {
|
|
72
69
|
super();
|
|
73
70
|
this.config = {
|
|
@@ -81,24 +78,15 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
81
78
|
this.session = session;
|
|
82
79
|
this.dialect = dialect;
|
|
83
80
|
this._ = {
|
|
84
|
-
selectedFields: fields
|
|
85
|
-
config: this.config
|
|
81
|
+
selectedFields: fields
|
|
86
82
|
};
|
|
87
83
|
this.tableName = getTableLikeName(table);
|
|
88
84
|
this.joinsNotNullableMap = typeof this.tableName === "string" ? { [this.tableName]: true } : {};
|
|
89
|
-
for (const item of extractUsedTable(table))
|
|
90
|
-
this.usedTables.add(item);
|
|
91
85
|
}
|
|
92
|
-
|
|
93
|
-
getUsedTables() {
|
|
94
|
-
return [...this.usedTables];
|
|
95
|
-
}
|
|
96
|
-
createJoin(joinType) {
|
|
86
|
+
createJoin(joinType, lateral) {
|
|
97
87
|
return (table, on) => {
|
|
98
88
|
const baseTableName = this.tableName;
|
|
99
89
|
const tableName = getTableLikeName(table);
|
|
100
|
-
for (const item of extractUsedTable(table))
|
|
101
|
-
this.usedTables.add(item);
|
|
102
90
|
if (typeof tableName === "string" && this.config.joins?.some((join) => join.alias === tableName)) {
|
|
103
91
|
throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
104
92
|
}
|
|
@@ -124,7 +112,7 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
124
112
|
if (!this.config.joins) {
|
|
125
113
|
this.config.joins = [];
|
|
126
114
|
}
|
|
127
|
-
this.config.joins.push({ on, table, joinType, alias: tableName });
|
|
115
|
+
this.config.joins.push({ on, table, joinType, alias: tableName, lateral });
|
|
128
116
|
if (typeof tableName === "string") {
|
|
129
117
|
switch (joinType) {
|
|
130
118
|
case "left": {
|
|
@@ -138,6 +126,7 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
138
126
|
this.joinsNotNullableMap[tableName] = true;
|
|
139
127
|
break;
|
|
140
128
|
}
|
|
129
|
+
case "cross":
|
|
141
130
|
case "inner": {
|
|
142
131
|
this.joinsNotNullableMap[tableName] = true;
|
|
143
132
|
break;
|
|
@@ -168,12 +157,12 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
168
157
|
*
|
|
169
158
|
* ```ts
|
|
170
159
|
* // Select all users and their pets
|
|
171
|
-
* const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()
|
|
160
|
+
* const usersWithPets: { user: User; pets: Pet | null; }[] = await db.select()
|
|
172
161
|
* .from(users)
|
|
173
162
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
174
163
|
*
|
|
175
164
|
* // Select userId and petId
|
|
176
|
-
* const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({
|
|
165
|
+
* const usersIdsAndPetIds: { userId: number; petId: number | null; }[] = await db.select({
|
|
177
166
|
* userId: users.id,
|
|
178
167
|
* petId: pets.id,
|
|
179
168
|
* })
|
|
@@ -181,7 +170,20 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
181
170
|
* .leftJoin(pets, eq(users.id, pets.ownerId))
|
|
182
171
|
* ```
|
|
183
172
|
*/
|
|
184
|
-
leftJoin = this.createJoin("left");
|
|
173
|
+
leftJoin = this.createJoin("left", false);
|
|
174
|
+
/**
|
|
175
|
+
* Executes a `left join lateral` operation by adding subquery to the current query.
|
|
176
|
+
*
|
|
177
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
178
|
+
*
|
|
179
|
+
* 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.
|
|
180
|
+
*
|
|
181
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#left-join-lateral}
|
|
182
|
+
*
|
|
183
|
+
* @param table the subquery to join.
|
|
184
|
+
* @param on the `on` clause.
|
|
185
|
+
*/
|
|
186
|
+
leftJoinLateral = this.createJoin("left", true);
|
|
185
187
|
/**
|
|
186
188
|
* Executes a `right join` operation by adding another table to the current query.
|
|
187
189
|
*
|
|
@@ -196,12 +198,12 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
196
198
|
*
|
|
197
199
|
* ```ts
|
|
198
200
|
* // Select all users and their pets
|
|
199
|
-
* const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()
|
|
201
|
+
* const usersWithPets: { user: User | null; pets: Pet; }[] = await db.select()
|
|
200
202
|
* .from(users)
|
|
201
203
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
202
204
|
*
|
|
203
205
|
* // Select userId and petId
|
|
204
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({
|
|
206
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number; }[] = await db.select({
|
|
205
207
|
* userId: users.id,
|
|
206
208
|
* petId: pets.id,
|
|
207
209
|
* })
|
|
@@ -209,7 +211,7 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
209
211
|
* .rightJoin(pets, eq(users.id, pets.ownerId))
|
|
210
212
|
* ```
|
|
211
213
|
*/
|
|
212
|
-
rightJoin = this.createJoin("right");
|
|
214
|
+
rightJoin = this.createJoin("right", false);
|
|
213
215
|
/**
|
|
214
216
|
* Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.
|
|
215
217
|
*
|
|
@@ -224,12 +226,12 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
224
226
|
*
|
|
225
227
|
* ```ts
|
|
226
228
|
* // Select all users and their pets
|
|
227
|
-
* const usersWithPets: { user: User; pets: Pet }[] = await db.select()
|
|
229
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
228
230
|
* .from(users)
|
|
229
231
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
230
232
|
*
|
|
231
233
|
* // Select userId and petId
|
|
232
|
-
* const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({
|
|
234
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
233
235
|
* userId: users.id,
|
|
234
236
|
* petId: pets.id,
|
|
235
237
|
* })
|
|
@@ -237,7 +239,20 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
237
239
|
* .innerJoin(pets, eq(users.id, pets.ownerId))
|
|
238
240
|
* ```
|
|
239
241
|
*/
|
|
240
|
-
innerJoin = this.createJoin("inner");
|
|
242
|
+
innerJoin = this.createJoin("inner", false);
|
|
243
|
+
/**
|
|
244
|
+
* Executes an `inner join lateral` operation, creating a new table by combining rows from two queries that have matching values.
|
|
245
|
+
*
|
|
246
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
247
|
+
*
|
|
248
|
+
* 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.
|
|
249
|
+
*
|
|
250
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#inner-join-lateral}
|
|
251
|
+
*
|
|
252
|
+
* @param table the subquery to join.
|
|
253
|
+
* @param on the `on` clause.
|
|
254
|
+
*/
|
|
255
|
+
innerJoinLateral = this.createJoin("inner", true);
|
|
241
256
|
/**
|
|
242
257
|
* Executes a `full join` operation by combining rows from two tables into a new table.
|
|
243
258
|
*
|
|
@@ -252,12 +267,12 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
252
267
|
*
|
|
253
268
|
* ```ts
|
|
254
269
|
* // Select all users and their pets
|
|
255
|
-
* const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()
|
|
270
|
+
* const usersWithPets: { user: User | null; pets: Pet | null; }[] = await db.select()
|
|
256
271
|
* .from(users)
|
|
257
272
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
258
273
|
*
|
|
259
274
|
* // Select userId and petId
|
|
260
|
-
* const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({
|
|
275
|
+
* const usersIdsAndPetIds: { userId: number | null; petId: number | null; }[] = await db.select({
|
|
261
276
|
* userId: users.id,
|
|
262
277
|
* petId: pets.id,
|
|
263
278
|
* })
|
|
@@ -265,7 +280,46 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
265
280
|
* .fullJoin(pets, eq(users.id, pets.ownerId))
|
|
266
281
|
* ```
|
|
267
282
|
*/
|
|
268
|
-
fullJoin = this.createJoin("full");
|
|
283
|
+
fullJoin = this.createJoin("full", false);
|
|
284
|
+
/**
|
|
285
|
+
* Executes a `cross join` operation by combining rows from two tables into a new table.
|
|
286
|
+
*
|
|
287
|
+
* Calling this method retrieves all rows from both main and joined tables, merging all rows from each table.
|
|
288
|
+
*
|
|
289
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join}
|
|
290
|
+
*
|
|
291
|
+
* @param table the table to join.
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
*
|
|
295
|
+
* ```ts
|
|
296
|
+
* // Select all users, each user with every pet
|
|
297
|
+
* const usersWithPets: { user: User; pets: Pet; }[] = await db.select()
|
|
298
|
+
* .from(users)
|
|
299
|
+
* .crossJoin(pets)
|
|
300
|
+
*
|
|
301
|
+
* // Select userId and petId
|
|
302
|
+
* const usersIdsAndPetIds: { userId: number; petId: number; }[] = await db.select({
|
|
303
|
+
* userId: users.id,
|
|
304
|
+
* petId: pets.id,
|
|
305
|
+
* })
|
|
306
|
+
* .from(users)
|
|
307
|
+
* .crossJoin(pets)
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
crossJoin = this.createJoin("cross", false);
|
|
311
|
+
/**
|
|
312
|
+
* Executes a `cross join lateral` operation by combining rows from two queries into a new table.
|
|
313
|
+
*
|
|
314
|
+
* A `lateral` join allows the right-hand expression to refer to columns from the left-hand side.
|
|
315
|
+
*
|
|
316
|
+
* Calling this method retrieves all rows from both main and joined queries, merging all rows from each query.
|
|
317
|
+
*
|
|
318
|
+
* See docs: {@link https://orm.drizzle.team/docs/joins#cross-join-lateral}
|
|
319
|
+
*
|
|
320
|
+
* @param table the query to join.
|
|
321
|
+
*/
|
|
322
|
+
crossJoinLateral = this.createJoin("cross", true);
|
|
269
323
|
createSetOperator(type, isAll) {
|
|
270
324
|
return (rightSelection) => {
|
|
271
325
|
const rightSelect = typeof rightSelection === "function" ? rightSelection(getSingleStoreSetOperators()) : rightSelection;
|
|
@@ -593,14 +647,8 @@ class SingleStoreSelectQueryBuilderBase extends TypedQueryBuilder {
|
|
|
593
647
|
return rest;
|
|
594
648
|
}
|
|
595
649
|
as(alias) {
|
|
596
|
-
const usedTables = [];
|
|
597
|
-
usedTables.push(...extractUsedTable(this.config.table));
|
|
598
|
-
if (this.config.joins) {
|
|
599
|
-
for (const it of this.config.joins)
|
|
600
|
-
usedTables.push(...extractUsedTable(it.table));
|
|
601
|
-
}
|
|
602
650
|
return new Proxy(
|
|
603
|
-
new Subquery(this.getSQL(), this.config.fields, alias
|
|
651
|
+
new Subquery(this.getSQL(), this.config.fields, alias),
|
|
604
652
|
new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
|
|
605
653
|
);
|
|
606
654
|
}
|
|
@@ -622,17 +670,10 @@ class SingleStoreSelectBase extends SingleStoreSelectQueryBuilderBase {
|
|
|
622
670
|
throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
|
|
623
671
|
}
|
|
624
672
|
const fieldsList = orderSelectedFields(this.config.fields);
|
|
625
|
-
const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList
|
|
626
|
-
type: "select",
|
|
627
|
-
tables: [...this.usedTables]
|
|
628
|
-
}, this.cacheConfig);
|
|
673
|
+
const query = this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()), fieldsList);
|
|
629
674
|
query.joinsNotNullableMap = this.joinsNotNullableMap;
|
|
630
675
|
return query;
|
|
631
676
|
}
|
|
632
|
-
$withCache(config) {
|
|
633
|
-
this.cacheConfig = config === void 0 ? { config: {}, enable: true, autoInvalidate: true } : config === false ? { enable: false } : { enable: true, autoInvalidate: true, ...config };
|
|
634
|
-
return this;
|
|
635
|
-
}
|
|
636
677
|
execute = (placeholderValues) => {
|
|
637
678
|
return this.prepare().execute(placeholderValues);
|
|
638
679
|
};
|