Skip to content

Commit

Permalink
Merge pull request #1094 from chat2db/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
shanhexi committed Jan 10, 2024
2 parents 322ce83 + e526e81 commit 094f461
Show file tree
Hide file tree
Showing 37 changed files with 632 additions and 445 deletions.
4 changes: 4 additions & 0 deletions chat2db-client/src/blocks/AppTitleBar/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ export default memo<IProps>((props) => {
window.electronApi?.closeWindow();
};

if(isMac === void 0){
return false
}

return (
<div className={classnames(styles.appTitleBar, className)} onDoubleClick={handleDoubleClick}>
<div className={styles.appTitleBarGlobal}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const useMultipleSelect = (props: {
if (event.keyCode === 16) {
isShiftDownRef.current = true;
}
if (event.keyCode === 91) {
if (event.keyCode === 91 || event.keyCode === 17) {
isCmdDownRef.current = true;
}
};
Expand Down
1 change: 1 addition & 0 deletions chat2db-client/src/pages/main/index.less
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
flex-shrink: 0;
overflow: hidden;
margin-bottom: 20px;
margin-top: 10px;
cursor: pointer;
}

Expand Down
2 changes: 1 addition & 1 deletion chat2db-client/src/pages/main/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ function MainPage() {
return (
<div className={styles.page}>
<div className={styles.layoutLeft}>
{/* {(isMac || isMac === void 0) && <BrandLogo size={40} className={styles.brandLogo} />} */}
{(isMac === void 0) && <BrandLogo size={38} className={styles.brandLogo} />}
<ul className={styles.navList}>
{navConfig.map((item) => {
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import ai.chat2db.spi.sql.SQLExecutor;
import org.apache.commons.lang3.StringUtils;

import javax.net.ssl.HostnameVerifier;

public class ClickHouseDBManage extends DefaultDBManage implements DBManage {

@Override
Expand Down Expand Up @@ -41,7 +39,7 @@ private String setDatabaseInJdbcUrl(ConnectInfo connectInfo) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE IF EXISTS " + databaseName + "." + tableName;
SQLExecutor.getInstance().executeSql(connection, sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection, sql, resultSet -> null);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ public void connectDatabase(Connection connection, String database) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE " + tableName;
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import ai.chat2db.spi.MetaData;
import ai.chat2db.spi.SqlBuilder;
import ai.chat2db.spi.jdbc.DefaultMetaService;
import ai.chat2db.spi.jdbc.DefaultSqlBuilder;
import ai.chat2db.spi.model.Schema;
import ai.chat2db.spi.model.TableIndex;
import ai.chat2db.spi.model.TableIndexColumn;
Expand Down Expand Up @@ -63,14 +62,14 @@ public List<Schema> schemas(Connection connection, String databaseName) {
@Override
public String tableDDL(Connection connection, String databaseName, String schemaName, String tableName) {
try {
SQLExecutor.getInstance().executeSql(connection, functionSQL.replace("tableSchema", schemaName), resultSet -> null);
SQLExecutor.getInstance().execute(connection, functionSQL.replace("tableSchema", schemaName), resultSet -> null);
} catch (Exception e) {
//log.error("鍒涘缓鍑芥暟澶辫触", e);
}

String ddlSql = "SELECT " + schemaName + ".ufn_GetCreateTableScript('" + schemaName + "', '" + tableName
+ "') AS sql";
return SQLExecutor.getInstance().executeSql(connection, ddlSql, resultSet -> {
return SQLExecutor.getInstance().execute(connection, ddlSql, resultSet -> {
try {
if (resultSet.next()) {
return resultSet.getString("sql");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ public void connectDatabase(Connection connection, String database) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE IF EXISTS " +tableName;
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public String tableDDL(Connection connection, String databaseName, String schema
"select dbms_metadata.get_ddl(%s, %s, %s) AS \"sql\" from dual",
SqlUtils.formatSQLString("TABLE"), SqlUtils.formatSQLString(tableName),
SqlUtils.formatSQLString(schemaName));
return SQLExecutor.getInstance().executeSql(connection, selectObjectDDLSQL, resultSet -> {
return SQLExecutor.getInstance().execute(connection, selectObjectDDLSQL, resultSet -> {
try {
if (resultSet.next()) {
return resultSet.getString("sql");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ public void connectDatabase(Connection connection, String database) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE " +tableName;
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ public class HiveDBManage extends DefaultDBManage implements DBManage {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "drop table if exists " +tableName;
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@ public String replaceDatabaseInJdbcUrl(String url, String newDatabase) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "drop table if exists " +tableName;
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import ai.chat2db.spi.jdbc.DefaultMetaService;
import ai.chat2db.spi.model.*;
import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.sql.ConnectInfo;
import ai.chat2db.spi.sql.SQLExecutor;
import com.google.common.collect.Lists;
import jakarta.validation.constraints.NotEmpty;
Expand All @@ -33,7 +32,7 @@ public class KingBaseMetaData extends DefaultMetaService implements MetaData {

@Override
public List<Database> databases(Connection connection) {
List<Database> list = SQLExecutor.getInstance().executeSql(connection, "SELECT datname FROM sys_database", resultSet -> {
List<Database> list = SQLExecutor.getInstance().execute(connection, "SELECT datname FROM sys_database", resultSet -> {
List<Database> databases = new ArrayList<>();
try {
while (resultSet.next()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void connectDatabase(Connection connection, String database) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = " db. " + tableName + ".drop();";
SQLExecutor.getInstance().executeSql(connection, sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection, sql, resultSet -> null);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void connectDatabase(Connection connection, String database) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE "+ format(tableName);
SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection,sql, resultSet -> null);
}

public static String format(String tableName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public List<Schema> schemas(Connection connection, String databaseName) {
@Override
public String tableDDL(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = String.format(TABLE_DDL_SQL, tableName, schemaName);
return SQLExecutor.getInstance().executeSql(connection, sql, resultSet -> {
return SQLExecutor.getInstance().execute(connection, sql, resultSet -> {
try {
if (resultSet.next()) {
return resultSet.getString("sql");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public String replaceDatabaseInJdbcUrl(String url, String newDatabase) {
@Override
public void dropTable(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "DROP TABLE " + tableName;
SQLExecutor.getInstance().executeSql(connection, sql, resultSet -> null);
SQLExecutor.getInstance().execute(connection, sql, resultSet -> null);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class PostgreSQLMetaData extends DefaultMetaService implements MetaData {
private List<String> systemDatabases = Arrays.asList("postgres");
@Override
public List<Database> databases(Connection connection) {
List<Database> list = SQLExecutor.getInstance().executeSql(connection, "SELECT datname FROM pg_database;", resultSet -> {
List<Database> list = SQLExecutor.getInstance().execute(connection, "SELECT datname FROM pg_database;", resultSet -> {
List<Database> databases = new ArrayList<>();
try {
while (resultSet.next()) {
Expand Down Expand Up @@ -102,10 +102,10 @@ public List<Trigger> triggers(Connection connection, String databaseName, String

@Override
public String tableDDL(Connection connection, String databaseName, String schemaName, String tableName) {
SQLExecutor.getInstance().executeSql(connection, FUNCTION_SQL.replaceFirst("tableSchema", schemaName),
SQLExecutor.getInstance().execute(connection, FUNCTION_SQL.replaceFirst("tableSchema", schemaName),
resultSet -> null);
String ddlSql = "select showcreatetable('" + schemaName + "','" + tableName + "') as sql";
return SQLExecutor.getInstance().executeSql(connection, ddlSql, resultSet -> {
return SQLExecutor.getInstance().execute(connection, ddlSql, resultSet -> {
try {
if (resultSet.next()) {
return resultSet.getString("sql");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class RedisMetaData extends DefaultMetaService implements MetaData {
@Override
public List<Database> databases(Connection connection) {
List<Database> databases = new ArrayList<>();
return SQLExecutor.getInstance().executeSql(connection,"config get databases", resultSet -> {
return SQLExecutor.getInstance().execute(connection,"config get databases", resultSet -> {
try {
if (resultSet.next()) {
Object count = resultSet.getObject(2);
Expand All @@ -37,7 +37,7 @@ public List<Database> databases(Connection connection) {

@Override
public List<Table> tables(Connection connection, String databaseName, String schemaName, String tableName) {
return SQLExecutor.getInstance().executeSql(connection,"scan 0 MATCH * COUNT 1000", resultSet -> {
return SQLExecutor.getInstance().execute(connection,"scan 0 MATCH * COUNT 1000", resultSet -> {
List<Table> tables = new ArrayList<>();
try {
while (resultSet.next()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class SqliteMetaData extends DefaultMetaService implements MetaData {
@Override
public String tableDDL(Connection connection, String databaseName, String schemaName, String tableName) {
String sql = "SELECT sql FROM sqlite_master WHERE type='table' AND name='" + tableName + "'";
return SQLExecutor.getInstance().executeSql(connection,sql, resultSet -> {
return SQLExecutor.getInstance().execute(connection,sql, resultSet -> {
try {
if (resultSet.next()) {
return resultSet.getString("sql");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package ai.chat2db.plugin.sqlserver;

import ai.chat2db.spi.ValueHandler;
import ai.chat2db.spi.model.Command;
import ai.chat2db.spi.model.ExecuteResult;
import ai.chat2db.spi.sql.SQLExecutor;
import org.apache.commons.lang3.StringUtils;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public class SqlServerCommandExecutor extends SQLExecutor {

/**
* Execute command
*/
@Override
public List<ExecuteResult> execute(Command command) {
String sql = command.getScript();
command.setScript(removeSpecialGO(sql));
return super.execute(command);
}


private String removeSpecialGO(String sql) {
if (StringUtils.isBlank(sql)) {
return null;
}
sql = sql.replaceAll("(?mi)^[ \\t]*go[ \\t]*$", ";");
return sql;
}

/**
* Execute command
*/
@Override
public ExecuteResult executeUpdate(String sql, Connection connection, int n) throws SQLException {
sql = removeSpecialGO(sql);
return super.executeUpdate(sql, connection, n);
}


/**
*
*/
public ExecuteResult execute(final String sql, Connection connection, boolean limitRowSize, Integer offset,
Integer count, ValueHandler valueHandler)
throws SQLException {
return super.execute(removeSpecialGO(sql), connection, limitRowSize, offset, count, valueHandler);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import ai.chat2db.plugin.sqlserver.type.SqlServerColumnTypeEnum;
import ai.chat2db.plugin.sqlserver.type.SqlServerDefaultValueEnum;
import ai.chat2db.plugin.sqlserver.type.SqlServerIndexTypeEnum;
import ai.chat2db.spi.CommandExecutor;
import ai.chat2db.spi.MetaData;
import ai.chat2db.spi.SqlBuilder;
import ai.chat2db.spi.jdbc.DefaultMetaService;
Expand Down Expand Up @@ -73,7 +74,7 @@ public List<Schema> schemas(Connection connection, String databaseName) {
@Override
public String tableDDL(Connection connection, String databaseName, String schemaName, String tableName) {
try {
SQLExecutor.getInstance().executeSql(connection, functionSQL.replace("tableSchema", schemaName),
SQLExecutor.getInstance().execute(connection, functionSQL.replace("tableSchema", schemaName),
resultSet -> null);
} catch (Exception e) {
//log.error("鍒涘缓鍑芥暟澶辫触", e);
Expand Down Expand Up @@ -392,4 +393,9 @@ public TableMeta getTableMeta(String databaseName, String schemaName, String tab
public String getMetaDataName(String... names) {
return Arrays.stream(names).filter(name -> StringUtils.isNotBlank(name)).map(name -> "[" + name + "]").collect(Collectors.joining("."));
}

@Override
public CommandExecutor getCommandExecutor() {
return new SqlServerCommandExecutor();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ai.chat2db.server.domain.api.param;

import ai.chat2db.spi.model.Header;
import ai.chat2db.spi.model.ResultOperation;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
Expand Down Expand Up @@ -44,7 +45,7 @@ public class UpdateSelectResultParam {
* 淇敼鍚庢暟鎹殑鍒楄〃
*/
@NotEmpty
private List<SelectResultOperation> operations;
private List<ResultOperation> operations;


/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ai.chat2db.server.domain.core.converter;

import ai.chat2db.server.domain.api.param.DlExecuteParam;
import ai.chat2db.spi.model.Command;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;

@Mapper(componentModel = "spring")
public abstract class CommandConverter {

@Mappings({
@Mapping(target = "script", source = "sql")
})
public abstract Command param2model(DlExecuteParam param);
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public ActionResult createConsole(ConsoleConnectParam param) {

@Override
public ActionResult closeConsole(ConsoleCloseParam param) {
SQLExecutor.getInstance().close();
return ActionResult.isSuccess();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,6 @@ public ListResult<Database> connect(Long id) {
public ActionResult close(Long id) {
DataSourceCloseParam closeParam = new DataSourceCloseParam();
closeParam.setDataSourceId(id);
SQLExecutor.getInstance().close();
return ActionResult.isSuccess();
}

Expand Down
Loading

0 comments on commit 094f461

Please sign in to comment.