99 */
1010package net .sf .jsqlparser .statement .alter ;
1111
12+ import net .sf .jsqlparser .statement .create .table .IndexOption ;
13+ import net .sf .jsqlparser .statement .create .table .KeyElement ;
1214import java .util .Iterator ;
1315import java .util .function .Consumer ;
1416import 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 */
2225public 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 () {
@@ -44,6 +57,11 @@ public void setBucketCount(Expression bucketCount) {
4457 this .bucketCount = bucketCount ;
4558 }
4659
60+ @ Override
61+ public ConstraintKind getConstraintKind () {
62+ return ConstraintKind .PRIMARY_KEY ;
63+ }
64+
4765 @ Override
4866 protected void appendBody (StringBuilder builder ) {
4967 appendDefinition (builder , expression -> builder .append (expression ));
@@ -58,8 +76,8 @@ public StringBuilder appendTo(StringBuilder builder, Consumer<Expression> expres
5876
5977 private void appendDefinition (StringBuilder builder , Consumer <Expression > expressionPrinter ) {
6078 builder .append ("ALTER PRIMARY KEY USING COLUMNS (" );
61- if (getIndex ().getColumns () != null ) {
62- for (Iterator <Index . ColumnParams > columns = getIndex ().getColumns ().iterator (); columns
79+ if (getConstraint ().getColumns () != null ) {
80+ for (Iterator <KeyElement > columns = getConstraint ().getColumns ().iterator (); columns
6381 .hasNext ();) {
6482 columns .next ().appendTo (builder , expressionPrinter );
6583 if (columns .hasNext ()) {
@@ -84,10 +102,10 @@ private void appendSharding(StringBuilder builder, Consumer<Expression> expressi
84102
85103 private void appendStorageOptions (StringBuilder builder ,
86104 Consumer <Expression > expressionPrinter ) {
87- if (getIndex ().getStorageParameters () != null ) {
105+ if (getConstraint ().getStorageParameters () != null ) {
88106 builder .append (" WITH (" );
89- for (Iterator <Index . Option > options =
90- getIndex ().getStorageParameters ().iterator (); options .hasNext ();) {
107+ for (Iterator <IndexOption > options =
108+ getConstraint ().getStorageParameters ().iterator (); options .hasNext ();) {
91109 options .next ().appendTo (builder , expressionPrinter );
92110 if (options .hasNext ()) {
93111 builder .append (", " );
0 commit comments