mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-1836 mysql geometry fix (#940)
* CB-1836 mysql geometry fix * CB-1836 mysql web geometry get gis from value handler
This commit is contained in:
+12
-1
@@ -20,6 +20,8 @@ package io.cloudbeaver.server.data;
|
||||
import io.cloudbeaver.service.sql.DBWValueSerializer;
|
||||
import io.cloudbeaver.service.sql.WebSQLConstants;
|
||||
import org.jkiss.code.NotNull;
|
||||
import org.jkiss.dbeaver.model.data.DBDAttributeBinding;
|
||||
import org.jkiss.dbeaver.model.data.json.JSONUtils;
|
||||
import org.jkiss.dbeaver.model.exec.DBCException;
|
||||
import org.jkiss.dbeaver.model.exec.DBCSession;
|
||||
import org.jkiss.dbeaver.model.gis.DBGeometry;
|
||||
@@ -36,9 +38,18 @@ public class WebGeometryValueSerializer implements DBWValueSerializer<DBGeometry
|
||||
DBSTypedObject attribute,
|
||||
@NotNull Map<String, Object> webValue
|
||||
) throws DBCException {
|
||||
if (attribute instanceof DBDAttributeBinding) {
|
||||
Object tempValue = ((DBDAttributeBinding) attribute).getValueHandler().getValueFromObject(
|
||||
session,
|
||||
attribute,
|
||||
webValue.get(WebSQLConstants.ATTR_TEXT), false, true);
|
||||
if (tempValue instanceof DBGeometry) {
|
||||
return (DBGeometry) tempValue;
|
||||
}
|
||||
}
|
||||
return new DBGeometry(
|
||||
webValue.get(WebSQLConstants.ATTR_TEXT),
|
||||
CommonUtils.toInt(webValue.get(WebSQLConstants.ATTR_SRID)),
|
||||
(Map<String, Object>) webValue.get(WebSQLConstants.ATTR_PROPERTIES));
|
||||
JSONUtils.getObject(webValue, WebSQLConstants.ATTR_PROPERTIES));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user