prostgles-server 4.1.33 → 4.1.35

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.
@@ -9,7 +9,7 @@ const prostgles_types_1 = require("prostgles-types");
9
9
  function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}) {
10
10
  const PREF = `prostgles`, joins = q.joins || [],
11
11
  // aggs = q.aggs || [],
12
- getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, getTableJoinAliasAsName = (joinAlias, table) => (0, prostgles_types_1.asName)(!joinAlias ? table : `${joinAlias || ""}_${table}`), getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
12
+ getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, getTableJoinAliasAsName = (joinAlias, table) => !joinAlias ? table : (0, prostgles_types_1.asName)(`${joinAlias || ""}_${table}`), getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
13
13
  const indentLine = (numberOfSpaces, str, indentStr = " ") => new Array(numberOfSpaces).fill(indentStr).join("") + str;
14
14
  const indentArray = (numberOfSpaces, strArr, indentStr = " ") => strArr.map(str => indentLine(numberOfSpaces, str, indentStr));
15
15
  const indentArrayAndJoin = (numberOfSpaces, strArr, separator = " \n ", indentStr = " ") => indentArray(numberOfSpaces, strArr, indentStr).join(separator);
@@ -129,7 +129,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
129
129
  }
130
130
  return s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias);
131
131
  }).join(", "),
132
- `FROM ${(0, prostgles_types_1.asName)(q.table)}`,
132
+ `FROM ${q.table}`,
133
133
  q.where,
134
134
  groupBy //!aggs.length? "" : `GROUP BY ${nonAggs.map(sf => asName(sf.alias)).join(", ")}`,
135
135
  ,
@@ -175,7 +175,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
175
175
  ...appendCommas(rootSelectItems.map(s => s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias)).concat(parsedJoins.map((j, i) => {
176
176
  /** Apply LIMIT to joined items */
177
177
  const jsq = `json_agg(${j.jsonColName}::jsonb ORDER BY ${j.rowidSortedColName}) FILTER (WHERE ${j.limitColName} <= ${j.q.limit} AND ${j.rowidDupesColName} = 1 AND ${j.jsonColName} IS NOT NULL)`;
178
- const resAlias = (0, prostgles_types_1.asName)(j.q.tableAlias || j.q.table);
178
+ const resAlias = j.q.tableAlias ? (0, prostgles_types_1.asName)(j.q.tableAlias) : j.q.table;
179
179
  /* If limit = 1 then return a single json object (first one) */
180
180
  return (j.q.limit === 1 ? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
181
181
  }))),
@@ -203,7 +203,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
203
203
  "-- 3. [source table] ",
204
204
  "SELECT ",
205
205
  "*, row_number() over() as ctid ",
206
- `FROM ${(0, prostgles_types_1.asName)(q.table)} `,
206
+ `FROM ${q.table} `,
207
207
  `${q.where} `
208
208
  ]),
209
209
  `) ${getTableAliasAsName(q)} `,
