Skip to content

Commit efd9aa4

Browse files
committed
support PinService
1 parent 1e8a56b commit efd9aa4

32 files changed

Lines changed: 595 additions & 95 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class PostgreSQLDBManage implements DBManage {
1111
@Override
1212
public void connectDatabase(String database) {
1313
try {
14-
SQLExecutor.getInstance().execute("connect " + database + "");
14+
SQLExecutor.getInstance().execute("SELECT pg_database_size('"+database+"');");
1515
} catch (SQLException e) {
1616
throw new RuntimeException(e);
1717
}

chat2db-server/chat2db-plugins/chat2db-redis/src/main/java/ai/chat2db/plugin/redis/RedisMetaData.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ai.chat2db.spi.MetaData;
44
import ai.chat2db.spi.jdbc.DefaultMetaService;
5+
import ai.chat2db.spi.model.Database;
56
import ai.chat2db.spi.model.Table;
67
import ai.chat2db.spi.sql.SQLExecutor;
78
import jakarta.validation.constraints.NotEmpty;
@@ -19,15 +20,16 @@ public String tableDDL(@NotEmpty String databaseName, String schemaName, @NotEmp
1920

2021

2122
@Override
22-
public List<String> databases() {
23-
List<String> databases = new ArrayList<>();
23+
public List<Database> databases() {
24+
List<Database> databases = new ArrayList<>();
2425
return SQLExecutor.getInstance().executeSql("config get databases", resultSet -> {
2526
try {
2627
if (resultSet.next()) {
2728
Object count = resultSet.getObject(2);
2829
if(StringUtils.isNotBlank(count.toString())) {
2930
for (int i = 0; i < Integer.parseInt(count.toString()); i++) {
30-
databases.add(String.valueOf(i));
31+
Database database = Database.builder().name(String.valueOf(i)).build();
32+
databases.add(database);
3133
}
3234
}
3335
}

chat2db-server/chat2db-plugins/chat2db-sqlite/src/main/java/ai/chat2db/plugin/sqlite/SqliteMetaData.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import ai.chat2db.spi.MetaData;
44
import ai.chat2db.spi.jdbc.DefaultMetaService;
5+
import ai.chat2db.spi.model.Database;
6+
import ai.chat2db.spi.model.Schema;
57
import ai.chat2db.spi.sql.SQLExecutor;
68
import com.google.common.collect.Lists;
79

@@ -24,12 +26,12 @@ public String tableDDL(String databaseName, String schemaName, String tableName)
2426
});
2527
}
2628
@Override
27-
public List<String> databases() {
28-
return Lists.newArrayList("main");
29+
public List<Database> databases() {
30+
return Lists.newArrayList(Database.builder().name("main").build());
2931
}
3032

3133
@Override
32-
public List<String> schemas(String databaseName) {
34+
public List<Schema> schemas(String databaseName) {
3335
return Lists.newArrayList();
3436
}
3537
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package ai.chat2db.server.domain.api.param;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
import lombok.experimental.SuperBuilder;
8+
9+
@Data
10+
@SuperBuilder
11+
@NoArgsConstructor
12+
@AllArgsConstructor
13+
public class MetaDataQueryParam {
14+
15+
@NotNull
16+
private Long dataSourceId;
17+
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ai.chat2db.server.domain.api.param;
2+
3+
import jakarta.validation.constraints.NotNull;
4+
import lombok.Data;
5+
6+
@Data
7+
public class PinTableParam {
8+
9+
@NotNull
10+
private Long dataSourceId;
11+
12+
/**
13+
* DB名称
14+
*/
15+
private String databaseName;
16+
17+
/**
18+
* 表所在空间
19+
*/
20+
private String schemaName;
21+
22+
/**
23+
* tableName
24+
*/
25+
private String tableName;
26+
27+
/**
28+
* pin userId
29+
*/
30+
private Long userId;
31+
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,5 @@ public class SchemaQueryParam {
2424
@NotNull
2525
private Long dataSourceId;
2626

27-
@NotNull
2827
private String dataBaseName;
2928
}

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

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

3-
import ai.chat2db.server.domain.api.param.DatabaseOperationParam;
4-
import ai.chat2db.server.domain.api.param.DatabaseQueryAllParam;
5-
import ai.chat2db.server.domain.api.param.SchemaOperationParam;
6-
import ai.chat2db.server.domain.api.param.SchemaQueryParam;
3+
import ai.chat2db.server.domain.api.param.*;
4+
import ai.chat2db.server.tools.base.wrapper.Result;
5+
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
76
import ai.chat2db.spi.model.*;
87
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
98
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
@@ -32,6 +31,13 @@ public interface DatabaseService {
3231
*/
3332
ListResult<Schema> querySchema(SchemaQueryParam param);
3433

34+
/**
35+
* query Database and Schema
36+
* @param param
37+
* @return
38+
*/
39+
DataResult<MetaSchema> queryDatabaseSchema(MetaDataQueryParam param);
40+
3541

3642

3743
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package ai.chat2db.server.domain.api.service;
2+
3+
import ai.chat2db.server.domain.api.param.PinTableParam;
4+
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
5+
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
6+
7+
import java.util.List;
8+
9+
public interface PinService {
10+
11+
/**
12+
* User pin table
13+
* @param param
14+
* @return
15+
*/
16+
ActionResult pinTable(PinTableParam param);
17+
18+
19+
/**
20+
* Delete pin table
21+
* @param param
22+
* @return
23+
*/
24+
ActionResult deletePinTable(PinTableParam param);
25+
26+
27+
/**
28+
* Query user pin tables
29+
* @param param
30+
* @return
31+
*/
32+
ListResult<String> queryPinTables(PinTableParam param);
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package ai.chat2db.server.domain.core.converter;
2+
3+
import ai.chat2db.server.domain.api.param.PinTableParam;
4+
import ai.chat2db.server.domain.api.param.TablePageQueryParam;
5+
import ai.chat2db.server.domain.repository.entity.PinTableDO;
6+
import org.mapstruct.Mapper;
7+
8+
@Mapper(componentModel = "spring")
9+
public abstract class PinTableConverter {
10+
11+
/**
12+
*
13+
* @param param
14+
* @return
15+
*/
16+
public abstract PinTableDO param2do(PinTableParam param);
17+
18+
19+
20+
public abstract PinTableParam toPinTableParam (TablePageQueryParam param);
21+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ public ActionResult preConnect(DataSourcePreConnectParam param) {
137137
public ListResult<Database> connect(Long id) {
138138
DatabaseQueryAllParam queryAllParam = new DatabaseQueryAllParam();
139139
queryAllParam.setDataSourceId(id);
140-
List<String> databases = Chat2DBContext.getMetaData().databases();
141-
return ListResult.of(EasyCollectionUtils.toList(databases, name -> Database.builder().name(name).build()));
140+
List<Database> databases = Chat2DBContext.getMetaData().databases();
141+
return ListResult.of(databases);
142142
}
143143

144144
@Override

0 commit comments

Comments
 (0)