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:
Ainur
2022-07-01 11:25:45 +03:00
committed by GitHub
parent 26a0c83acc
commit 260e216475
@@ -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));
}
}