@@ -1 +1 @@
1
- {"version":3,"file":"makeSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/makeSelectQuery.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAC/C,qDAAuD;AAIvD;;+CAE+C;AAC/C,SAAgB,eAAe,CAC7B,KAAmB,EACnB,CAAW,EACX,KAAK,GAAG,CAAC,EACT,aAAuB,EAAE,EACzB,eAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,WAAW,EACpB,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;IACrB,uBAAuB;IACvB,aAAa,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAC5F,uBAAuB,GAAG,CAAC,SAA6B,EAAE,KAAa,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,CAAC,SAAS,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,EACrI,mBAAmB,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,CAAC,cAAsB,EAAE,GAAW,EAAE,SAAS,GAAG,MAAM,EAAU,EAAE,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAEjJ,MAAM,WAAW,GAAG,CAAC,cAAsB,EAAE,MAAgB,EAAE,SAAS,GAAG,MAAM,EAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,SAAS,CAAC,CAAE,CAAC;IAE/J,MAAM,kBAAkB,GAAG,CAAC,cAAsB,EAAE,MAAgB,EAAE,SAAS,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEhL,MAAM,YAAY,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAErH,MAAM,WAAW,GAAG,CAAC,CAAW,EAAE,GAAW,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAEtG,8BAA8B;IAC9B,MAAM,UAAU,GAAG,CAAC,EAAY,EAAE,EAAY,EAAuK,EAAE;QACrN,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE7B,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAA8D,EAAE;YAC7G,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,CAAW,EAAE,EAAE;gBAC9C,IAAG,KAAK,KAAK,CAAC,CAAC,KAAK,EAAC;oBACnB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAA,wBAAM,EAAC,GAAG,CAAC,CAAC,CAAC;oBACvE,IAAG,CAAC,aAAa,EAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,2CAA2C,CAAC,CAAC;wBACjE,MAAM,+BAA+B,GAAG,+EAA+E,CAAA;qBACxH;oBACD,OAAO,aAAa,CAAC,KAAK,CAAC;iBAC5B;gBAED,OAAO,GAAG,CAAC;YACb,CAAC,CAAA;YAED,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;gBACrC,OAAO,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAA;YACD,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;gBACrC,OAAO,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAA;YAED,gEAAgE;YAEhE,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAExG,oFAAoF;YACpF,IAAI,EAAE,GAAG;gBACP,IAAA,wBAAM,EAAC,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE;aAChC,CAAC;YAEF,oDAAoD;YACpD,IAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;gBAEtB,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC3D,mDAAmD;oBACnD,IAAG,CAAC,CAAC,IAAI,KAAK,aAAa;wBAAE,OAAO,IAAA,wBAAM,EAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxF,OAAO,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElE,MAAM,UAAU,GAAG,eAAe,CAChC,KAAK,EACL,EAAE,EACF,KAAK,GAAG,CAAC,EACT,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,EAAE,CAAC,CAAC,CAAC,EACtD,YAAY,CACb,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEd,OAAO,GAAG,SAAS,CAAC;gBACpB,kBAAkB,GAAG,WAAW,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBACrD,iBAAiB,GAAG,WAAW,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBACnD,YAAY,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxC,WAAW,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAErC,EAAE,GAAG;oBACH,GAAG;oBACF,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;wBACrB,uBAAuB;wBACvB,WAAW;wBACX,0BAA0B,kBAAkB,GAAG;wBAC/C,sCAAsC,YAAY,eAAe,WAAW,EAAE;wBAC9E,QAAQ;wBACR,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC;wBACrC,KAAK,IAAA,wBAAM,EAAC,EAAE,CAAC,KAAK,CAAC,MAAM;qBAChC,CAAC;oBACF,KAAK,SAAS,EAAE;iBACjB,CAAA;aACJ;YAED,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,OAAe,EAAG,EAAwB,EAAE,EAAE;gBACvF,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAC1C,GAAG,OAAO,IAAI,IAAA,wBAAM,EAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,IAAI,IAAA,wBAAM,EAAC,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,CACrF,CAAC,IAAI,CAAC,OAAO,CAAC,CAChB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAChB,CAAC,CAAA;YAED,MAAM,KAAK,GAAa;gBACpB,GAAG,EAAE,CAAC,UAAU,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,QAAQ;gBAC5C,GAAG,EAAE;gBACH,MAAM,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE;aACrD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAG,CAAA;IAC1K,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,eAA6B,EAAE,YAA0B,EAAU,EAAE;QACvF,IAAG,YAAY,CAAC,MAAM,EAAC;YAErB,iHAAiH;YACjH,OAAO,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACzC,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;gBACnE,IAAG,GAAG,GAAG,CAAC;oBAAE,MAAM,kCAAkC,EAAE,CAAC,KAAK,mBAAmB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnH,OAAO,GAAG,GAAG,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACd;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAA;IAED,qDAAqD;IACrD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAChG,IAAG,CAAC,KAAK,CAAC,MAAM,EAAC;QAEf,wDAAwD;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;QAE7F,kEAAkE;QAClE,IAAG,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE,OAAO,EAAC;YAEpC,IAAG,OAAO,CAAC,MAAM,EAAC;gBAChB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACzF,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;aACtD;SACJ;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE;YAC1C,2BAA2B;YAE3B,gDAAgD;;YAChD,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAChC,yEAAyE;gBAEzE,IAAG,CAAC,CAAC,IAAI,KAAK,aAAa,EAAC;oBAC1B,mDAAmD;oBACnD,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAA,wBAAM,EAAC,CAAC,KAAK,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;iBACvE;gBACD,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACX,QAAQ,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YACzB,CAAC,CAAC,KAAK;YACP,OAAO,CAAC,kFAAkF;;YAC1F,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;YACnC,IAAA,wBAAW,EAAC,CAAC,CAAC,YAAY,CAAC;YAC3B,CAAC,KAAK,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI;YAClC,CAAC,KAAK,CAAA,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;SAC5C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAwB,CAAC,CAAC;QAEnE,qBAAqB;QACrB,OAAO,WAAW,CAAC;KACpB;SAAM;QACL,0EAA0E;QAC1E,IACE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAC7D,MAAM,4BAA4B,CAAC;KACtC;IAED,IAAG,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC;QAAE,MAAM,+BAA+B,CAAC;IAEzG,uIAAuI;IAEvI,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IAEjE,IAAI,WAA+B,CAAC;IACpC,IAAG,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAC;QACtF,MAAM,YAAY,GAAG,CAAC,KAAK,CAAA,CAAC;YAC1B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,wBAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACxE,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA,CAAC;YACb,EAAE,CAAC,CAAC;YACJ,CAAC,MAAM,CAAC,CACX,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjB,qDAAqD;QACrD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAG,YAAY,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAC;gBACzE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAA;QAEF,WAAW,GAAG,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;KACrD;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErD,kBAAkB;IAClB,MAAM,WAAW,GAAG;QAChB,KAAK;QACL,uBAAuB;QACvB,YAAY;QACf,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CACvF,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE;YAEpB,kCAAkC;YAClC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,WAAW,oBAAoB,CAAC,CAAC,kBAAkB,mBAAmB,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,iBAAiB,YAAY,CAAC,CAAC,WAAW,eAAe,CAAC;YAClM,MAAM,QAAQ,GAAG,IAAA,wBAAM,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAEpD,+DAA+D;YAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAA,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,GAAI,QAAQ,QAAQ,EAAE,CAAC;QAC3F,CAAC,CAAC,CACH,CAAC;QACA,SAAS;QACT,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;YACtB,iCAAiC;YACjC,aAAa;YACZ,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE;gBACpB,OAAQ,kCAAkC,CAAC,CAAC,iBAAiB,IAAI;oBAC7D,iBAAiB,CAAC,CAAC,iBAAiB,QAAQ,CAAC,CAAC,YAAY,IAAI,CAAA;YACtE,CAAC,CAAC,CAAC,CACN;YACD,sBAAsB,mBAAmB,CAAC,CAAC,CAAC,EAAE;YAC9C,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;gBACtB,gDAAgD;gBAChD,SAAS;gBACT,GAAG,YAAY,CACX,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;qBAC3B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAA,wBAAM,EAAC,KAAK,CAAC,IAAI,CAAC;qBAC5D,MAAM,CACL,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI;oBACtC,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,kBAAkB,GAAG,IAAI;oBAC7C,iCAAiC;oBAC/B,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,kBAAkB,IAAI;oBACxC,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAC/D,CACF,CAEJ;gBACD,SAAS;gBACT,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;oBACtB,uBAAuB;oBACvB,SAAS;oBACT,iCAAiC;oBACjC,QAAQ,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,GAAG;oBAC1B,GAAG,CAAC,CAAC,KAAK,GAAG;iBAChB,CAAC;gBACF,KAAK,mBAAmB,CAAC,CAAC,CAAC,GAAG;gBAC9B,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACrD,CAAC;YACF,MAAM;SACT,CAAC;QACF,MAAM;QACN,WAAW;QACX,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACpC,IAAA,wBAAW,EAAC,CAAC,CAAC,YAAY,CAAC;QAC3B,KAAK,CAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;QAC7D,uBAAuB;QACvB,KAAK;KACR,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEhB,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,WAAkC,CAAC,CAAC;IAC1E,4BAA4B;IAC5B,oBAAoB;IACpB,OAAO,GAAG,CAAC;AACb,CAAC;AAjSD,0CAiSC"}
1
+ {"version":3,"file":"makeSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/makeSelectQuery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTablesForSchemaPostgresSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAM,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,eAAe,YAAY,oBAAoB,CAAC,QAAQ,CAAC;;;CAWrE,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgP9I"}
1
+ {"version":3,"file":"getTablesForSchemaPostgresSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAc,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAkFhE,eAAO,MAAM,eAAe,YAAY,oBAAoB,CAAC,QAAQ,CAAC;;;CAWrE,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2O9I"}
@@ -2,6 +2,83 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTablesForSchemaPostgresSQL = exports.getSchemaFilter = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
+ const getMaterialViews = (db, schema) => {
6
+ const { sql, schemaNames } = (0, exports.getSchemaFilter)(schema);
7
+ const query = `
8
+ SELECT
9
+ c.oid,
10
+ schema,
11
+ escaped_identifier,
12
+ true as is_view,
13
+ true as is_mat_view,
14
+ obj_description(c.oid) as comment,
15
+ c.table_name as name,
16
+ definition as view_definition,
17
+ jsonb_build_object(
18
+ 'insert', TRUE,
19
+ 'select', TRUE,
20
+ 'update', TRUE,
21
+ 'delete', EXISTS (
22
+ SELECT 1
23
+ FROM information_schema.role_table_grants rg
24
+ WHERE rg.table_name = c.table_name
25
+ AND rg.privilege_type = 'DELETE'
26
+ )
27
+ ) as privileges,
28
+ json_agg(json_build_object(
29
+ 'name', column_name,
30
+ 'table_oid', c.oid,
31
+ 'is_pkey', false,
32
+ 'data_type', data_type,
33
+ 'udt_name', udt_name,
34
+ 'element_udt_name',
35
+ CASE WHEN LEFT(udt_name, 1) = '_'
36
+ THEN RIGHT(udt_name, -1) END,
37
+ 'element_type',
38
+ CASE WHEN RIGHT(data_type, 2) = '[]'
39
+ THEN LEFT(data_type, -2) END,
40
+ 'is_nullable', nullable,
41
+ 'references', null,
42
+ 'has_default', false,
43
+ 'column_default', null,
44
+ 'is_updatable', false,
45
+ 'privileges', $$[{
46
+ "privilege_type": "SELECT",
47
+ "is_grantable": "YES"
48
+ }]$$::jsonb
49
+ )) as columns
50
+ FROM pg_catalog.pg_matviews m
51
+ INNER JOIN (
52
+ SELECT
53
+ t.oid,
54
+ CASE WHEN current_schema() = s.nspname
55
+ THEN format('%I', t.relname)
56
+ ELSE format('%I.%I', s.nspname, t.relname)
57
+ END as escaped_identifier,
58
+ t.relname as table_name,
59
+ s.nspname as schema,
60
+ a.attname as column_name,
61
+ pg_catalog.format_type(a.atttypid, a.atttypmod) as data_type,
62
+ typname as udt_name,
63
+ a.attnotnull as nullable,
64
+ a.attnum as ordinal_position,
65
+ col_description(t.oid, attnum) as comment
66
+ FROM pg_catalog.pg_attribute a
67
+ JOIN pg_catalog.pg_class t on a.attrelid = t.oid
68
+ JOIN pg_catalog.pg_namespace s on t.relnamespace = s.oid
69
+ JOIN pg_catalog.pg_type pt ON pt.oid = a.atttypid
70
+ WHERE a.attnum > 0
71
+ AND NOT a.attisdropped
72
+ AND relkind = 'm'
73
+ ORDER BY a.attnum
74
+ ) c
75
+ ON matviewname = table_name
76
+ AND schemaname = schema
77
+ WHERE schema ${sql}
78
+ GROUP BY c.oid, escaped_identifier, c.table_name, schema, definition
79
+ `;
80
+ return db.any(query, { schemaNames });
81
+ };
5
82
  const getSchemaFilter = (schema = { public: 1 }) => {
6
83
  const schemaNames = Object.keys(schema);
7
84
  const isInclusive = Object.values(schema).every(v => v);
@@ -17,94 +94,106 @@ exports.getSchemaFilter = getSchemaFilter;
17
94
  // TODO: Add a onSocketConnect timeout for this query. Reason: this query gets blocked by prostgles.app_triggers from PubSubManager.addTrigger in some cases (pg_dump locks that table)
18
95
  async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
19
96
  const { sql, schemaNames } = (0, exports.getSchemaFilter)(schema);
20
- const query = `
97
+ return db.tx(async (t) => {
98
+ const fkeys = await t.any(`
21
99
  WITH pg_class_schema AS (
22
- SELECT pgc.oid, -- must be explicitly selected on v11
23
- pgc.relname,
24
- nspname as schema
25
- FROM pg_catalog.pg_class pgc
26
- LEFT JOIN pg_catalog.pg_namespace ns
27
- ON pgc.relnamespace = ns.oid
100
+ SELECT c.*, nspname as schema
101
+ ,CASE WHEN current_schema() = nspname
102
+ THEN format('%I', c.relname)
103
+ ELSE format('%I.%I', nspname, c.relname)
104
+ END as escaped_identifier
105
+ FROM pg_catalog.pg_class AS c
106
+ LEFT JOIN pg_catalog.pg_namespace AS ns
107
+ ON c.relnamespace = ns.oid
28
108
  WHERE nspname ${sql}
109
+ ), fk AS (
110
+ SELECT conrelid as oid
111
+ , escaped_identifier as ftable
112
+ , array_agg(DISTINCT c1.attname::text) as cols
113
+ , array_agg(DISTINCT c2.attname::text) as fcols
114
+ FROM pg_catalog.pg_constraint c
115
+ INNER JOIN pg_class_schema pc
116
+ ON confrelid = pc.oid
117
+ LEFT JOIN pg_attribute c1
118
+ ON c1.attrelid = c.conrelid and ARRAY[c1.attnum] <@ c.conkey
119
+ LEFT JOIN pg_attribute c2
120
+ ON c2.attrelid = c.confrelid and ARRAY[c2.attnum] <@ c.confkey
121
+ WHERE contype = 'f'
122
+ GROUP BY conrelid, pc.escaped_identifier
29
123
  )
30
-
31
- SELECT
32
- jsonb_build_object(
33
- 'insert', TRUE,
34
- 'select', TRUE,
35
- 'update', TRUE,
36
- 'delete', EXISTS (
124
+ SELECT * FROM fk
125
+ `, { schemaNames });
126
+ const badFkey = fkeys.find(r => r.fcols.includes(null));
127
+ if (badFkey) {
128
+ throw `Invalid table column schema. Null or empty fcols for ${JSON.stringify(fkeys)}`;
129
+ }
130
+ const query = `
131
+ SELECT
132
+ jsonb_build_object(
133
+ 'insert', TRUE,
134
+ 'select', TRUE,
135
+ 'update', TRUE,
136
+ 'delete', EXISTS (
37
137
  SELECT 1
38
138
  FROM information_schema.role_table_grants rg
39
139
  WHERE rg.table_name = t.table_name
40
140
  AND rg.privilege_type = 'DELETE'
41
- )
42
- ) as privileges
43
- , t.table_schema as schema
44
- , t.table_name as name
45
- , CASE WHEN current_schema() = t.table_schema
46
- THEN format('%I', t.table_name)
47
- ELSE format('%I.%I', t.table_schema, t.table_name)
48
- END as escaped_identifier
49
- , COALESCE(cc.columns, '[]'::JSONB) as columns
50
- , t.oid
51
- , t.is_view
52
- , t.view_definition
53
- , array_to_json(vr.table_names) as parent_tables
54
- , obj_description(t.oid::regclass) as comment
55
- FROM (
56
- SELECT table_name,
57
- table_schema,
58
- oid,
59
- is_view,
60
- CASE WHEN is_view THEN pg_get_viewdef(format('%I.%I', table_schema, table_name)::REGCLASS, true) END as view_definition
61
- FROM (
62
- SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
63
- FROM information_schema.tables
64
- /* TODO - add support for materialized views
65
- UNION ALL
66
- SELECT table_name, table_schema
67
- FROM (
68
- SELECT relname as table_name, nspname as table_schema, true as is_view
69
- FROM pg_catalog.pg_class AS _c
70
- JOIN pg_catalog.pg_namespace AS _ns
71
- ON _c.relnamespace = _ns.oid
72
- WHERE relkind IN ( 'm' )
73
- ) materialized_views
74
- */
75
- ) tables_matviews
76
- WHERE table_schema ${sql}
77
- ) t
78
- LEFT join (
79
- SELECT table_schema, table_name
80
- , jsonb_agg((SELECT x FROM (
81
- SELECT ccc.column_name as name,
82
- ccc.data_type,
83
- ccc.udt_name,
84
- ccc.element_type,
85
- ccc.element_udt_name,
86
- ccc.is_pkey,
87
- ccc.comment,
88
- ccc.ordinal_position,
89
- ccc.is_nullable = 'YES' as is_nullable,
90
- ccc.is_updatable,
91
- ccc.references,
92
- ccc.has_default,
93
- ccc.column_default,
94
- COALESCE(ccc.privileges, '[]'::JSON) as privileges
95
- ) as x) ORDER BY ccc.ordinal_position ) as columns
141
+ )
142
+ ) as privileges
143
+ , t.table_schema as schema
144
+ , t.table_name as name
145
+ , CASE WHEN current_schema() = t.table_schema
146
+ THEN format('%I', t.table_name)
147
+ ELSE format('%I.%I', t.table_schema, t.table_name)
148
+ END as escaped_identifier
149
+ , COALESCE(cc.columns, '[]'::JSONB) as columns
150
+ , t.oid
151
+ , t.is_view
152
+ , t.view_definition
153
+ , array_to_json(vr.table_names) as parent_tables
154
+ , obj_description(t.oid::regclass) as comment
155
+ FROM (
156
+ SELECT table_name,
157
+ table_schema,
158
+ oid,
159
+ is_view,
160
+ CASE WHEN is_view THEN pg_get_viewdef(format('%I.%I', table_schema, table_name)::REGCLASS, true) END as view_definition
96
161
  FROM (
162
+ SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
163
+ FROM information_schema.tables
164
+ ) tables_matviews
165
+ WHERE table_schema ${sql}
166
+ ) t
167
+ LEFT join (
168
+ SELECT table_schema, table_name
169
+ , jsonb_agg((SELECT x FROM (
170
+ SELECT ccc.column_name as name,
171
+ ccc.data_type,
172
+ ccc.udt_name,
173
+ ccc.element_type,
174
+ ccc.element_udt_name,
175
+ ccc.is_pkey,
176
+ ccc.comment,
177
+ ccc.ordinal_position,
178
+ ccc.is_nullable = 'YES' as is_nullable,
179
+ ccc.is_updatable,
180
+ null as references,
181
+ ccc.has_default,
182
+ ccc.column_default,
183
+ COALESCE(ccc.privileges, '[]'::JSON) as privileges
184
+ ) as x) ORDER BY ccc.ordinal_position ) as columns
185
+ FROM (
97
186
  SELECT c.table_schema, c.table_name, c.column_name, c.data_type, c.udt_name
98
187
  , e.data_type as element_type
99
188
  , e.udt_name as element_udt_name
100
189
  , col_description(format('%I.%I', c.table_schema, c.table_name)::regclass::oid, c.ordinal_position) as comment
101
- --, CASE WHEN fc.ftable IS NOT NULL THEN row_to_json((SELECT t FROM (SELECT fc.ftable, fc.fcols, fc.cols) t)) END as references
102
- , fc.references
190
+ --, fc.references
103
191
  , c.is_identity = 'YES' OR EXISTS (
104
192
  SELECT 1
105
193
  FROM information_schema.table_constraints as tc
106
194
  JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema
107
- WHERE kcu.table_schema = c.table_schema AND kcu.table_name = c.table_name AND kcu.column_name = c.column_name AND tc.constraint_type IN ('PRIMARY KEY')
195
+ WHERE kcu.table_schema = c.table_schema AND kcu.table_name = c.table_name
196
+ AND kcu.column_name = c.column_name AND tc.constraint_type IN ('PRIMARY KEY')
108
197
  ) as is_pkey
109
198
  , c.ordinal_position
110
199
  , COALESCE(c.column_default IS NOT NULL OR c.identity_generation = 'ALWAYS', false) as has_default
@@ -125,126 +214,102 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
125
214
  GROUP BY table_schema, table_name, column_name
126
215
  ) cp
127
216
  ON c.table_name = cp.table_name AND c.column_name = cp.column_name
128
- LEFT JOIN (
129
- --SELECT *
130
- SELECT
131
- "table"
132
- , unnest(ft.cols) as col
133
- , jsonb_agg(row_to_json((SELECT t FROM (SELECT ftable, fcols, cols) t))) as references
134
- FROM (
135
- SELECT
136
- (
137
- SELECT r.relname from pg_class r where r.oid = c.conrelid
138
- ) as table,
139
- (
140
- SELECT array_agg(attname::text) from pg_attribute
141
- where attrelid = c.conrelid and ARRAY[attnum] <@ c.conkey
142
- ) as cols,
143
- (
144
- SELECT array_agg(attname::text) from pg_attribute
145
- where attrelid = c.confrelid and ARRAY[attnum] <@ c.confkey
146
- ) as fcols,
147
- (
148
- --SELECT r.relname from pg_class r where r.oid = c.confrelid
149
- SELECT
150
- CASE WHEN current_schema() = r.schema
151
- THEN format('%I', r.relname)
152
- ELSE format('%I.%I', r.schema, r.relname)
153
- END
154
- FROM pg_class_schema r
155
- WHERE r.oid = c.confrelid
156
- ) as ftable
157
- FROM pg_constraint c
158
- ) ft
159
- WHERE ft.table IS NOT NULL
160
- AND ft.ftable IS NOT NULL
161
- -- c.confrelid = 'users'::regclass::oid
162
- GROUP BY "table", unnest(cols)
163
- ) fc
164
- ON fc.table = c.table_name
165
- AND c.column_name::text = fc.col
166
- ) ccc
167
- GROUP BY table_schema, table_name
168
- ) cc
169
- ON t.table_name = cc.table_name
170
- AND t.table_schema = cc.table_schema
171
- LEFT JOIN (
217
+ ) ccc
218
+ GROUP BY table_schema, table_name
219
+ ) cc
220
+ ON t.table_name = cc.table_name
221
+ AND t.table_schema = cc.table_schema
222
+ LEFT JOIN (
172
223
  SELECT cl_r.relname as view_name, array_agg(DISTINCT cl_d.relname) AS table_names
173
224
  FROM pg_rewrite AS r
174
- JOIN pg_class AS cl_r ON r.ev_class=cl_r.oid
175
- JOIN pg_depend AS d ON r.oid=d.objid
176
- JOIN pg_class AS cl_d ON d.refobjid=cl_d.oid
225
+ JOIN pg_class AS cl_r ON r.ev_class = cl_r.oid
226
+ JOIN pg_depend AS d ON r.oid = d.objid
227
+ JOIN pg_class AS cl_d ON d.refobjid = cl_d.oid
177
228
  WHERE cl_d.relkind IN ('r','v')
178
229
  AND cl_d.relname <> cl_r.relname
179
230
  GROUP BY cl_r.relname
180
- ) vr
181
- ON t.table_name = vr.view_name
182
- GROUP BY t.table_schema, t.table_name, t.is_view, t.view_definition, vr.table_names , t.oid, cc.columns
183
- ORDER BY schema, name
184
- `;
185
- let result = await db.any(query, { schemaNames });
186
- let hyperTables = [];
187
- try {
188
- hyperTables = await getHyperTables(db);
189
- }
190
- catch (error) {
191
- console.error(error);
192
- }
193
- result = await Promise.all(result
194
- .map(async (tbl) => {
195
- tbl.name = tbl.escaped_identifier;
196
- tbl.privileges.select = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "SELECT"));
197
- tbl.privileges.insert = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "INSERT"));
198
- tbl.privileges.update = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "UPDATE"));
199
- /** Get view reference cols (based on parent table) */
200
- let viewFCols = [];
201
- if (tbl.is_view) {
202
- try {
203
- const view_definition = tbl.view_definition?.endsWith(";") ? tbl.view_definition.slice(0, -1) : tbl.view_definition;
204
- const { fields } = await runSQL(`SELECT * FROM \n ( ${view_definition} \n) t LIMIT 0`, {}, {}, undefined);
205
- const ftables = result.filter(r => fields.some(f => f.tableID === r.oid));
206
- ftables.forEach(ft => {
207
- const fFields = fields.filter(f => f.tableID === ft.oid);
208
- const pkeys = ft.columns.filter(c => c.is_pkey);
209
- const fFieldPK = fFields.filter(ff => pkeys.some(p => p.name === ff.columnName));
210
- const refCols = pkeys.length && fFieldPK.length === pkeys.length ? fFieldPK : fFields.filter(ff => !["json", "jsonb", "xml"].includes(ff.udt_name));
211
- const _fcols = refCols.map(ff => {
212
- const d = {
213
- name: ff.columnName,
214
- references: [{
215
- ftable: ft.name,
216
- fcols: [ff.columnName],
217
- cols: [ff.name]
218
- }]
219
- };
220
- return d;
221
- });
222
- viewFCols = [
223
- ...viewFCols,
224
- ..._fcols
225
- ];
226
- });
227
- }
228
- catch (err) {
229
- console.error(err);
230
- }
231
+ ) vr
232
+ ON t.table_name = vr.view_name
233
+ GROUP BY t.table_schema, t.table_name, t.is_view, t.view_definition, vr.table_names , t.oid, cc.columns
234
+ ORDER BY schema, name
235
+ `;
236
+ const tablesAndViews = await t.any(query, { schemaNames });
237
+ const materialViews = await getMaterialViews(t, schema);
238
+ let hyperTables = [];
239
+ try {
240
+ hyperTables = await getHyperTables(t);
231
241
  }
