Skip to content

Cypher : Query now fails both on old and new engine #3307

@ExtReMLapin

Description

@ExtReMLapin

Hello,

Query :

MATCH (c:CHUNK) WHERE ID(c) = "#1:2051"
MATCH (c:CHUNK)-->(doc:DOCUMENT)
WITH head(collect(ID(doc))) as document_id,  head(collect(ID(c))) as original_chunk_id,  head(collect(doc.name)) as document_name

    MATCH (all_chunks_doc:CHUNK)-->(doc:DOCUMENT) where ID(doc) = document_id
    WITH all_chunks_doc as all_chunks_doc,  original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name
    ORDER BY all_chunks_doc.index
        WITH collect(ID(all_chunks_doc)) as chunk_ids, original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name
            WITH chunk_ids, range(0, size(chunk_ids)-1) as indices, original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name
            UNWIND indices as index
                WITH chunk_ids[index] as chunk_id, index,  original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name
                WHERE chunk_id = original_chunk_id
                RETURN  document_id, index, document_name

Used to be working, now it returns nothing, no empty list, just nothing.

And on old engine it also errors (used to be working, what the hell) :

Error on executing Cypher query: `MATCH (c:CHUNK) WHERE ID(c) = \"#1:2051\" MATCH (c:CHUNK)-->(doc:DOCUMENT) WITH head(collect(ID(doc))) as document_id,  head(collect(ID(c))) as original_chunk_id,  head(collect(doc.name)) as document_name      MATCH (all_chunks_doc:CHUNK)-->(doc:DOCUMENT) where ID(doc) = document_id     WITH all_chunks_doc as all_chunks_doc,  original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name     ORDER BY all_chunks_doc.index         WITH collect(ID(all_chunks_doc)) as chunk_ids, original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name             WITH chunk_ids, range(0, size(chunk_ids)-1) as indices, original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name             UNWIND indices as index                 WITH chunk_ids[index] as chunk_id, index,  original_chunk_id as original_chunk_id, document_id as document_id, document_name as document_name                 WHERE chunk_id = original_chunk_id                 RETURN  document_id, index, document_name` with parameters {} -> Error on executing command -> org.apache.tinkerpop.gremlin.language.grammar.GremlinParserException: Failed to interpret Gremlin query: Query parsing failed at line 1, character position at 3473, error message : no viable alternative at input 'g.V().as('c').hasLabel('CHUNK').has('~id',eq('#1:2051')).outE().inV().as('doc').hasLabel('DOCUMENT').select('doc','c').fold().project('  AGGREGATION83','  AGGREGATION123','  AGGREGATION167').by(__.unfold().select('doc').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('c').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('doc').choose(neq(null),__.choose(__.values('name'),__.values('name'),__.constant(null))).is(neq(null)).fold()).as('  GENERATED3').select('  AGGREGATION83').as('  AGGREGATION83').select('  GENERATED3').select('  AGGREGATION123').as('  AGGREGATION123').select('  GENERATED3').select('  AGGREGATION167').as('  AGGREGATION167').select('  AGGREGATION83','  AGGREGATION123','  AGGREGATION167').project('document_id','original_chunk_id','document_name').by(__.select('  AGGREGATION83').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).by(__.select('  AGGREGATION123').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).by(__.select('  AGGREGATION167').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).as('  GENERATED4').select('document_id').as('document_id').select('  GENERATED4').select('original_chunk_id').as('original_chunk_id').select('  GENERATED4').select('document_name').as('document_name').V().as('all_chunks_doc').hasLabel('CHUNK').outE().inV().as('doc').hasLabel('DOCUMENT').where(__.select('doc').choose(neq(null),__.id()).is(neq(null)).where(eq('document_id'))).select('all_chunks_doc','original_chunk_id','document_id','document_name').project('all_chunks_doc','original_chunk_id','document_id','document_name').by(__.select('all_chunks_doc')).by(__.select('original_chunk_id')).by(__.select('document_id')).by(__.select('document_name')).order().by(__.select('all_chunks_doc').choose(neq(null),__.choose(__.values('index'),__.values('index'),__.constant(null))),asc).as('  GENERATED6').select('all_chunks_doc').as('all_chunks_doc').select('  GENERATED6').select('original_chunk_id').as('original_chunk_id').select('  GENERATED6').select('document_id').as('document_id').select('  GENERATED6').select('document_name').as('document_name').select('all_chunks_doc','original_chunk_id','document_id','document_name').group().by(__.project('original_chunk_id','document_id','document_name').by(__.select('original_chunk_id')).by(__.select('document_id')).by(__.select('document_name'))).by(__.fold().project('chunk_ids','original_chunk_id','document_id','document_name').by(__.unfold().select('all_chunks_doc').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('original_chunk_id')).by(__.unfold().select('document_id')).by(__.unfold().select('document_name'))).unfold().select(values).as('  GENERATED7').select('chunk_ids').as('chunk_ids').select('  GENERATED7').select('original_chunk_id').as('original_chunk_id').select('  GENERATED7').select('document_id').as('document_id').select('  GENERATED7').select('document_name').as('document_name').select('chunk_ids','original_chunk_id','document_id','document_name').project('chunk_ids','indices','original_chunk_id','document_id','document_name').by(__.select('chunk_ids')).by(__.constant(1).as('__GENERATED11').select('chunk_ids').count(local).choose(__.or(__.is(eq(null)),__.select('__GENERATED11').is(eq(null))),__.constant(null),__.math('_ - __GENERATED11')).as('__GENERATED10').sideEffect(__.is(lt(0)).constant('INVALID_RANGE').map(cypherException' -> Failed to interpret Gremlin query: Query parsing failed at line 1, character position at 3473, error message : no viable alternative at input 'g.V().as('c').hasLabel('CHUNK').has('~id',eq('#1:2051')).outE().inV().as('doc').hasLabel('DOCUMENT').select('doc','c').fold().project('  AGGREGATION83','  AGGREGATION123','  AGGREGATION167').by(__.unfold().select('doc').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('c').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('doc').choose(neq(null),__.choose(__.values('name'),__.values('name'),__.constant(null))).is(neq(null)).fold()).as('  GENERATED3').select('  AGGREGATION83').as('  AGGREGATION83').select('  GENERATED3').select('  AGGREGATION123').as('  AGGREGATION123').select('  GENERATED3').select('  AGGREGATION167').as('  AGGREGATION167').select('  AGGREGATION83','  AGGREGATION123','  AGGREGATION167').project('document_id','original_chunk_id','document_name').by(__.select('  AGGREGATION83').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).by(__.select('  AGGREGATION123').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).by(__.select('  AGGREGATION167').choose(__.limit(local,1),__.limit(local,1),__.constant(null))).as('  GENERATED4').select('document_id').as('document_id').select('  GENERATED4').select('original_chunk_id').as('original_chunk_id').select('  GENERATED4').select('document_name').as('document_name').V().as('all_chunks_doc').hasLabel('CHUNK').outE().inV().as('doc').hasLabel('DOCUMENT').where(__.select('doc').choose(neq(null),__.id()).is(neq(null)).where(eq('document_id'))).select('all_chunks_doc','original_chunk_id','document_id','document_name').project('all_chunks_doc','original_chunk_id','document_id','document_name').by(__.select('all_chunks_doc')).by(__.select('original_chunk_id')).by(__.select('document_id')).by(__.select('document_name')).order().by(__.select('all_chunks_doc').choose(neq(null),__.choose(__.values('index'),__.values('index'),__.constant(null))),asc).as('  GENERATED6').select('all_chunks_doc').as('all_chunks_doc').select('  GENERATED6').select('original_chunk_id').as('original_chunk_id').select('  GENERATED6').select('document_id').as('document_id').select('  GENERATED6').select('document_name').as('document_name').select('all_chunks_doc','original_chunk_id','document_id','document_name').group().by(__.project('original_chunk_id','document_id','document_name').by(__.select('original_chunk_id')).by(__.select('document_id')).by(__.select('document_name'))).by(__.fold().project('chunk_ids','original_chunk_id','document_id','document_name').by(__.unfold().select('all_chunks_doc').choose(neq(null),__.id()).is(neq(null)).fold()).by(__.unfold().select('original_chunk_id')).by(__.unfold().select('document_id')).by(__.unfold().select('document_name'))).unfold().select(values).as('  GENERATED7').select('chunk_ids').as('chunk_ids').select('  GENERATED7').select('original_chunk_id').as('original_chunk_id').select('  GENERATED7').select('document_id').as('document_id').select('  GENERATED7').select('document_name').as('document_name').select('chunk_ids','original_chunk_id','document_id','document_name').project('chunk_ids','indices','original_chunk_id','document_id','document_name').by(__.select('chunk_ids')).by(__.constant(1).as('__GENERATED11').select('chunk_ids').count(local).choose(__.or(__.is(eq(null)),__.select('__GENERATED11').is(eq(null))),__.constant(null),__.math('_ - __GENERATED11')).as('__GENERATED10').sideEffect(__.is(lt(0)).constant('INVALID_RANGE').map(cypherException'

Simplified query to :

MATCH (c:CHUNK) WHERE ID(c) = "#1:2051"
MATCH (c:CHUNK)-->(doc:DOCUMENT)
WITH head(collect(ID(doc))) as document_id,  head(collect(ID(c))) as original_chunk_id,  head(collect(doc.name)) as document_name

RETURN  document_id, document_name

But old engine returns :

    "records": [
      {
        "document_id": "#4:0",
        "document_name": "ORANO-MAG-2021_205x275_FR_MEL.pdf"
      }
    ]

new engine returns :

    "records": [
      {
        "document_name": null,
        "document_id": null
      }
    ]

database dump :

ORANO-backup-20260202-100041584.zip

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions