velocious 1.0.436 → 1.0.437
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/build/database/query/model-class-query.js +7 -4
- package/build/database/record/index.js +10 -0
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +8 -5
- package/build/src/database/record/index.d.ts +7 -0
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +10 -1
- package/package.json +1 -1
- package/src/database/query/model-class-query.js +7 -4
- package/src/database/record/index.js +10 -0
|
@@ -301,14 +301,17 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
|
|
|
301
301
|
* @returns {Promise<number>} - Resolves with the count.
|
|
302
302
|
*/
|
|
303
303
|
async count() {
|
|
304
|
-
|
|
304
|
+
// Pagination, or a model with no single primary key (setPrimaryKey(null), e.g. composite-key
|
|
305
|
+
// legacy tables with no id column), count via the subquery form. It references no primary-key
|
|
306
|
+
// column and preserves DISTINCT over joins — which a bare COUNT(*) would not (it would count
|
|
307
|
+
// joined duplicate rows instead of distinct root rows). primaryKey() falls back to "id" for the
|
|
308
|
+
// no-pk case, so hasPrimaryKey() is used to detect it.
|
|
309
|
+
if (this._limit !== null || this._offset !== null || !this.getModelClass().hasPrimaryKey()) {
|
|
305
310
|
return await this.paginatedCount()
|
|
306
311
|
}
|
|
307
312
|
|
|
308
|
-
// Models without a single primary key (composite-key tables) count via COUNT(*), not COUNT(<table>.id).
|
|
309
|
-
const primaryKeyColumn = this.getModelClass().primaryKey()
|
|
310
313
|
const distinctPrefix = this._distinct ? "DISTINCT " : ""
|
|
311
|
-
let sql =
|
|
314
|
+
let sql = `COUNT(${distinctPrefix}${this.driver.quoteTable(this.getModelClass().tableName())}.${this.driver.quoteColumn(this.getModelClass().primaryKey())})`
|
|
312
315
|
|
|
313
316
|
if (this.driver.getType() == "pgsql") sql += "::int"
|
|
314
317
|
|
|
@@ -2291,6 +2291,16 @@ class VelociousDatabaseRecord {
|
|
|
2291
2291
|
return "id"
|
|
2292
2292
|
}
|
|
2293
2293
|
|
|
2294
|
+
/**
|
|
2295
|
+
* Whether the model has a single primary key column. `setPrimaryKey(null)` (e.g. composite-key
|
|
2296
|
+
* legacy tables) declares no single primary key; `primaryKey()` still falls back to "id" for the
|
|
2297
|
+
* default case, so callers that must distinguish "no primary key" use this instead.
|
|
2298
|
+
* @returns {boolean} - False only when the primary key was explicitly set to null.
|
|
2299
|
+
*/
|
|
2300
|
+
static hasPrimaryKey() {
|
|
2301
|
+
return this._primaryKey !== null
|
|
2302
|
+
}
|
|
2303
|
+
|
|
2294
2304
|
/**
|
|
2295
2305
|
* Runs save.
|
|
2296
2306
|
* @returns {Promise<void>} - Resolves when complete.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"AAmKA;;;GAGG;AACH;;;;GAIG;AAEH;;;GAGG;AACH,2DAZ4D,EAAE,SAAjD,cAAe,oBAAoB,EAAE,OAAQ;IAaxD;;;OAGG;IACH,kBAFW,uBAAuB,CAAC,EAAE,CAAC,EA+BrC;IArBC;;mBAEe;IACf,YADS,EAAE,CACiB;IAE5B;;yBAEqB;IACrB,eADS,MAAM,EAAE,CAC2B;IAC5C,0BAAsF;IACtF,gCAAiE;IAEjE;;2DAEuD;IACvD,YADS,OAAO,iBAAiB,EAAE,cAAc,EAAE,CACQ;IAE3D;;2DAEuD;IACvD,YADS,OAAO,iBAAiB,EAAE,cAAc,EAAE,CACQ;IAG7D;;;OAGG;IACH,SAFa,IAAI,CAgChB;IAED;;;;;;OAMG;IACH,gBAHW,OAAO,iBAAiB,EAAE,aAAa,GACrC,IAAI,CAQhB;IAED;;;;;;;;;;;;OAYG;IACH,gBAHW,OAAO,iBAAiB,EAAE,aAAa,GACrC,IAAI,CAQhB;IAED;;;;;;;;OAQG;IACH,sBAHc,MAAM,EAAA,GACP,MAAM,CAIlB;IAED;;;OAGG;IACH,SAFa,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"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"}
|