@balena/abstract-sql-compiler 10.5.2-build-joshbwlng-order-columns-a3e130d1545ce1ff41d67fb2d7640ded7417cadd-1 → 10.6.0-build-abstract-sql-contains-node-92e7d4dd97329fb93e2f1c27b275c9cc38ab74c5-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.
@@ -1,15 +1,15 @@
1
1
  - commits:
2
- - subject: "Postgres: Optimize column order to reduce padding"
3
- hash: a3e130d1545ce1ff41d67fb2d7640ded7417cadd
2
+ - subject: Export `abstractSqlContainsNode` helper function
3
+ hash: 92e7d4dd97329fb93e2f1c27b275c9cc38ab74c5
4
4
  body: ""
5
5
  footer:
6
- Change-type: patch
7
- change-type: patch
8
- author: joshbwlng
6
+ Change-type: minor
7
+ change-type: minor
8
+ author: Pagan Gazzard
9
9
  nested: []
10
- version: 10.5.2
10
+ version: 10.6.0
11
11
  title: ""
12
- date: 2025-07-09T09:11:16.085Z
12
+ date: 2025-07-14T15:40:19.193Z
13
13
  - commits:
14
14
  - subject: Allow sbvr-types v11
15
15
  hash: 0b961faffe188162d82968df0e50522b7840eeae
package/CHANGELOG.md CHANGED
@@ -4,9 +4,9 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
- ## 10.5.2 - 2025-07-09
7
+ ## 10.6.0 - 2025-07-14
8
8
 
9
- * Postgres: Optimize column order to reduce padding [joshbwlng]
9
+ * Export `abstractSqlContainsNode` helper function [Pagan Gazzard]
10
10
 
11
11
  ## 10.5.1 - 2025-07-08
12
12
 
@@ -377,6 +377,7 @@ export declare const isSelectQueryNode: (n: AbstractSqlType) => n is SelectQuery
377
377
  export declare const isSelectNode: (n: AbstractSqlType) => n is SelectNode;
378
378
  export declare const isWhereNode: (n: AbstractSqlType) => n is WhereNode;
379
379
  export declare const isFieldTypeNode: (n: AbstractSqlType) => n is FieldNode | ReferencedFieldNode;
380
+ export declare const abstractSqlContainsNode: (n: AnyTypeNodes, checkNodeTypeFn: (n: AnyTypeNodes) => boolean) => boolean;
380
381
  export declare function compileRule(abstractSQL: UpsertQueryNode, engine: Engines, noBinds: true): [string, string];
381
382
  export declare function compileRule(abstractSQL: AbstractSqlQuery, engine: Engines, noBinds: true): string;
382
383
  export declare function compileRule(abstractSQL: UpsertQueryNode, engine: Engines, noBinds?: false): [SqlResult, SqlResult];
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.websql = exports.mysql = exports.postgres = exports.optimizeSchema = exports.isFieldTypeNode = exports.isWhereNode = exports.isSelectNode = exports.isSelectQueryNode = exports.isResourceNode = exports.isTableNode = exports.isFromNode = exports.isAliasNode = exports.Engines = void 0;
6
+ exports.websql = exports.mysql = exports.postgres = exports.optimizeSchema = exports.abstractSqlContainsNode = exports.isFieldTypeNode = exports.isWhereNode = exports.isSelectNode = exports.isSelectQueryNode = exports.isResourceNode = exports.isTableNode = exports.isFromNode = exports.isAliasNode = exports.Engines = void 0;
7
7
  exports.compileRule = compileRule;
8
8
  var Engines;
