提交 859a127b 编写于 作者: N Nikita Akilov

#12145 account for the db's that do not support schema change

上级 6957426a
......@@ -17,6 +17,7 @@
package org.jkiss.dbeaver.ext.mssql.model;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.mssql.SQLServerConstants;
......@@ -73,6 +74,7 @@ public class SQLServerExecutionContext extends JDBCExecutionContext implements D
return getDataSource().getDatabase(activeDatabaseName);
}
@Nullable
@Override
public SQLServerSchema getDefaultSchema() {
if (CommonUtils.isEmpty(activeSchemaName)) {
......@@ -98,7 +100,7 @@ public class SQLServerExecutionContext extends JDBCExecutionContext implements D
}
@Override
public void setDefaultCatalog(DBRProgressMonitor monitor, SQLServerDatabase catalog, SQLServerSchema schema) throws DBCException {
public void setDefaultCatalog(DBRProgressMonitor monitor, SQLServerDatabase catalog, @Nullable SQLServerSchema schema) throws DBCException {
if (activeDatabaseName != null && activeDatabaseName.equals(catalog.getName())) {
return;
}
......
......@@ -16,6 +16,7 @@
*/
package org.jkiss.dbeaver.model.exec;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.rdb.DBSCatalog;
......@@ -30,13 +31,14 @@ public interface DBCExecutionContextDefaults<CATALOG extends DBSCatalog, SCHEMA
CATALOG getDefaultCatalog();
@Nullable
SCHEMA getDefaultSchema();
boolean supportsCatalogChange();
boolean supportsSchemaChange();
void setDefaultCatalog(DBRProgressMonitor monitor, CATALOG catalog, SCHEMA schema) throws DBCException;
void setDefaultCatalog(DBRProgressMonitor monitor, CATALOG catalog, @Nullable SCHEMA schema) throws DBCException;
void setDefaultSchema(DBRProgressMonitor monitor, SCHEMA schema) throws DBCException;
......
......@@ -394,7 +394,7 @@ public class DBExecUtils {
boolean changeCatalog = (curCatalogName != null ? !CommonUtils.equalObjects(curCatalogName, newCatalogName) : newCatalog != null);
if (newCatalog != null && newSchema != null && changeCatalog) {
contextDefaults.setDefaultCatalog(monitor, newCatalog, newSchema);
contextDefaults.setDefaultCatalog(monitor, newCatalog, contextDefaults.supportsSchemaChange() ? newSchema : null);
} else if (newSchema != null && contextDefaults.supportsSchemaChange()) {
contextDefaults.setDefaultSchema(monitor, newSchema);
} else if (newCatalog != null && changeCatalog) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册