Affiliation:
1. University of California, Berkeley
Abstract
Checking query equivalence is of great significance in database systems. Prior work in automated query equivalence checking sets the first steps in formally modeling and reasoning about query optimization rules, but only supports a limited number of query features. In this paper, we present Qed, a new framework for query equivalence checking based on bag semantics. Qed uses a new formalism called Q-expressions that models queries using different normal forms for efficient equivalence checking, and models features such as integrity constraints and NULLs in a principled way unlike prior work. Our formalism also allows us to define a new query fragment that encompasses many real-world queries with a complete equivalence checking algorithm, assuming a complete first-order theory solver. Empirically, Qed can verify 299 out of 444 query pairs extracted from the Calcite framework and 979 out of 1287 query pairs extracted from CockroachDB, which is more than 2× the number of cases proven by prior state-of-the-art solver.
Publisher
Association for Computing Machinery (ACM)
Reference18 articles.
1. [n. d.]. Syntax-Guided Synthesis. https://sygus-org.github.io/
2. Apache Calcite
3. A Coq mechanised formal semantics for realistic SQL queries: formally reconciling SQL and bag relational algebra
4. Apache Calcite. 2022. Join Push Transitive Predicates Rule. https://github.com/apache/calcite/blob/413eded693a9087402cc1a6eefeca7a29445d337/core/src/main/java/org/apache/calcite/rel/rules/JoinPushTransitivePredicatesRule.java
5. Apache Calcite. 2022. Project Join Join Remove Rule. https://github.com/apache/calcite/blob/413eded693a9087402cc1a6eefeca7a29445d337/core/src/main/java/org/apache/calcite/rel/rules/ProjectJoinJoinRemoveRule.java