svn - r34343 - in trunk/modules/plugin/jdbc/jdbc-postgis/src: main/java/org/geotools/data/postgis test/java/org/geotools/data/postgis

1 message Options
Embed this post
Permalink
svn_geotools

svn - r34343 - in trunk/modules/plugin/jdbc/jdbc-postgis/src: main/java/org/geotools/data/postgis test/java/org/geotools/data/postgis

Reply Threaded More More options
Print post
Permalink
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