orez 0.4.14 → 0.4.16
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/dist/pg-proxy-do-backend.d.ts.map +1 -1
- package/dist/pg-proxy-do-backend.js +43 -3
- package/dist/pg-proxy-do-backend.js.map +1 -1
- package/dist/pg-sqlite-compiler/index.d.ts +6 -1
- package/dist/pg-sqlite-compiler/index.d.ts.map +1 -1
- package/dist/pg-sqlite-compiler/index.js +24 -3
- package/dist/pg-sqlite-compiler/index.js.map +1 -1
- package/dist/pg-sqlite-compiler/types.d.ts +2 -0
- package/dist/pg-sqlite-compiler/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-proxy-do-backend.d.ts","sourceRoot":"","sources":["../src/pg-proxy-do-backend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pg-proxy-do-backend.d.ts","sourceRoot":"","sources":["../src/pg-proxy-do-backend.ts"],"names":[],"mappings":"AAm3HA,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CACzE,KAAK,CAAC;IACJ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACtD,mBAAmB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CACxD,CAAC,CACH,CAkDA;AAwkCD,qBAAa,SAAS;IACpB,KAAK,UAAQ;IACb,MAAM,UAAQ;IACd,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAoC;IAGxD,OAAO,CAAC,4BAA4B,CAAoB;IACxD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,OAAO,CAAiC;IAOhD,OAAO,CAAC,yBAAyB,CAAsC;IACvE,OAAO,CAAC,YAAY,CAA6B;IAQjD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,iBAAiB,CAAI;IAM7B,OAAO,CAAC,yBAAyB,CAAQ;IAGzC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAQ;IAOjC,OAAO,CAAC,OAAO,CAAQ;gBAGrB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAmB,EAC3B,SAAS,SAAY,EACrB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAcnD,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED,OAAO,CAAC,WAAW;YAWL,IAAI;YAUJ,0BAA0B;YAwB1B,mBAAmB;IAIjC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,mBAAmB;YAyBb,mBAAmB;YA2CnB,yBAAyB;YAsBzB,+BAA+B;YA8B/B,sBAAsB;IAgC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,kCAAkC;IAsB1C,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;YAMV,gBAAgB;YAOhB,iBAAiB;YAuBjB,mBAAmB;IAwB3B,eAAe,CACnB,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACvD,OAAO,CAAC,UAAU,CAAC;IAqBtB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,2BAA2B;YAKrB,mBAAmB;YAoCnB,iBAAiB;YAgGjB,sBAAsB;IA+BpC,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,sBAAsB;IAkC9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,wBAAwB;YAYlB,sBAAsB;YAQtB,mCAAmC;IAkBjD,OAAO,CAAC,WAAW;IAuFnB,OAAO,CAAC,UAAU;YAWJ,aAAa;IA8H3B,OAAO,CAAC,UAAU;YAIJ,cAAc;IAuB5B,OAAO,CAAC,WAAW;IAgBb,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YA4BzB,wBAAwB;IAqBhC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC;IAwFzB,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,qBAAqB;YAkCf,MAAM;YAIN,YAAY;IA6C1B,OAAO,CAAC,uBAAuB;YAKjB,eAAe;YAQf,wBAAwB;YA0BxB,+BAA+B;YAc/B,wBAAwB;YAOxB,UAAU;IAYxB,qFAAqF;YACvE,cAAc;YAsBd,mBAAmB;YA4BnB,yBAAyB;YAmBzB,0BAA0B;YAU1B,WAAW;YA2EX,YAAY;YAKZ,YAAY;YAOZ,gBAAgB;IAY9B,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,kCAAkC;IA0B1C,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAsFvB,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,oBAAoB;YAUd,qBAAqB;YAiBrB,yBAAyB;IA8EvC,OAAO,CAAC,iBAAiB;YAcX,cAAc;YAiBd,8BAA8B;YAmD9B,iCAAiC;YAwEjC,yBAAyB;IA0DvC,OAAO,CAAC,oBAAoB;YAyCd,qBAAqB;YAiBrB,sBAAsB;YAatB,qBAAqB;IAoBnC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,YAAY;IAqGpB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,cAAc;IA2GtB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,eAAe;IA6DvB,OAAO,CAAC,4BAA4B,CAAoB;IAExD,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,4BAA4B;IAoDpC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,oBAAoB;YA0Bd,cAAc;IAoB5B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;YAOb,oBAAoB;YAgBpB,kBAAkB;YAIlB,mBAAmB;CAkClC"}
|
|
@@ -1661,6 +1661,45 @@ function rowNumberTarget(partitionClause, orderClause) {
|
|
|
1661
1661
|
},
|
|
1662
1662
|
};
|
|
1663
1663
|
}
|
|
1664
|
+
// maps an explicit select-list alias to the expression that defines it, but
|
|
1665
|
+
// only when the alias is NOT just that same base column under its own name
|
|
1666
|
+
// (e.g. `p.id AS id` stays a real column for sqlite to resolve). computed
|
|
1667
|
+
// targets (`CASE … END AS match_rank`) and renames (`u.name AS authorName`)
|
|
1668
|
+
// produce a name that exists ONLY as an output column.
|
|
1669
|
+
function selectListAliasExpressions(targetList) {
|
|
1670
|
+
const aliases = new Map();
|
|
1671
|
+
for (const targetNode of targetList) {
|
|
1672
|
+
const target = targetNode?.ResTarget;
|
|
1673
|
+
const name = target?.name;
|
|
1674
|
+
if (!name || target.val == null)
|
|
1675
|
+
continue;
|
|
1676
|
+
if (columnRefTailName(target.val) === name)
|
|
1677
|
+
continue;
|
|
1678
|
+
aliases.set(name, target.val);
|
|
1679
|
+
}
|
|
1680
|
+
return aliases;
|
|
1681
|
+
}
|
|
1682
|
+
// postgres lets DISTINCT ON / ORDER BY reference select-list aliases; sqlite
|
|
1683
|
+
// cannot resolve a select-list alias inside that same select's window-function
|
|
1684
|
+
// ORDER BY/PARTITION BY (the alias isn't a real column there). so before the
|
|
1685
|
+
// window clauses move into the inner select, replace any single-field ColumnRef
|
|
1686
|
+
// that names an alias with the alias's underlying expression.
|
|
1687
|
+
function substituteSelectAliasesInClause(node, aliases) {
|
|
1688
|
+
if (!node || typeof node !== 'object')
|
|
1689
|
+
return node;
|
|
1690
|
+
if (Array.isArray(node))
|
|
1691
|
+
return node.map((item) => substituteSelectAliasesInClause(item, aliases));
|
|
1692
|
+
const fields = node.ColumnRef?.fields;
|
|
1693
|
+
if (Array.isArray(fields) && fields.length === 1) {
|
|
1694
|
+
const name = stringValue(fields[0]);
|
|
1695
|
+
if (name && aliases.has(name))
|
|
1696
|
+
return cloneAst(aliases.get(name));
|
|
1697
|
+
}
|
|
1698
|
+
for (const key of Object.keys(node)) {
|
|
1699
|
+
node[key] = substituteSelectAliasesInClause(node[key], aliases);
|
|
1700
|
+
}
|
|
1701
|
+
return node;
|
|
1702
|
+
}
|
|
1664
1703
|
function rewriteDistinctOnSelect(stmt) {
|
|
1665
1704
|
if (!isDistinctOnClause(stmt?.distinctClause))
|
|
1666
1705
|
return stmt;
|
|
@@ -1670,10 +1709,11 @@ function rewriteDistinctOnSelect(stmt) {
|
|
|
1670
1709
|
innerTargets.forEach((targetNode, index) => {
|
|
1671
1710
|
targetNode.ResTarget.name ??= outputNames[index];
|
|
1672
1711
|
});
|
|
1673
|
-
const
|
|
1674
|
-
const
|
|
1712
|
+
const aliasExpressions = selectListAliasExpressions(innerTargets);
|
|
1713
|
+
const partitionClause = substituteSelectAliasesInClause(cloneAst(stmt.distinctClause), aliasExpressions);
|
|
1714
|
+
const orderClause = substituteSelectAliasesInClause(stmt.sortClause
|
|
1675
1715
|
? cloneAst(stmt.sortClause)
|
|
1676
|
-
: partitionClause.map((node) => sortByDefault(cloneAst(node)));
|
|
1716
|
+
: partitionClause.map((node) => sortByDefault(cloneAst(node))), aliasExpressions);
|
|
1677
1717
|
const inner = {
|
|
1678
1718
|
...cloneAst(stmt),
|
|
1679
1719
|
distinctClause: undefined,
|