@graffy/pg 0.15.22 → 0.15.24-alpha.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.
Files changed (3) hide show
  1. package/index.cjs +19 -12
  2. package/index.mjs +19 -12
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -178,9 +178,9 @@ const lookup = (prop) => {
178
178
  const aggSql = {
179
179
  $sum: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`,
180
180
  $card: (prop) => sql__default["default"]`count(distinct(${lookup(prop)}))`,
181
- $avg: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`,
182
- $max: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`,
183
- $min: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`
181
+ $avg: (prop) => sql__default["default"]`avg((${lookup(prop)})::numeric)`,
182
+ $max: (prop) => sql__default["default"]`max((${lookup(prop)})::numeric)`,
183
+ $min: (prop) => sql__default["default"]`min((${lookup(prop)})::numeric)`
184
184
  };
185
185
  const getSelectCols = (table, projection = null) => {
186
186
  if (!projection)
@@ -300,6 +300,9 @@ function getBinarySql(lhs, type, op, value, textLhs) {
300
300
  return sql__default["default"]`${lhs} ${sqlOp} ${String(value)}`;
301
301
  }
302
302
  if (type === "jsonb") {
303
+ if (typeof value === "string") {
304
+ return sql__default["default"]`${textLhs} ${sqlOp} ${value}`;
305
+ }
303
306
  return sql__default["default"]`${lhs} ${sqlOp} ${JSON.stringify(value)}::jsonb`;
304
307
  }
305
308
  if (type === "cube")
@@ -343,10 +346,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
343
346
  $ref: sql__default["default"]`jsonb_build_array(${sql.join(prefix.map((k) => sql__default["default"]`${k}::text`))}, "${sql.raw(idCol)}")`,
344
347
  $ver: sql.raw(verDefault)
345
348
  });
346
- const getAggMeta = (key, $group, { verDefault }) => getJsonBuildTrusted({
347
- $key: sql.join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || "),
348
- $ver: sql.raw(verDefault)
349
- });
349
+ const getAggMeta = (key, $group, { verDefault }) => {
350
+ let $key = sql.join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
351
+ return getJsonBuildTrusted({
352
+ $key,
353
+ $ver: sql.raw(verDefault)
354
+ });
355
+ };
350
356
  function getArgSql(_a, options) {
351
357
  var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
352
358
  const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
@@ -358,14 +364,14 @@ function getArgSql(_a, options) {
358
364
  const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
359
365
  const group = groupCols ? sql.join(groupCols, ", ") : void 0;
360
366
  const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
361
- let key;
367
+ let filterKey;
362
368
  const where = [];
363
369
  if (!common.isEmpty(filter)) {
364
370
  where.push(getSql(filter, options));
365
- key = sql__default["default"]`${JSON.stringify(filter)}::jsonb`;
371
+ filterKey = sql__default["default"]`${JSON.stringify(filter)}::jsonb`;
366
372
  }
367
373
  if (!hasRangeArg)
368
- return { meta: meta(key), where, group, limit: 1 };
374
+ return { meta: meta(filterKey), where, group, limit: 1 };
369
375
  const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
370
376
  Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
371
377
  if (value)
@@ -373,10 +379,11 @@ function getArgSql(_a, options) {
373
379
  });
374
380
  const order = !$group && sql.join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`${lookup(orderItem.slice(1))} ${$last ? sql__default["default"]`ASC` : sql__default["default"]`DESC`}` : sql__default["default"]`${lookup(orderItem)} ${$last ? sql__default["default"]`DESC` : sql__default["default"]`ASC`}`), `, `);
375
381
  const orderKey = $order && getJsonBuildTrusted({ $order: sql__default["default"]`${JSON.stringify($order)}::jsonb` });
