MaterializeInc / materialize

The Cloud Operational Data Store: use SQL to transform, deliver, and act on fast-changing data.
https://materialize.com
Other
5.72k stars 466 forks source link

`MZ_SOFT_ASSERTIONS` influences sqllogictest outputs #27417

Open antiguru opened 3 months ago

antiguru commented 3 months ago

What version of Materialize are you using?

main

What is the issue?

From https://github.com/MaterializeInc/materialize/pull/27332#issuecomment-2142002896:

MZ_SOFT_ASSERTIONS=false bin/sqllogictest --release -- -v test/sqllogictest/*.slt test/sqllogictest/transform/*.slt test/sqllogictest/explain/*.slt test/sqllogictest/autogenerated/*.slt test/sqllogictest/attributes/*.slt test/sqllogictest/transform/notice/*.slt --rewrite-results

(We need MZ_SOFT_ASSERTIONS=false, because of EXPLAIN choosing the defaults of some options based on soft assertions being enabled.)

We should adjust the behavior such that the explain output does not depend on otherwise unrelated environment symbols, or compiling in debug vs. release modes.

frankmcsherry commented 1 month ago

This came up as a plausible explanation for https://materializeinc.slack.com/archives/CU7ELJ6E9/p1720708788977779, in which I found that

explain with (arity = false) select * from transitive;

still produces arities, and also the default explain ... produces arities, and so many arities. This is in a staging environment, and it seemed likely that various flags may be different there than for production users, so .. not high priority but seemingly worth understanding (e.g. being quite sure that this works properly there).

ggevay commented 1 month ago

(Responded on Slack.)