forked from sqlancer/sqlancer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDorisDeleteGenerator.java
More file actions
31 lines (26 loc) · 1.15 KB
/
DorisDeleteGenerator.java
File metadata and controls
31 lines (26 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package sqlancer.doris.gen;
import sqlancer.Randomly;
import sqlancer.common.query.ExpectedErrors;
import sqlancer.common.query.SQLQueryAdapter;
import sqlancer.doris.DorisErrors;
import sqlancer.doris.DorisProvider.DorisGlobalState;
import sqlancer.doris.DorisSchema;
import sqlancer.doris.DorisSchema.DorisTable;
import sqlancer.doris.visitor.DorisToStringVisitor;
public final class DorisDeleteGenerator {
private DorisDeleteGenerator() {
}
public static SQLQueryAdapter generate(DorisGlobalState globalState) {
StringBuilder sb = new StringBuilder("DELETE FROM ");
ExpectedErrors errors = new ExpectedErrors();
DorisTable table = globalState.getSchema().getRandomTable(t -> !t.isView());
sb.append(table.getName());
if (Randomly.getBoolean()) {
sb.append(" WHERE ");
sb.append(DorisToStringVisitor.asString(new DorisNewExpressionGenerator(globalState)
.setColumns(table.getColumns()).generateExpression(DorisSchema.DorisDataType.BOOLEAN)));
DorisErrors.addExpressionErrors(errors);
}
return new SQLQueryAdapter(sb.toString(), errors);
}
}