mythix-orm-sql-base 1.9.3 → 1.9.5
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/lib/sql-connection-base.js +27 -14
- package/package.json +2 -2
|
@@ -661,24 +661,37 @@ class SQLConnectionBase extends ConnectionBase {
|
|
|
661
661
|
queryEngine = await this.finalizeQuery('read', queryEngine, options);
|
|
662
662
|
queryEngine = queryEngine.clone();
|
|
663
663
|
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
664
|
+
let queryGenerator = this.getQueryGenerator();
|
|
665
|
+
let queryContext = queryEngine.getOperationContext();
|
|
666
|
+
let distinct = queryContext.distinct;
|
|
667
|
+
|
|
668
|
+
if (distinct) {
|
|
669
|
+
let distinctField = distinct.getField(this);
|
|
670
|
+
if (distinctField) {
|
|
671
|
+
if (Literals.LiteralBase.isLiteral(distinctField)) {
|
|
672
|
+
let field = distinctField.getField(this);
|
|
673
|
+
if (!field)
|
|
674
|
+
field = distinctField.valueOf();
|
|
675
|
+
|
|
676
|
+
if (field)
|
|
677
|
+
distinctField = field;
|
|
678
|
+
}
|
|
668
679
|
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
680
|
+
if (typeof distinctField.isField === 'function' && distinctField.isField(distinctField))
|
|
681
|
+
distinctField = new Literals.Literal(`DISTINCT ${queryGenerator.getEscapedColumnName(distinctField.Model, distinctField)}`, { isAggregate: true });
|
|
682
|
+
else
|
|
683
|
+
distinctField = new Literals.Literal(`DISTINCT ${distinctField.toString(this, { isAggregate: true })}`, { isAggregate: true });
|
|
672
684
|
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
// }
|
|
685
|
+
let LiteralConstructor = literal.constructor;
|
|
686
|
+
literal = new LiteralConstructor(distinctField);
|
|
676
687
|
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
let sqlStr = queryGenerator.generateSelectStatement(query, options);
|
|
688
|
+
queryEngine = queryEngine.DISTINCT(false);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
681
691
|
|
|
692
|
+
let literalStr = literal.toString(this);
|
|
693
|
+
let query = queryEngine.PROJECT(literal).ORDER(); // TODO: Remove ORDER here once aggregate ORDER BY is fixed
|
|
694
|
+
let sqlStr = queryGenerator.generateSelectStatement(query, this.stackAssign(options, { isAggregate: true }));
|
|
682
695
|
let result = await this.query(sqlStr, options);
|
|
683
696
|
let columnIndex = result.columns.indexOf(literalStr);
|
|
684
697
|
if (columnIndex < 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mythix-orm-sql-base",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.5",
|
|
4
4
|
"description": "SQL base support for Mythix ORM",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://github.com/th317erd/mythix-orm-sql-base#readme",
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"mythix-orm": "^1.11.
|
|
37
|
+
"mythix-orm": "^1.11.6"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"luxon": "^3.1.0",
|