mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 22:36:01 +00:00
bigint support #1087
This commit is contained in:
@@ -20,6 +20,7 @@ export function getFilterValueExpression(value, dataType?) {
|
||||
if (value === true) return 'TRUE';
|
||||
if (value === false) return 'FALSE';
|
||||
if (value.$oid) return `ObjectId("${value.$oid}")`;
|
||||
if (value.$bigint) return value.$bigint;
|
||||
if (value.type == 'Buffer' && Array.isArray(value.data)) {
|
||||
return '0x' + arrayToHexString(value.data);
|
||||
}
|
||||
|
||||
@@ -2,14 +2,18 @@ import P from 'parsimmon';
|
||||
import moment from 'moment';
|
||||
import { Condition } from 'dbgate-sqltree';
|
||||
import { interpretEscapes, token, word, whitespace } from './common';
|
||||
import { hexStringToArray } from 'dbgate-tools';
|
||||
import { hexStringToArray, parseNumberSafe } from 'dbgate-tools';
|
||||
import { FilterBehaviour, TransformType } from 'dbgate-types';
|
||||
|
||||
const binaryCondition =
|
||||
(operator, numberDualTesting = false) =>
|
||||
value => {
|
||||
const numValue = parseFloat(value);
|
||||
if (numberDualTesting && !isNaN(numValue)) {
|
||||
const numValue = parseNumberSafe(value);
|
||||
if (
|
||||
numberDualTesting &&
|
||||
// @ts-ignore
|
||||
!isNaN(numValue)
|
||||
) {
|
||||
return {
|
||||
conditionType: 'or',
|
||||
conditions: [
|
||||
@@ -345,17 +349,17 @@ const createParser = (filterBehaviour: FilterBehaviour) => {
|
||||
|
||||
string1Num: () =>
|
||||
token(P.regexp(/"-?(0|[1-9][0-9]*)([.][0-9]+)?([eE][+-]?[0-9]+)?"/, 1))
|
||||
.map(Number)
|
||||
.map(parseNumberSafe)
|
||||
.desc('numer quoted'),
|
||||
|
||||
string2Num: () =>
|
||||
token(P.regexp(/'-?(0|[1-9][0-9]*)([.][0-9]+)?([eE][+-]?[0-9]+)?'/, 1))
|
||||
.map(Number)
|
||||
.map(parseNumberSafe)
|
||||
.desc('numer quoted'),
|
||||
|
||||
number: () =>
|
||||
token(P.regexp(/-?(0|[1-9][0-9]*)([.][0-9]+)?([eE][+-]?[0-9]+)?/))
|
||||
.map(Number)
|
||||
.map(parseNumberSafe)
|
||||
.desc('number'),
|
||||
|
||||
objectid: () => token(P.regexp(/ObjectId\(['"]?[0-9a-f]{24}['"]?\)/)).desc('ObjectId'),
|
||||
|
||||
Reference in New Issue
Block a user