Add constants for sql int max min ranges
This commit is contained in:
parent
eca2fe0b50
commit
48046b4b90
|
@ -63,3 +63,25 @@ export const TableNames = {
|
|||
* - Coerce types for search endpoint
|
||||
*/
|
||||
export const ApiVersion = "1"
|
||||
|
||||
/**
|
||||
* Maximum minimum range for SQL number values
|
||||
*/
|
||||
export const SQL_NUMBER_TYPE_RANGE_MAP = {
|
||||
integer: {
|
||||
max: 2147483647,
|
||||
min: -2147483648,
|
||||
},
|
||||
int: {
|
||||
max: 2147483647,
|
||||
min: -2147483648,
|
||||
},
|
||||
smallint: {
|
||||
max: 32767,
|
||||
min: -32768,
|
||||
},
|
||||
mediumint: {
|
||||
max: 8388607,
|
||||
min: -8388608,
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Helpers } from "@budibase/bbui"
|
||||
import { OperatorOptions } from "../constants"
|
||||
import { OperatorOptions, SQL_NUMBER_TYPE_RANGE_MAP } from "../constants"
|
||||
|
||||
/**
|
||||
* Returns the valid operator options for a certain data type
|
||||
|
@ -94,7 +94,7 @@ export const buildLuceneQuery = filter => {
|
|||
}
|
||||
if (Array.isArray(filter)) {
|
||||
filter.forEach(expression => {
|
||||
let { operator, field, type, value } = expression
|
||||
let { operator, field, type, value, externalType } = expression
|
||||
// Parse all values into correct types
|
||||
if (type === "datetime" && value) {
|
||||
value = new Date(value).toISOString()
|
||||
|
@ -106,16 +106,16 @@ export const buildLuceneQuery = filter => {
|
|||
value = `${value}`?.toLowerCase() === "true"
|
||||
}
|
||||
if (operator.startsWith("range")) {
|
||||
const minint =
|
||||
SQL_NUMBER_TYPE_RANGE_MAP[externalType]?.min ||
|
||||
Number.MIN_SAFE_INTEGER
|
||||
const maxint =
|
||||
SQL_NUMBER_TYPE_RANGE_MAP[externalType]?.max ||
|
||||
Number.MAX_SAFE_INTEGER
|
||||
if (!query.range[field]) {
|
||||
query.range[field] = {
|
||||
low:
|
||||
type === "number"
|
||||
? Number.MIN_SAFE_INTEGER
|
||||
: "0000-00-00T00:00:00.000Z",
|
||||
high:
|
||||
type === "number"
|
||||
? Number.MAX_SAFE_INTEGER
|
||||
: "9999-00-00T00:00:00.000Z",
|
||||
low: type === "number" ? minint : "0000-00-00T00:00:00.000Z",
|
||||
high: type === "number" ? maxint : "9999-00-00T00:00:00.000Z",
|
||||
}
|
||||
}
|
||||
if (operator === "rangeLow" && value != null && value !== "") {
|
||||
|
|
Loading…
Reference in New Issue