Author: aaime
Date: 2009-11-09 06:22:47 -0500 (Mon, 09 Nov 2009)
New Revision: 34343
Modified:
trunk/modules/plugin/jdbc/jdbc-postgis/src/main/java/org/geotools/data/postgis/PostGISDialect.java
trunk/modules/plugin/jdbc/jdbc-postgis/src/test/java/org/geotools/data/postgis/PostgisViewTestSetup.java
Log:
GEOT-2664, Postgis-NG requires geometry columns to be registered in geometry_columns, old postgis datastore did not
Modified: trunk/modules/plugin/jdbc/jdbc-postgis/src/main/java/org/geotools/data/postgis/PostGISDialect.java
===================================================================
--- trunk/modules/plugin/jdbc/jdbc-postgis/src/main/java/org/geotools/data/postgis/PostGISDialect.java 2009-11-08 20:22:29 UTC (rev 34342)
+++ trunk/modules/plugin/jdbc/jdbc-postgis/src/main/java/org/geotools/data/postgis/PostGISDialect.java 2009-11-09 11:22:47 UTC (rev 34343)
@@ -287,31 +287,24 @@
if (result.next()) {
srid = result.getInt(1);
}
+ dataStore.closeSafe(result);
+
+ // fall back on inspection of the first geometry, assuming uniform srid (fair assumption
+ // an unpredictable srid makes the table un-queriable)
+ if(srid == null) {
+ sqlStatement = "SELECT SRID(\"" + columnName + "\") " +
+ "FROM \"" + schemaName + "\".\"" + tableName + "\" " +
+ "LIMIT 1";
+ result = statement.executeQuery(sqlStatement);
+ if (result.next()) {
+ srid = result.getInt(1);
+ }
+ }
} finally {
dataStore.closeSafe(result);
dataStore.closeSafe(statement);
}
- // TODO: implement inference from the first feature
- // try asking the first feature for its srid
- // sql = new StringBuffer();
- // sql.append("SELECT SRID(\"");
- // sql.append(geometryColumnName);
- // sql.append("\") FROM \"");
- // if (schemaEnabled && dbSchema != null && dbSchema.length() > 0) {
- // sql.append(dbSchema);
- // sql.append("\".\"");
- // }
- // sql.append(tableName);
- // sql.append("\" LIMIT 1");
- // sqlStatement = sql.toString();
- // result = statement.executeQuery(sqlStatement);
- // if (result.next()) {
- // int retSrid = result.getInt(1);
- // JDBCUtils.close(statement);
- // return retSrid;
- // }
-
return srid;
}
Modified: trunk/modules/plugin/jdbc/jdbc-postgis/src/test/java/org/geotools/data/postgis/PostgisViewTestSetup.java
===================================================================
--- trunk/modules/plugin/jdbc/jdbc-postgis/src/test/java/org/geotools/data/postgis/PostgisViewTestSetup.java 2009-11-08 20:22:29 UTC (rev 34342)
+++ trunk/modules/plugin/jdbc/jdbc-postgis/src/test/java/org/geotools/data/postgis/PostgisViewTestSetup.java 2009-11-09 11:22:47 UTC (rev 34343)
@@ -29,7 +29,8 @@
@Override
protected void createLakesView() throws Exception {
run("create view \"lakesview\" as select * from \"lakes\"");
- run("INSERT INTO GEOMETRY_COLUMNS VALUES('', 'public', 'lakesview', 'geom', 2, '4326', 'POLYGON')");
+ // disabled insert to make sure views work even without geom column declarations
+ // run("INSERT INTO GEOMETRY_COLUMNS VALUES('', 'public', 'lakesview', 'geom', 2, '4326', 'POLYGON')");
}
@Override
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
GeoTools-commits mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-commits