376
- const cursorKey = getJsonBuildTrusted({
382
+ const cursorKey = $group !== true && getJsonBuildTrusted({
377
383
  $cursor: sql__default["default"]`jsonb_build_array(${sql.join(groupCols || orderCols)})`
378
384
  });
379
- key = sql__default["default"]`(${sql.join([key, orderKey, cursorKey].filter(Boolean), ` || `)})`;
385
+ const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
386
+ const key = keys.length > 0 ? sql__default["default"]`(${sql.join(keys, ` || `)})` : void 0;
380
387
  return {
381
388
  meta: meta(key),
382
389
  where,
package/index.mjs CHANGED
@@ -170,9 +170,9 @@ const lookup = (prop) => {
170
170
  const aggSql = {
171
171
  $sum: (prop) => sql`sum((${lookup(prop)})::numeric)`,
172
172
  $card: (prop) => sql`count(distinct(${lookup(prop)}))`,
173
- $avg: (prop) => sql`sum((${lookup(prop)})::numeric)`,
174
- $max: (prop) => sql`sum((${lookup(prop)})::numeric)`,
175
- $min: (prop) => sql`sum((${lookup(prop)})::numeric)`
173
+ $avg: (prop) => sql`avg((${lookup(prop)})::numeric)`,
174
+ $max: (prop) => sql`max((${lookup(prop)})::numeric)`,
175
+ $min: (prop) => sql`min((${lookup(prop)})::numeric)`
176
176
  };
177
177
  const getSelectCols = (table, projection = null) => {
178
178
  if (!projection)
@@ -292,6 +292,9 @@ function getBinarySql(lhs, type, op, value, textLhs) {
292
292
  return sql`${lhs} ${sqlOp} ${String(value)}`;
293
293
  }
294
294
  if (type === "jsonb") {
295
+ if (typeof value === "string") {
296
+ return sql`${textLhs} ${sqlOp} ${value}`;
297
+ }
295
298
  return sql`${lhs} ${sqlOp} ${JSON.stringify(value)}::jsonb`;
296
299
  }
297
300
  if (type === "cube")
@@ -335,10 +338,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
335
338
  $ref: sql`jsonb_build_array(${join(prefix.map((k) => sql`${k}::text`))}, "${raw(idCol)}")`,
336
339
  $ver: raw(verDefault)
337
340
  });
338
- const getAggMeta = (key, $group, { verDefault }) => getJsonBuildTrusted({
339
- $key: join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || "),
340
- $ver: raw(verDefault)
341
- });
341
+ const getAggMeta = (key, $group, { verDefault }) => {
342
+ let $key = join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
343
+ return getJsonBuildTrusted({
344
+ $key,
345
+ $ver: raw(verDefault)
346
+ });
347
+ };
342
348
  function getArgSql(_a, options) {
343
349
  var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
344
350
  const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
@@ -350,14 +356,14 @@ function getArgSql(_a, options) {
350
356
  const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
351
357
  const group = groupCols ? join(groupCols, ", ") : void 0;
352
358
  const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
353
- let key;
359
+ let filterKey;
354
360
  const where = [];
355
361
  if (!isEmpty(filter)) {
356
362
  where.push(getSql(filter, options));
357
- key = sql`${JSON.stringify(filter)}::jsonb`;
363
+ filterKey = sql`${JSON.stringify(filter)}::jsonb`;
358
364
  }
359
365
  if (!hasRangeArg)
360
- return { meta: meta(key), where, group, limit: 1 };
366
+ return { meta: meta(filterKey), where, group, limit: 1 };
361
367
  const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
362
368
  Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
363
369
  if (value)
@@ -365,10 +371,11 @@ function getArgSql(_a, options) {
365
371
  });
366
372
  const order = !$group && join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`${lookup(orderItem.slice(1))} ${$last ? sql`ASC` : sql`DESC`}` : sql`${lookup(orderItem)} ${$last ? sql`DESC` : sql`ASC`}`), `, `);
367
373
  const orderKey = $order && getJsonBuildTrusted({ $order: sql`${JSON.stringify($order)}::jsonb` });
368
- const cursorKey = getJsonBuildTrusted({
374
+ const cursorKey = $group !== true && getJsonBuildTrusted({
369
375
  $cursor: sql`jsonb_build_array(${join(groupCols || orderCols)})`
370
376
  });
371
- key = sql`(${join([key, orderKey, cursorKey].filter(Boolean), ` || `)})`;
377
+ const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
378
+ const key = keys.length > 0 ? sql`(${join(keys, ` || `)})` : void 0;
372
379
  return {
373
380
  meta: meta(key),
374
381
  where,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@graffy/pg",
3
3
  "description": "The standard Postgres module for Graffy. Each instance this module mounts a Postgres table as a Graffy subtree.",
4
4
  "author": "aravind (https://github.com/aravindet)",
5
- "version": "0.15.22",
5
+ "version": "0.15.24-alpha.1",
6
6
  "main": "./index.cjs",
7
7
  "exports": {
8
8
  "import": "./index.mjs",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "license": "Apache-2.0",
18
18
  "dependencies": {
19
- "@graffy/common": "0.15.22",
19
+ "@graffy/common": "0.15.24-alpha.1",
20
20
  "sql-template-tag": "^4.1.0",
21
21
  "debug": "^4.3.3"
22
22
  },