232
- tbl.columns = tbl.columns.map(col => {
233
- if (col.has_default) {
234
- /** Hide pkey default value */
235
- col.column_default = (col.udt_name !== "uuid" && !col.is_pkey && !col.column_default.startsWith("nextval(")) ? col.column_default : null;
236
- }
237
- const viewFCol = viewFCols?.find(fc => fc.name === col.name);
238
- if (viewFCol) {
239
- col.references = viewFCol.references;
242
+ catch (error) {
243
+ console.error(error);
244
+ }
245
+ let result = tablesAndViews.concat(materialViews);
246
+ result = await Promise.all(result
247
+ .map(async (tbl) => {
248
+ tbl.name = tbl.escaped_identifier;
249
+ tbl.privileges.select = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "SELECT"));
250
+ tbl.privileges.insert = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "INSERT"));
251
+ tbl.privileges.update = tbl.columns.some(c => c.privileges.some(p => p.privilege_type === "UPDATE"));
252
+ tbl.columns = tbl.columns.map(c => {
253
+ const refs = fkeys.filter(fc => fc.oid === tbl.oid && fc.cols.includes(c.name));
254
+ if (refs.length)
255
+ c.references = refs.map(_ref => {
256
+ const ref = { ..._ref };
257
+ //@ts-ignore
258
+ delete ref.oid;
259
+ return ref;
260
+ });
261
+ return c;
262
+ });
263
+ /** Get view reference cols (based on parent table) */
264
+ let viewFCols = [];
265
+ if (tbl.is_view) {
266
+ try {
267
+ const view_definition = tbl.view_definition?.endsWith(";") ? tbl.view_definition.slice(0, -1) : tbl.view_definition;
268
+ const { fields } = await runSQL(`SELECT * FROM \n ( ${view_definition} \n) t LIMIT 0`, {}, {}, undefined);
269
+ const ftables = result.filter(r => fields.some(f => f.tableID === r.oid));
270
+ ftables.forEach(ft => {
271
+ const fFields = fields.filter(f => f.tableID === ft.oid);
272
+ const pkeys = ft.columns.filter(c => c.is_pkey);
273
+ const fFieldPK = fFields.filter(ff => pkeys.some(p => p.name === ff.columnName));
274
+ const refCols = pkeys.length && fFieldPK.length === pkeys.length ? fFieldPK : fFields.filter(ff => !["json", "jsonb", "xml"].includes(ff.udt_name));
275
+ const _fcols = refCols.map(ff => {
276
+ const d = {
277
+ name: ff.columnName,
278
+ references: [{
279
+ ftable: ft.name,
280
+ fcols: [ff.columnName],
281
+ cols: [ff.name]
282
+ }]
283
+ };
284
+ return d;
285
+ });
286
+ viewFCols = [
287
+ ...viewFCols,
288
+ ..._fcols
289
+ ];
290
+ });
291
+ }
292
+ catch (err) {
293
+ console.error(err);
294
+ }
240
295
  }
241
- return col;
242
- }); //.slice(0).sort((a, b) => a.name.localeCompare(b.name))
243
- // .sort((a, b) => a.ordinal_position - b.ordinal_position)
244
- tbl.isHyperTable = hyperTables?.includes(tbl.name);
245
- return tbl;
246
- }));
247
- return result;
296
+ tbl.columns = tbl.columns.map(col => {
297
+ if (col.has_default) {
298
+ /** Hide pkey default value */
299
+ col.column_default = (col.udt_name !== "uuid" && !col.is_pkey && !col.column_default.startsWith("nextval(")) ? col.column_default : null;
300
+ }
301
+ const viewFCol = viewFCols?.find(fc => fc.name === col.name);
302
+ if (viewFCol) {
303
+ col.references = viewFCol.references;
304
+ }
305
+ return col;
306
+ }); //.slice(0).sort((a, b) => a.name.localeCompare(b.name))
307
+ // .sort((a, b) => a.ordinal_position - b.ordinal_position)
308
+ tbl.isHyperTable = hyperTables?.includes(tbl.name);
309
+ return tbl;
310
+ }));
311
+ return result;
312
+ });
248
313
  }
249
314
  exports.getTablesForSchemaPostgresSQL = getTablesForSchemaPostgresSQL;
250
315
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"getTablesForSchemaPostgresSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTablesForSchemaPostgresSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"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"}