feat: Foundation for DQE Oracle Implementation by AmrRiyad · Pull Request #1196 · sqlancer/sqlancer
Description
This PR lays the groundwork for implementing the DQE oracle across multiple DBMS by introducing a new abstract class in DQEBase.java. The class serves as the base for handling auxiliary columns and error management, setting the stage for DBMS-specific extensions in the future.
Proposed Changes
-
Abstract Class Implementation:
- Introduce
DQEBaseas the core abstract class for the DQE oracle.
- Introduce
-
Auxiliary Column Management:
-
Define the abstract method
addAuxiliaryColumns(), which concrete implementations must override. -
Provide a helper method,
dropAuxiliaryColumns(), to consistently remove auxiliary columns (rowIdandupdated) from tables.
-
-
Errors Comparison:
- Implement a new
SQLQueryErrorclass that provides comprehensive comparisons of error details—such as levels, codes, and messages—from multiple executed queries.
- Implement a new
Impact
- Modularity and Extensibility:
- Establishes a clear foundation that allows for multiple DBMS-specific implementations of the DQE oracle.