FQLv10 comparison of objects never completes

Hello,

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"]}]
>> SUCCESS
true

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

{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.

Thanks!

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