@budibase/backend-core 2.29.4 → 2.29.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "2.29.4",
3
+ "version": "2.29.7",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -23,8 +23,8 @@
23
23
  "dependencies": {
24
24
  "@budibase/nano": "10.1.5",
25
25
  "@budibase/pouchdb-replication-stream": "1.2.10",
26
- "@budibase/shared-core": "2.29.4",
27
- "@budibase/types": "2.29.4",
26
+ "@budibase/shared-core": "2.29.7",
27
+ "@budibase/types": "2.29.7",
28
28
  "@govtechsg/passport-openidconnect": "^1.0.2",
29
29
  "aws-cloudfront-sign": "3.0.2",
30
30
  "aws-sdk": "2.1030.0",
@@ -96,5 +96,5 @@
96
96
  }
97
97
  }
98
98
  },
99
- "gitHead": "c2811340b5f09c75bc0fbc14232e6f52ec1361ae"
99
+ "gitHead": "29579f5ba2e95a7ba4d222409c94a976df1c9539"
100
100
  }
package/src/sql/sql.ts CHANGED
@@ -184,7 +184,11 @@ class InternalBuilder {
184
184
  query: Knex.QueryBuilder,
185
185
  filters: SearchFilters | undefined,
186
186
  table: Table,
187
- opts: { aliases?: Record<string, string>; relationship?: boolean }
187
+ opts: {
188
+ aliases?: Record<string, string>
189
+ relationship?: boolean
190
+ columnPrefix?: string
191
+ }
188
192
  ): Knex.QueryBuilder {
189
193
  if (!filters) {
190
194
  return query
@@ -192,7 +196,10 @@ class InternalBuilder {
192
196
  filters = parseFilters(filters)
193
197
  // if all or specified in filters, then everything is an or
194
198
  const allOr = filters.allOr
195
- const sqlStatements = new SqlStatements(this.client, table, { allOr })
199
+ const sqlStatements = new SqlStatements(this.client, table, {
200
+ allOr,
201
+ columnPrefix: opts.columnPrefix,
202
+ })
196
203
  const tableName =
197
204
  this.client === SqlClient.SQL_LITE ? table._id! : table.name
198
205
 
@@ -663,6 +670,7 @@ class InternalBuilder {
663
670
  }
664
671
  // add filters to the query (where)
665
672
  query = this.addFilters(query, filters, json.meta.table, {
673
+ columnPrefix: json.meta.columnPrefix,
666
674
  aliases: tableAliases,
667
675
  })
668
676
 
@@ -698,6 +706,7 @@ class InternalBuilder {
698
706
  }
699
707
 
700
708
  return this.addFilters(query, filters, json.meta.table, {
709
+ columnPrefix: json.meta.columnPrefix,
701
710
  relationship: true,
702
711
  aliases: tableAliases,
703
712
  })
@@ -708,6 +717,7 @@ class InternalBuilder {
708
717
  let query = this.knexWithAlias(knex, endpoint, tableAliases)
709
718
  const parsedBody = parseBody(body)
710
719
  query = this.addFilters(query, filters, json.meta.table, {
720
+ columnPrefix: json.meta.columnPrefix,
711
721
  aliases: tableAliases,
712
722
  })
713
723
  // mysql can't use returning
@@ -722,6 +732,7 @@ class InternalBuilder {
722
732
  const { endpoint, filters, tableAliases } = json
723
733
  let query = this.knexWithAlias(knex, endpoint, tableAliases)
724
734
  query = this.addFilters(query, filters, json.meta.table, {
735
+ columnPrefix: json.meta.columnPrefix,
725
736
  aliases: tableAliases,
726
737
  })
727
738
  // mysql can't use returning
@@ -5,19 +5,27 @@ export class SqlStatements {
5
5
  client: string
6
6
  table: Table
7
7
  allOr: boolean | undefined
8
+ columnPrefix: string | undefined
9
+
8
10
  constructor(
9
11
  client: string,
10
12
  table: Table,
11
- { allOr }: { allOr?: boolean } = {}
13
+ { allOr, columnPrefix }: { allOr?: boolean; columnPrefix?: string } = {}
12
14
  ) {
13
15
  this.client = client
14
16
  this.table = table
15
17
  this.allOr = allOr
18
+ this.columnPrefix = columnPrefix
16
19
  }
17
20
 
18
21
  getField(key: string): FieldSchema | undefined {
19
22
  const fieldName = key.split(".")[1]
20
- return this.table.schema[fieldName]
23
+ let found = this.table.schema[fieldName]
24
+ if (!found && this.columnPrefix) {
25
+ const prefixRemovedFieldName = fieldName.replace(this.columnPrefix, "")
26
+ found = this.table.schema[prefixRemovedFieldName]
27
+ }
28
+ return found
21
29
  }
22
30
 
23
31
  between(