◐ Shell
clean mode source ↗

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 DQEBase as the core abstract class for the DQE oracle.
  • Auxiliary Column Management:

    • Define the abstract method addAuxiliaryColumns(), which concrete implementations must override.

    • Provide a helper method, dropAuxiliaryColumns(), to consistently remove auxiliary columns (rowId and updated) from tables.

  • Errors Comparison:

    • Implement a new SQLQueryError class that provides comprehensive comparisons of error details—such as levels, codes, and messages—from multiple executed queries.

Impact

  • Modularity and Extensibility:
    • Establishes a clear foundation that allows for multiple DBMS-specific implementations of the DQE oracle.