Skip to content

Commit 11ee3df

Browse files
committed
refactor: separate index and constraint ASTs
Signed-off-by: minleejae <mmj9808@gmail.com>
1 parent 8a02f36 commit 11ee3df

85 files changed

Lines changed: 2957 additions & 1974 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterConstraintAttributes.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import java.util.Objects;
1313
import net.sf.jsqlparser.statement.create.table.ConstraintAttributes;
14-
import net.sf.jsqlparser.statement.create.table.Index;
14+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1515

1616
/** Changes an existing constraint using the attributes shared with CREATE and ADD. */
1717
public class AlterConstraintAttributes extends AlterExpression {
@@ -30,6 +30,11 @@ public void setAttributes(ConstraintAttributes attributes) {
3030
this.attributes = Objects.requireNonNull(attributes, "attributes");
3131
}
3232

33+
@Override
34+
public boolean hasActiveTableDefinition() {
35+
return false;
36+
}
37+
3338
@Override
3439
public String getConstraintName() {
3540
return getConstraintSymbol();
@@ -51,8 +56,8 @@ public void setEnforced(boolean enforced) {
5156
}
5257

5358
@Override
54-
public Index.Kind getConstraintKind() {
55-
return Index.Kind.OTHER;
59+
public ConstraintKind getConstraintKind() {
60+
return ConstraintKind.OTHER;
5661
}
5762

5863
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java‎

Lines changed: 173 additions & 77 deletions
Large diffs are not rendered by default.

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionCharset.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
package net.sf.jsqlparser.statement.alter;
1111

12-
import net.sf.jsqlparser.statement.create.table.Index;
12+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1313

1414
/**
1515
* Internal subclass for character set and collation operations within ALTER TABLE. Handles CONVERT
@@ -18,8 +18,13 @@
1818
public class AlterExpressionCharset extends AlterExpression {
1919

2020
@Override
21-
public Index.Kind getConstraintKind() {
22-
return Index.Kind.OTHER;
21+
public boolean hasActiveTableDefinition() {
22+
return false;
23+
}
24+
25+
@Override
26+
public ConstraintKind getConstraintKind() {
27+
return ConstraintKind.OTHER;
2328
}
2429

2530
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionDrop.java‎

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,34 @@
1111

1212

1313
import net.sf.jsqlparser.statement.select.PlainSelect;
14-
import net.sf.jsqlparser.statement.create.table.Index;
14+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1515

1616
/**
1717
* Internal subclass for DROP operations within ALTER TABLE. Handles DROP column, DROP CONSTRAINT,
1818
* DROP INDEX/KEY, DROP PRIMARY KEY, DROP UNIQUE, DROP FOREIGN KEY, and DROP PARTITION.
1919
*/
2020
public class AlterExpressionDrop extends AlterExpression {
2121
@Override
22-
public Index.Kind getConstraintKind() {
22+
public boolean hasActiveTableDefinition() {
23+
return false;
24+
}
25+
26+
@Override
27+
public ConstraintKind getConstraintKind() {
2328
if (getOperation() == null) {
24-
return Index.Kind.OTHER;
29+
return ConstraintKind.OTHER;
2530
}
2631
switch (getOperation()) {
2732
case DROP_PRIMARY_KEY:
28-
return Index.Kind.PRIMARY_KEY;
33+
return ConstraintKind.PRIMARY_KEY;
2934
case DROP_UNIQUE:
30-
return Index.Kind.UNIQUE;
35+
return ConstraintKind.UNIQUE;
3136
case DROP_FOREIGN_KEY:
32-
return Index.Kind.FOREIGN_KEY;
37+
return ConstraintKind.FOREIGN_KEY;
3338
case DROP_CHECK:
34-
return Index.Kind.CHECK;
39+
return ConstraintKind.CHECK;
3540
default:
36-
return Index.Kind.OTHER;
41+
return ConstraintKind.OTHER;
3742
}
3843
}
3944

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionOrderBy.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import java.util.function.Consumer;
1515
import net.sf.jsqlparser.expression.Expression;
1616
import net.sf.jsqlparser.statement.select.OrderByElement;
17-
import net.sf.jsqlparser.statement.create.table.Index;
17+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1818

1919
/** MySQL ALTER TABLE ORDER BY, using the same mutable order elements as query ordering. */
2020
public class AlterExpressionOrderBy extends AlterExpression {
@@ -29,8 +29,13 @@ public List<OrderByElement> getOrderByElements() {
2929
}
3030

3131
@Override
32-
public Index.Kind getConstraintKind() {
33-
return Index.Kind.OTHER;
32+
public boolean hasActiveTableDefinition() {
33+
return false;
34+
}
35+
36+
@Override
37+
public ConstraintKind getConstraintKind() {
38+
return ConstraintKind.OTHER;
3439
}
3540

3641
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionPartition.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import net.sf.jsqlparser.statement.create.table.PartitionDefinition;
2222
import net.sf.jsqlparser.statement.create.table.TablePartitioning;
2323
import net.sf.jsqlparser.statement.select.PlainSelect;
24-
import net.sf.jsqlparser.statement.create.table.Index;
24+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
2525

2626
/**
2727
* Structured model for partition operations within {@code ALTER TABLE}.
@@ -147,6 +147,11 @@ public void setCoalescePartitionCount(Integer coalescePartitionCount) {
147147
}
148148
}
149149

150+
@Override
151+
public boolean hasActiveTableDefinition() {
152+
return false;
153+
}
154+
150155
@Override
151156
public void setCoalescePartitionNumber(int coalescePartitionNumber) {
152157
super.setCoalescePartitionNumber(coalescePartitionNumber);
@@ -294,8 +299,8 @@ public AlterExpressionPartition addPartitionDefinitions(
294299
}
295300

296301
@Override
297-
public Index.Kind getConstraintKind() {
298-
return Index.Kind.OTHER;
302+
public ConstraintKind getConstraintKind() {
303+
return ConstraintKind.OTHER;
299304
}
300305

301306
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionPrimaryKey.java‎

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,36 @@
99
*/
1010
package net.sf.jsqlparser.statement.alter;
1111

12+
import net.sf.jsqlparser.statement.create.table.IndexOption;
13+
import net.sf.jsqlparser.statement.create.table.KeyElement;
1214
import java.util.Iterator;
1315
import java.util.function.Consumer;
1416
import net.sf.jsqlparser.expression.Expression;
15-
import net.sf.jsqlparser.statement.create.table.Index;
17+
import net.sf.jsqlparser.statement.create.table.KeyConstraint;
18+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1619

1720
/**
1821
* CockroachDB's ALTER PRIMARY KEY USING COLUMNS operation. Key elements and storage options are
19-
* available through {@link #getIndex()}; hash sharding and the legacy WITH BUCKET_COUNT expression
20-
* are represented separately.
22+
* available through {@link #getConstraint()}; hash sharding and the legacy WITH BUCKET_COUNT
23+
* expression are represented separately.
2124
*/
2225
public class AlterExpressionPrimaryKey extends AlterExpression {
2326
private boolean usingHash;
2427
private Expression bucketCount;
2528

2629
public AlterExpressionPrimaryKey() {
2730
setOperation(AlterOperation.ALTER_PRIMARY_KEY);
28-
setIndex(new Index().withType("PRIMARY KEY"));
31+
setConstraint(new KeyConstraint().withType("PRIMARY KEY"));
32+
}
33+
34+
@Override
35+
public boolean hasActiveTableDefinition() {
36+
return false;
37+
}
38+
39+
@Override
40+
public KeyConstraint getConstraint() {
41+
return (KeyConstraint) super.getConstraint();
2942
}
3043

3144
public boolean isUsingHash() {
@@ -45,8 +58,8 @@ public void setBucketCount(Expression bucketCount) {
4558
}
4659

4760
@Override
48-
public Index.Kind getConstraintKind() {
49-
return Index.Kind.PRIMARY_KEY;
61+
public ConstraintKind getConstraintKind() {
62+
return ConstraintKind.PRIMARY_KEY;
5063
}
5164

5265
@Override
@@ -63,8 +76,8 @@ public StringBuilder appendTo(StringBuilder builder, Consumer<Expression> expres
6376

6477
private void appendDefinition(StringBuilder builder, Consumer<Expression> expressionPrinter) {
6578
builder.append("ALTER PRIMARY KEY USING COLUMNS (");
66-
if (getIndex().getColumns() != null) {
67-
for (Iterator<Index.ColumnParams> columns = getIndex().getColumns().iterator(); columns
79+
if (getConstraint().getColumns() != null) {
80+
for (Iterator<KeyElement> columns = getConstraint().getColumns().iterator(); columns
6881
.hasNext();) {
6982
columns.next().appendTo(builder, expressionPrinter);
7083
if (columns.hasNext()) {
@@ -89,10 +102,10 @@ private void appendSharding(StringBuilder builder, Consumer<Expression> expressi
89102

90103
private void appendStorageOptions(StringBuilder builder,
91104
Consumer<Expression> expressionPrinter) {
92-
if (getIndex().getStorageParameters() != null) {
105+
if (getConstraint().getStorageParameters() != null) {
93106
builder.append(" WITH (");
94-
for (Iterator<Index.Option> options =
95-
getIndex().getStorageParameters().iterator(); options.hasNext();) {
107+
for (Iterator<IndexOption> options =
108+
getConstraint().getStorageParameters().iterator(); options.hasNext();) {
96109
options.next().appendTo(builder, expressionPrinter);
97110
if (options.hasNext()) {
98111
builder.append(", ");

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionRename.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
package net.sf.jsqlparser.statement.alter;
1111

12-
import net.sf.jsqlparser.statement.create.table.Index;
12+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1313

1414
/**
1515
* Internal subclass for RENAME operations within ALTER TABLE. Handles RENAME COLUMN, RENAME TO
@@ -18,8 +18,13 @@
1818
public class AlterExpressionRename extends AlterExpression {
1919

2020
@Override
21-
public Index.Kind getConstraintKind() {
22-
return Index.Kind.OTHER;
21+
public boolean hasActiveTableDefinition() {
22+
return false;
23+
}
24+
25+
@Override
26+
public ConstraintKind getConstraintKind() {
27+
return ConstraintKind.OTHER;
2328
}
2429

2530
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterExpressionTableOption.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
package net.sf.jsqlparser.statement.alter;
1111

1212
import net.sf.jsqlparser.statement.create.table.TableOption;
13-
import net.sf.jsqlparser.statement.create.table.Index;
13+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1414

1515
/**
1616
* Internal subclass for table-level option operations within ALTER TABLE. Handles ENGINE,
@@ -33,6 +33,11 @@ public void setStructuredTableOption(TableOption option) {
3333
super.setUseEqual(false);
3434
}
3535

36+
@Override
37+
public boolean hasActiveTableDefinition() {
38+
return false;
39+
}
40+
3641
@Override
3742
public AlterOperation getOperation() {
3843
if (structuredTableOption != null) {
@@ -130,8 +135,8 @@ public void setUseEqual(boolean useEqual) {
130135
}
131136

132137
@Override
133-
public Index.Kind getConstraintKind() {
134-
return Index.Kind.OTHER;
138+
public ConstraintKind getConstraintKind() {
139+
return ConstraintKind.OTHER;
135140
}
136141

137142
@Override

‎src/main/java/net/sf/jsqlparser/statement/alter/AlterForeignDataOptions.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import java.util.function.Consumer;
1414
import net.sf.jsqlparser.expression.Expression;
1515
import net.sf.jsqlparser.statement.create.table.ForeignDataOption;
16-
import net.sf.jsqlparser.statement.create.table.Index;
16+
import net.sf.jsqlparser.statement.create.table.ConstraintKind;
1717

1818
/** Foreign table OPTIONS, optionally applied to one column. */
1919
public class AlterForeignDataOptions extends AlterExpression {
@@ -41,8 +41,13 @@ public StringBuilder appendTo(StringBuilder builder, Consumer<Expression> expres
4141
}
4242

4343
@Override
44-
public Index.Kind getConstraintKind() {
45-
return Index.Kind.OTHER;
44+
public boolean hasActiveTableDefinition() {
45+
return false;
46+
}
47+
48+
@Override
49+
public ConstraintKind getConstraintKind() {
50+
return ConstraintKind.OTHER;
4651
}
4752

4853
@Override

0 commit comments

Comments
 (0)