Browse Source

Merge pull request #2426 from Budibase/feature/case-insensitive-sql

make SQL startsWith queries case insensitive
gh-pages
Martin McKeaveney 5 years ago
committed by GitHub
parent
commit
80850d3a08
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      packages/server/src/api/routes/tests/datasource.spec.js
  2. 2
      packages/server/src/integrations/base/sql.ts
  3. 2
      packages/server/src/integrations/tests/sql.spec.js

2
packages/server/src/api/routes/tests/datasource.spec.js

@ -94,7 +94,7 @@ describe("/datasources", () => {
.expect(200) .expect(200)
// this is mock data, can't test it // this is mock data, can't test it
expect(res.body).toBeDefined() expect(res.body).toBeDefined()
expect(pg.queryMock).toHaveBeenCalledWith(`select "users"."name" as "users.name", "users"."age" as "users.age" from "users" where "users"."name" like $1 limit $2`, ["John%", 5000]) expect(pg.queryMock).toHaveBeenCalledWith(`select "users"."name" as "users.name", "users"."age" as "users.age" from "users" where "users"."name" ilike $1 limit $2`, ["John%", 5000])
}) })
}) })

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

@ -52,7 +52,7 @@ function addFilters(
if (filters.string) { if (filters.string) {
iterate(filters.string, (key, value) => { iterate(filters.string, (key, value) => {
const fnc = allOr ? "orWhere" : "where" const fnc = allOr ? "orWhere" : "where"
query = query[fnc](key, "like", `${value}%`) query = query[fnc](key, "ilike", `${value}%`)
}) })
} }
if (filters.range) { if (filters.range) {

2
packages/server/src/integrations/tests/sql.spec.js

@ -82,7 +82,7 @@ describe("SQL query builder", () => {
})) }))
expect(query).toEqual({ expect(query).toEqual({
bindings: ["John%", limit], bindings: ["John%", limit],
sql: `select * from "${TABLE_NAME}" where "${TABLE_NAME}"."name" like $1 limit $2` sql: `select * from "${TABLE_NAME}" where "${TABLE_NAME}"."name" ilike $1 limit $2`
}) })
}) })

Loading…
Cancel
Save