prostgles-server 4.1.34 → 4.1.36

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":"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"}
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,CAAC,SAAS,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,wBAAM,EAAC,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,CAAC,CAAC,KAAK,EAAE;YACjB,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,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA,CAAC,CAAC,IAAA,wBAAM,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAEnE,+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,CAAC,CAAC,KAAK,GAAG;oBAClB,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 +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,EAAc,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIhE,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,CAsP9I"}
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;AA+FhE,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,95 @@
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', FALSE,
19
+ 'select', TRUE,
20
+ 'update', FALSE,
21
+ 'delete', FALSE
22
+ ) as privileges,
23
+ json_agg(json_build_object(
24
+ 'name', column_name,
25
+ 'table_oid', c.oid,
26
+ 'is_pkey', false,
27
+ 'data_type', data_type,
28
+ 'udt_name', udt_name,
29
+ 'element_udt_name',
30
+ CASE WHEN LEFT(udt_name, 1) = '_'
31
+ THEN RIGHT(udt_name, -1) END,
32
+ 'element_type',
33
+ CASE WHEN RIGHT(data_type, 2) = '[]'
34
+ THEN LEFT(data_type, -2) END,
35
+ 'is_nullable', nullable,
36
+ 'references', null,
37
+ 'has_default', false,
38
+ 'column_default', null,
39
+ 'is_updatable', false,
40
+ 'privileges', $$[{
41
+ "privilege_type": "SELECT",
42
+ "is_grantable": "YES"
43
+ }]$$::jsonb
44
+ )) as columns
45
+ FROM pg_catalog.pg_matviews m
46
+ INNER JOIN (
47
+ SELECT
48
+ t.oid,
49
+ CASE WHEN current_schema() = s.nspname
50
+ THEN format('%I', t.relname)
51
+ ELSE format('%I.%I', s.nspname, t.relname)
52
+ END as escaped_identifier,
53
+ t.relname as table_name,
54
+ s.nspname as schema,
55
+ a.attname as column_name,
56
+ pg_catalog.format_type(a.atttypid, a.atttypmod) as data_type,
57
+ typname as udt_name,
58
+ a.attnotnull as nullable,
59
+ a.attnum as ordinal_position,
60
+ col_description(t.oid, attnum) as comment
61
+ FROM pg_catalog.pg_attribute a
62
+ JOIN pg_catalog.pg_class t on a.attrelid = t.oid
63
+ JOIN pg_catalog.pg_namespace s on t.relnamespace = s.oid
64
+ JOIN pg_catalog.pg_type pt ON pt.oid = a.atttypid
65
+ WHERE a.attnum > 0
66
+ AND NOT a.attisdropped
67
+ AND relkind = 'm'
68
+ ORDER BY a.attnum
69
+ ) c
70
+ ON matviewname = table_name
71
+ AND schemaname = schema
72
+ WHERE schema ${sql}
73
+ GROUP BY c.oid, escaped_identifier, c.table_name, schema, definition
74
+ `;
75
+ /** TODO: check privileges
76
+
77
+
78
+
79
+ select
80
+ coalesce(nullif(s[1], ''), 'public') as grantee,
81
+ s[2] as privileges
82
+ from
83
+ pg_class c
84
+ join pg_namespace n on n.oid = relnamespace
85
+ join pg_roles r on r.oid = relowner,
86
+ unnest(coalesce(relacl::text[], format('{%s=arwdDxt/%s}', rolname, rolname)::text[])) acl,
87
+ regexp_split_to_array(acl, '=|/') s
88
+ where nspname = 'public' and relname = 'test_view';
89
+
90
+
91
+ */
92
+ return db.any(query, { schemaNames });
93
+ };
5
94
  const getSchemaFilter = (schema = { public: 1 }) => {
6
95
  const schemaNames = Object.keys(schema);
7
96
  const isInclusive = Object.values(schema).every(v => v);
@@ -20,7 +109,7 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
20
109
  return db.tx(async (t) => {
21
110
  const fkeys = await t.any(`
