提交 bd1ec1a5 编写于 作者: S Serge Rider

Merge remote-tracking branch 'origin/devel' into devel

......@@ -528,13 +528,18 @@ public class DatabaseConsumerPageMapping extends ActiveWizardPage<DataTransferWi
@Override
protected CellEditor getCellEditor(Object element) {
List<String> mappingTypes = new ArrayList<>();
mappingTypes.add(DatabaseMappingType.skip.name());
DatabaseMappingObject mapping = (DatabaseMappingObject) element;
DatabaseMappingType mappingType = mapping.getMappingType();
if (mappingType != DatabaseMappingType.skip) {
mappingTypes.add(mappingType.name());
}
if (mapping instanceof DatabaseMappingAttribute) {
mappingTypes.add(((DatabaseMappingAttribute) mapping).getParent().getMappingType().name());
} else {
mappingTypes.add(mapping.getMappingType().name());
DatabaseMappingType parentMapping = ((DatabaseMappingAttribute) mapping).getParent().getMappingType();
if (mappingType != parentMapping && parentMapping == DatabaseMappingType.create) {
mappingTypes.add(DatabaseMappingType.create.name());
}
}
mappingTypes.add(DatabaseMappingType.skip.name());
return new CustomComboBoxCellEditor(
mappingViewer,
mappingViewer.getTree(),
......
......@@ -263,7 +263,7 @@ public class MySQLDataSourceProvider extends JDBCDataSourceProvider implements D
}
@Nullable
private static String getFullServerVersion(File path) {
public static String getFullServerVersion(File path) {
File binPath = path;
File binSubfolder = new File(binPath, "bin");
if (binSubfolder.exists()) {
......@@ -292,6 +292,12 @@ public class MySQLDataSourceProvider extends JDBCDataSourceProvider implements D
int pos2 = line.indexOf(",", pos);
return line.substring(pos, pos2);
}
pos = line.indexOf("Ver ");
if (pos != -1) {
pos += 4;
int pos2 = line.indexOf(" for ", pos);
return line.substring(pos, pos2);
}
}
} finally {
IOUtils.close(input);
......
......@@ -80,7 +80,9 @@ public class MySQLDatabaseExportHandler extends MySQLNativeToolHandler<MySQLExpo
cmd.add("--single-transaction"); //$NON-NLS-1$
break;
}
if (settings.isDisableColumnStatistics()) {
cmd.add("--column-statistics=0");
}
if (settings.isNoCreateStatements()) {
cmd.add("--no-create-info"); //$NON-NLS-1$
} else {
......
......@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.ext.mysql.MySQLServerHome;
import org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog;
import org.jkiss.dbeaver.ext.mysql.model.MySQLTableBase;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.connection.DBPNativeClientLocation;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceMap;
import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
......@@ -38,7 +39,6 @@ import java.util.List;
import java.util.Map;
public class MySQLExportSettings extends AbstractImportExportSettings<DBSObject> implements MySQLNativeCredentialsSettings {
private static final Log log = Log.getLog(MySQLExportSettings.class);
public enum DumpMethod {
......@@ -59,6 +59,7 @@ public class MySQLExportSettings extends AbstractImportExportSettings<DBSObject>
private boolean noData;
private boolean showViews;
private boolean overrideCredentials;
private boolean disableColumnStatistics;
public List<MySQLDatabaseExportInfo> exportObjects = new ArrayList<>();
......@@ -304,4 +305,23 @@ public class MySQLExportSettings extends AbstractImportExportSettings<DBSObject>
}
}
@Override
public void setClientHome(DBPNativeClientLocation clientHome) {
super.setClientHome(clientHome);
String fullVersion = MySQLDataSourceProvider.getFullServerVersion(clientHome.getPath());
if (fullVersion == null) {
return;
}
int majorVersion;
try {
majorVersion = Integer.parseInt(fullVersion.split("\\.")[0]);
} catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {
return;
}
disableColumnStatistics = majorVersion == 8;
}
boolean isDisableColumnStatistics() {
return disableColumnStatistics;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册