Skip to content

Commit 16b4d60

Browse files
branch-4.0: [Fix](DDL) Make autoBucket flag modifiable and add testcases for ALTER TABLE BUCKETS #60651 (#60825)
Cherry-picked from #60651 Co-authored-by: zclllyybb <zhaochangle@selectdb.com>
1 parent 8989e23 commit 16b4d60

File tree

5 files changed

+484
-19
lines changed

5 files changed

+484
-19
lines changed

fe/fe-core/src/main/java/org/apache/doris/catalog/DistributionInfo.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,21 @@ public DistributionInfoType getType() {
6464
}
6565

6666
public int getBucketNum() {
67-
// should override in sub class
68-
throw new NotImplementedException("not implemented");
67+
return bucketNum;
6968
}
7069

7170
public void setBucketNum(int bucketNum) {
72-
// should override in sub class
73-
throw new NotImplementedException("not implemented");
71+
this.bucketNum = bucketNum;
7472
}
7573

7674
public void markAutoBucket() {
7775
autoBucket = true;
7876
}
7977

78+
public void setAutoBucket(boolean autoBucket) {
79+
this.autoBucket = autoBucket;
80+
}
81+
8082
public DistributionDesc toDistributionDesc() {
8183
throw new NotImplementedException("toDistributionDesc not implemented");
8284
}

fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6202,6 +6202,8 @@ public void modifyDefaultDistributionBucketNum(Database db, OlapTable olapTable,
62026202
}
62036203

62046204
defaultDistributionInfo.setBucketNum(bucketNum);
6205+
defaultDistributionInfo.setAutoBucket(distributionInfo.getAutoBucket());
6206+
olapTable.setIsAutoBucket(distributionInfo.getAutoBucket());
62056207

62066208
ModifyTableDefaultDistributionBucketNumOperationLog info
62076209
= new ModifyTableDefaultDistributionBucketNumOperationLog(db.getId(), olapTable.getId(),
@@ -6227,6 +6229,8 @@ public void replayModifyTableDefaultDistributionBucketNum(ModifyTableDefaultDist
62276229
try {
62286230
DistributionInfo defaultDistributionInfo = olapTable.getDefaultDistributionInfo();
62296231
defaultDistributionInfo.setBucketNum(bucketNum);
6232+
defaultDistributionInfo.setAutoBucket(info.getAutoBucket());
6233+
olapTable.setIsAutoBucket(info.getAutoBucket());
62306234
} finally {
62316235
olapTable.writeUnlock();
62326236
}

fe/fe-core/src/main/java/org/apache/doris/catalog/HashDistributionInfo.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,6 @@ public List<Column> getDistributionColumns() {
5454
return distributionColumns;
5555
}
5656

57-
@Override
58-
public int getBucketNum() {
59-
return bucketNum;
60-
}
61-
62-
@Override
63-
public void setBucketNum(int bucketNum) {
64-
this.bucketNum = bucketNum;
65-
}
66-
6757
public boolean sameDistributionColumns(HashDistributionInfo other) {
6858
if (distributionColumns.size() != other.distributionColumns.size()) {
6959
return false;

fe/fe-core/src/main/java/org/apache/doris/catalog/RandomDistributionInfo.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ public DistributionDesc toDistributionDesc() {
4444
return distributionDesc;
4545
}
4646

47-
@Override
48-
public int getBucketNum() {
49-
return bucketNum;
50-
}
51-
5247
@Override
5348
public String getColumnsName() {
5449
return "";

0 commit comments

Comments
 (0)