22
111
  WITH pg_class_schema AS (
23
- SELECT c.*, nspname as schema
112
+ SELECT c.oid, c.relname, nspname as schema
24
113
  ,CASE WHEN current_schema() = nspname
25
114
  THEN format('%I', c.relname)
26
115
  ELSE format('%I.%I', nspname, c.relname)
@@ -84,17 +173,6 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
84
173
  FROM (
85
174
  SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
86
175
  FROM information_schema.tables
87
- /* TODO - add support for materialized views
88
- UNION ALL
89
- SELECT table_name, table_schema
90
- FROM (
91
- SELECT relname as table_name, nspname as table_schema, true as is_view
92
- FROM pg_catalog.pg_class AS _c
93
- JOIN pg_catalog.pg_namespace AS _ns
94
- ON _c.relnamespace = _ns.oid
95
- WHERE relkind IN ( 'm' )
96
- ) materialized_views
97
- */
98
176
  ) tables_matviews
99
177
  WHERE table_schema ${sql}
100
178
  ) t
@@ -167,10 +245,8 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
167
245
  GROUP BY t.table_schema, t.table_name, t.is_view, t.view_definition, vr.table_names , t.oid, cc.columns
168
246
  ORDER BY schema, name
169
247
  `;
170
- let result = await t.any(query, { schemaNames });
171
- // writeFileSync(__dirname + "/old.json", JSON.stringify(await getTablesForSchemaPostgresSQLOld({ db, runSQL } as any), null, 2), "utf-8");
172
- // writeFileSync(__dirname + "/new.json", JSON.stringify(result, null, 2), "utf-8");
173
- // throw 2;
248
+ const tablesAndViews = await t.any(query, { schemaNames });
249
+ const materialViews = await getMaterialViews(t, schema);
174
250
  let hyperTables = [];
175
251
  try {
176
252
  hyperTables = await getHyperTables(t);
@@ -178,6 +254,7 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
178
254
  catch (error) {
179
255
  console.error(error);
180
256
  }
257
+ let result = tablesAndViews.concat(materialViews);
181
258
  result = await Promise.all(result
182
259
  .map(async (tbl) => {
183
260
  tbl.name = tbl.escaped_identifier;
@@ -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":";;;AAAA,qDAAoD;AAIpD,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,MAAsC,EAAE,EAAE;IAC9E,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAiEG,GAAG;;GAEnB,CAAC;IAEF;;;;;;;;;;;;;;;;MAgBE;IAEF,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACxC,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,SAAyC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IACxF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,IAAG,CAAC,WAAW,CAAC,MAAM,EAAC;QACrB,MAAM,kCAAkC,CAAC;KAC1C;IAED,OAAO;QACL,GAAG,EAAE,IAAI,WAAW,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,0BAA0B;QAC3D,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AACD,uLAAuL;AAChL,KAAK,UAAU,6BAA6B,CAAC,EAAE,EAAE,EAAE,MAAM,EAAc,EAAE,MAAsC;IACpH,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAC;IAErD,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;QAErB,MAAM,KAAK,GAKL,MAAM,CAAC,CAAC,GAAG,CAAC;;;;;;;;;;sBAUA,GAAG;;;;;;;;;;;;;;;;;KAiBpB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC,CAAC;QAC/D,IAAG,OAAO,EAAC;YACT,MAAM,wDAAwD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SACvF;QACD,MAAM,KAAK,GACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmCqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEvB,CAAC;QAEJ,MAAM,cAAc,GAAkB,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,WAAW,GAAyB,EAAE,CAAC;QAC3C,IAAI;YACF,WAAW,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtB;QAED,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM;aAC9B,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACf,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,kBAAkB,CAAC;YAClC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC;YACrG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC;YACrG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC;YACrG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChF,IAAG,IAAI,CAAC,MAAM;oBAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC7C,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wBACxB,YAAY;wBACZ,OAAO,GAAG,CAAC,GAAG,CAAC;wBACf,OAAO,GAAG,CAAC;oBACb,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAI,SAAS,GAAqD,EAAE,CAAC;YACrE,IAAG,GAAG,CAAC,OAAO,EAAC;gBACb,IAAI;oBACF,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;oBACnH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,eAAgB,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAyB,CAAC;oBACnI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1E,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;wBACzD,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;wBACjF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACnJ,MAAM,MAAM,GAAqB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4BAChD,MAAM,CAAC,GAAmD;gCACxD,IAAI,EAAE,EAAE,CAAC,UAAW;gCACpB,UAAU,EAAE,CAAC;wCACX,MAAM,EAAE,EAAE,CAAC,IAAI;wCACf,KAAK,EAAE,CAAC,EAAE,CAAC,UAAW,CAAC;wCACvB,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;qCAChB,CAAC;6BACH,CAAA;4BACD,OAAO,CAAC,CAAC;wBACX,CAAC,CAAC,CAAA;wBACF,SAAS,GAAG;4BACV,GAAG,SAAS;4BACZ,GAAG,MAAM;yBACV,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;gBAAC,OAAM,GAAG,EAAC;oBACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACpB;aACF;YAED,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAClC,IAAI,GAAG,CAAC,WAAW,EAAE;oBACnB,8BAA8B;oBAC9B,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC1I;gBAED,MAAM,QAAQ,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC5D,IAAG,QAAQ,EAAC;oBACV,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;iBACtC;gBAED,OAAO,GAAG,CAAC;YAEb,CAAC,CAAC,CAAA,CAAA,wDAAwD;YAC1D,2DAA2D;YAE3D,GAAG,CAAC,YAAY,GAAG,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEnD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AA3OD,sEA2OC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,KAAK,EAAE,EAAU,EAAiC,EAAE;IACzE,MAAM,MAAM,GAAG,sBAAsB,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC;;;;;;OAM1B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnB,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,MAAM,MAAM,GAA2B,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,GAAG,IAAA,wBAAM,EAAC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC;QACjH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;KACtC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA"}
@@ -18,7 +18,7 @@ export function makeSelectQuery(
18
18
  joins = q.joins || [],
19
19
  // aggs = q.aggs || [],
20
20
  getTableAlias = (q: NewQuery) => !q.tableAlias? q.table : `${q.tableAlias || ""}_${q.table}`,
21
- getTableJoinAliasAsName = (joinAlias: string | undefined, table: string) => asName(!joinAlias? table : `${joinAlias || ""}_${table}`),
21
+ getTableJoinAliasAsName = (joinAlias: string | undefined, table: string) => !joinAlias? table : asName(`${joinAlias || ""}_${table}`),
22
22
  getTableAliasAsName = (q: NewQuery) => asName(getTableAlias(q));
23
23
 
24
24
  const indentLine = (numberOfSpaces: number, str: string, indentStr = " "): string => new Array(numberOfSpaces).fill(indentStr).join("") + str;
@@ -178,7 +178,7 @@ export function makeSelectQuery(
178
178
  }
179
179
  return s.getQuery() + " AS " + asName(s.alias)
180
180
  }).join(", ")
181
- , `FROM ${asName(q.table)}`
181
+ , `FROM ${q.table}`
182
182
  , q.where
183
183
  , groupBy //!aggs.length? "" : `GROUP BY ${nonAggs.map(sf => asName(sf.alias)).join(", ")}`,
184
184
  , q.having? `HAVING ${q.having}` : ""
@@ -236,7 +236,7 @@ export function makeSelectQuery(
236
236
 
237
237
  /** Apply LIMIT to joined items */
238
238
  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)`;
