Skip to content

Commit

Permalink
Forbid multiple table selection from QuestDB (#722)
Browse files Browse the repository at this point in the history
* Forbid multiple table selection from QuestDB

* Forbid multiple table selection from QuestDB

* Format code

* Remove unused field
  • Loading branch information
MingCheng991129 committed Feb 6, 2023
1 parent 0ba08b5 commit 504ab26
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/sqlancer/questdb/test/QuestDBQueryPartitioningBase.java
Expand Up @@ -18,7 +18,6 @@
import sqlancer.questdb.QuestDBSchema;
import sqlancer.questdb.QuestDBSchema.QuestDBColumn;
import sqlancer.questdb.QuestDBSchema.QuestDBTable;
import sqlancer.questdb.QuestDBSchema.QuestDBTables;
import sqlancer.questdb.ast.QuestDBExpression;
import sqlancer.questdb.ast.QuestDBSelect;
import sqlancer.questdb.gen.QuestDBExpressionGenerator;
Expand All @@ -28,7 +27,7 @@ public class QuestDBQueryPartitioningBase
implements TestOracle<QuestDBGlobalState> {

QuestDBSchema s;
QuestDBTables targetTables;
QuestDBTable targetTable; // single table
QuestDBExpressionGenerator gen;
QuestDBSelect select;

Expand All @@ -42,7 +41,7 @@ List<Node<QuestDBExpression>> generateFetchColumns() {
if (Randomly.getBoolean()) {
columns.add(new ColumnReferenceNode<>(new QuestDBColumn("*", null, false)));
} else {
columns = Randomly.nonEmptySubset(targetTables.getColumns()).stream()
columns = Randomly.nonEmptySubset(targetTable.getColumns()).stream()
.map(c -> new ColumnReferenceNode<QuestDBExpression, QuestDBColumn>(c))
.collect(Collectors.toList());
}
Expand All @@ -66,12 +65,15 @@ protected ExpressionGenerator<Node<QuestDBExpression>> getGen() {
@Override
public void check() throws SQLException {
s = state.getSchema();
targetTables = s.getRandomTableNonEmptyTables();
gen = new QuestDBExpressionGenerator(state).setColumns(targetTables.getColumns());
// Only return one table instead of multiple tables, which is regarded as illegal by QuestDB
// e.g. "SELECT * FROM t0, t1;"
targetTable = s.getRandomTable();
gen = new QuestDBExpressionGenerator(state).setColumns(targetTable.getColumns());
initializeTernaryPredicateVariants();
select = new QuestDBSelect();
select.setFetchColumns(generateFetchColumns());
List<QuestDBTable> tables = targetTables.getTables();
List<QuestDBTable> tables = new ArrayList<>();
tables.add(targetTable);
List<TableReferenceNode<QuestDBExpression, QuestDBTable>> tableList = tables.stream()
.map(t -> new TableReferenceNode<QuestDBExpression, QuestDBTable>(t)).collect(Collectors.toList());
// Ignore JOINs for now
Expand Down

0 comments on commit 504ab26

Please sign in to comment.