9
9
  (function (Engines) {
@@ -17,7 +17,6 @@ const sbvr_types_1 = __importDefault(require("@balena/sbvr-types"));
17
17
  const AbstractSQLSchemaOptimiser_1 = require("./AbstractSQLSchemaOptimiser");
18
18
  Object.defineProperty(exports, "optimizeSchema", { enumerable: true, get: function () { return AbstractSQLSchemaOptimiser_1.optimizeSchema; } });
19
19
  const referenced_fields_1 = require("./referenced-fields");
20
- const lodash_1 = __importDefault(require("lodash"));
21
20
  const validateTypes = (() => {
22
21
  const result = {};
23
22
  for (const key of Object.keys(sbvr_types_1.default)) {
@@ -90,54 +89,23 @@ const isWhereNode = (n) => n[0] === 'Where';
90
89
  exports.isWhereNode = isWhereNode;
91
90
  const isFieldTypeNode = (n) => n[0] === 'ReferencedField' || n[0] === 'Field';
92
91
  exports.isFieldTypeNode = isFieldTypeNode;
93
- const containsNode = (n, checkNodeTypeFn) => {
92
+ const abstractSqlContainsNode = (n, checkNodeTypeFn) => {
94
93
  if (checkNodeTypeFn(n)) {
95
94
  return true;
96
95
  }
97
96
  for (const p of n) {
98
- if (Array.isArray(p) && containsNode(p, checkNodeTypeFn)) {
97
+ if (Array.isArray(p) &&
98
+ (0, exports.abstractSqlContainsNode)(p, checkNodeTypeFn)) {
99
99
  return true;
100
100
  }
101
101
  }
102
102
  return false;
103
103
  };
104
+ exports.abstractSqlContainsNode = abstractSqlContainsNode;
104
105
  function compileRule(abstractSQL, engine, noBinds = false) {
105
106
  abstractSQL = (0, AbstractSQLOptimiser_1.AbstractSQLOptimiser)(abstractSQL, noBinds);
106
107
  return (0, AbstractSQLRules2SQL_1.AbstractSQLRules2SQL)(abstractSQL, engine, noBinds);
107
108
  }
108
- const sortWeightByType = {
109
- 'Big Integer': 1,
110
- 'Big Serial': 1,
111
- 'Date Time': 1,
112
- Integer: 2,
113
- Serial: 2,
114
- 'Short Text': 3,
115
- File: 4,
116
- Text: 4,
117
- Boolean: 5,
118
- };
119
- const getFieldDataType = (abstractSqlModel, field) => {
120
- if (['ForeignKey', 'ConceptType'].includes(field.dataType) &&
121
- field.references != null) {
122
- const dataType = abstractSqlModel.tables[field.references.resourceName].fields.find((f) => f.fieldName === field.references?.fieldName)?.dataType;
123
- if (dataType == null) {
124
- throw new Error(`Failed to find data type for field '${field.fieldName}' in table '${field.references.resourceName}'`);
125
- }
126
- return dataType;
127
- }
128
- return field.dataType;
129
- };
130
- const optimizeFieldOrder = (abstractSqlModel, fields) => {
131
- const [nonComputedFields, computedFields] = lodash_1.default.partition(fields, (f) => !f.computed);
132
- return [
133
- ...nonComputedFields.sort((a, b) => {
134
- const aWeight = sortWeightByType[getFieldDataType(abstractSqlModel, a)];
135
- const bWeight = sortWeightByType[getFieldDataType(abstractSqlModel, b)];
136
- return aWeight - bWeight || a.fieldName.localeCompare(b.fieldName);
137
- }),
138
- ...computedFields.sort((a, b) => a.fieldName.localeCompare(b.fieldName)),
139
- ];
140
- };
141
109
  const compileSchema = (abstractSqlModel, engine, ifNotExists) => {
142
110
  abstractSqlModel = (0, AbstractSQLSchemaOptimiser_1.optimizeSchema)(abstractSqlModel, false);
143
111
  let ifNotExistsStr = '';
@@ -195,7 +163,7 @@ $$;`);
195
163
  return;
196
164
  }
197
165
  let definitionAbstractSql = definition.abstractSql;
198
- if (containsNode(definitionAbstractSql, exports.isResourceNode)) {
166
+ if ((0, exports.abstractSqlContainsNode)(definitionAbstractSql, exports.isResourceNode)) {
199
167
  return;
200
168
  }
201
169
  if ((0, exports.isTableNode)(definitionAbstractSql)) {
@@ -223,10 +191,7 @@ ${compileRule(definitionAbstractSql, engine, true).replace(/^/gm, ' ')}
223
191
  const depends = [];
224
192
  const createSqlElements = [];
225
193
  const createIndexes = [];
226
- const fields = engine === "postgres"
227
- ? optimizeFieldOrder(abstractSqlModel, table.fields)
228
- : table.fields;
229
- for (const field of fields) {
194
+ for (const field of table.fields) {
230
195
  const { fieldName, references, dataType, computed } = field;
231
196
  if (!computed) {
232
197
  createSqlElements.push('"' + fieldName + '" ' + dataTypeGen(engine, field));
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSQLCompiler.js","sourceRoot":"","sources":["../src/AbstractSQLCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractSQLCompiler.js","sourceRoot":"","sources":["../src/AbstractSQLCompiler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/abstract-sql-compiler",
3
- "version": "10.5.2-build-joshbwlng-order-columns-a3e130d1545ce1ff41d67fb2d7640ded7417cadd-1",
3
+ "version": "10.6.0-build-abstract-sql-contains-node-92e7d4dd97329fb93e2f1c27b275c9cc38ab74c5-1",
4
4
  "description": "A translator for abstract sql into sql.",
5
5
  "type": "commonjs",
6
6
  "main": "out/AbstractSQLCompiler.js",
@@ -56,6 +56,6 @@
56
56
  "npm": ">=10.7.0"
57
57
  },
58
58
  "versionist": {
59
- "publishedAt": "2025-07-09T09:11:16.497Z"
59
+ "publishedAt": "2025-07-14T15:40:19.582Z"
60
60
  }
61
61
  }
@@ -24,7 +24,6 @@ import {
24
24
  getModifiedFields,
25
25
  insertAffectedIdsBinds,
26
26
  } from './referenced-fields';
27
- import _ from 'lodash';
28
27
 
29
28
  export type { ReferencedFields, RuleReferencedFields, ModifiedFields };
30
29
 
@@ -688,7 +687,7 @@ export const isFieldTypeNode = (
688
687
  * @param n The abstract sql to check
689
688
  * @param checkNodeTypeFn A function that checks if a given node is the correct type
690
689
  */
691
- const containsNode = (
690
+ export const abstractSqlContainsNode = (
692
691
  n: AnyTypeNodes,
693
692
  checkNodeTypeFn: (n: AnyTypeNodes) => boolean,
694
693
  ): boolean => {
@@ -696,7 +695,10 @@ const containsNode = (
696
695
  return true;
697
696
  }
698
697
  for (const p of n) {
699
- if (Array.isArray(p) && containsNode(p as AnyTypeNodes, checkNodeTypeFn)) {
698
+ if (
699
+ Array.isArray(p) &&
700
+ abstractSqlContainsNode(p as AnyTypeNodes, checkNodeTypeFn)
701
+ ) {
700
702
  return true;
701
703
  }
702
704
  }
@@ -747,66 +749,6 @@ export function compileRule(
747
749
  return AbstractSQLRules2SQL(abstractSQL, engine, noBinds);
748
750
  }
749
751
 
750
- // Define sorting weights by data types
751
- // TODO: Add support for all possible data types
752
- // TODO: Decide if we want to try and always start with 'id', 'created at', 'modified at'
753
- const sortWeightByType: Record<string, number> = {
754
- 'Big Integer': 1,
755
- 'Big Serial': 1,
756
- 'Date Time': 1,
757
- Integer: 2,
758
- Serial: 2,
759
- 'Short Text': 3,
760
- File: 4,
761
- Text: 4,
762
- // eslint-disable-next-line id-denylist
763
- Boolean: 5,
764
- } as const;
765
-
766
- // Get the data type of a field, following any references
767
- const getFieldDataType = (
768
- abstractSqlModel: AbstractSqlModel,
769
- field: AbstractSqlField,
770
- ): string => {
771
- if (
772
- ['ForeignKey', 'ConceptType'].includes(field.dataType) &&
773
- field.references != null
774
- ) {
775
- const dataType = abstractSqlModel.tables[
776
- field.references.resourceName
777
- ].fields.find((f) => f.fieldName === field.references?.fieldName)?.dataType;
778
- if (dataType == null) {
779
- throw new Error(
780
- `Failed to find data type for field '${field.fieldName}' in table '${field.references.resourceName}'`,
781
- );
782
- }
783
- return dataType;
784
- }
785
- return field.dataType;
786
- };
787
-
788
- // Sort fields by their data type to reduce extra padding
789
- const optimizeFieldOrder = (
790
- abstractSqlModel: AbstractSqlModel,
791
- fields: AbstractSqlField[],
792
- ): AbstractSqlField[] => {
793
- // Split computed from non-computed as we can only sort non-computed fields
794
- const [nonComputedFields, computedFields] = _.partition(
795
- fields,
796
- (f) => !f.computed,
797
- );
798
-
799
- // Return fields sorted by data type weight then field name
800
- return [
801
- ...nonComputedFields.sort((a, b) => {
802
- const aWeight = sortWeightByType[getFieldDataType(abstractSqlModel, a)];
803
- const bWeight = sortWeightByType[getFieldDataType(abstractSqlModel, b)];
804
- return aWeight - bWeight || a.fieldName.localeCompare(b.fieldName);
805
- }),
806
- ...computedFields.sort((a, b) => a.fieldName.localeCompare(b.fieldName)),
807
- ];
808
- };
809
-
810
752
  const compileSchema = (
811
753
  abstractSqlModel: AbstractSqlModel,
812
754
  engine: Engines,
@@ -886,7 +828,7 @@ $$;`);
886
828
  }
887
829
  let definitionAbstractSql = definition.abstractSql;
888
830
  // If there are any resource nodes then it's a dynamic definition and cannot become a view
889
- if (containsNode(definitionAbstractSql, isResourceNode)) {
831
+ if (abstractSqlContainsNode(definitionAbstractSql, isResourceNode)) {
890
832
  return;
891
833
  }
892
834
  if (isTableNode(definitionAbstractSql)) {
@@ -919,11 +861,7 @@ ${compileRule(definitionAbstractSql as AbstractSqlQuery, engine, true).replace(
919
861
  const createSqlElements: string[] = [];
920
862
  const createIndexes: string[] = [];
921
863
 
922
- const fields =
923
- engine === Engines.postgres
924
- ? optimizeFieldOrder(abstractSqlModel, table.fields)
925
- : table.fields;
926
- for (const field of fields) {
864
+ for (const field of table.fields) {
927
865
  const { fieldName, references, dataType, computed } = field;
928
866
  if (!computed) {
929
867
  createSqlElements.push(
@@ -106,24 +106,24 @@ CREATE TABLE IF NOT EXISTS "pilot" (
106
106
  "created at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
107
107
  , "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
108
108
  , "id" SERIAL NOT NULL PRIMARY KEY
109
- , "licence" INTEGER NOT NULL
110
109
  , "person" INTEGER NOT NULL
111
- , "years of experience" INTEGER NOT NULL
112
110
  , "name" VARCHAR(255) NOT NULL
111
+ , "years of experience" INTEGER NOT NULL
113
112
  , "is experienced" BOOLEAN DEFAULT FALSE NOT NULL
114
- , FOREIGN KEY ("licence") REFERENCES "licence" ("id")
113
+ , "licence" INTEGER NOT NULL
115
114
  , FOREIGN KEY ("person") REFERENCES "person" ("id")
115
+ , FOREIGN KEY ("licence") REFERENCES "licence" ("id")
116
116
  );`,
117
117
  modifiedAtTrigger('pilot'),
118
118
  `\
119
119
  CREATE TABLE IF NOT EXISTS "pilot-can fly-plane" (
120
120
  "created at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
121
121
  , "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
122
+ , "pilot" INTEGER NOT NULL
122
123
  , "can fly-plane" INTEGER NOT NULL
123
124
  , "id" SERIAL NOT NULL PRIMARY KEY
124
- , "pilot" INTEGER NOT NULL
125
- , FOREIGN KEY ("can fly-plane") REFERENCES "plane" ("id")
126
125
  , FOREIGN KEY ("pilot") REFERENCES "pilot" ("id")
126
+ , FOREIGN KEY ("can fly-plane") REFERENCES "plane" ("id")
127
127
  , UNIQUE("pilot", "can fly-plane")
128
128
  );`,
129
129
  modifiedAtTrigger('pilot-can fly-plane'),