joist-orm 1.243.0 → 1.243.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildRawQuery.d.ts","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAK9D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"buildRawQuery.d.ts","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAK9D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CA4E3C"}
|
|
@@ -12,8 +12,11 @@ const buildUtils_1 = require("./buildUtils");
|
|
|
12
12
|
*/
|
|
13
13
|
function buildRawQuery(parsed, settings) {
|
|
14
14
|
const { limit, offset } = settings;
|
|
15
|
+
const primary = parsed.tables.find((t) => t.join === "primary");
|
|
15
16
|
// If we're doing o2m joins, add a `DISTINCT` clause to avoid duplicates
|
|
16
|
-
const needsDistinct = parsed.tables.some((t) => t.join === "outer" && t.distinct !== false)
|
|
17
|
+
const needsDistinct = parsed.tables.some((t) => t.join === "outer" && t.distinct !== false) &&
|
|
18
|
+
// If this is a `findCount`, it will rewrite the `select` to have its own distinct
|
|
19
|
+
!parsed.selects.find((s) => s.startsWith("count("));
|
|
17
20
|
let sql = "";
|
|
18
21
|
const bindings = [];
|
|
19
22
|
if (parsed.cte) {
|
|
@@ -22,7 +25,7 @@ function buildRawQuery(parsed, settings) {
|
|
|
22
25
|
}
|
|
23
26
|
sql += "SELECT ";
|
|
24
27
|
parsed.selects.forEach((s, i) => {
|
|
25
|
-
const maybeDistinct = i === 0 && needsDistinct ?
|
|
28
|
+
const maybeDistinct = i === 0 && needsDistinct ? buildDistinctOn(parsed, primary) : "";
|
|
26
29
|
const maybeComma = i === parsed.selects.length - 1 ? "" : ", ";
|
|
27
30
|
sql += maybeDistinct + s + maybeComma;
|
|
28
31
|
});
|
|
@@ -33,7 +36,6 @@ function buildRawQuery(parsed, settings) {
|
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
// Make sure the primary is first
|
|
36
|
-
const primary = parsed.tables.find((t) => t.join === "primary");
|
|
37
39
|
sql += ` FROM ${as(primary)}`;
|
|
38
40
|
// Then the joins
|
|
39
41
|
for (const t of parsed.tables) {
|
|
@@ -74,5 +76,13 @@ function buildRawQuery(parsed, settings) {
|
|
|
74
76
|
}
|
|
75
77
|
return { sql, bindings };
|
|
76
78
|
}
|
|
79
|
+
function buildDistinctOn(parsed, primary) {
|
|
80
|
+
const columns = [
|
|
81
|
+
// If we have an order by, it needs to be included in the DISTINCT ON
|
|
82
|
+
...parsed.orderBys.map((ob) => (0, keywords_1.kqDot)(ob.alias, ob.column)),
|
|
83
|
+
(0, keywords_1.kqDot)(primary.alias, "id"),
|
|
84
|
+
];
|
|
85
|
+
return `DISTINCT ON (${columns.join(", ")}) `;
|
|
86
|
+
}
|
|
77
87
|
const as = (t) => `${(0, keywords_1.kq)(t.table)} AS ${(0, keywords_1.kq)(t.alias)}`;
|
|
78
88
|
//# sourceMappingURL=buildRawQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildRawQuery.js","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"buildRawQuery.js","sourceRoot":"","sources":["../../src/drivers/buildRawQuery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-orm",
|
|
3
|
-
"version": "1.243.
|
|
3
|
+
"version": "1.243.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@types/pg": "^8.11.14",
|
|
25
25
|
"ansis": "^3.15.0",
|
|
26
26
|
"dataloader": "^2.2.3",
|
|
27
|
-
"joist-utils": "1.243.
|
|
27
|
+
"joist-utils": "1.243.1",
|
|
28
28
|
"knex": "^3.1.0",
|
|
29
29
|
"object-hash": "^3.0.0",
|
|
30
30
|
"pg": "^8.15.5",
|