Browse Source

Merge pull request #4328 from Budibase/fix/3928

Fix for SQL Server - fix pagination issue
master
Michael Drury 5 years ago
committed by GitHub
parent
commit
48953c0953
  1. 2
      packages/builder/src/components/design/PropertiesPanel/PropertyControls/SearchFieldSelect.svelte
  2. 2
      packages/server/scripts/integrations/mssql/data/Dockerfile
  3. 21
      packages/server/scripts/integrations/mssql/data/setup.sql
  4. 14
      packages/server/src/integrations/base/sql.ts

2
packages/builder/src/components/design/PropertiesPanel/PropertyControls/SearchFieldSelect.svelte

@ -25,7 +25,7 @@
return base
}
const currentTable = $tables.list.find(table => table._id === ds.tableId)
return getFields(base, { allowLinks: currentTable.sql }).map(
return getFields(base, { allowLinks: currentTable?.sql }).map(
field => field.name
)
}

2
packages/server/scripts/integrations/mssql/data/Dockerfile

@ -1,4 +1,4 @@
FROM mcr.microsoft.com/mssql/server
FROM mcr.microsoft.com/mssql/server:2017-latest
ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=Passw0rd

21
packages/server/scripts/integrations/mssql/data/setup.sql

@ -48,7 +48,20 @@ INSERT tasks
VALUES
('Processing', 1);
INSERT people
(name, age)
VALUES
('Bob', '30');
INSERT INTO people (name, age)
VALUES ('Bob', '30'),
('Bert', '10'),
('Jack', '12'),
('Mike', '31'),
('Dave', '44'),
('Jim', '43'),
('Kerry', '32'),
('Julie', '12'),
('Kim', '55'),
('Andy', '33'),
('John', '22'),
('Ruth', '66'),
('Robert', '88'),
('Bobert', '99'),
('Jan', '22'),
('Megan', '11');

14
packages/server/src/integrations/base/sql.ts

@ -166,15 +166,13 @@ class InternalBuilder {
addSorting(query: KnexQuery, json: QueryJson): KnexQuery {
let { sort, paginate } = json
if (!sort) {
return query
}
const table = json.meta?.table
for (let [key, value] of Object.entries(sort)) {
const direction = value === SortDirection.ASCENDING ? "asc" : "desc"
query = query.orderBy(`${table?.name}.${key}`, direction)
}
if (this.client === SqlClients.MS_SQL && !sort && paginate?.limit) {
if (sort) {
for (let [key, value] of Object.entries(sort)) {
const direction = value === SortDirection.ASCENDING ? "asc" : "desc"
query = query.orderBy(`${table?.name}.${key}`, direction)
}
} else if (this.client === SqlClients.MS_SQL && paginate?.limit) {
// @ts-ignore
query = query.orderBy(`${table?.name}.${table?.primary[0]}`)
}

Loading…
Cancel
Save