diff --git a/src/utils/cypher/converter/logic.ts b/src/utils/cypher/converter/logic.ts index 0fec27a51fe66127f060e5128177e7d90dbec2c7..2e81c85b0a629fcb5db630bb4e296516c7caf412 100644 --- a/src/utils/cypher/converter/logic.ts +++ b/src/utils/cypher/converter/logic.ts @@ -1,5 +1,6 @@ import type { AnyStatement } from 'ts-common/src/model/query/logic/general'; import type { QueryCacheData } from './model'; +import { log } from 'ts-common/src/logger/logger'; export function createWhereLogic(op: string, left: string, whereLogic: string, cacheData: QueryCacheData): [string, string] { const newWhereLogic = `${left.replace('.', '_')}_${op}`; @@ -32,6 +33,7 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac case 'object': if (Array.isArray(logicQuery)) { let op = logicQuery[0].replace('_', '').toLowerCase(); + const right = logicQuery?.[2]; const [left, whereLogic] = extractLogicCypher(logicQuery[1], cacheData); let whereLogicMutable = whereLogic; @@ -40,7 +42,8 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac op = '<>'; break; case '==': - op = '='; + if (right === '".*"') op = '=~'; // in case "equals to <empty string>", this is what happens + else op = '='; break; case 'like': op = '=~';