diff --git a/src/translate/translate.js b/src/translate/translate.js index 6a712bc6..fa943450 100644 --- a/src/translate/translate.js +++ b/src/translate/translate.js @@ -2876,9 +2876,14 @@ const buildNeo4jTypeTranslation = ({ nullFieldPredicate = `${listVariable}.${filterName} IS NULL OR `; } if (isTemporalFormatted) { - return `(${nullFieldPredicate}${propertyPath} = ${cypherTypeConstructor}(${listVariable}.${filterName}))`; + return `(${nullFieldPredicate}${operatorExpression} ${cypherTypeConstructor}(${listVariable}.${filterName}))`; } else { - return `(${nullFieldPredicate}${propertyPath}.${filterName} = ${listVariable}.${filterName})`; + let filterNameOprType = buildOperatorExpression({ + filterOperationType: filterOperationType, + propertyPath: '', + isListFilterArgument: false + }); + return `(${nullFieldPredicate}${propertyPath}.${filterName} ${filterNameOprType} ${listVariable}.${filterName})`; } } ); diff --git a/test/unit/cypherTest.test.js b/test/unit/cypherTest.test.js index e702e314..637faf1c 100644 --- a/test/unit/cypherTest.test.js +++ b/test/unit/cypherTest.test.js @@ -7667,7 +7667,7 @@ test('Query node using only formatted temporal filter value nested in logical OR } } `, - expectedCypherQuery = `MATCH (\`temporalNode\`:\`TemporalNode\`) WHERE (ANY(_OR IN $filter.OR WHERE (((_OR.datetime_gte.formatted IS NULL OR \`temporalNode\`.datetime = datetime(_OR.datetime_gte.formatted)))))) RETURN \`temporalNode\` {_id: ID(\`temporalNode\`),datetime: { year: \`temporalNode\`.datetime.year , month: \`temporalNode\`.datetime.month , day: \`temporalNode\`.datetime.day , hour: \`temporalNode\`.datetime.hour , minute: \`temporalNode\`.datetime.minute , second: \`temporalNode\`.datetime.second , millisecond: \`temporalNode\`.datetime.millisecond , microsecond: \`temporalNode\`.datetime.microsecond , nanosecond: \`temporalNode\`.datetime.nanosecond , timezone: \`temporalNode\`.datetime.timezone , formatted: toString(\`temporalNode\`.datetime) }} AS \`temporalNode\``, + expectedCypherQuery = `MATCH (\`temporalNode\`:\`TemporalNode\`) WHERE (ANY(_OR IN $filter.OR WHERE (((_OR.datetime_gte.formatted IS NULL OR \`temporalNode\`.datetime >= datetime(_OR.datetime_gte.formatted)))))) RETURN \`temporalNode\` {_id: ID(\`temporalNode\`),datetime: { year: \`temporalNode\`.datetime.year , month: \`temporalNode\`.datetime.month , day: \`temporalNode\`.datetime.day , hour: \`temporalNode\`.datetime.hour , minute: \`temporalNode\`.datetime.minute , second: \`temporalNode\`.datetime.second , millisecond: \`temporalNode\`.datetime.millisecond , microsecond: \`temporalNode\`.datetime.microsecond , nanosecond: \`temporalNode\`.datetime.nanosecond , timezone: \`temporalNode\`.datetime.timezone , formatted: toString(\`temporalNode\`.datetime) }} AS \`temporalNode\``, expectedParams = { offset: 0, first: -1,