mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-24 18:40:38 +00:00
`expression`'s default constructor is dangerous as an it can leak into computations and generate surprising results. Fix that by removing the default constructor. This is made somewhat difficult by the parser generator's reliance on default construction, and we need to expand our workaround (`uninitialized<>`) capabilities to do so. We also remove some incidental uses of default-constructed expressions. Closes #14706 * github.com:scylladb/scylladb: cql3: expr: make expression non-default-constructible cql3: grammar: don't default-construct expressions cql3: grammar: improve uninitialized<> flexibility cql3: grammar: adjust uninitialized<> wrapper test: expr_test: don't invoke expression's default constructor cql3: statement_restrictions: explicitly initialize expressions in index match code cql3: statement_restrictions: explicitly intitialize some expression fields cql3: statement_restrictions: avoid expression's default constructor when classifying restrictions cql3: expr: prepare_expression: avoid default-constructed expression cql3: broadcast_tables: prepare new_value without relying on expression default constructor