239
- const resAlias = asName(j.q.tableAlias || j.q.table)
239
+ const resAlias = j.q.tableAlias? asName(j.q.tableAlias) : j.q.table
240
240
 
241
241
  /* If limit = 1 then return a single json object (first one) */
242
242
  return (j.q.limit === 1? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
@@ -275,7 +275,7 @@ export function makeSelectQuery(
275
275
  "-- 3. [source table] "
276
276
  , "SELECT "
277
277
  , "*, row_number() over() as ctid "
278
- , `FROM ${asName(q.table)} `
278
+ , `FROM ${q.table} `
279
279
  , `${q.where} `
280
280
  ])
281
281
  , `) ${getTableAliasAsName(q)} `
@@ -1,8 +1,99 @@
1
1
  import { SQLResult, asName } from "prostgles-types";
2
2
  import { DboBuilder, TableSchemaColumn, TableSchema } from "../DboBuilder";
3
3
  import { DB, DBorTx, ProstglesInitOptions } from "../Prostgles";
4
- import { writeFileSync } from "fs";
5
- import { clone } from "../utils";
4
+
5
+ const getMaterialViews = (db: DBorTx, schema: ProstglesInitOptions["schema"]) => {
6
+ const { sql, schemaNames } = getSchemaFilter(schema);
7
+
8
+ const query = `
9
+ SELECT
10
+ c.oid,
11
+ schema,
12
+ escaped_identifier,
13
+ true as is_view,
14
+ true as is_mat_view,
15
+ obj_description(c.oid) as comment,
16
+ c.table_name as name,
17
+ definition as view_definition,
18
+ jsonb_build_object(
19
+ 'insert', FALSE,
20
+ 'select', TRUE,
21
+ 'update', FALSE,
22
+ 'delete', FALSE
23
+ ) as privileges,
24
+ json_agg(json_build_object(
25
+ 'name', column_name,
26
+ 'table_oid', c.oid,
27
+ 'is_pkey', false,
28
+ 'data_type', data_type,
29
+ 'udt_name', udt_name,
30
+ 'element_udt_name',
31
+ CASE WHEN LEFT(udt_name, 1) = '_'
32
+ THEN RIGHT(udt_name, -1) END,
33
+ 'element_type',
34
+ CASE WHEN RIGHT(data_type, 2) = '[]'
35
+ THEN LEFT(data_type, -2) END,
36
+ 'is_nullable', nullable,
37
+ 'references', null,
38
+ 'has_default', false,
39
+ 'column_default', null,
40
+ 'is_updatable', false,
41
+ 'privileges', $$[{
42
+ "privilege_type": "SELECT",
43
+ "is_grantable": "YES"
44
+ }]$$::jsonb
45
+ )) as columns
46
+ FROM pg_catalog.pg_matviews m
47
+ INNER JOIN (
48
+ SELECT
49
+ t.oid,
50
+ CASE WHEN current_schema() = s.nspname
51
+ THEN format('%I', t.relname)
52
+ ELSE format('%I.%I', s.nspname, t.relname)
53
+ END as escaped_identifier,
54
+ t.relname as table_name,
55
+ s.nspname as schema,
56
+ a.attname as column_name,
57
+ pg_catalog.format_type(a.atttypid, a.atttypmod) as data_type,
58
+ typname as udt_name,
59
+ a.attnotnull as nullable,
60
+ a.attnum as ordinal_position,
61
+ col_description(t.oid, attnum) as comment
62
+ FROM pg_catalog.pg_attribute a
63
+ JOIN pg_catalog.pg_class t on a.attrelid = t.oid
64
+ JOIN pg_catalog.pg_namespace s on t.relnamespace = s.oid
65
+ JOIN pg_catalog.pg_type pt ON pt.oid = a.atttypid
66
+ WHERE a.attnum > 0
67
+ AND NOT a.attisdropped
68
+ AND relkind = 'm'
69
+ ORDER BY a.attnum
70
+ ) c
71
+ ON matviewname = table_name
72
+ AND schemaname = schema
73
+ WHERE schema ${sql}
74
+ GROUP BY c.oid, escaped_identifier, c.table_name, schema, definition
75
+ `;
76
+
77
+ /** TODO: check privileges
78
+
79
+
80
+
81
+ select
82
+ coalesce(nullif(s[1], ''), 'public') as grantee,
83
+ s[2] as privileges
84
+ from
85
+ pg_class c
86
+ join pg_namespace n on n.oid = relnamespace
87
+ join pg_roles r on r.oid = relowner,
88
+ unnest(coalesce(relacl::text[], format('{%s=arwdDxt/%s}', rolname, rolname)::text[])) acl,
89
+ regexp_split_to_array(acl, '=|/') s
90
+ where nspname = 'public' and relname = 'test_view';
91
+
92
+
93
+ */
94
+
95
+ return db.any(query, { schemaNames });
96
+ }
6
97
 
