FQLv10 comparison of objects never completes


I seem to have stumbled upon a bug in FQLv10 when trying to compare two objects. I was attempting to write FQLv10 that would check if an index definition existed as expected on a document definition, and if not update it. The query was as follows:

result2 = client.query(fql('test.definition.indexes == {by_name_and_namespace: { terms: [{"field": "name"}, {"field": "namespace"}], queryable: true, status: "complete"}}'))

This query never completed and the python client hung indefinitely. I believe this is because the python FQLv10 client defaults to no read timeout.

I tried a simple version in the beta fauna dashboard and it timed out.

{foo: "bar"} == {foo: "bar"}
Please try again.

To add to this, it appears that array comparisons with objects inside of them work. It seems that directly comparing objects does not.

[{unique: ["name", "namespace"]}] == [{unique: ["name", "namespace"]}]

[{unique: ["name", "foo"]}] == [{unique: ["name", "namespace"]}]

{foo: "bar"} == {foo: "bar"}
Please try again.
1 Like

Hi @rcausey

Thank you for reporting this issue! I could reproduce it and I have filed an internal ticket for our DB Engineers to look at.


1 Like

I noticed that the Python driver hung indefinitely when this error occurred, so I opened this GitHub issue on the new Python driver as well: HTTPX read timeout is set to infinite by default · Issue #122 · fauna/fauna-python · GitHub

Hi @rcausey ,

The issue with object comparison is now fixed.

Thank you for creating a GitHub issue for the Python driver timeout issue! Our team has an internal ticket to track it and will post updates on GitHub.

Thanks again!

This topic was automatically closed after 23 hours. New replies are no longer allowed.