Skip to content

Commit 32b0fd3

Browse files
authored
Fix where clause in Materialize (#1293)
* Fix where clause in Materialize * Fix up Materialize CI * Try to fix duplicate table creation in Materialize * Adapt materialize insert error message * Bump jacoco version
2 parents ea75bbe + 1506cf2 commit 32b0fd3

6 files changed

Lines changed: 14 additions & 13 deletions

File tree

.github/workflows/main.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -392,10 +392,7 @@ jobs:
392392
- name: Set up Materialize
393393
run: |
394394
docker pull materialize/materialized:latest
395-
docker run -d -p6875:6875 -p6877:6877 -p 26257:26257 materialize/materialized:latest
396-
sleep 5
397-
# Workaround for https://github.com/cockroachdb/cockroach/issues/93892
398-
psql postgres://root@localhost:26257 -c "SET CLUSTER SETTING sql.stats.forecasts.enabled = false"
395+
docker run -e MZ_EAT_MY_DATA=1 -d -p6875:6875 -p6877:6877 materialize/materialized:latest
399396
- name: Set up JDK 11
400397
uses: actions/setup-java@v3
401398
with:
@@ -420,10 +417,7 @@ jobs:
420417
- name: Set up Materialize
421418
run: |
422419
docker pull materialize/materialized:latest
423-
docker run -d -p6875:6875 -p6877:6877 -p 26257:26257 materialize/materialized:latest
424-
sleep 5
425-
# Workaround for https://github.com/cockroachdb/cockroach/issues/93892
426-
psql postgres://root@localhost:26257 -c "SET CLUSTER SETTING sql.stats.forecasts.enabled = false"
420+
docker run -e MZ_EAT_MY_DATA=1 -d -p6875:6875 -p6877:6877 materialize/materialized:latest
427421
- name: Set up JDK 11
428422
uses: actions/setup-java@v3
429423
with:

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
<plugin>
9090
<groupId>org.jacoco</groupId>
9191
<artifactId>jacoco-maven-plugin</artifactId>
92-
<version>0.8.8</version>
92+
<version>0.8.12</version>
9393
<executions>
9494
<execution>
9595
<goals>

src/sqlancer/materialize/MaterializeProvider.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,17 @@ protected void readFunctions(MaterializeGlobalState globalState) throws SQLExcep
240240
}
241241

242242
protected void createTables(MaterializeGlobalState globalState, int numTables) throws Exception {
243-
while (globalState.getSchema().getDatabaseTables().size() < numTables) {
243+
int existingTables = globalState.getSchema().getDatabaseTables().size();
244+
int createdTables = 0;
245+
int nextTableIndex = existingTables;
246+
while (existingTables + createdTables < numTables) {
244247
try {
245-
String tableName = DBMSCommon.createTableName(globalState.getSchema().getDatabaseTables().size());
248+
String tableName = DBMSCommon.createTableName(nextTableIndex++);
246249
SQLQueryAdapter createTable = MaterializeTableGenerator.generate(tableName, globalState.getSchema(),
247250
generateOnlyKnown, globalState);
248-
globalState.executeStatement(createTable);
251+
if (globalState.executeStatement(createTable)) {
252+
createdTables++;
253+
}
249254
} catch (IgnoreMeException e) {
250255

251256
}

src/sqlancer/materialize/gen/MaterializeExpressionGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,7 @@ public String generateOptimizedQueryString(MaterializeSelect select, Materialize
600600
}
601601
select.setSelectType(SelectType.ALL);
602602
}
603+
select.setWhereClause(whereCondition);
603604

604605
return select.asString();
605606
}

src/sqlancer/materialize/gen/MaterializeInsertGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static SQLQueryAdapter insert(MaterializeGlobalState globalState) {
2626
MaterializeCommon.addCommonExpressionErrors(errors);
2727
errors.add("multiple assignments to same column");
2828
errors.add("violates foreign key constraint");
29-
errors.add("value too long for type character varying");
29+
errors.add("value too long for type character");
3030
errors.add("conflicting key value violates exclusion constraint");
3131
errors.add("violates not-null constraint");
3232
errors.add("current transaction is aborted");

src/sqlancer/materialize/gen/MaterializeTableGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public MaterializeTableGenerator(String tableName, MaterializeSchema newSchema,
5252
errors.add("no collation was derived for partition key column");
5353
errors.add("inherits from generated column but specifies identity");
5454
errors.add("inherits from generated column but specifies default");
55+
errors.add("already exists");
5556
MaterializeCommon.addCommonExpressionErrors(errors);
5657
MaterializeCommon.addCommonTableErrors(errors);
5758
}

0 commit comments

Comments
 (0)