File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package sqlancer ;
2+
3+ /**
4+ * This is the base class of the Ternary Logic Partitioning (TLP) oracles. The core idea of TLP is to partition a given
5+ * so-called original query to three so-called partitioning queries, each of which computes a partition of the original
6+ * query's result.
7+ *
8+ * @param <E>
9+ * the expression type
10+ */
11+ public abstract class TernaryLogicPartitioningOracleBase <E > {
12+
13+ }
Original file line number Diff line number Diff line change 22
33import ru .yandex .clickhouse .domain .ClickHouseDataType ;
44import sqlancer .Randomly ;
5+ import sqlancer .TernaryLogicPartitioningOracleBase ;
56import sqlancer .TestOracle ;
67import sqlancer .clickhouse .ClickHouseErrors ;
78import sqlancer .clickhouse .ClickHouseProvider .ClickHouseGlobalState ;
2627import java .util .Set ;
2728import java .util .stream .Collectors ;
2829
29- public class ClickHouseTLPBase implements TestOracle {
30+ public class ClickHouseTLPBase extends TernaryLogicPartitioningOracleBase < ClickHouseExpression > implements TestOracle {
3031
3132 final ClickHouseGlobalState state ;
3233 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 88import java .util .stream .Collectors ;
99
1010import sqlancer .Randomly ;
11+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1112import sqlancer .TestOracle ;
1213import sqlancer .cockroachdb .CockroachDBErrors ;
1314import sqlancer .cockroachdb .CockroachDBProvider .CockroachDBGlobalState ;
2627import sqlancer .cockroachdb .gen .CockroachDBExpressionGenerator ;
2728import sqlancer .cockroachdb .oracle .CockroachDBNoRECOracle ;
2829
29- public class CockroachDBTLPBase implements TestOracle {
30+ public class CockroachDBTLPBase extends TernaryLogicPartitioningOracleBase <CockroachDBExpression >
31+ implements TestOracle {
3032
3133 final CockroachDBGlobalState state ;
3234 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 88import java .util .stream .Collectors ;
99
1010import sqlancer .Randomly ;
11+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1112import sqlancer .TestOracle ;
1213import sqlancer .ast .newast .ColumnReferenceNode ;
1314import sqlancer .ast .newast .NewUnaryPostfixOperatorNode ;
2728import sqlancer .duckdb .gen .DuckDBExpressionGenerator .DuckDBUnaryPostfixOperator ;
2829import sqlancer .duckdb .gen .DuckDBExpressionGenerator .DuckDBUnaryPrefixOperator ;
2930
30- public class DuckDBQueryPartitioningBase implements TestOracle {
31+ public class DuckDBQueryPartitioningBase extends TernaryLogicPartitioningOracleBase <Node <DuckDBExpression >>
32+ implements TestOracle {
3133
3234 final DuckDBGlobalState state ;
3335 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 77import java .util .Set ;
88import java .util .stream .Collectors ;
99
10+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1011import sqlancer .TestOracle ;
1112import sqlancer .mysql .MySQLErrors ;
1213import sqlancer .mysql .MySQLGlobalState ;
2223import sqlancer .mysql .ast .MySQLUnaryPrefixOperation .MySQLUnaryPrefixOperator ;
2324import sqlancer .mysql .gen .MySQLExpressionGenerator ;
2425
25- public abstract class MySQLQueryPartitioningBase implements TestOracle {
26+ public abstract class MySQLQueryPartitioningBase extends TernaryLogicPartitioningOracleBase <MySQLExpression >
27+ implements TestOracle {
2628
2729 final MySQLGlobalState state ;
2830 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 88import java .util .stream .Collectors ;
99
1010import sqlancer .Randomly ;
11+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1112import sqlancer .TestOracle ;
1213import sqlancer .postgres .PostgresGlobalState ;
1314import sqlancer .postgres .PostgresSchema ;
2728import sqlancer .postgres .gen .PostgresExpressionGenerator ;
2829import sqlancer .postgres .oracle .PostgresNoRECOracle ;
2930
30- public class PostgresTLPBase implements TestOracle {
31+ public class PostgresTLPBase extends TernaryLogicPartitioningOracleBase < PostgresExpression > implements TestOracle {
3132
3233 final PostgresGlobalState state ;
3334 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 88import java .util .stream .Collectors ;
99
1010import sqlancer .Randomly ;
11+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1112import sqlancer .TestOracle ;
1213import sqlancer .sqlite3 .SQLite3Errors ;
1314import sqlancer .sqlite3 .SQLite3Provider .SQLite3GlobalState ;
2627import sqlancer .sqlite3 .schema .SQLite3Schema .SQLite3Table ;
2728import sqlancer .sqlite3 .schema .SQLite3Schema .SQLite3Tables ;
2829
29- public class SQLite3TLPBase implements TestOracle {
30+ public class SQLite3TLPBase extends TernaryLogicPartitioningOracleBase < SQLite3Expression > implements TestOracle {
3031
3132 final SQLite3GlobalState state ;
3233 final Set <String > errors = new HashSet <>();
Original file line number Diff line number Diff line change 88import java .util .stream .Collectors ;
99
1010import sqlancer .Randomly ;
11+ import sqlancer .TernaryLogicPartitioningOracleBase ;
1112import sqlancer .TestOracle ;
1213import sqlancer .tidb .TiDBErrors ;
1314import sqlancer .tidb .TiDBExpressionGenerator ;
2627import sqlancer .tidb .ast .TiDBUnaryPrefixOperation .TiDBUnaryPrefixOperator ;
2728import sqlancer .tidb .gen .TiDBHintGenerator ;
2829
29- public abstract class TiDBTLPBase implements TestOracle {
30+ public abstract class TiDBTLPBase extends TernaryLogicPartitioningOracleBase < TiDBExpression > implements TestOracle {
3031
3132 final TiDBGlobalState state ;
3233 final Set <String > errors = new HashSet <>();
You can’t perform that action at this time.
0 commit comments