drizzle-orm 0.31.2 → 0.32.0-0d48b64
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/column-builder.cjs +2 -1
- package/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +39 -5
- package/column-builder.d.ts +39 -5
- package/column-builder.js +2 -1
- package/column-builder.js.map +1 -1
- package/column.cjs +8 -0
- package/column.cjs.map +1 -1
- package/column.d.cts +4 -1
- package/column.d.ts +4 -1
- package/column.js +8 -0
- package/column.js.map +1 -1
- package/mysql-core/columns/bigint.cjs.map +1 -1
- package/mysql-core/columns/bigint.d.cts +2 -0
- package/mysql-core/columns/bigint.d.ts +2 -0
- package/mysql-core/columns/bigint.js.map +1 -1
- package/mysql-core/columns/binary.cjs.map +1 -1
- package/mysql-core/columns/binary.d.cts +1 -0
- package/mysql-core/columns/binary.d.ts +1 -0
- package/mysql-core/columns/binary.js.map +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.map +1 -1
- package/mysql-core/columns/char.cjs.map +1 -1
- package/mysql-core/columns/char.d.cts +1 -0
- package/mysql-core/columns/char.d.ts +1 -0
- package/mysql-core/columns/char.js.map +1 -1
- package/mysql-core/columns/common.cjs +8 -0
- package/mysql-core/columns/common.cjs.map +1 -1
- package/mysql-core/columns/common.d.cts +6 -1
- package/mysql-core/columns/common.d.ts +6 -1
- package/mysql-core/columns/common.js +8 -0
- package/mysql-core/columns/common.js.map +1 -1
- package/mysql-core/columns/custom.cjs.map +1 -1
- package/mysql-core/columns/custom.d.cts +1 -0
- package/mysql-core/columns/custom.d.ts +1 -0
- package/mysql-core/columns/custom.js.map +1 -1
- package/mysql-core/columns/date.cjs.map +1 -1
- package/mysql-core/columns/date.d.cts +2 -0
- package/mysql-core/columns/date.d.ts +2 -0
- package/mysql-core/columns/date.js.map +1 -1
- package/mysql-core/columns/datetime.cjs.map +1 -1
- package/mysql-core/columns/datetime.d.cts +2 -0
- package/mysql-core/columns/datetime.d.ts +2 -0
- package/mysql-core/columns/datetime.js.map +1 -1
- package/mysql-core/columns/decimal.cjs.map +1 -1
- package/mysql-core/columns/decimal.d.cts +1 -0
- package/mysql-core/columns/decimal.d.ts +1 -0
- package/mysql-core/columns/decimal.js.map +1 -1
- package/mysql-core/columns/double.cjs.map +1 -1
- package/mysql-core/columns/double.d.cts +1 -0
- package/mysql-core/columns/double.d.ts +1 -0
- package/mysql-core/columns/double.js.map +1 -1
- package/mysql-core/columns/enum.cjs.map +1 -1
- package/mysql-core/columns/enum.d.cts +1 -0
- package/mysql-core/columns/enum.d.ts +1 -0
- package/mysql-core/columns/enum.js.map +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.map +1 -1
- package/mysql-core/columns/int.cjs.map +1 -1
- package/mysql-core/columns/int.d.cts +1 -0
- package/mysql-core/columns/int.d.ts +1 -0
- package/mysql-core/columns/int.js.map +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.map +1 -1
- package/mysql-core/columns/mediumint.cjs.map +1 -1
- package/mysql-core/columns/mediumint.d.cts +1 -0
- package/mysql-core/columns/mediumint.d.ts +1 -0
- package/mysql-core/columns/mediumint.js.map +1 -1
- package/mysql-core/columns/real.cjs.map +1 -1
- package/mysql-core/columns/real.d.cts +1 -0
- package/mysql-core/columns/real.d.ts +1 -0
- package/mysql-core/columns/real.js.map +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.map +1 -1
- package/mysql-core/columns/smallint.cjs.map +1 -1
- package/mysql-core/columns/smallint.d.cts +1 -0
- package/mysql-core/columns/smallint.d.ts +1 -0
- package/mysql-core/columns/smallint.js.map +1 -1
- package/mysql-core/columns/text.cjs.map +1 -1
- package/mysql-core/columns/text.d.cts +1 -0
- package/mysql-core/columns/text.d.ts +1 -0
- package/mysql-core/columns/text.js.map +1 -1
- package/mysql-core/columns/time.cjs.map +1 -1
- package/mysql-core/columns/time.d.cts +1 -0
- package/mysql-core/columns/time.d.ts +1 -0
- package/mysql-core/columns/time.js.map +1 -1
- package/mysql-core/columns/timestamp.cjs.map +1 -1
- package/mysql-core/columns/timestamp.d.cts +2 -0
- package/mysql-core/columns/timestamp.d.ts +2 -0
- package/mysql-core/columns/timestamp.js.map +1 -1
- package/mysql-core/columns/tinyint.cjs.map +1 -1
- package/mysql-core/columns/tinyint.d.cts +1 -0
- package/mysql-core/columns/tinyint.d.ts +1 -0
- package/mysql-core/columns/tinyint.js.map +1 -1
- package/mysql-core/columns/varbinary.cjs.map +1 -1
- package/mysql-core/columns/varbinary.d.cts +1 -0
- package/mysql-core/columns/varbinary.d.ts +1 -0
- package/mysql-core/columns/varbinary.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +1 -0
- package/mysql-core/columns/varchar.d.ts +1 -0
- package/mysql-core/columns/varchar.js.map +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.map +1 -1
- package/mysql-core/dialect.cjs +3 -1
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.js +3 -1
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +1 -1
- package/mysql-core/query-builders/update.d.ts +1 -1
- package/mysql-core/query-builders/update.js.map +1 -1
- package/operations.cjs.map +1 -1
- package/operations.d.cts +4 -1
- package/operations.d.ts +4 -1
- package/package.json +26 -55
- package/pg-core/columns/bigint.cjs +3 -2
- package/pg-core/columns/bigint.cjs.map +1 -1
- package/pg-core/columns/bigint.d.cts +6 -3
- package/pg-core/columns/bigint.d.ts +6 -3
- package/pg-core/columns/bigint.js +4 -3
- package/pg-core/columns/bigint.js.map +1 -1
- package/pg-core/columns/bigserial.cjs.map +1 -1
- package/pg-core/columns/bigserial.d.cts +2 -0
- package/pg-core/columns/bigserial.d.ts +2 -0
- package/pg-core/columns/bigserial.js.map +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.map +1 -1
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.d.cts +1 -0
- package/pg-core/columns/char.d.ts +1 -0
- package/pg-core/columns/char.js.map +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.map +1 -1
- package/pg-core/columns/common.cjs +8 -0
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +4 -1
- package/pg-core/columns/common.d.ts +4 -1
- package/pg-core/columns/common.js +8 -0
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/custom.cjs.map +1 -1
- package/pg-core/columns/custom.d.cts +1 -0
- package/pg-core/columns/custom.d.ts +1 -0
- package/pg-core/columns/custom.js.map +1 -1
- package/pg-core/columns/date.cjs.map +1 -1
- package/pg-core/columns/date.d.cts +2 -0
- package/pg-core/columns/date.d.ts +2 -0
- package/pg-core/columns/date.js.map +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.map +1 -1
- package/pg-core/columns/enum.cjs.map +1 -1
- package/pg-core/columns/enum.d.cts +1 -0
- package/pg-core/columns/enum.d.ts +1 -0
- package/pg-core/columns/enum.js.map +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.map +1 -1
- package/pg-core/columns/int.common.cjs +72 -0
- package/pg-core/columns/int.common.cjs.map +1 -0
- package/pg-core/columns/int.common.d.cts +15 -0
- package/pg-core/columns/int.common.d.ts +15 -0
- package/pg-core/columns/int.common.js +48 -0
- package/pg-core/columns/int.common.js.map +1 -0
- package/pg-core/columns/integer.cjs +2 -1
- package/pg-core/columns/integer.cjs.map +1 -1
- package/pg-core/columns/integer.d.cts +4 -2
- package/pg-core/columns/integer.d.ts +4 -2
- package/pg-core/columns/integer.js +3 -2
- package/pg-core/columns/integer.js.map +1 -1
- package/pg-core/columns/interval.cjs.map +1 -1
- package/pg-core/columns/interval.d.cts +1 -0
- package/pg-core/columns/interval.d.ts +1 -0
- package/pg-core/columns/interval.js.map +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.map +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.map +1 -1
- package/pg-core/columns/line.cjs.map +1 -1
- package/pg-core/columns/line.d.cts +2 -0
- package/pg-core/columns/line.d.ts +2 -0
- package/pg-core/columns/line.js.map +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.map +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.map +1 -1
- package/pg-core/columns/numeric.cjs.map +1 -1
- package/pg-core/columns/numeric.d.cts +1 -0
- package/pg-core/columns/numeric.d.ts +1 -0
- package/pg-core/columns/numeric.js.map +1 -1
- package/pg-core/columns/point.cjs.map +1 -1
- package/pg-core/columns/point.d.cts +2 -0
- package/pg-core/columns/point.d.ts +2 -0
- package/pg-core/columns/point.js.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -1
- package/pg-core/columns/postgis_extension/geometry.d.cts +2 -0
- package/pg-core/columns/postgis_extension/geometry.d.ts +2 -0
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -1
- package/pg-core/columns/real.cjs.map +1 -1
- package/pg-core/columns/real.d.cts +1 -0
- package/pg-core/columns/real.d.ts +1 -0
- package/pg-core/columns/real.js.map +1 -1
- package/pg-core/columns/serial.cjs.map +1 -1
- package/pg-core/columns/serial.d.cts +1 -0
- package/pg-core/columns/serial.d.ts +1 -0
- package/pg-core/columns/serial.js.map +1 -1
- package/pg-core/columns/smallint.cjs +2 -1
- package/pg-core/columns/smallint.cjs.map +1 -1
- package/pg-core/columns/smallint.d.cts +4 -2
- package/pg-core/columns/smallint.d.ts +4 -2
- package/pg-core/columns/smallint.js +3 -2
- package/pg-core/columns/smallint.js.map +1 -1
- package/pg-core/columns/smallserial.cjs.map +1 -1
- package/pg-core/columns/smallserial.d.cts +1 -0
- package/pg-core/columns/smallserial.d.ts +1 -0
- package/pg-core/columns/smallserial.js.map +1 -1
- package/pg-core/columns/text.cjs.map +1 -1
- package/pg-core/columns/text.d.cts +1 -0
- package/pg-core/columns/text.d.ts +1 -0
- package/pg-core/columns/text.js.map +1 -1
- package/pg-core/columns/time.cjs.map +1 -1
- package/pg-core/columns/time.d.cts +1 -0
- package/pg-core/columns/time.d.ts +1 -0
- package/pg-core/columns/time.js.map +1 -1
- package/pg-core/columns/timestamp.cjs.map +1 -1
- package/pg-core/columns/timestamp.d.cts +2 -0
- package/pg-core/columns/timestamp.d.ts +2 -0
- package/pg-core/columns/timestamp.js.map +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.map +1 -1
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.d.cts +1 -0
- package/pg-core/columns/varchar.d.ts +1 -0
- package/pg-core/columns/varchar.js.map +1 -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.map +1 -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.map +1 -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.map +1 -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.map +1 -1
- package/pg-core/dialect.cjs +1 -1
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.js +1 -1
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/index.cjs +2 -0
- package/pg-core/index.cjs.map +1 -1
- package/pg-core/index.d.cts +1 -0
- package/pg-core/index.d.ts +1 -0
- package/pg-core/index.js +1 -0
- package/pg-core/index.js.map +1 -1
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +1 -1
- package/pg-core/query-builders/update.d.ts +1 -1
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/schema.cjs +4 -0
- package/pg-core/schema.cjs.map +1 -1
- package/pg-core/schema.d.cts +2 -0
- package/pg-core/schema.d.ts +2 -0
- package/pg-core/schema.js +4 -0
- package/pg-core/schema.js.map +1 -1
- package/{tidb-serverless/migrator.cjs → pg-core/sequence.cjs} +29 -10
- package/pg-core/sequence.cjs.map +1 -0
- package/pg-core/sequence.d.cts +16 -0
- package/pg-core/sequence.d.ts +16 -0
- package/pg-core/sequence.js +26 -0
- package/pg-core/sequence.js.map +1 -0
- package/sqlite-core/columns/blob.cjs.map +1 -1
- package/sqlite-core/columns/blob.d.cts +3 -0
- package/sqlite-core/columns/blob.d.ts +3 -0
- package/sqlite-core/columns/blob.js.map +1 -1
- package/sqlite-core/columns/common.cjs +8 -0
- package/sqlite-core/columns/common.cjs.map +1 -1
- package/sqlite-core/columns/common.d.cts +6 -1
- package/sqlite-core/columns/common.d.ts +6 -1
- package/sqlite-core/columns/common.js +8 -0
- package/sqlite-core/columns/common.js.map +1 -1
- package/sqlite-core/columns/custom.cjs.map +1 -1
- package/sqlite-core/columns/custom.d.cts +1 -0
- package/sqlite-core/columns/custom.d.ts +1 -0
- package/sqlite-core/columns/custom.js.map +1 -1
- package/sqlite-core/columns/integer.cjs.map +1 -1
- package/sqlite-core/columns/integer.d.cts +3 -0
- package/sqlite-core/columns/integer.d.ts +3 -0
- package/sqlite-core/columns/integer.js.map +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.map +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.map +1 -1
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +2 -0
- package/sqlite-core/columns/text.d.ts +2 -0
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/dialect.cjs +3 -1
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.js +3 -1
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +1 -1
- package/sqlite-core/query-builders/update.d.ts +1 -1
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/tidb-serverless/driver.cjs +0 -56
- package/tidb-serverless/driver.cjs.map +0 -1
- package/tidb-serverless/driver.d.cts +0 -10
- package/tidb-serverless/driver.d.ts +0 -10
- package/tidb-serverless/driver.js +0 -35
- package/tidb-serverless/driver.js.map +0 -1
- package/tidb-serverless/index.cjs +0 -25
- package/tidb-serverless/index.cjs.map +0 -1
- package/tidb-serverless/index.d.cts +0 -2
- package/tidb-serverless/index.d.ts +0 -2
- package/tidb-serverless/index.js +0 -3
- package/tidb-serverless/index.js.map +0 -1
- package/tidb-serverless/migrator.cjs.map +0 -1
- package/tidb-serverless/migrator.d.cts +0 -3
- package/tidb-serverless/migrator.d.ts +0 -3
- package/tidb-serverless/migrator.js +0 -9
- package/tidb-serverless/migrator.js.map +0 -1
- package/tidb-serverless/session.cjs +0 -136
- package/tidb-serverless/session.cjs.map +0 -1
- package/tidb-serverless/session.d.cts +0 -47
- package/tidb-serverless/session.d.ts +0 -47
- package/tidb-serverless/session.js +0 -114
- package/tidb-serverless/session.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tidb-serverless/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { TiDBServerlessDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>>(\n\tdb: TiDBServerlessDatabase<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,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var session_exports = {};
|
|
20
|
-
__export(session_exports, {
|
|
21
|
-
TiDBServerlessPreparedQuery: () => TiDBServerlessPreparedQuery,
|
|
22
|
-
TiDBServerlessSession: () => TiDBServerlessSession,
|
|
23
|
-
TiDBServerlessTransaction: () => TiDBServerlessTransaction
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(session_exports);
|
|
26
|
-
var import_entity = require("../entity.cjs");
|
|
27
|
-
var import_logger = require("../logger.cjs");
|
|
28
|
-
var import_session = require("../mysql-core/session.cjs");
|
|
29
|
-
var import_sql = require("../sql/sql.cjs");
|
|
30
|
-
var import_utils = require("../utils.cjs");
|
|
31
|
-
const executeRawConfig = { fullResult: true };
|
|
32
|
-
const queryConfig = { arrayMode: true };
|
|
33
|
-
class TiDBServerlessPreparedQuery extends import_session.PreparedQuery {
|
|
34
|
-
constructor(client, queryString, params, logger, fields, customResultMapper) {
|
|
35
|
-
super();
|
|
36
|
-
this.client = client;
|
|
37
|
-
this.queryString = queryString;
|
|
38
|
-
this.params = params;
|
|
39
|
-
this.logger = logger;
|
|
40
|
-
this.fields = fields;
|
|
41
|
-
this.customResultMapper = customResultMapper;
|
|
42
|
-
}
|
|
43
|
-
static [import_entity.entityKind] = "TiDBPreparedQuery";
|
|
44
|
-
async execute(placeholderValues = {}) {
|
|
45
|
-
const params = (0, import_sql.fillPlaceholders)(this.params, placeholderValues);
|
|
46
|
-
this.logger.logQuery(this.queryString, params);
|
|
47
|
-
const { fields, client, queryString, joinsNotNullableMap, customResultMapper } = this;
|
|
48
|
-
if (!fields && !customResultMapper) {
|
|
49
|
-
return client.execute(queryString, params, executeRawConfig);
|
|
50
|
-
}
|
|
51
|
-
const rows = await client.execute(queryString, params, queryConfig);
|
|
52
|
-
if (customResultMapper) {
|
|
53
|
-
return customResultMapper(rows);
|
|
54
|
-
}
|
|
55
|
-
return rows.map((row) => (0, import_utils.mapResultRow)(fields, row, joinsNotNullableMap));
|
|
56
|
-
}
|
|
57
|
-
iterator(_placeholderValues) {
|
|
58
|
-
throw new Error("Streaming is not supported by the TiDB Cloud Serverless driver");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
class TiDBServerlessSession extends import_session.MySqlSession {
|
|
62
|
-
constructor(baseClient, dialect, tx, schema, options = {}) {
|
|
63
|
-
super(dialect);
|
|
64
|
-
this.baseClient = baseClient;
|
|
65
|
-
this.schema = schema;
|
|
66
|
-
this.options = options;
|
|
67
|
-
this.client = tx ?? baseClient;
|
|
68
|
-
this.logger = options.logger ?? new import_logger.NoopLogger();
|
|
69
|
-
}
|
|
70
|
-
static [import_entity.entityKind] = "TiDBServerlessSession";
|
|
71
|
-
logger;
|
|
72
|
-
client;
|
|
73
|
-
prepareQuery(query, fields, customResultMapper) {
|
|
74
|
-
return new TiDBServerlessPreparedQuery(
|
|
75
|
-
this.client,
|
|
76
|
-
query.sql,
|
|
77
|
-
query.params,
|
|
78
|
-
this.logger,
|
|
79
|
-
fields,
|
|
80
|
-
customResultMapper
|
|
81
|
-
);
|
|
82
|
-
}
|
|
83
|
-
all(query) {
|
|
84
|
-
const querySql = this.dialect.sqlToQuery(query);
|
|
85
|
-
this.logger.logQuery(querySql.sql, querySql.params);
|
|
86
|
-
return this.client.execute(querySql.sql, querySql.params);
|
|
87
|
-
}
|
|
88
|
-
async transaction(transaction) {
|
|
89
|
-
const nativeTx = await this.baseClient.begin();
|
|
90
|
-
try {
|
|
91
|
-
const session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);
|
|
92
|
-
const tx = new TiDBServerlessTransaction(
|
|
93
|
-
this.dialect,
|
|
94
|
-
session,
|
|
95
|
-
this.schema
|
|
96
|
-
);
|
|
97
|
-
const result = await transaction(tx);
|
|
98
|
-
await nativeTx.commit();
|
|
99
|
-
return result;
|
|
100
|
-
} catch (err) {
|
|
101
|
-
await nativeTx.rollback();
|
|
102
|
-
throw err;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
class TiDBServerlessTransaction extends import_session.MySqlTransaction {
|
|
107
|
-
static [import_entity.entityKind] = "TiDBServerlessTransaction";
|
|
108
|
-
constructor(dialect, session, schema, nestedIndex = 0) {
|
|
109
|
-
super(dialect, session, schema, nestedIndex, "default");
|
|
110
|
-
}
|
|
111
|
-
async transaction(transaction) {
|
|
112
|
-
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
113
|
-
const tx = new TiDBServerlessTransaction(
|
|
114
|
-
this.dialect,
|
|
115
|
-
this.session,
|
|
116
|
-
this.schema,
|
|
117
|
-
this.nestedIndex + 1
|
|
118
|
-
);
|
|
119
|
-
await tx.execute(import_sql.sql.raw(`savepoint ${savepointName}`));
|
|
120
|
-
try {
|
|
121
|
-
const result = await transaction(tx);
|
|
122
|
-
await tx.execute(import_sql.sql.raw(`release savepoint ${savepointName}`));
|
|
123
|
-
return result;
|
|
124
|
-
} catch (err) {
|
|
125
|
-
await tx.execute(import_sql.sql.raw(`rollback to savepoint ${savepointName}`));
|
|
126
|
-
throw err;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
-
0 && (module.exports = {
|
|
132
|
-
TiDBServerlessPreparedQuery,
|
|
133
|
-
TiDBServerlessSession,
|
|
134
|
-
TiDBServerlessTransaction
|
|
135
|
-
});
|
|
136
|
-
//# sourceMappingURL=session.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\n\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlSession,\n\tMySqlTransaction,\n\tPreparedQuery,\n\ttype PreparedQueryConfig,\n\ttype PreparedQueryHKT,\n\ttype QueryResultHKT,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.execute(queryString, params, executeRawConfig);\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new TiDBServerlessPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface TiDBServerlessQueryResultHKT extends QueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends PreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], PreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Connection, FullResult, Tx } from '@tidbcloud/serverless';
|
|
2
|
-
import { entityKind } from "../entity.cjs";
|
|
3
|
-
import type { Logger } from "../logger.cjs";
|
|
4
|
-
import type { MySqlDialect } from "../mysql-core/dialect.cjs";
|
|
5
|
-
import type { SelectedFieldsOrdered } from "../mysql-core/query-builders/select.types.cjs";
|
|
6
|
-
import { MySqlSession, MySqlTransaction, PreparedQuery, type PreparedQueryConfig, type PreparedQueryHKT, type QueryResultHKT } from "../mysql-core/session.cjs";
|
|
7
|
-
import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
|
|
8
|
-
import { type Query, type SQL } from "../sql/sql.cjs";
|
|
9
|
-
import { type Assume } from "../utils.cjs";
|
|
10
|
-
export declare class TiDBServerlessPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
|
|
11
|
-
private client;
|
|
12
|
-
private queryString;
|
|
13
|
-
private params;
|
|
14
|
-
private logger;
|
|
15
|
-
private fields;
|
|
16
|
-
private customResultMapper?;
|
|
17
|
-
static readonly [entityKind]: string;
|
|
18
|
-
constructor(client: Tx | Connection, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T['execute']) | undefined);
|
|
19
|
-
execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
20
|
-
iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
|
|
21
|
-
}
|
|
22
|
-
export interface TiDBServerlessSessionOptions {
|
|
23
|
-
logger?: Logger;
|
|
24
|
-
}
|
|
25
|
-
export declare class TiDBServerlessSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
26
|
-
private baseClient;
|
|
27
|
-
private schema;
|
|
28
|
-
private options;
|
|
29
|
-
static readonly [entityKind]: string;
|
|
30
|
-
private logger;
|
|
31
|
-
private client;
|
|
32
|
-
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
|
|
33
|
-
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
34
|
-
all<T = unknown>(query: SQL): Promise<T[]>;
|
|
35
|
-
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
36
|
-
}
|
|
37
|
-
export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
38
|
-
static readonly [entityKind]: string;
|
|
39
|
-
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
|
|
40
|
-
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
41
|
-
}
|
|
42
|
-
export interface TiDBServerlessQueryResultHKT extends QueryResultHKT {
|
|
43
|
-
type: FullResult;
|
|
44
|
-
}
|
|
45
|
-
export interface TiDBServerlessPreparedQueryHKT extends PreparedQueryHKT {
|
|
46
|
-
type: TiDBServerlessPreparedQuery<Assume<this['config'], PreparedQueryConfig>>;
|
|
47
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Connection, FullResult, Tx } from '@tidbcloud/serverless';
|
|
2
|
-
import { entityKind } from "../entity.js";
|
|
3
|
-
import type { Logger } from "../logger.js";
|
|
4
|
-
import type { MySqlDialect } from "../mysql-core/dialect.js";
|
|
5
|
-
import type { SelectedFieldsOrdered } from "../mysql-core/query-builders/select.types.js";
|
|
6
|
-
import { MySqlSession, MySqlTransaction, PreparedQuery, type PreparedQueryConfig, type PreparedQueryHKT, type QueryResultHKT } from "../mysql-core/session.js";
|
|
7
|
-
import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
|
|
8
|
-
import { type Query, type SQL } from "../sql/sql.js";
|
|
9
|
-
import { type Assume } from "../utils.js";
|
|
10
|
-
export declare class TiDBServerlessPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
|
|
11
|
-
private client;
|
|
12
|
-
private queryString;
|
|
13
|
-
private params;
|
|
14
|
-
private logger;
|
|
15
|
-
private fields;
|
|
16
|
-
private customResultMapper?;
|
|
17
|
-
static readonly [entityKind]: string;
|
|
18
|
-
constructor(client: Tx | Connection, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, customResultMapper?: ((rows: unknown[][]) => T['execute']) | undefined);
|
|
19
|
-
execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
|
|
20
|
-
iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
|
|
21
|
-
}
|
|
22
|
-
export interface TiDBServerlessSessionOptions {
|
|
23
|
-
logger?: Logger;
|
|
24
|
-
}
|
|
25
|
-
export declare class TiDBServerlessSession<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
26
|
-
private baseClient;
|
|
27
|
-
private schema;
|
|
28
|
-
private options;
|
|
29
|
-
static readonly [entityKind]: string;
|
|
30
|
-
private logger;
|
|
31
|
-
private client;
|
|
32
|
-
constructor(baseClient: Connection, dialect: MySqlDialect, tx: Tx | undefined, schema: RelationalSchemaConfig<TSchema> | undefined, options?: TiDBServerlessSessionOptions);
|
|
33
|
-
prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQuery<T>;
|
|
34
|
-
all<T = unknown>(query: SQL): Promise<T[]>;
|
|
35
|
-
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
36
|
-
}
|
|
37
|
-
export declare class TiDBServerlessTransaction<TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {
|
|
38
|
-
static readonly [entityKind]: string;
|
|
39
|
-
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex?: number);
|
|
40
|
-
transaction<T>(transaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
41
|
-
}
|
|
42
|
-
export interface TiDBServerlessQueryResultHKT extends QueryResultHKT {
|
|
43
|
-
type: FullResult;
|
|
44
|
-
}
|
|
45
|
-
export interface TiDBServerlessPreparedQueryHKT extends PreparedQueryHKT {
|
|
46
|
-
type: TiDBServerlessPreparedQuery<Assume<this['config'], PreparedQueryConfig>>;
|
|
47
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { entityKind } from "../entity.js";
|
|
2
|
-
import { NoopLogger } from "../logger.js";
|
|
3
|
-
import {
|
|
4
|
-
MySqlSession,
|
|
5
|
-
MySqlTransaction,
|
|
6
|
-
PreparedQuery
|
|
7
|
-
} from "../mysql-core/session.js";
|
|
8
|
-
import { fillPlaceholders, sql } from "../sql/sql.js";
|
|
9
|
-
import { mapResultRow } from "../utils.js";
|
|
10
|
-
const executeRawConfig = { fullResult: true };
|
|
11
|
-
const queryConfig = { arrayMode: true };
|
|
12
|
-
class TiDBServerlessPreparedQuery extends PreparedQuery {
|
|
13
|
-
constructor(client, queryString, params, logger, fields, customResultMapper) {
|
|
14
|
-
super();
|
|
15
|
-
this.client = client;
|
|
16
|
-
this.queryString = queryString;
|
|
17
|
-
this.params = params;
|
|
18
|
-
this.logger = logger;
|
|
19
|
-
this.fields = fields;
|
|
20
|
-
this.customResultMapper = customResultMapper;
|
|
21
|
-
}
|
|
22
|
-
static [entityKind] = "TiDBPreparedQuery";
|
|
23
|
-
async execute(placeholderValues = {}) {
|
|
24
|
-
const params = fillPlaceholders(this.params, placeholderValues);
|
|
25
|
-
this.logger.logQuery(this.queryString, params);
|
|
26
|
-
const { fields, client, queryString, joinsNotNullableMap, customResultMapper } = this;
|
|
27
|
-
if (!fields && !customResultMapper) {
|
|
28
|
-
return client.execute(queryString, params, executeRawConfig);
|
|
29
|
-
}
|
|
30
|
-
const rows = await client.execute(queryString, params, queryConfig);
|
|
31
|
-
if (customResultMapper) {
|
|
32
|
-
return customResultMapper(rows);
|
|
33
|
-
}
|
|
34
|
-
return rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
|
|
35
|
-
}
|
|
36
|
-
iterator(_placeholderValues) {
|
|
37
|
-
throw new Error("Streaming is not supported by the TiDB Cloud Serverless driver");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
class TiDBServerlessSession extends MySqlSession {
|
|
41
|
-
constructor(baseClient, dialect, tx, schema, options = {}) {
|
|
42
|
-
super(dialect);
|
|
43
|
-
this.baseClient = baseClient;
|
|
44
|
-
this.schema = schema;
|
|
45
|
-
this.options = options;
|
|
46
|
-
this.client = tx ?? baseClient;
|
|
47
|
-
this.logger = options.logger ?? new NoopLogger();
|
|
48
|
-
}
|
|
49
|
-
static [entityKind] = "TiDBServerlessSession";
|
|
50
|
-
logger;
|
|
51
|
-
client;
|
|
52
|
-
prepareQuery(query, fields, customResultMapper) {
|
|
53
|
-
return new TiDBServerlessPreparedQuery(
|
|
54
|
-
this.client,
|
|
55
|
-
query.sql,
|
|
56
|
-
query.params,
|
|
57
|
-
this.logger,
|
|
58
|
-
fields,
|
|
59
|
-
customResultMapper
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
all(query) {
|
|
63
|
-
const querySql = this.dialect.sqlToQuery(query);
|
|
64
|
-
this.logger.logQuery(querySql.sql, querySql.params);
|
|
65
|
-
return this.client.execute(querySql.sql, querySql.params);
|
|
66
|
-
}
|
|
67
|
-
async transaction(transaction) {
|
|
68
|
-
const nativeTx = await this.baseClient.begin();
|
|
69
|
-
try {
|
|
70
|
-
const session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);
|
|
71
|
-
const tx = new TiDBServerlessTransaction(
|
|
72
|
-
this.dialect,
|
|
73
|
-
session,
|
|
74
|
-
this.schema
|
|
75
|
-
);
|
|
76
|
-
const result = await transaction(tx);
|
|
77
|
-
await nativeTx.commit();
|
|
78
|
-
return result;
|
|
79
|
-
} catch (err) {
|
|
80
|
-
await nativeTx.rollback();
|
|
81
|
-
throw err;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
class TiDBServerlessTransaction extends MySqlTransaction {
|
|
86
|
-
static [entityKind] = "TiDBServerlessTransaction";
|
|
87
|
-
constructor(dialect, session, schema, nestedIndex = 0) {
|
|
88
|
-
super(dialect, session, schema, nestedIndex, "default");
|
|
89
|
-
}
|
|
90
|
-
async transaction(transaction) {
|
|
91
|
-
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
92
|
-
const tx = new TiDBServerlessTransaction(
|
|
93
|
-
this.dialect,
|
|
94
|
-
this.session,
|
|
95
|
-
this.schema,
|
|
96
|
-
this.nestedIndex + 1
|
|
97
|
-
);
|
|
98
|
-
await tx.execute(sql.raw(`savepoint ${savepointName}`));
|
|
99
|
-
try {
|
|
100
|
-
const result = await transaction(tx);
|
|
101
|
-
await tx.execute(sql.raw(`release savepoint ${savepointName}`));
|
|
102
|
-
return result;
|
|
103
|
-
} catch (err) {
|
|
104
|
-
await tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));
|
|
105
|
-
throw err;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export {
|
|
110
|
-
TiDBServerlessPreparedQuery,
|
|
111
|
-
TiDBServerlessSession,
|
|
112
|
-
TiDBServerlessTransaction
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tidb-serverless/session.ts"],"sourcesContent":["import type { Connection, ExecuteOptions, FullResult, Tx } from '@tidbcloud/serverless';\n\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\tMySqlSession,\n\tMySqlTransaction,\n\tPreparedQuery,\n\ttype PreparedQueryConfig,\n\ttype PreparedQueryHKT,\n\ttype QueryResultHKT,\n} from '~/mysql-core/session.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { type Assume, mapResultRow } from '~/utils.ts';\n\nconst executeRawConfig = { fullResult: true } satisfies ExecuteOptions;\nconst queryConfig = { arrayMode: true } satisfies ExecuteOptions;\n\nexport class TiDBServerlessPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {\n\tstatic readonly [entityKind]: string = 'TiDBPreparedQuery';\n\n\tconstructor(\n\t\tprivate client: Tx | Connection,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper();\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.queryString, params);\n\n\t\tconst { fields, client, queryString, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\treturn client.execute(queryString, params, executeRawConfig);\n\t\t}\n\n\t\tconst rows = await client.execute(queryString, params, queryConfig) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn rows.map((row) => mapResultRow<T['execute']>(fields!, row, joinsNotNullableMap));\n\t}\n\n\toverride iterator(_placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']> {\n\t\tthrow new Error('Streaming is not supported by the TiDB Cloud Serverless driver');\n\t}\n}\n\nexport interface TiDBServerlessSessionOptions {\n\tlogger?: Logger;\n}\n\nexport class TiDBServerlessSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlSession<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessSession';\n\n\tprivate logger: Logger;\n\tprivate client: Tx | Connection;\n\n\tconstructor(\n\t\tprivate baseClient: Connection,\n\t\tdialect: MySqlDialect,\n\t\ttx: Tx | undefined,\n\t\tprivate schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: TiDBServerlessSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.client = tx ?? baseClient;\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQuery<T> {\n\t\treturn new TiDBServerlessPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.execute(querySql.sql, querySql.params) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst nativeTx = await this.baseClient.begin();\n\t\ttry {\n\t\t\tconst session = new TiDBServerlessSession(this.baseClient, this.dialect, nativeTx, this.schema, this.options);\n\t\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\t\tthis.dialect,\n\t\t\t\tsession as MySqlSession<any, any, any, any>,\n\t\t\t\tthis.schema,\n\t\t\t);\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait nativeTx.commit();\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait nativeTx.rollback();\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class TiDBServerlessTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends TablesRelationalConfig,\n> extends MySqlTransaction<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'TiDBServerlessTransaction';\n\n\tconstructor(\n\t\tdialect: MySqlDialect,\n\t\tsession: MySqlSession,\n\t\tschema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tnestedIndex = 0,\n\t) {\n\t\tsuper(dialect, session, schema, nestedIndex, 'default');\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: TiDBServerlessTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new TiDBServerlessTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport interface TiDBServerlessQueryResultHKT extends QueryResultHKT {\n\ttype: FullResult;\n}\n\nexport interface TiDBServerlessPreparedQueryHKT extends PreparedQueryHKT {\n\ttype: TiDBServerlessPreparedQuery<Assume<this['config'], PreparedQueryConfig>>;\n}\n"],"mappings":"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","names":[]}
|