drizzle-orm 0.33.0 → 0.34.0-06c725b
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 +12 -9
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +5 -3
- package/aws-data-api/pg/driver.d.ts +5 -3
- package/aws-data-api/pg/driver.js +6 -3
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/migrator.cjs.map +1 -1
- package/aws-data-api/pg/migrator.d.cts +1 -1
- package/aws-data-api/pg/migrator.d.ts +1 -1
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/better-sqlite3/driver.cjs +10 -2
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +7 -2
- package/better-sqlite3/driver.d.ts +7 -2
- package/better-sqlite3/driver.js +9 -2
- package/better-sqlite3/driver.js.map +1 -1
- package/better-sqlite3/migrator.cjs.map +1 -1
- package/better-sqlite3/migrator.d.cts +1 -1
- package/better-sqlite3/migrator.d.ts +1 -1
- package/better-sqlite3/migrator.js.map +1 -1
- package/bun-sqlite/driver.cjs +10 -2
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +7 -2
- package/bun-sqlite/driver.d.ts +7 -2
- package/bun-sqlite/driver.js +9 -2
- package/bun-sqlite/driver.js.map +1 -1
- package/bun-sqlite/migrator.cjs.map +1 -1
- package/bun-sqlite/migrator.d.cts +1 -1
- package/bun-sqlite/migrator.d.ts +1 -1
- package/bun-sqlite/migrator.js.map +1 -1
- package/casing.cjs +85 -0
- package/casing.cjs.map +1 -0
- package/casing.d.cts +14 -0
- package/casing.d.ts +14 -0
- package/casing.js +59 -0
- package/casing.js.map +1 -0
- package/column-builder.cjs +7 -0
- package/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +7 -2
- package/column-builder.d.ts +7 -2
- package/column-builder.js +7 -0
- package/column-builder.js.map +1 -1
- package/column.cjs +3 -0
- package/column.cjs.map +1 -1
- package/column.js +3 -0
- package/column.js.map +1 -1
- package/connect.cjs +25 -0
- package/connect.cjs.map +1 -0
- package/connect.d.cts +2 -0
- package/connect.d.ts +2 -0
- package/connect.js +3 -0
- package/connect.js.map +1 -0
- package/d1/driver.cjs +4 -2
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +6 -2
- package/d1/driver.d.ts +6 -2
- package/d1/driver.js +4 -2
- package/d1/driver.js.map +1 -1
- package/d1/migrator.cjs +1 -1
- package/d1/migrator.cjs.map +1 -1
- package/d1/migrator.d.cts +1 -1
- package/d1/migrator.d.ts +1 -1
- package/d1/migrator.js +1 -1
- package/d1/migrator.js.map +1 -1
- package/expo-sqlite/driver.cjs +10 -2
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.d.cts +7 -2
- package/expo-sqlite/driver.d.ts +7 -2
- package/expo-sqlite/driver.js +9 -2
- package/expo-sqlite/driver.js.map +1 -1
- package/expo-sqlite/query.cjs +8 -6
- package/expo-sqlite/query.cjs.map +1 -1
- package/expo-sqlite/query.js +3 -1
- package/expo-sqlite/query.js.map +1 -1
- package/libsql/driver.cjs +4 -2
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +3 -1
- package/libsql/driver.d.ts +3 -1
- package/libsql/driver.js +4 -2
- package/libsql/driver.js.map +1 -1
- package/libsql/migrator.cjs +2 -2
- package/libsql/migrator.cjs.map +1 -1
- package/libsql/migrator.js +2 -2
- package/libsql/migrator.js.map +1 -1
- package/libsql/session.cjs +12 -0
- package/libsql/session.cjs.map +1 -1
- package/libsql/session.d.cts +1 -0
- package/libsql/session.d.ts +1 -0
- package/libsql/session.js +12 -0
- package/libsql/session.js.map +1 -1
- package/migrator.cjs +1 -12
- package/migrator.cjs.map +1 -1
- package/migrator.d.cts +1 -1
- package/migrator.d.ts +1 -1
- package/migrator.js +1 -12
- package/migrator.js.map +1 -1
- package/monodriver.cjs +283 -0
- package/monodriver.cjs.map +1 -0
- package/monodriver.d.cts +194 -0
- package/monodriver.d.ts +194 -0
- package/monodriver.js +249 -0
- package/monodriver.js.map +1 -0
- package/monomigrator.cjs +99 -0
- package/monomigrator.cjs.map +1 -0
- package/monomigrator.d.cts +16 -0
- package/monomigrator.d.ts +16 -0
- package/monomigrator.js +65 -0
- package/monomigrator.js.map +1 -0
- package/mysql-core/columns/all.cjs +80 -0
- package/mysql-core/columns/all.cjs.map +1 -0
- package/mysql-core/columns/all.d.cts +51 -0
- package/mysql-core/columns/all.d.ts +51 -0
- package/mysql-core/columns/all.js +56 -0
- package/mysql-core/columns/all.js.map +1 -0
- package/mysql-core/columns/bigint.cjs +3 -1
- package/mysql-core/columns/bigint.cjs.map +1 -1
- package/mysql-core/columns/bigint.d.cts +2 -2
- package/mysql-core/columns/bigint.d.ts +2 -2
- package/mysql-core/columns/bigint.js +3 -1
- package/mysql-core/columns/bigint.js.map +1 -1
- package/mysql-core/columns/binary.cjs +3 -1
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +2 -0
- package/mysql-core/columns/binary.d.ts +2 -0
- package/mysql-core/columns/binary.js +3 -1
- package/mysql-core/columns/binary.js.map +1 -1
- package/mysql-core/columns/boolean.cjs +1 -1
- package/mysql-core/columns/boolean.cjs.map +1 -1
- package/mysql-core/columns/boolean.d.cts +1 -0
- package/mysql-core/columns/boolean.d.ts +1 -0
- package/mysql-core/columns/boolean.js +1 -1
- package/mysql-core/columns/boolean.js.map +1 -1
- package/mysql-core/columns/char.cjs +3 -1
- package/mysql-core/columns/char.cjs.map +1 -1
- package/mysql-core/columns/char.d.cts +4 -2
- package/mysql-core/columns/char.d.ts +4 -2
- package/mysql-core/columns/char.js +3 -1
- package/mysql-core/columns/char.js.map +1 -1
- package/mysql-core/columns/custom.cjs +4 -2
- package/mysql-core/columns/custom.cjs.map +1 -1
- package/mysql-core/columns/custom.d.cts +10 -3
- package/mysql-core/columns/custom.d.ts +10 -3
- package/mysql-core/columns/custom.js +4 -2
- package/mysql-core/columns/custom.js.map +1 -1
- package/mysql-core/columns/date.cjs +4 -2
- package/mysql-core/columns/date.cjs.map +1 -1
- package/mysql-core/columns/date.d.cts +3 -1
- package/mysql-core/columns/date.d.ts +3 -1
- package/mysql-core/columns/date.js +4 -2
- package/mysql-core/columns/date.js.map +1 -1
- package/mysql-core/columns/datetime.cjs +4 -2
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +3 -1
- package/mysql-core/columns/datetime.d.ts +3 -1
- package/mysql-core/columns/datetime.js +4 -2
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/decimal.cjs +3 -1
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +2 -0
- package/mysql-core/columns/decimal.d.ts +2 -0
- package/mysql-core/columns/decimal.js +3 -1
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/double.cjs +3 -1
- package/mysql-core/columns/double.cjs.map +1 -1
- package/mysql-core/columns/double.d.cts +2 -0
- package/mysql-core/columns/double.d.ts +2 -0
- package/mysql-core/columns/double.js +3 -1
- package/mysql-core/columns/double.js.map +1 -1
- package/mysql-core/columns/enum.cjs +3 -1
- package/mysql-core/columns/enum.cjs.map +1 -1
- package/mysql-core/columns/enum.d.cts +2 -1
- package/mysql-core/columns/enum.d.ts +2 -1
- package/mysql-core/columns/enum.js +3 -1
- package/mysql-core/columns/enum.js.map +1 -1
- package/mysql-core/columns/float.cjs +1 -1
- package/mysql-core/columns/float.cjs.map +1 -1
- package/mysql-core/columns/float.d.cts +1 -0
- package/mysql-core/columns/float.d.ts +1 -0
- package/mysql-core/columns/float.js +1 -1
- package/mysql-core/columns/float.js.map +1 -1
- package/mysql-core/columns/int.cjs +3 -1
- package/mysql-core/columns/int.cjs.map +1 -1
- package/mysql-core/columns/int.d.cts +2 -0
- package/mysql-core/columns/int.d.ts +2 -0
- package/mysql-core/columns/int.js +3 -1
- package/mysql-core/columns/int.js.map +1 -1
- package/mysql-core/columns/json.cjs +1 -1
- package/mysql-core/columns/json.cjs.map +1 -1
- package/mysql-core/columns/json.d.cts +1 -0
- package/mysql-core/columns/json.d.ts +1 -0
- package/mysql-core/columns/json.js +1 -1
- package/mysql-core/columns/json.js.map +1 -1
- package/mysql-core/columns/mediumint.cjs +3 -1
- package/mysql-core/columns/mediumint.cjs.map +1 -1
- package/mysql-core/columns/mediumint.d.cts +2 -0
- package/mysql-core/columns/mediumint.d.ts +2 -0
- package/mysql-core/columns/mediumint.js +3 -1
- package/mysql-core/columns/mediumint.js.map +1 -1
- package/mysql-core/columns/real.cjs +3 -1
- package/mysql-core/columns/real.cjs.map +1 -1
- package/mysql-core/columns/real.d.cts +2 -0
- package/mysql-core/columns/real.d.ts +2 -0
- package/mysql-core/columns/real.js +3 -1
- package/mysql-core/columns/real.js.map +1 -1
- package/mysql-core/columns/serial.cjs +1 -1
- package/mysql-core/columns/serial.cjs.map +1 -1
- package/mysql-core/columns/serial.d.cts +1 -0
- package/mysql-core/columns/serial.d.ts +1 -0
- package/mysql-core/columns/serial.js +1 -1
- package/mysql-core/columns/serial.js.map +1 -1
- package/mysql-core/columns/smallint.cjs +3 -1
- package/mysql-core/columns/smallint.cjs.map +1 -1
- package/mysql-core/columns/smallint.d.cts +2 -0
- package/mysql-core/columns/smallint.d.ts +2 -0
- package/mysql-core/columns/smallint.js +3 -1
- package/mysql-core/columns/smallint.js.map +1 -1
- package/mysql-core/columns/text.cjs +9 -4
- package/mysql-core/columns/text.cjs.map +1 -1
- package/mysql-core/columns/text.d.cts +10 -2
- package/mysql-core/columns/text.d.ts +10 -2
- package/mysql-core/columns/text.js +9 -4
- package/mysql-core/columns/text.js.map +1 -1
- package/mysql-core/columns/time.cjs +3 -1
- package/mysql-core/columns/time.cjs.map +1 -1
- package/mysql-core/columns/time.d.cts +2 -0
- package/mysql-core/columns/time.d.ts +2 -0
- package/mysql-core/columns/time.js +3 -1
- package/mysql-core/columns/time.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs +4 -2
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +3 -1
- package/mysql-core/columns/timestamp.d.ts +3 -1
- package/mysql-core/columns/timestamp.js +4 -2
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/mysql-core/columns/tinyint.cjs +3 -1
- package/mysql-core/columns/tinyint.cjs.map +1 -1
- package/mysql-core/columns/tinyint.d.cts +2 -0
- package/mysql-core/columns/tinyint.d.ts +2 -0
- package/mysql-core/columns/tinyint.js +3 -1
- package/mysql-core/columns/tinyint.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs +4 -2
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +2 -1
- package/mysql-core/columns/varbinary.d.ts +2 -1
- package/mysql-core/columns/varbinary.js +4 -2
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs +3 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +3 -2
- package/mysql-core/columns/varchar.d.ts +3 -2
- package/mysql-core/columns/varchar.js +3 -1
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/columns/year.cjs +1 -1
- package/mysql-core/columns/year.cjs.map +1 -1
- package/mysql-core/columns/year.d.cts +1 -0
- package/mysql-core/columns/year.d.ts +1 -0
- package/mysql-core/columns/year.js +1 -1
- package/mysql-core/columns/year.js.map +1 -1
- package/mysql-core/db.cjs +8 -2
- package/mysql-core/db.cjs.map +1 -1
- package/mysql-core/db.d.cts +5 -2
- package/mysql-core/db.d.ts +5 -2
- package/mysql-core/db.js +8 -2
- package/mysql-core/db.js.map +1 -1
- package/mysql-core/dialect.cjs +14 -7
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +5 -1
- package/mysql-core/dialect.d.ts +5 -1
- package/mysql-core/dialect.js +14 -7
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/foreign-keys.cjs +3 -3
- package/mysql-core/foreign-keys.cjs.map +1 -1
- package/mysql-core/foreign-keys.d.cts +1 -1
- package/mysql-core/foreign-keys.d.ts +1 -1
- package/mysql-core/foreign-keys.js +3 -3
- package/mysql-core/foreign-keys.js.map +1 -1
- package/mysql-core/query-builders/count.cjs +73 -0
- package/mysql-core/query-builders/count.cjs.map +1 -0
- package/mysql-core/query-builders/count.d.cts +26 -0
- package/mysql-core/query-builders/count.d.ts +26 -0
- package/mysql-core/query-builders/count.js +49 -0
- package/mysql-core/query-builders/count.js.map +1 -0
- package/mysql-core/query-builders/query-builder.cjs +6 -1
- package/mysql-core/query-builders/query-builder.cjs.map +1 -1
- package/mysql-core/query-builders/query-builder.d.cts +4 -0
- package/mysql-core/query-builders/query-builder.d.ts +4 -0
- package/mysql-core/query-builders/query-builder.js +7 -2
- package/mysql-core/query-builders/query-builder.js.map +1 -1
- package/mysql-core/session.cjs +6 -0
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.d.cts +1 -0
- package/mysql-core/session.d.ts +1 -0
- package/mysql-core/session.js +6 -0
- package/mysql-core/session.js.map +1 -1
- package/mysql-core/table.cjs +4 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.d.cts +8 -1
- package/mysql-core/table.d.ts +8 -1
- package/mysql-core/table.js +4 -1
- package/mysql-core/table.js.map +1 -1
- package/mysql-core/unique-constraint.cjs +2 -2
- package/mysql-core/unique-constraint.cjs.map +1 -1
- package/mysql-core/unique-constraint.d.cts +1 -1
- package/mysql-core/unique-constraint.d.ts +1 -1
- package/mysql-core/unique-constraint.js +2 -2
- package/mysql-core/unique-constraint.js.map +1 -1
- package/mysql-proxy/driver.cjs +8 -2
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.d.cts +4 -1
- package/mysql-proxy/driver.d.ts +4 -1
- package/mysql-proxy/driver.js +7 -2
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql2/driver.cjs +13 -8
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +6 -2
- package/mysql2/driver.d.ts +6 -2
- package/mysql2/driver.js +11 -7
- package/mysql2/driver.js.map +1 -1
- package/neon-http/driver.cjs +4 -2
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +3 -1
- package/neon-http/driver.d.ts +3 -1
- package/neon-http/driver.js +4 -2
- package/neon-http/driver.js.map +1 -1
- package/neon-http/migrator.cjs +2 -2
- package/neon-http/migrator.cjs.map +1 -1
- package/neon-http/migrator.d.cts +1 -1
- package/neon-http/migrator.d.ts +1 -1
- package/neon-http/migrator.js +2 -2
- package/neon-http/migrator.js.map +1 -1
- package/neon-http/session.cjs +6 -0
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +2 -1
- package/neon-http/session.d.ts +2 -1
- package/neon-http/session.js +6 -0
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +9 -2
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +6 -2
- package/neon-serverless/driver.d.ts +6 -2
- package/neon-serverless/driver.js +8 -2
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/migrator.cjs.map +1 -1
- package/neon-serverless/migrator.d.cts +1 -1
- package/neon-serverless/migrator.d.ts +1 -1
- package/neon-serverless/migrator.js.map +1 -1
- package/node-postgres/driver.cjs +9 -2
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +6 -2
- package/node-postgres/driver.d.ts +6 -2
- package/node-postgres/driver.js +8 -2
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/migrator.cjs.map +1 -1
- package/node-postgres/migrator.d.cts +1 -1
- package/node-postgres/migrator.d.ts +1 -1
- package/node-postgres/migrator.js.map +1 -1
- package/node-postgres/session.cjs +6 -0
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +2 -1
- package/node-postgres/session.d.ts +2 -1
- package/node-postgres/session.js +6 -0
- package/node-postgres/session.js.map +1 -1
- package/op-sqlite/driver.cjs +10 -2
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.d.cts +7 -2
- package/op-sqlite/driver.d.ts +7 -2
- package/op-sqlite/driver.js +9 -2
- package/op-sqlite/driver.js.map +1 -1
- package/operations.cjs.map +1 -1
- package/package.json +184 -51
- package/pg-core/columns/all.cjs +96 -0
- package/pg-core/columns/all.cjs.map +1 -0
- package/pg-core/columns/all.d.cts +67 -0
- package/pg-core/columns/all.d.ts +67 -0
- package/pg-core/columns/all.js +72 -0
- package/pg-core/columns/all.js.map +1 -0
- package/pg-core/columns/bigint.cjs +3 -1
- package/pg-core/columns/bigint.cjs.map +1 -1
- package/pg-core/columns/bigint.d.cts +2 -2
- package/pg-core/columns/bigint.d.ts +2 -2
- package/pg-core/columns/bigint.js +3 -1
- package/pg-core/columns/bigint.js.map +1 -1
- package/pg-core/columns/bigserial.cjs +4 -2
- package/pg-core/columns/bigserial.cjs.map +1 -1
- package/pg-core/columns/bigserial.d.cts +2 -2
- package/pg-core/columns/bigserial.d.ts +2 -2
- package/pg-core/columns/bigserial.js +4 -2
- package/pg-core/columns/bigserial.js.map +1 -1
- package/pg-core/columns/boolean.cjs +1 -1
- package/pg-core/columns/boolean.cjs.map +1 -1
- package/pg-core/columns/boolean.d.cts +1 -0
- package/pg-core/columns/boolean.d.ts +1 -0
- package/pg-core/columns/boolean.js +1 -1
- package/pg-core/columns/boolean.js.map +1 -1
- package/pg-core/columns/char.cjs +3 -1
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.d.cts +5 -3
- package/pg-core/columns/char.d.ts +5 -3
- package/pg-core/columns/char.js +3 -1
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/cidr.cjs +1 -1
- package/pg-core/columns/cidr.cjs.map +1 -1
- package/pg-core/columns/cidr.d.cts +1 -0
- package/pg-core/columns/cidr.d.ts +1 -0
- package/pg-core/columns/cidr.js +1 -1
- package/pg-core/columns/cidr.js.map +1 -1
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +1 -1
- package/pg-core/columns/common.d.ts +1 -1
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/custom.cjs +4 -2
- package/pg-core/columns/custom.cjs.map +1 -1
- package/pg-core/columns/custom.d.cts +10 -3
- package/pg-core/columns/custom.d.ts +10 -3
- package/pg-core/columns/custom.js +4 -2
- package/pg-core/columns/custom.js.map +1 -1
- package/pg-core/columns/date.cjs +3 -1
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.d.cts +7 -6
- package/pg-core/columns/date.d.ts +7 -6
- package/pg-core/columns/date.js +3 -1
- package/pg-core/columns/date.js.map +1 -1
- package/pg-core/columns/double-precision.cjs +1 -1
- package/pg-core/columns/double-precision.cjs.map +1 -1
- package/pg-core/columns/double-precision.d.cts +1 -0
- package/pg-core/columns/double-precision.d.ts +1 -0
- package/pg-core/columns/double-precision.js +1 -1
- package/pg-core/columns/double-precision.js.map +1 -1
- package/pg-core/columns/enum.cjs +1 -1
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.d.cts +3 -1
- package/pg-core/columns/enum.d.ts +3 -1
- package/pg-core/columns/enum.js +1 -1
- package/pg-core/columns/enum.js.map +1 -1
- package/pg-core/columns/index.cjs +2 -0
- package/pg-core/columns/index.cjs.map +1 -1
- package/pg-core/columns/index.d.cts +1 -0
- package/pg-core/columns/index.d.ts +1 -0
- package/pg-core/columns/index.js +1 -0
- package/pg-core/columns/index.js.map +1 -1
- package/pg-core/columns/inet.cjs +1 -1
- package/pg-core/columns/inet.cjs.map +1 -1
- package/pg-core/columns/inet.d.cts +1 -0
- package/pg-core/columns/inet.d.ts +1 -0
- package/pg-core/columns/inet.js +1 -1
- package/pg-core/columns/inet.js.map +1 -1
- package/pg-core/columns/integer.cjs +1 -1
- package/pg-core/columns/integer.cjs.map +1 -1
- package/pg-core/columns/integer.d.cts +1 -0
- package/pg-core/columns/integer.d.ts +1 -0
- package/pg-core/columns/integer.js +1 -1
- package/pg-core/columns/integer.js.map +1 -1
- package/pg-core/columns/interval.cjs +3 -1
- package/pg-core/columns/interval.cjs.map +1 -1
- package/pg-core/columns/interval.d.cts +2 -0
- package/pg-core/columns/interval.d.ts +2 -0
- package/pg-core/columns/interval.js +3 -1
- package/pg-core/columns/interval.js.map +1 -1
- package/pg-core/columns/json.cjs +1 -1
- package/pg-core/columns/json.cjs.map +1 -1
- package/pg-core/columns/json.d.cts +1 -0
- package/pg-core/columns/json.d.ts +1 -0
- package/pg-core/columns/json.js +1 -1
- package/pg-core/columns/json.js.map +1 -1
- package/pg-core/columns/jsonb.cjs +1 -1
- package/pg-core/columns/jsonb.cjs.map +1 -1
- package/pg-core/columns/jsonb.d.cts +1 -0
- package/pg-core/columns/jsonb.d.ts +1 -0
- package/pg-core/columns/jsonb.js +1 -1
- package/pg-core/columns/jsonb.js.map +1 -1
- package/pg-core/columns/line.cjs +3 -1
- package/pg-core/columns/line.cjs.map +1 -1
- package/pg-core/columns/line.d.cts +3 -1
- package/pg-core/columns/line.d.ts +3 -1
- package/pg-core/columns/line.js +3 -1
- package/pg-core/columns/line.js.map +1 -1
- package/pg-core/columns/macaddr.cjs +1 -1
- package/pg-core/columns/macaddr.cjs.map +1 -1
- package/pg-core/columns/macaddr.d.cts +1 -0
- package/pg-core/columns/macaddr.d.ts +1 -0
- package/pg-core/columns/macaddr.js +1 -1
- package/pg-core/columns/macaddr.js.map +1 -1
- package/pg-core/columns/macaddr8.cjs +1 -1
- package/pg-core/columns/macaddr8.cjs.map +1 -1
- package/pg-core/columns/macaddr8.d.cts +1 -0
- package/pg-core/columns/macaddr8.d.ts +1 -0
- package/pg-core/columns/macaddr8.js +1 -1
- package/pg-core/columns/macaddr8.js.map +1 -1
- package/pg-core/columns/numeric.cjs +3 -1
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +6 -3
- package/pg-core/columns/numeric.d.ts +6 -3
- package/pg-core/columns/numeric.js +3 -1
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/point.cjs +3 -1
- package/pg-core/columns/point.cjs.map +1 -1
- package/pg-core/columns/point.d.cts +5 -3
- package/pg-core/columns/point.d.ts +5 -3
- package/pg-core/columns/point.js +3 -1
- package/pg-core/columns/point.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs +6 -4
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +4 -3
- package/pg-core/columns/postgis_extension/geometry.d.ts +4 -3
- package/pg-core/columns/postgis_extension/geometry.js +3 -1
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/columns/real.cjs +1 -1
- package/pg-core/columns/real.cjs.map +1 -1
- package/pg-core/columns/real.d.cts +2 -1
- package/pg-core/columns/real.d.ts +2 -1
- package/pg-core/columns/real.js +1 -1
- package/pg-core/columns/real.js.map +1 -1
- package/pg-core/columns/serial.cjs +1 -1
- package/pg-core/columns/serial.cjs.map +1 -1
- package/pg-core/columns/serial.d.cts +2 -1
- package/pg-core/columns/serial.d.ts +2 -1
- package/pg-core/columns/serial.js +1 -1
- package/pg-core/columns/serial.js.map +1 -1
- package/pg-core/columns/smallint.cjs +1 -1
- package/pg-core/columns/smallint.cjs.map +1 -1
- package/pg-core/columns/smallint.d.cts +1 -0
- package/pg-core/columns/smallint.d.ts +1 -0
- package/pg-core/columns/smallint.js +1 -1
- package/pg-core/columns/smallint.js.map +1 -1
- package/pg-core/columns/smallserial.cjs +1 -1
- package/pg-core/columns/smallserial.cjs.map +1 -1
- package/pg-core/columns/smallserial.d.cts +2 -1
- package/pg-core/columns/smallserial.d.ts +2 -1
- package/pg-core/columns/smallserial.js +1 -1
- package/pg-core/columns/smallserial.js.map +1 -1
- package/pg-core/columns/text.cjs +3 -1
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.d.cts +4 -2
- package/pg-core/columns/text.d.ts +4 -2
- package/pg-core/columns/text.js +3 -1
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/columns/time.cjs +3 -1
- package/pg-core/columns/time.cjs.map +1 -1
- package/pg-core/columns/time.d.cts +2 -0
- package/pg-core/columns/time.d.ts +2 -0
- package/pg-core/columns/time.js +3 -1
- package/pg-core/columns/time.js.map +1 -1
- package/pg-core/columns/timestamp.cjs +5 -3
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +5 -3
- package/pg-core/columns/timestamp.d.ts +5 -3
- package/pg-core/columns/timestamp.js +5 -3
- package/pg-core/columns/timestamp.js.map +1 -1
- package/pg-core/columns/uuid.cjs +1 -1
- package/pg-core/columns/uuid.cjs.map +1 -1
- package/pg-core/columns/uuid.d.cts +1 -0
- package/pg-core/columns/uuid.d.ts +1 -0
- package/pg-core/columns/uuid.js +1 -1
- package/pg-core/columns/uuid.js.map +1 -1
- package/pg-core/columns/varchar.cjs +3 -1
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.d.cts +5 -3
- package/pg-core/columns/varchar.d.ts +5 -3
- package/pg-core/columns/varchar.js +3 -1
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs +3 -1
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.d.cts +1 -0
- package/pg-core/columns/vector_extension/bit.d.ts +1 -0
- package/pg-core/columns/vector_extension/bit.js +3 -1
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs +3 -1
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.d.cts +1 -0
- package/pg-core/columns/vector_extension/halfvec.d.ts +1 -0
- package/pg-core/columns/vector_extension/halfvec.js +3 -1
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs +3 -1
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/sparsevec.d.cts +1 -0
- package/pg-core/columns/vector_extension/sparsevec.d.ts +1 -0
- package/pg-core/columns/vector_extension/sparsevec.js +3 -1
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +3 -1
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
- package/pg-core/columns/vector_extension/vector.d.cts +1 -0
- package/pg-core/columns/vector_extension/vector.d.ts +1 -0
- package/pg-core/columns/vector_extension/vector.js +3 -1
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/db.cjs +10 -4
- package/pg-core/db.cjs.map +1 -1
- package/pg-core/db.d.cts +6 -3
- package/pg-core/db.d.ts +6 -3
- package/pg-core/db.js +10 -4
- package/pg-core/db.js.map +1 -1
- package/pg-core/dialect.cjs +13 -4
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +5 -1
- package/pg-core/dialect.d.ts +5 -1
- package/pg-core/dialect.js +13 -4
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/foreign-keys.cjs +3 -3
- package/pg-core/foreign-keys.cjs.map +1 -1
- package/pg-core/foreign-keys.d.cts +1 -1
- package/pg-core/foreign-keys.d.ts +1 -1
- package/pg-core/foreign-keys.js +3 -3
- package/pg-core/foreign-keys.js.map +1 -1
- package/pg-core/query-builders/count.cjs +73 -0
- package/pg-core/query-builders/count.cjs.map +1 -0
- package/pg-core/query-builders/count.d.cts +25 -0
- package/pg-core/query-builders/count.d.ts +25 -0
- package/pg-core/query-builders/count.js +49 -0
- package/pg-core/query-builders/count.js.map +1 -0
- package/pg-core/query-builders/insert.cjs +2 -2
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.js +2 -2
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query-builder.cjs +6 -1
- package/pg-core/query-builders/query-builder.cjs.map +1 -1
- package/pg-core/query-builders/query-builder.d.cts +4 -0
- package/pg-core/query-builders/query-builder.d.ts +4 -0
- package/pg-core/query-builders/query-builder.js +7 -2
- package/pg-core/query-builders/query-builder.js.map +1 -1
- package/pg-core/session.cjs +6 -0
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +1 -0
- package/pg-core/session.d.ts +1 -0
- package/pg-core/session.js +6 -0
- package/pg-core/session.js.map +1 -1
- package/pg-core/table.cjs +6 -2
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +7 -0
- package/pg-core/table.d.ts +7 -0
- package/pg-core/table.js +6 -2
- package/pg-core/table.js.map +1 -1
- package/pg-core/unique-constraint.cjs +2 -2
- package/pg-core/unique-constraint.cjs.map +1 -1
- package/pg-core/unique-constraint.d.cts +1 -1
- package/pg-core/unique-constraint.d.ts +1 -1
- package/pg-core/unique-constraint.js +2 -2
- package/pg-core/unique-constraint.js.map +1 -1
- package/pg-proxy/driver.cjs +8 -2
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +4 -1
- package/pg-proxy/driver.d.ts +4 -1
- package/pg-proxy/driver.js +7 -2
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/migrator.cjs.map +1 -1
- package/pg-proxy/migrator.d.cts +1 -1
- package/pg-proxy/migrator.d.ts +1 -1
- package/pg-proxy/migrator.js.map +1 -1
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +9 -2
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +6 -2
- package/pglite/driver.d.ts +6 -2
- package/pglite/driver.js +8 -2
- package/pglite/driver.js.map +1 -1
- package/pglite/migrator.cjs.map +1 -1
- package/pglite/migrator.d.cts +1 -1
- package/pglite/migrator.d.ts +1 -1
- package/pglite/migrator.js.map +1 -1
- package/pglite/session.cjs +6 -0
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +2 -1
- package/pglite/session.d.ts +2 -1
- package/pglite/session.js +6 -0
- package/pglite/session.js.map +1 -1
- package/planetscale-serverless/driver.cjs +10 -2
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +7 -2
- package/planetscale-serverless/driver.d.ts +7 -2
- package/planetscale-serverless/driver.js +9 -2
- package/planetscale-serverless/driver.js.map +1 -1
- package/planetscale-serverless/migrator.cjs.map +1 -1
- package/planetscale-serverless/migrator.js.map +1 -1
- package/planetscale-serverless/session.cjs +6 -0
- package/planetscale-serverless/session.cjs.map +1 -1
- package/planetscale-serverless/session.d.cts +1 -0
- package/planetscale-serverless/session.d.ts +1 -0
- package/planetscale-serverless/session.js +6 -0
- package/planetscale-serverless/session.js.map +1 -1
- package/postgres-js/driver.cjs +10 -2
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +7 -2
- package/postgres-js/driver.d.ts +7 -2
- package/postgres-js/driver.js +9 -2
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/migrator.cjs.map +1 -1
- package/postgres-js/migrator.d.cts +1 -1
- package/postgres-js/migrator.d.ts +1 -1
- package/postgres-js/migrator.js.map +1 -1
- package/sql/functions/vector.cjs.map +1 -1
- package/sql/functions/vector.d.cts +1 -1
- package/sql/functions/vector.d.ts +1 -1
- package/sql/functions/vector.js.map +1 -1
- package/sql/sql.cjs +4 -2
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +2 -0
- package/sql/sql.d.ts +2 -0
- package/sql/sql.js +4 -2
- package/sql/sql.js.map +1 -1
- package/sql-js/driver.cjs +1 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.js +1 -1
- package/sql-js/driver.js.map +1 -1
- package/sql-js/migrator.cjs.map +1 -1
- package/sql-js/migrator.d.cts +1 -1
- package/sql-js/migrator.d.ts +1 -1
- package/sql-js/migrator.js.map +1 -1
- package/sqlite-core/columns/all.cjs +44 -0
- package/sqlite-core/columns/all.cjs.map +1 -0
- package/sqlite-core/columns/all.d.cts +15 -0
- package/sqlite-core/columns/all.d.ts +15 -0
- package/sqlite-core/columns/all.js +20 -0
- package/sqlite-core/columns/all.js.map +1 -0
- package/sqlite-core/columns/blob.cjs +3 -1
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +3 -1
- package/sqlite-core/columns/blob.d.ts +3 -1
- package/sqlite-core/columns/blob.js +3 -1
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/columns/custom.cjs +5 -3
- package/sqlite-core/columns/custom.cjs.map +1 -1
- package/sqlite-core/columns/custom.d.cts +10 -3
- package/sqlite-core/columns/custom.d.ts +10 -3
- package/sqlite-core/columns/custom.js +5 -3
- package/sqlite-core/columns/custom.js.map +1 -1
- package/sqlite-core/columns/integer.cjs +3 -1
- package/sqlite-core/columns/integer.cjs.map +1 -1
- package/sqlite-core/columns/integer.d.cts +3 -1
- package/sqlite-core/columns/integer.d.ts +3 -1
- package/sqlite-core/columns/integer.js +3 -1
- package/sqlite-core/columns/integer.js.map +1 -1
- package/sqlite-core/columns/numeric.cjs +1 -1
- package/sqlite-core/columns/numeric.cjs.map +1 -1
- package/sqlite-core/columns/numeric.d.cts +1 -0
- package/sqlite-core/columns/numeric.d.ts +1 -0
- package/sqlite-core/columns/numeric.js +1 -1
- package/sqlite-core/columns/numeric.js.map +1 -1
- package/sqlite-core/columns/real.cjs +1 -1
- package/sqlite-core/columns/real.cjs.map +1 -1
- package/sqlite-core/columns/real.d.cts +1 -0
- package/sqlite-core/columns/real.d.ts +1 -0
- package/sqlite-core/columns/real.js +1 -1
- package/sqlite-core/columns/real.js.map +1 -1
- package/sqlite-core/columns/text.cjs +7 -2
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +4 -2
- package/sqlite-core/columns/text.d.ts +4 -2
- package/sqlite-core/columns/text.js +7 -2
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/db.cjs +23 -17
- package/sqlite-core/db.cjs.map +1 -1
- package/sqlite-core/db.d.cts +8 -5
- package/sqlite-core/db.d.ts +8 -5
- package/sqlite-core/db.js +23 -17
- package/sqlite-core/db.js.map +1 -1
- package/sqlite-core/dialect.cjs +14 -8
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +5 -1
- package/sqlite-core/dialect.d.ts +5 -1
- package/sqlite-core/dialect.js +14 -8
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/foreign-keys.cjs +3 -3
- package/sqlite-core/foreign-keys.cjs.map +1 -1
- package/sqlite-core/foreign-keys.d.cts +1 -1
- package/sqlite-core/foreign-keys.d.ts +1 -1
- package/sqlite-core/foreign-keys.js +3 -3
- package/sqlite-core/foreign-keys.js.map +1 -1
- package/sqlite-core/query-builders/count.cjs +72 -0
- package/sqlite-core/query-builders/count.cjs.map +1 -0
- package/sqlite-core/query-builders/count.d.cts +26 -0
- package/sqlite-core/query-builders/count.d.ts +26 -0
- package/sqlite-core/query-builders/count.js +48 -0
- package/sqlite-core/query-builders/count.js.map +1 -0
- package/sqlite-core/query-builders/query-builder.cjs +6 -1
- package/sqlite-core/query-builders/query-builder.cjs.map +1 -1
- package/sqlite-core/query-builders/query-builder.d.cts +4 -0
- package/sqlite-core/query-builders/query-builder.d.ts +4 -0
- package/sqlite-core/query-builders/query-builder.js +8 -3
- package/sqlite-core/query-builders/query-builder.js.map +1 -1
- package/sqlite-core/query-builders/raw.cjs.map +1 -1
- package/sqlite-core/query-builders/raw.d.cts +2 -2
- package/sqlite-core/query-builders/raw.d.ts +2 -2
- package/sqlite-core/query-builders/raw.js.map +1 -1
- package/sqlite-core/session.cjs +4 -0
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +1 -0
- package/sqlite-core/session.d.ts +1 -0
- package/sqlite-core/session.js +4 -0
- package/sqlite-core/session.js.map +1 -1
- package/sqlite-core/table.cjs +4 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.d.cts +7 -0
- package/sqlite-core/table.d.ts +7 -0
- package/sqlite-core/table.js +4 -1
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-core/unique-constraint.cjs +2 -2
- package/sqlite-core/unique-constraint.cjs.map +1 -1
- package/sqlite-core/unique-constraint.d.cts +1 -1
- package/sqlite-core/unique-constraint.d.ts +1 -1
- package/sqlite-core/unique-constraint.js +2 -2
- package/sqlite-core/unique-constraint.js.map +1 -1
- package/sqlite-proxy/driver.cjs +1 -1
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +1 -1
- package/sqlite-proxy/driver.js.map +1 -1
- package/sqlite-proxy/migrator.cjs.map +1 -1
- package/sqlite-proxy/migrator.d.cts +1 -1
- package/sqlite-proxy/migrator.d.ts +1 -1
- package/sqlite-proxy/migrator.js.map +1 -1
- package/table.cjs +6 -8
- package/table.cjs.map +1 -1
- package/table.js +1 -2
- package/table.js.map +1 -1
- package/table.utils.cjs +29 -0
- package/table.utils.cjs.map +1 -0
- package/table.utils.d.cts +1 -0
- package/table.utils.d.ts +1 -0
- package/table.utils.js +5 -0
- package/table.utils.js.map +1 -0
- package/tidb-serverless/driver.cjs +10 -2
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +7 -2
- package/tidb-serverless/driver.d.ts +7 -2
- package/tidb-serverless/driver.js +9 -2
- package/tidb-serverless/driver.js.map +1 -1
- package/tidb-serverless/session.cjs +6 -0
- package/tidb-serverless/session.cjs.map +1 -1
- package/tidb-serverless/session.d.cts +1 -0
- package/tidb-serverless/session.d.ts +1 -0
- package/tidb-serverless/session.js +6 -0
- package/tidb-serverless/session.js.map +1 -1
- package/utils.cjs +8 -0
- package/utils.cjs.map +1 -1
- package/utils.d.cts +3 -0
- package/utils.d.ts +3 -0
- package/utils.js +7 -0
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +9 -2
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +6 -2
- package/vercel-postgres/driver.d.ts +6 -2
- package/vercel-postgres/driver.js +8 -2
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/migrator.cjs.map +1 -1
- package/vercel-postgres/migrator.d.cts +1 -1
- package/vercel-postgres/migrator.d.ts +1 -1
- package/vercel-postgres/migrator.js.map +1 -1
- package/version.cjs +2 -2
- package/version.cjs.map +1 -1
- package/version.d.cts +2 -2
- package/version.d.ts +2 -2
- package/version.js +2 -2
- package/version.js.map +1 -1
- package/xata-http/driver.cjs +4 -2
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +3 -1
- package/xata-http/driver.d.ts +3 -1
- package/xata-http/driver.js +4 -2
- package/xata-http/driver.js.map +1 -1
- package/xata-http/migrator.cjs +1 -1
- package/xata-http/migrator.cjs.map +1 -1
- package/xata-http/migrator.d.cts +1 -1
- package/xata-http/migrator.d.ts +1 -1
- package/xata-http/migrator.js +1 -1
- package/xata-http/migrator.js.map +1 -1
package/postgres-js/driver.cjs
CHANGED
|
@@ -18,14 +18,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var driver_exports = {};
|
|
20
20
|
__export(driver_exports, {
|
|
21
|
+
PostgresJsDatabase: () => PostgresJsDatabase,
|
|
21
22
|
drizzle: () => drizzle
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(driver_exports);
|
|
25
|
+
var import_entity = require("../entity.cjs");
|
|
24
26
|
var import_logger = require("../logger.cjs");
|
|
25
27
|
var import_db = require("../pg-core/db.cjs");
|
|
26
28
|
var import_dialect = require("../pg-core/dialect.cjs");
|
|
27
29
|
var import_relations = require("../relations.cjs");
|
|
28
30
|
var import_session = require("./session.cjs");
|
|
31
|
+
class PostgresJsDatabase extends import_db.PgDatabase {
|
|
32
|
+
static [import_entity.entityKind] = "PostgresJsDatabase";
|
|
33
|
+
}
|
|
29
34
|
function drizzle(client, config = {}) {
|
|
30
35
|
const transparentParser = (val) => val;
|
|
31
36
|
for (const type of ["1184", "1082", "1083", "1114"]) {
|
|
@@ -34,7 +39,7 @@ function drizzle(client, config = {}) {
|
|
|
34
39
|
}
|
|
35
40
|
client.options.serializers["114"] = transparentParser;
|
|
36
41
|
client.options.serializers["3802"] = transparentParser;
|
|
37
|
-
const dialect = new import_dialect.PgDialect();
|
|
42
|
+
const dialect = new import_dialect.PgDialect({ casing: config.casing });
|
|
38
43
|
let logger;
|
|
39
44
|
if (config.logger === true) {
|
|
40
45
|
logger = new import_logger.DefaultLogger();
|
|
@@ -54,10 +59,13 @@ function drizzle(client, config = {}) {
|
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
61
|
const session = new import_session.PostgresJsSession(client, dialect, schema, { logger });
|
|
57
|
-
|
|
62
|
+
const db = new PostgresJsDatabase(dialect, session, schema);
|
|
63
|
+
db.$client = client;
|
|
64
|
+
return db;
|
|
58
65
|
}
|
|
59
66
|
// Annotate the CommonJS export names for ESM import in node:
|
|
60
67
|
0 && (module.exports = {
|
|
68
|
+
PostgresJsDatabase,
|
|
61
69
|
drizzle
|
|
62
70
|
});
|
|
63
71
|
//# sourceMappingURL=driver.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport
|
|
1
|
+
{"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new PostgresJsSession(client, dialect, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, schema as any) as PostgresJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,oBAA8B;AAC9B,gBAA2B;AAC3B,qBAA0B;AAC1B,uBAKO;AAGP,qBAAkC;AAE3B,MAAM,2BAEH,qBAA8C;AAAA,EACvD,QAAiB,wBAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,QAAM,UAAU,IAAI,yBAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,iCAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,MAAa;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
|
package/postgres-js/driver.d.cts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { Sql } from 'postgres';
|
|
2
|
+
import { entityKind } from "../entity.cjs";
|
|
2
3
|
import { PgDatabase } from "../pg-core/db.cjs";
|
|
3
4
|
import type { DrizzleConfig } from "../utils.cjs";
|
|
4
5
|
import type { PostgresJsQueryResultHKT } from "./session.cjs";
|
|
5
|
-
export
|
|
6
|
-
|
|
6
|
+
export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {
|
|
7
|
+
static readonly [entityKind]: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema> & {
|
|
10
|
+
$client: Sql;
|
|
11
|
+
};
|
package/postgres-js/driver.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { Sql } from 'postgres';
|
|
2
|
+
import { entityKind } from "../entity.js";
|
|
2
3
|
import { PgDatabase } from "../pg-core/db.js";
|
|
3
4
|
import type { DrizzleConfig } from "../utils.js";
|
|
4
5
|
import type { PostgresJsQueryResultHKT } from "./session.js";
|
|
5
|
-
export
|
|
6
|
-
|
|
6
|
+
export declare class PostgresJsDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {
|
|
7
|
+
static readonly [entityKind]: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(client: Sql, config?: DrizzleConfig<TSchema>): PostgresJsDatabase<TSchema> & {
|
|
10
|
+
$client: Sql;
|
|
11
|
+
};
|
package/postgres-js/driver.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { entityKind } from "../entity.js";
|
|
1
2
|
import { DefaultLogger } from "../logger.js";
|
|
2
3
|
import { PgDatabase } from "../pg-core/db.js";
|
|
3
4
|
import { PgDialect } from "../pg-core/dialect.js";
|
|
@@ -6,6 +7,9 @@ import {
|
|
|
6
7
|
extractTablesRelationalConfig
|
|
7
8
|
} from "../relations.js";
|
|
8
9
|
import { PostgresJsSession } from "./session.js";
|
|
10
|
+
class PostgresJsDatabase extends PgDatabase {
|
|
11
|
+
static [entityKind] = "PostgresJsDatabase";
|
|
12
|
+
}
|
|
9
13
|
function drizzle(client, config = {}) {
|
|
10
14
|
const transparentParser = (val) => val;
|
|
11
15
|
for (const type of ["1184", "1082", "1083", "1114"]) {
|
|
@@ -14,7 +18,7 @@ function drizzle(client, config = {}) {
|
|
|
14
18
|
}
|
|
15
19
|
client.options.serializers["114"] = transparentParser;
|
|
16
20
|
client.options.serializers["3802"] = transparentParser;
|
|
17
|
-
const dialect = new PgDialect();
|
|
21
|
+
const dialect = new PgDialect({ casing: config.casing });
|
|
18
22
|
let logger;
|
|
19
23
|
if (config.logger === true) {
|
|
20
24
|
logger = new DefaultLogger();
|
|
@@ -34,9 +38,12 @@ function drizzle(client, config = {}) {
|
|
|
34
38
|
};
|
|
35
39
|
}
|
|
36
40
|
const session = new PostgresJsSession(client, dialect, schema, { logger });
|
|
37
|
-
|
|
41
|
+
const db = new PostgresJsDatabase(dialect, session, schema);
|
|
42
|
+
db.$client = client;
|
|
43
|
+
return db;
|
|
38
44
|
}
|
|
39
45
|
export {
|
|
46
|
+
PostgresJsDatabase,
|
|
40
47
|
drizzle
|
|
41
48
|
};
|
|
42
49
|
//# sourceMappingURL=driver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport
|
|
1
|
+
{"version":3,"sources":["../../src/postgres-js/driver.ts"],"sourcesContent":["import type { Sql } from 'postgres';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgDatabase } from '~/pg-core/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { PostgresJsQueryResultHKT } from './session.ts';\nimport { PostgresJsSession } from './session.ts';\n\nexport class PostgresJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends PgDatabase<PostgresJsQueryResultHKT, TSchema> {\n\tstatic readonly [entityKind]: string = 'PostgresJsDatabase';\n}\n\nexport function drizzle<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Sql,\n\tconfig: DrizzleConfig<TSchema> = {},\n): PostgresJsDatabase<TSchema> & {\n\t$client: Sql;\n} {\n\tconst transparentParser = (val: any) => val;\n\n\t// Override postgres.js default date parsers: https://github.com/porsager/postgres/discussions/761\n\tfor (const type of ['1184', '1082', '1083', '1114']) {\n\t\tclient.options.parsers[type as any] = transparentParser;\n\t\tclient.options.serializers[type as any] = transparentParser;\n\t}\n\tclient.options.serializers['114'] = transparentParser;\n\tclient.options.serializers['3802'] = transparentParser;\n\n\tconst dialect = new PgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new PostgresJsSession(client, dialect, schema, { logger });\n\tconst db = new PostgresJsDatabase(dialect, session, schema as any) as PostgresJsDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAGP,SAAS,yBAAyB;AAE3B,MAAM,2BAEH,WAA8C;AAAA,EACvD,QAAiB,UAAU,IAAY;AACxC;AAEO,SAAS,QACf,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,oBAAoB,CAAC,QAAa;AAGxC,aAAW,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AACpD,WAAO,QAAQ,QAAQ,IAAW,IAAI;AACtC,WAAO,QAAQ,YAAY,IAAW,IAAI;AAAA,EAC3C;AACA,SAAO,QAAQ,YAAY,KAAK,IAAI;AACpC,SAAO,QAAQ,YAAY,MAAM,IAAI;AAErC,QAAM,UAAU,IAAI,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACvD,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,kBAAkB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACzE,QAAM,KAAK,IAAI,mBAAmB,SAAS,SAAS,MAAa;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig:
|
|
1
|
+
{"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { MigrationConfig } from "../migrator.cjs";
|
|
2
2
|
import type { PostgresJsDatabase } from "./driver.cjs";
|
|
3
|
-
export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config:
|
|
3
|
+
export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { MigrationConfig } from "../migrator.js";
|
|
2
2
|
import type { PostgresJsDatabase } from "./driver.js";
|
|
3
|
-
export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config:
|
|
3
|
+
export declare function migrate<TSchema extends Record<string, unknown>>(db: PostgresJsDatabase<TSchema>, config: MigrationConfig): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig:
|
|
1
|
+
{"version":3,"sources":["../../src/postgres-js/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { PostgresJsDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: PostgresJsDatabase<TSchema>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\tawait db.dialect.migrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AAGnC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,QAAM,GAAG,QAAQ,QAAQ,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/
|
|
1
|
+
{"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/column.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\nfunction toSql(value: number[] | string[]): string {\n\treturn JSON.stringify(value);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the L2 distance to the given value.\n * If used in querying, this specifies that it should return the L2 distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l2Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l2Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l2Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <-> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <-> ${value}`;\n}\n\n/**\n * L1 distance is one of the possible distance measures between two probability distribution vectors and it is\n * calculated as the sum of the absolute differences.\n * The smaller the distance between the observed probability vectors, the higher the accuracy of the synthetic data\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l1Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l1Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l1Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <+> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <+> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the inner product distance to the given value.\n * If used in querying, this specifies that it should return the inner product distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(innerProduct(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({ distance: innerProduct(cars.embedding, embedding) }).from(cars)\n * ```\n */\nexport function innerProduct(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <#> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <#> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the cosine distance to the given value.\n * If used in querying, this specifies that it should return the cosine distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(cosineDistance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: cosineDistance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function cosineDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <=> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <=> ${value}`;\n}\n\n/**\n * Hamming distance between two strings or vectors of equal length is the number of positions at which the\n * corresponding symbols are different. In other words, it measures the minimum number of\n * substitutions required to change one string into the other, or equivalently,\n * the minimum number of errors that could have transformed one string into the other\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(hammingDistance(cars.embedding, embedding));\n * ```\n */\nexport function hammingDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <~> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <~> ${value}`;\n}\n\n/**\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(jaccardDistance(cars.embedding, embedding));\n * ```\n */\nexport function jaccardDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <%> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <%> ${value}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAA+C;AAE/C,SAAS,MAAM,OAAoC;AAClD,SAAO,KAAK,UAAU,KAAK;AAC5B;AAwBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAsBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,aACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,eACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAiBO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAYO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/
|
|
1
|
+
{"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/column.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\nfunction toSql(value: number[] | string[]): string {\n\treturn JSON.stringify(value);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the L2 distance to the given value.\n * If used in querying, this specifies that it should return the L2 distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l2Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l2Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l2Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <-> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <-> ${value}`;\n}\n\n/**\n * L1 distance is one of the possible distance measures between two probability distribution vectors and it is\n * calculated as the sum of the absolute differences.\n * The smaller the distance between the observed probability vectors, the higher the accuracy of the synthetic data\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l1Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l1Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l1Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <+> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <+> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the inner product distance to the given value.\n * If used in querying, this specifies that it should return the inner product distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(innerProduct(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({ distance: innerProduct(cars.embedding, embedding) }).from(cars)\n * ```\n */\nexport function innerProduct(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <#> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <#> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the cosine distance to the given value.\n * If used in querying, this specifies that it should return the cosine distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(cosineDistance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: cosineDistance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function cosineDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <=> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <=> ${value}`;\n}\n\n/**\n * Hamming distance between two strings or vectors of equal length is the number of positions at which the\n * corresponding symbols are different. In other words, it measures the minimum number of\n * substitutions required to change one string into the other, or equivalently,\n * the minimum number of errors that could have transformed one string into the other\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(hammingDistance(cars.embedding, embedding));\n * ```\n */\nexport function hammingDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <~> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <~> ${value}`;\n}\n\n/**\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(jaccardDistance(cars.embedding, embedding));\n * ```\n */\nexport function jaccardDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <%> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <%> ${value}`;\n}\n"],"mappings":"AAEA,SAAmB,WAA4B;AAE/C,SAAS,MAAM,OAAoC;AAClD,SAAO,KAAK,UAAU,KAAK;AAC5B;AAwBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;AAsBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,aACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,eACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;AAiBO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;AAYO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,MAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,MAAM,MAAM,QAAQ,KAAK;AACjC;","names":[]}
|
package/sql/sql.cjs
CHANGED
|
@@ -102,6 +102,7 @@ class SQL {
|
|
|
102
102
|
paramStartIndex: _config.paramStartIndex || { value: 0 }
|
|
103
103
|
});
|
|
104
104
|
const {
|
|
105
|
+
casing,
|
|
105
106
|
escapeName,
|
|
106
107
|
escapeParam,
|
|
107
108
|
prepareTyping,
|
|
@@ -144,10 +145,11 @@ class SQL {
|
|
|
144
145
|
};
|
|
145
146
|
}
|
|
146
147
|
if ((0, import_entity.is)(chunk, import_column.Column)) {
|
|
148
|
+
const columnName = casing.getColumnCasing(chunk);
|
|
147
149
|
if (_config.invokeSource === "indexes") {
|
|
148
|
-
return { sql: escapeName(
|
|
150
|
+
return { sql: escapeName(columnName), params: [] };
|
|
149
151
|
}
|
|
150
|
-
return { sql: escapeName(chunk.table[import_table.Table.Symbol.Name]) + "." + escapeName(
|
|
152
|
+
return { sql: escapeName(chunk.table[import_table.Table.Symbol.Name]) + "." + escapeName(columnName), params: [] };
|
|
151
153
|
}
|
|
152
154
|
if ((0, import_entity.is)(chunk, View)) {
|
|
153
155
|
const schemaName = chunk[import_view_common.ViewBaseConfig].schema;
|
package/sql/sql.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/sql/sql.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport { isPgEnum } from '~/pg-core/columns/enum.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { tracer } from '~/tracing.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { Table } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper {\n\tgetSQL(): SQL;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\tprivate shouldInlineParams = false;\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(chunk.name), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(chunk.name), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t\t}\n\n\t\t\t\tconst mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn { sql: escapeName(chunk.fieldAlias), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (isPgEnum(chunk)) {\n\t\t\t\tif (chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema) + '.' + escapeName(chunk.enumName), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n}\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL {\n\t\t\treturn this.sql;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: SelectedFields<AnyColumn, Table>;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields<AnyColumn, Table>;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Table class to resolve circular dependency\nTable.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n"],"mappings":"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","names":["param","sql","placeholder","name","SQL"]}
|
|
1
|
+
{"version":3,"sources":["../../src/sql/sql.ts"],"sourcesContent":["import type { CasingCache } from '~/casing.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport { isPgEnum } from '~/pg-core/columns/enum.ts';\nimport { Subquery } from '~/subquery.ts';\nimport { tracer } from '~/tracing.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { Table } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tcasing: CasingCache;\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder<unknown, unknown>) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n\tinvokeSource?: 'indexes' | undefined;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper {\n\tgetSQL(): SQL;\n\tshouldOmitSQLParens?(): boolean;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn value !== null && value !== undefined && typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL<T = unknown> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder<T, any> = noopDecoder;\n\tprivate shouldInlineParams = false;\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tcasing,\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\tconst columnName = casing.getColumnCasing(chunk);\n\t\t\t\tif (_config.invokeSource === 'indexes') {\n\t\t\t\t\treturn { sql: escapeName(columnName), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(columnName), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tif (is(chunk.value, Placeholder)) {\n\t\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t\t}\n\n\t\t\t\tconst mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] = ['none'];\n\t\t\t\tif (prepareTyping) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn { sql: escapeName(chunk.fieldAlias), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk._.isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk._.alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk._.sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk._.alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (isPgEnum(chunk)) {\n\t\t\t\tif (chunk.schema) {\n\t\t\t\t\treturn { sql: escapeName(chunk.schema) + '.' + escapeName(chunk.enumName), params: [] };\n\t\t\t\t}\n\t\t\t\treturn { sql: escapeName(chunk.enumName), params: [] };\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\tif (chunk.shouldOmitSQLParens?.()) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([chunk.getSQL()], config);\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ['none'] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased<T>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(): SQL<TData>;\n\t/**\n\t * @deprecated\n\t * Use ``sql<DataType>`query`.as(alias)`` instead.\n\t */\n\tas<TData>(alias: string): SQL.Aliased<TData>;\n\tas(alias?: string): SQL<T> | SQL.Aliased<T> {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder<any, any>\n\t\t\t| DriverValueDecoder<any, any>['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL<GetDecoderResult<TDecoder>> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL<GetDecoderResult<TDecoder>>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n\n\t/**\n\t * This method is used to conditionally include a part of the query.\n\t *\n\t * @param condition - Condition to check\n\t * @returns itself if the condition is `true`, otherwise `undefined`\n\t */\n\tif(condition: any | undefined): this | undefined {\n\t\treturn condition ? this : undefined;\n\t}\n}\n\nexport type GetDecoderResult<T> = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder<infer TData, any>\n\t| DriverValueDecoder<infer TData, any>['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder<TData, TDriverParam> {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder<TData, TDriverParam> {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder<any, any> {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder<any, any> = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder<any, any> = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper<TData, TDriverParam>\n\textends DriverValueDecoder<TData, TDriverParam>, DriverValueEncoder<TData, TDriverParam>\n{}\n\nexport const noopMapper: DriverValueMapper<any, any> = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param<TDataType = unknown, TDriverParamType = TDataType> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder<TDataType, TDriverParamType> = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param<TData, TDriver>(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder<TData, TDriver>,\n): Param<TData, TDriver> {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport function sql<T>(strings: TemplateStringsArray, ...params: any[]): SQL<T>;\n/*\n\tThe type of `params` is specified as `SQLChunk[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param`. That's why the overload specifies `params` as `any[]` and not as `SQLSourceParam[]`.\n\tThis type is used to make our lives easier and the type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param<TData, TDriver>(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder<TData, TDriver>,\n\t): Param<TData, TDriver> {\n\t\treturn new Param(value, encoder);\n\t}\n}\n\nexport namespace SQL {\n\texport class Aliased<T = unknown> implements SQLWrapper {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL {\n\t\t\treturn this.sql;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder<TName extends string = string, TValue = any> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder<TName extends string>(name: TName): Placeholder<TName> {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record<string, unknown>): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\tif (is(p, Param) && is(p.value, Placeholder)) {\n\t\t\tif (!(p.value.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.value.name}\" was provided`);\n\t\t\t}\n\n\t\t\treturn p.encoder.mapToDriverValue(values[p.value.name]);\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record<string, unknown>;\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: SelectedFields<AnyColumn, Table>;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields<AnyColumn, Table>;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n\n\tgetSQL(): SQL<unknown> {\n\t\treturn new SQL([this]);\n\t}\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Table class to resolve circular dependency\nTable.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n"],"mappings":"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","names":["param","sql","placeholder","name","SQL"]}
|
package/sql/sql.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CasingCache } from "../casing.cjs";
|
|
1
2
|
import { entityKind } from "../entity.cjs";
|
|
2
3
|
import type { SelectedFields } from "../operations.cjs";
|
|
3
4
|
import { Subquery } from "../subquery.cjs";
|
|
@@ -14,6 +15,7 @@ export declare class FakePrimitiveParam {
|
|
|
14
15
|
}
|
|
15
16
|
export type Chunk = string | Table | View | AnyColumn | Name | Param | Placeholder | SQL;
|
|
16
17
|
export interface BuildQueryConfig {
|
|
18
|
+
casing: CasingCache;
|
|
17
19
|
escapeName(name: string): string;
|
|
18
20
|
escapeParam(num: number, value: unknown): string;
|
|
19
21
|
escapeString(str: string): string;
|
package/sql/sql.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CasingCache } from "../casing.js";
|
|
1
2
|
import { entityKind } from "../entity.js";
|
|
2
3
|
import type { SelectedFields } from "../operations.js";
|
|
3
4
|
import { Subquery } from "../subquery.js";
|
|
@@ -14,6 +15,7 @@ export declare class FakePrimitiveParam {
|
|
|
14
15
|
}
|
|
15
16
|
export type Chunk = string | Table | View | AnyColumn | Name | Param | Placeholder | SQL;
|
|
16
17
|
export interface BuildQueryConfig {
|
|
18
|
+
casing: CasingCache;
|
|
17
19
|
escapeName(name: string): string;
|
|
18
20
|
escapeParam(num: number, value: unknown): string;
|
|
19
21
|
escapeString(str: string): string;
|
package/sql/sql.js
CHANGED
|
@@ -63,6 +63,7 @@ class SQL {
|
|
|
63
63
|
paramStartIndex: _config.paramStartIndex || { value: 0 }
|
|
64
64
|
});
|
|
65
65
|
const {
|
|
66
|
+
casing,
|
|
66
67
|
escapeName,
|
|
67
68
|
escapeParam,
|
|
68
69
|
prepareTyping,
|
|
@@ -105,10 +106,11 @@ class SQL {
|
|
|
105
106
|
};
|
|
106
107
|
}
|
|
107
108
|
if (is(chunk, Column)) {
|
|
109
|
+
const columnName = casing.getColumnCasing(chunk);
|
|
108
110
|
if (_config.invokeSource === "indexes") {
|
|
109
|
-
return { sql: escapeName(
|
|
111
|
+
return { sql: escapeName(columnName), params: [] };
|
|
110
112
|
}
|
|
111
|
-
return { sql: escapeName(chunk.table[Table.Symbol.Name]) + "." + escapeName(
|
|
113
|
+
return { sql: escapeName(chunk.table[Table.Symbol.Name]) + "." + escapeName(columnName), params: [] };
|
|
112
114
|
}
|
|
113
115
|
if (is(chunk, View)) {
|
|
114
116
|
const schemaName = chunk[ViewBaseConfig].schema;
|