After migration from 3.5.6 to 4.1:
properties with an invalid value: point({srid:4326, x:-999999999, y:-999999999}) cannot be REMOVEd or SET to NULL.
The -999999999 coordinates are missing values from my data. Cypher now throws an error whenever the nodes with such a property are referenced (e.g. RETURNed).
How can I get rid of these properties? Removing the properties or setting them to NULL fails with the same error as returning them:
Cannot create WGS84 point with invalid coordinate: [-9.99999999E8, -9.99999999E8].
I just tested with the 3.5.6 version of the database:
Everything works fine there. The point() value with the invalid coordinates can be referenced, the node containing the property is returned without any problem, etc.
In 4.1:
if I create a property with point({srid:4326, x:-999999999, y:1.1})
it is accepted and sets the property to point({srid:4326, x:81, y:1.1})
if I set it to point({srid:4326, x:1.1, y:-999999999})
it throws the error:
Cannot create WGS84 point with invalid coordinate: [-9.99999999E8, -9.99999999E8]. Valid range for Y coordinate is [-90, 90].
Same thing.
The problem is that whenever you reference the property or even the node containing it, the query is abandoned with this error in version 4.1.
In 4.1 you cannot create such invalid coordinates, but in 3.5 you could! And migrating to 4.1 leaves you without a method to rectify this situation. The whole node cannot be used any longer.
I think Neo4j developers should look into this, it doesn't seem logical to prevent removing a property with an illegal value. And why does the error occur for the latitude but not for the longitude?