Skip to content

Commit b4cc48b

Browse files
feat(PostgreSQL): delete the PostgreSQL sequences
1 parent 5968485 commit b4cc48b

File tree

15 files changed

+116
-23
lines changed

15 files changed

+116
-23
lines changed

chat2db-server/chat2db-plugins/chat2db-postgresql/src/main/java/ai/chat2db/plugin/postgresql/PostgreSQLMetaData.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222

2323
import static ai.chat2db.plugin.postgresql.consts.SequenceCommonConst.*;
2424
import static ai.chat2db.plugin.postgresql.consts.SQLConst.*;
25+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.*;
26+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.DOT;
27+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.SEMICOLON;
2528
import static ai.chat2db.spi.util.SortUtils.sortDatabase;
2629

2730
public class PostgreSQLMetaData extends DefaultMetaService implements MetaData {
@@ -369,7 +372,7 @@ public String sequenceDDL(Connection connection, @NotEmpty String databaseName,
369372

370373
Optional.ofNullable(comment).ifPresent(v -> stringBuilder.append(COMMENT_ON_SEQUENCE)
371374
.append(nspname).append(DOT).append(relname)
372-
.append(IS).append(SINGLE_QUOTE).append(comment).append(SINGLE_QUOTE).append(SEMICOLON).append(BLANK_LINE));
375+
.append(IS).append(SQUOT).append(comment).append(SQUOT).append(SEMICOLON).append(BLANK_LINE));
373376

374377
Optional.ofNullable(rolname).ifPresent(v -> stringBuilder.append(ALTER_SEQUENCE)
375378
.append(nspname).append(DOT).append(relname)

chat2db-server/chat2db-plugins/chat2db-postgresql/src/main/java/ai/chat2db/plugin/postgresql/builder/PostgreSQLSqlBuilder.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
import java.util.stream.Collectors;
1818

1919
import static ai.chat2db.plugin.postgresql.consts.SequenceCommonConst.*;
20+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.BLANK_LINE;
21+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.SQUOT;
22+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.DOT;
23+
import static ai.chat2db.server.tools.base.constant.SymbolConstant.SEMICOLON;
2024

2125

2226
public class PostgreSQLSqlBuilder extends DefaultSqlBuilder {
@@ -282,7 +286,7 @@ public String buildModifySequenceSql(Sequence oldSequence, Sequence newSequence)
282286
sqlBuilder.append(ALTER_SEQUENCE).append(oldSequence.getNspname()).append(DOT).append(oldSequence.getRelname()).append(RENAME_TO).append(newSequence.getRelname()).append(SEMICOLON).append(BLANK_LINE);
283287
}
284288
if (!StringUtils.equals(oldSequence.getComment(), newSequence.getComment())) {
285-
sqlBuilder.append(COMMENT_ON_SEQUENCE).append(newSequence.getNspname()).append(DOT).append(newSequence.getRelname()).append(IS).append(SINGLE_QUOTE).append(newSequence.getComment()).append(SINGLE_QUOTE).append(SEMICOLON).append(BLANK_LINE);
289+
sqlBuilder.append(COMMENT_ON_SEQUENCE).append(newSequence.getNspname()).append(DOT).append(newSequence.getRelname()).append(IS).append(SQUOT).append(newSequence.getComment()).append(SQUOT).append(SEMICOLON).append(BLANK_LINE);
286290
}
287291
if (!StringUtils.equals(oldSequence.getSeqcache(), newSequence.getSeqcache())) {
288292
sqlBuilder.append(ALTER_SEQUENCE).append(newSequence.getNspname()).append(DOT).append(newSequence.getRelname()).append(CACHE).append(newSequence.getSeqcache()).append(SEMICOLON).append(BLANK_LINE);

chat2db-server/chat2db-plugins/chat2db-postgresql/src/main/java/ai/chat2db/plugin/postgresql/consts/SequenceCommonConst.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,4 @@ private SequenceCommonConst() {
2727
public static final String OWNED_BY = " OWNED BY ";
2828
public static final String IS = " IS ";
2929
public static final String AS = " AS ";
30-
public static final String BLANK_LINE = "\n\n";
31-
public static final String NEW_LINE = "\n";
32-
public static final String SEMICOLON = ";";
33-
public static final String DOT = ".";
34-
public static final String SINGLE_QUOTE = "'";
3530
}

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/param/DropParam.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ public class DropParam {
3030
private String databaseName;
3131

3232
/**
33-
* Table Name
33+
* Name
3434
*/
35-
private String tableName;
35+
private String name;
3636

3737
/**
3838
* schema
3939
*/
40-
private String tableSchema;
40+
private String schema;
4141
}

chat2db-server/chat2db-server-domain/chat2db-server-domain-api/src/main/java/ai/chat2db/server/domain/api/service/SequenceService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package ai.chat2db.server.domain.api.service;
22

3+
import ai.chat2db.server.domain.api.param.DropParam;
34
import ai.chat2db.server.domain.api.param.SequencePageQueryParam;
45
import ai.chat2db.server.domain.api.param.ShowCreateSequenceParam;
6+
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
57
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
68
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
79
import ai.chat2db.spi.model.Sequence;
@@ -19,4 +21,6 @@ public interface SequenceService {
1921
ListResult<SimpleSequence> pageQuery(SequencePageQueryParam request);
2022

2123
ListResult<Sql> buildSql(Sequence oldSequence, Sequence newSequence);
24+
25+
ActionResult drop(DropParam dropParam);
2226
}

chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/SequenceServiceImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package ai.chat2db.server.domain.core.impl;
22

33

4+
import ai.chat2db.server.domain.api.param.DropParam;
45
import ai.chat2db.server.domain.api.param.SequencePageQueryParam;
56
import ai.chat2db.server.domain.api.param.ShowCreateSequenceParam;
67
import ai.chat2db.server.domain.api.service.SequenceService;
8+
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
79
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
810
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
11+
import ai.chat2db.spi.DBManage;
912
import ai.chat2db.spi.MetaData;
1013
import ai.chat2db.spi.SqlBuilder;
1114
import ai.chat2db.spi.model.*;
@@ -32,12 +35,14 @@ public DataResult<String> showCreateSequence(ShowCreateSequenceParam param) {
3235
return DataResult.of(ddl);
3336
}
3437

38+
@Override
3539
public ListResult<SimpleSequence> pageQuery(SequencePageQueryParam request) {
3640
MetaData metaSchema = Chat2DBContext.getMetaData();
3741
List<SimpleSequence> sequences = metaSchema.sequences(Chat2DBContext.getConnection(), request.getDatabaseName(), request.getSchemaName());
3842
return ListResult.of(sequences);
3943
}
4044

45+
@Override
4146
public ListResult<Sql> buildSql(Sequence oldSequence, Sequence newSequence) {
4247
SqlBuilder sqlBuilder = Chat2DBContext.getSqlBuilder();
4348
List<Sql> sqls = new ArrayList<>();
@@ -48,4 +53,11 @@ public ListResult<Sql> buildSql(Sequence oldSequence, Sequence newSequence) {
4853
}
4954
return ListResult.of(sqls);
5055
}
56+
57+
@Override
58+
public ActionResult drop(DropParam param) {
59+
DBManage metaSchema = Chat2DBContext.getDBManage();
60+
metaSchema.dropSequence(Chat2DBContext.getConnection(), param.getDatabaseName(), param.getSchema(), param.getName());
61+
return ActionResult.isSuccess();
62+
}
5163
}

chat2db-server/chat2db-server-domain/chat2db-server-domain-core/src/main/java/ai/chat2db/server/domain/core/impl/TableServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public DataResult<String> showCreateTable(ShowCreateTableParam param) {
8888
@Override
8989
public ActionResult drop(DropParam param) {
9090
DBManage metaSchema = Chat2DBContext.getDBManage();
91-
metaSchema.dropTable(Chat2DBContext.getConnection(), param.getDatabaseName(), param.getTableSchema(), param.getTableName());
91+
metaSchema.dropTable(Chat2DBContext.getConnection(), param.getDatabaseName(), param.getSchema(), param.getName());
9292
return ActionResult.isSuccess();
9393
}
9494

chat2db-server/chat2db-server-start/src/test/java/ai/chat2db/server/start/test/core/TableServiceTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,32 +89,32 @@ public void testDrop() {
8989
if (Objects.equals(dialectProperties.getDbType(), "MYSQL")) {
9090
DropParam param = new DropParam();
9191
param.setDatabaseName(dialectProperties.getDatabaseName());
92-
param.setTableSchema("");
93-
param.setTableName("employee_details");
92+
param.setSchema("");
93+
param.setName("employee_details");
9494

9595
ActionResult result = tableService.drop(param);
9696
Assertions.assertTrue(result.success(), result.errorMessage());
9797
} else if (Objects.equals(dialectProperties.getDbType(), "ORACLE")) {
9898
DropParam param = new DropParam();
9999
param.setDatabaseName(dialectProperties.getDatabaseName());
100-
param.setTableSchema("TEST_USER");
101-
param.setTableName("TEST_USER.DEMO");
100+
param.setSchema("TEST_USER");
101+
param.setName("TEST_USER.DEMO");
102102

103103
ActionResult result = tableService.drop(param);
104104
Assertions.assertTrue(result.success(), result.errorMessage());
105105
} else if (Objects.equals(dialectProperties.getDbType(), "MARIADB")) {
106106
DropParam param = new DropParam();
107107
param.setDatabaseName(dialectProperties.getDatabaseName());
108-
param.setTableSchema("");
109-
param.setTableName("test_data");
108+
param.setSchema("");
109+
param.setName("test_data");
110110

111111
ActionResult result = tableService.drop(param);
112112
Assertions.assertTrue(result.success(), result.errorMessage());
113113
} else if (Objects.equals(dialectProperties.getDbType(), "POSTGRESQL")) {
114114
DropParam param = new DropParam();
115115
param.setDatabaseName(dialectProperties.getDatabaseName());
116-
param.setTableSchema("test");
117-
param.setTableName("test.categories_2");
116+
param.setSchema("test");
117+
param.setName("test.categories_2");
118118

119119
ActionResult result = tableService.drop(param);
120120
Assertions.assertTrue(result.success(), result.errorMessage());

chat2db-server/chat2db-server-test/src/test/java/ai/chat2db/server/test/domain/data/service/TableOperationsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public void table() {
182182
DropParam dropParam = DropParam.builder()
183183
.dataSourceId(dataSourceId)
184184
.databaseName(dialectProperties.getDatabaseName())
185-
.tableName(dialectProperties.toCase(TABLE_NAME))
185+
.name(dialectProperties.toCase(TABLE_NAME))
186186
.build();
187187
tableService.drop(dropParam);
188188
// Query table structure
@@ -389,7 +389,7 @@ private void dropTable(String tableName, DialectProperties dialectProperties, Lo
389389
DropParam dropParam = DropParam.builder()
390390
.dataSourceId(dataSourceId)
391391
.databaseName(dialectProperties.getDatabaseName())
392-
.tableName(dialectProperties.toCase(tableName))
392+
.name(dialectProperties.toCase(tableName))
393393
.build();
394394
tableService.drop(dropParam);
395395
// Query table structure

chat2db-server/chat2db-server-tools/chat2db-server-tools-base/src/main/java/ai/chat2db/server/tools/base/constant/SymbolConstant.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,13 @@ public class SymbolConstant {
5454
* colon ":"
5555
*/
5656
public static final String COLON = ":";
57+
/**
58+
* blank line "\n\n"
59+
*/
60+
public static final String BLANK_LINE = "\n\n";
61+
/**
62+
* new line "\n"
63+
*/
64+
public static final String NEW_LINE = "\n";
5765

5866
}

0 commit comments

Comments
 (0)