mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
Merge pull request #566 from dbeaver/feature/CB-1370
feat: support SQL query formatting in WebServiceSQL.
This commit is contained in:
@@ -49,6 +49,9 @@ public interface DBWServiceSQL extends DBWService {
|
||||
Integer maxResults,
|
||||
Boolean simpleMode) throws DBWebException;
|
||||
|
||||
@WebAction
|
||||
String formatQuery(@NotNull WebSQLContextInfo sqlContext, @NotNull String query) throws DBWebException;
|
||||
|
||||
@WebAction
|
||||
DBCLogicalOperator[] getSupportedOperations(
|
||||
@NotNull WebSQLContextInfo contextInfo,
|
||||
|
||||
+7
-1
@@ -66,6 +66,12 @@ public class WebServiceBindingSQL extends WebServiceBindingBase<DBWServiceSQL> i
|
||||
env.getArgument("simpleMode")
|
||||
)
|
||||
)
|
||||
.dataFetcher("sqlFormatQuery", env ->
|
||||
getService(env).formatQuery(
|
||||
getSQLContext(env),
|
||||
env.getArgument("query")
|
||||
)
|
||||
)
|
||||
.dataFetcher("sqlSupportedOperations", env ->
|
||||
getService(env).getSupportedOperations(
|
||||
getSQLContext(env),
|
||||
@@ -97,7 +103,7 @@ public class WebServiceBindingSQL extends WebServiceBindingBase<DBWServiceSQL> i
|
||||
getSQLContext(env),
|
||||
env.getArgument("defaultCatalog"),
|
||||
env.getArgument("defaultSchema"));
|
||||
return true;
|
||||
return true;
|
||||
})
|
||||
|
||||
.dataFetcher("sqlResultClose", env ->
|
||||
|
||||
+11
-4
@@ -35,13 +35,11 @@ import org.jkiss.dbeaver.model.exec.DBCLogicalOperator;
|
||||
import org.jkiss.dbeaver.model.exec.DBExecUtils;
|
||||
import org.jkiss.dbeaver.model.navigator.DBNNode;
|
||||
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
|
||||
import org.jkiss.dbeaver.model.sql.SQLDialect;
|
||||
import org.jkiss.dbeaver.model.sql.SQLQuery;
|
||||
import org.jkiss.dbeaver.model.sql.SQLScriptElement;
|
||||
import org.jkiss.dbeaver.model.sql.SQLUtils;
|
||||
import org.jkiss.dbeaver.model.sql.*;
|
||||
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionAnalyzer;
|
||||
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionProposalBase;
|
||||
import org.jkiss.dbeaver.model.sql.completion.SQLCompletionRequest;
|
||||
import org.jkiss.dbeaver.model.sql.format.SQLFormatUtils;
|
||||
import org.jkiss.dbeaver.model.sql.generator.SQLGenerator;
|
||||
import org.jkiss.dbeaver.model.sql.parser.SQLParserContext;
|
||||
import org.jkiss.dbeaver.model.sql.parser.SQLScriptParser;
|
||||
@@ -151,6 +149,15 @@ public class WebServiceSQL implements DBWServiceSQL {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String formatQuery(@NotNull WebSQLContextInfo sqlContext, @NotNull String query) throws DBWebException {
|
||||
DBPDataSource dataSource = sqlContext.getProcessor().getConnection().getDataSourceContainer().getDataSource();
|
||||
if (dataSource == null) {
|
||||
throw new DBWebException("DataSource is null: can't format SQL query");
|
||||
}
|
||||
return SQLFormatUtils.formatSQL(dataSource, query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBCLogicalOperator[] getSupportedOperations(@NotNull WebSQLContextInfo contextInfo, @NotNull String resultsId, int attributeIndex) throws DBWebException {
|
||||
WebSQLResultsInfo results = contextInfo.getResults(resultsId);
|
||||
|
||||
Reference in New Issue
Block a user