BUG FIX: Fix trailing AND in edge_search_filter_query_constructor Cypher query (#541)
Fix trailing AND in edge_search_filter_query_constructor Cypher query Corrected the edge_search_filter_query_constructor function to prevent trailing AND operators in generated Cypher queries, which caused Neo.ClientError.Statement.SyntaxError. Changed condition from `j != len(and_filter_query) - 1` to `j != len(and_filters) - 1` for valid_at, invalid_at, created_at, and expired_at filter blocks. Also fixed outer loop condition to use `len(filters.<field>)` instead of `len(or_list)`. Ensures valid Cypher syntax for single DateFilter cases. Co-authored-by: TheEpTic <326774+TheEpTic@users.noreply.github.com>
This commit is contained in:
parent
2fe5902c95
commit
735b020624
1 changed files with 8 additions and 8 deletions
|
|
@ -95,12 +95,12 @@ def edge_search_filter_query_constructor(
|
|||
and_filter_query = ''
|
||||
for j, and_filter in enumerate(and_filters):
|
||||
and_filter_query += and_filter
|
||||
if j != len(and_filter_query) - 1:
|
||||
if j != len(and_filters) - 1:
|
||||
and_filter_query += ' AND '
|
||||
|
||||
valid_at_filter += and_filter_query
|
||||
|
||||
if i == len(or_list) - 1:
|
||||
if i == len(filters.valid_at) - 1:
|
||||
valid_at_filter += ')'
|
||||
else:
|
||||
valid_at_filter += ' OR '
|
||||
|
|
@ -120,12 +120,12 @@ def edge_search_filter_query_constructor(
|
|||
and_filter_query = ''
|
||||
for j, and_filter in enumerate(and_filters):
|
||||
and_filter_query += and_filter
|
||||
if j != len(and_filter_query) - 1:
|
||||
if j != len(and_filters) - 1:
|
||||
and_filter_query += ' AND '
|
||||
|
||||
invalid_at_filter += and_filter_query
|
||||
|
||||
if i == len(or_list) - 1:
|
||||
if i == len(filters.invalid_at) - 1:
|
||||
invalid_at_filter += ')'
|
||||
else:
|
||||
invalid_at_filter += ' OR '
|
||||
|
|
@ -145,12 +145,12 @@ def edge_search_filter_query_constructor(
|
|||
and_filter_query = ''
|
||||
for j, and_filter in enumerate(and_filters):
|
||||
and_filter_query += and_filter
|
||||
if j != len(and_filter_query) - 1:
|
||||
if j != len(and_filters) - 1:
|
||||
and_filter_query += ' AND '
|
||||
|
||||
created_at_filter += and_filter_query
|
||||
|
||||
if i == len(or_list) - 1:
|
||||
if i == len(filters.created_at) - 1:
|
||||
created_at_filter += ')'
|
||||
else:
|
||||
created_at_filter += ' OR '
|
||||
|
|
@ -170,12 +170,12 @@ def edge_search_filter_query_constructor(
|
|||
and_filter_query = ''
|
||||
for j, and_filter in enumerate(and_filters):
|
||||
and_filter_query += and_filter
|
||||
if j != len(and_filter_query) - 1:
|
||||
if j != len(and_filters) - 1:
|
||||
and_filter_query += ' AND '
|
||||
|
||||
expired_at_filter += and_filter_query
|
||||
|
||||
if i == len(or_list) - 1:
|
||||
if i == len(filters.expired_at) - 1:
|
||||
expired_at_filter += ')'
|
||||
else:
|
||||
expired_at_filter += ' OR '
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue