gvSIG bugs #4695
Al cargar una tabla de H2 con geometrias a null da error
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent time: | - | |
Assignee: | Joaquín del Cerro Murciano | |||
Category: | Database | |||
Target version: | 2.4.0-2840 (rev. org.gvsig.desktop-2.0.208) | |||
Severity: | Minor | Add-on version: | ||
gvSIG version: | 2.4.0 | Add-on build: | ||
gvSIG build: | 2839 | Add-on resolve version: | ||
Operative System: | Add-on resolve build: | |||
Keywords: | Proyecto: | |||
Has patch: | Hito: | |||
Add-on name: | Unknown |
Description
Al parecere ejecuta la sentencia:
SELECT ST_AsBinary("geometry"), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC
Y al hacer el ST_AsBinary sobre la geometria a null falla.
ERROR 155667 [MapControl Drawer Worker] (NotificationManager.java:90) - There was errors loading from 'ferrocarrilandal (H2Spatial)'. - Problems drawing layer - Can't perform operation 'ResultSetForSetProviderOperation'. - An JDBC exception was throw when execute SQL: 'SELECT ST_AsBinary("geometry"), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC' with params {unknow} - Caracteristica no soportada: "converting to class org.h2.value.ValueGeometry" Feature not supported: "converting to class org.h2.value.ValueGeometry"; SQL statement: SELECT ST_AsBinary("geometry"), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC [50100-188] org.gvsig.fmap.dal.exception.ReadException: There was errors loading from 'ferrocarrilandal (H2Spatial)'. at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.draw(FLyrVect.java:346) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayer(DefaultMapContextDrawer.java:549) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.draw(DefaultMapContextDrawer.java:530) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayers(DefaultMapContextDrawer.java:469) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:147) at org.gvsig.fmap.mapcontext.MapContext.draw(MapContext.java:1183) at org.gvsig.fmap.mapcontrol.MapControl$PaintingRequest.paint(MapControl.java:1346) at org.gvsig.fmap.mapcontrol.MapControl$Drawer$Worker.run(MapControl.java:1566) at java.lang.Thread.run(Thread.java:745) Caused by: org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.LegendDrawingException: Problems drawing layer at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.internalDraw(AbstractVectorialLegend.java:466) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:352) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:142) at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.draw(FLyrVect.java:330) ... 8 more Caused by: java.lang.RuntimeException: Can't perform operation 'ResultSetForSetProviderOperation'. at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AbstractConnectionOperation.perform(AbstractConnectionOperation.java:45) at org.gvsig.fmap.dal.store.jdbc2.impl.JDBCSetProvider.createFastIterator(JDBCSetProvider.java:320) at org.gvsig.fmap.dal.store.jdbc2.impl.JDBCSetProvider.createFastIterator(JDBCSetProvider.java:291) at org.gvsig.fmap.dal.store.jdbc2.impl.JDBCSetProvider.createFastIterator(JDBCSetProvider.java:56) at org.gvsig.fmap.dal.feature.spi.AbstractFeatureSetProvider.fastIterator(AbstractFeatureSetProvider.java:99) at org.gvsig.fmap.dal.feature.spi.AbstractFeatureSetProvider.fastIterator(AbstractFeatureSetProvider.java:94) at org.gvsig.fmap.dal.feature.impl.featureset.FastDefaultIterator.<init>(FastDefaultIterator.java:52) at org.gvsig.fmap.dal.feature.impl.featureset.DefaultFeatureSet.fastIterator(DefaultFeatureSet.java:343) at org.gvsig.fmap.dal.feature.impl.featureset.AbstractFeatureSet.doAccept(AbstractFeatureSet.java:72) at org.gvsig.fmap.dal.feature.impl.featureset.AbstractFeatureSet.doAccept(AbstractFeatureSet.java:67) at org.gvsig.tools.visitor.impl.AbstractIndexedVisitable.doAccept(AbstractIndexedVisitable.java:63) at org.gvsig.tools.visitor.impl.AbstractVisitable.accept(AbstractVisitable.java:49) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.drawFeaturesSingleLayer(AbstractVectorialLegend.java:554) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.drawFeatures(AbstractVectorialLegend.java:536) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.internalDraw(AbstractVectorialLegend.java:458) ... 11 more Caused by: org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecutePreparedSQLException: An JDBC exception was throw when execute SQL: 'SELECT ST_AsBinary("geometry"), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC' with params {unknow} at org.gvsig.fmap.dal.store.jdbc2.impl.ResulSetControlerBase.create(ResulSetControlerBase.java:198) at org.gvsig.fmap.dal.store.jdbc2.impl.ResulSetControlerBase.create(ResulSetControlerBase.java:163) at org.gvsig.fmap.dal.store.jdbc2.impl.ResulSetControlerBase.create(ResulSetControlerBase.java:21) at org.gvsig.fmap.dal.store.jdbc2.spi.operations.ResultSetForSetProviderOperation.createResultSet(ResultSetForSetProviderOperation.java:189) at org.gvsig.fmap.dal.store.jdbc2.spi.operations.ResultSetForSetProviderOperation.perform_operation(ResultSetForSetProviderOperation.java:67) at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AbstractConnectionOperation.perform(AbstractConnectionOperation.java:41) ... 25 more Caused by: org.h2.jdbc.JdbcSQLException: Caracteristica no soportada: "converting to class org.h2.value.ValueGeometry" Feature not supported: "converting to class org.h2.value.ValueGeometry"; SQL statement: SELECT ST_AsBinary("geometry"), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC [50100-188] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.message.DbException.getUnsupportedException(DbException.java:216) at org.h2.value.DataType.convertTo(DataType.java:1204) at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:460) at org.h2.expression.JavaFunction.getValue(JavaFunction.java:38) at org.h2.command.dml.Select.queryFlat(Select.java:538) at org.h2.command.dml.Select.queryWithoutCache(Select.java:643) at org.h2.command.dml.Query.query(Query.java:322) at org.h2.command.dml.Query.query(Query.java:290) at org.h2.command.dml.Query.query(Query.java:36) at org.h2.command.CommandContainer.query(CommandContainer.java:90) at org.h2.command.Command.executeQuery(Command.java:197) at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:108) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) at org.gvsig.fmap.dal.store.jdbc2.JDBCUtils.executeQuery(JDBCUtils.java:38) at org.gvsig.fmap.dal.store.jdbc2.impl.ResulSetControlerBase.create(ResulSetControlerBase.java:189) ... 30 more INFO 158629 [AWT-EventQueue-0] (DefaultActionInfo.java:326) - org.gvsig.app.mainplugin:org.gvsig.app.extension.ViewControls.execute('view-change-scale', Object[] args
Associated revisions
refs #4695, arreglado que se puedan cargar capas de H2 con geometrias a null
History
#1 Updated by Joaquín del Cerro Murciano over 6 years ago
Modificando la funcion ST_AsBinary de H2 con:
NVL2({0}, ST_AsBinary({0}), null)
Lo que generaria la SQL:
SELECT NVL2("geometry", ST_AsBinary("geometry"), null), "pk" FROM "ferrocarrilandal" ORDER BY "pk" ASC
Parece que lo arreglaria.
Habria que comprobar como se comportan otros gestores de BBDD cuando tienen geometrias a null.
#2 Updated by Joaquín del Cerro Murciano over 6 years ago
- Assignee set to Joaquín del Cerro Murciano
- Status changed from New to Fixed
#3 Updated by Joaquín del Cerro Murciano over 6 years ago
- Target version changed from 2.4.0-2850-final (rev. org.gvsig.desktop-2.0.220) to 2.4.0-2840 (rev. org.gvsig.desktop-2.0.208)
#4 Updated by Álvaro Anguix over 6 years ago
- Status changed from Fixed to Closed