7
98
  export const getSchemaFilter = (schema: ProstglesInitOptions["schema"] = { public: 1 }) => {
8
99
  const schemaNames = Object.keys(schema);
@@ -29,7 +120,7 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
29
120
  fcols: string[];
30
121
  }[] = await t.any(`
31
122
  WITH pg_class_schema AS (
32
- SELECT c.*, nspname as schema
123
+ SELECT c.oid, c.relname, nspname as schema
33
124
  ,CASE WHEN current_schema() = nspname
34
125
  THEN format('%I', c.relname)
35
126
  ELSE format('%I.%I', nspname, c.relname)
@@ -95,17 +186,6 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
95
186
  FROM (
96
187
  SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
97
188
  FROM information_schema.tables
98
- /* TODO - add support for materialized views
99
- UNION ALL
100
- SELECT table_name, table_schema
101
- FROM (
102
- SELECT relname as table_name, nspname as table_schema, true as is_view
103
- FROM pg_catalog.pg_class AS _c
104
- JOIN pg_catalog.pg_namespace AS _ns
105
- ON _c.relnamespace = _ns.oid
106
- WHERE relkind IN ( 'm' )
107
- ) materialized_views
108
- */
109
189
  ) tables_matviews
110
190
  WHERE table_schema ${sql}
111
191
  ) t
@@ -179,10 +259,9 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
179
259
  ORDER BY schema, name
180
260
  `;
181
261
 
182
- let result: TableSchema[] = await t.any(query, { schemaNames });
183
- // writeFileSync(__dirname + "/old.json", JSON.stringify(await getTablesForSchemaPostgresSQLOld({ db, runSQL } as any), null, 2), "utf-8");
184
- // writeFileSync(__dirname + "/new.json", JSON.stringify(result, null, 2), "utf-8");
185
- // throw 2;
262
+ const tablesAndViews: TableSchema[] = await t.any(query, { schemaNames });
263
+ const materialViews = await getMaterialViews(t, schema);
264
+
186
265
  let hyperTables: string[] | undefined = [];
187
266
  try {
188
267
  hyperTables = await getHyperTables(t);
@@ -190,6 +269,7 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
190
269
  console.error(error);
191
270
  }
192
271
 
272
+ let result = tablesAndViews.concat(materialViews);
193
273
  result = await Promise.all(result
194
274
  .map(async tbl => {
195
275
  tbl.name = tbl.escaped_identifier;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.1.34",
3
+ "version": "4.1.36",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 57832
1
+ 164540
@@ -63,10 +63,12 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
63
63
  { name: "abc2", public: "public data", added: new Date('04 Dec 1995 00:12:00 GMT') },
64
64
  { name: "abcd", public: "public data d", added: new Date('04 Dec 1996 00:12:00 GMT') }
65
65
  ]);
66
- await db[`prostgles_test.basic1`].insert({
66
+ await db[`prostgles_test.basic1`].insert!({
67
67
  id_basic: { txt: "basic" },
68
68
  txt: "basic1"
69
69
  });
70
+ await db.sql(`REFRESH MATERIALIZED VIEW prostgles_test.mv_basic1;`);
71
+ assert.deepStrictEqual(await db["prostgles_test.mv_basic1"].find!(), await db["prostgles_test.basic1"].find!())
70
72
 
71
73
  /* Ensure */
72
74
  await db[`"*"`].insert!([{ "*": "a" }, { "*": "a" }, { "*": "b" }]);
@@ -421,6 +421,7 @@ function dd(){
421
421
  },
422
422
  "prostgles_test.basic": "*",
423
423
  "prostgles_test.basic1": "*",
424
+ "prostgles_test.mv_basic1": "*",
424
425
  };
425
426
 
426
427
  return res;
@@ -193,3 +193,8 @@ CREATE TABLE IF NOT EXISTS prostgles_test.basic1 (
193
193
  id_basic INTEGER REFERENCES prostgles_test.basic,
194
194
  txt text
195
195
  );
196
+
197
+
198
+ DROP MATERIALIZED VIEW IF EXISTS prostgles_test.mv_basic1;
199
+ CREATE MATERIALIZED VIEW prostgles_test.mv_basic1 AS
200
+ SELECT * FROM prostgles_test.basic1;
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.1.33",
24
+ "version": "4.1.34",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",