FIDFactory wrongly skips if second column is auto-increment
-----------------------------------------------------------

                 Key: GEOT-1264
                 URL: http://jira.codehaus.org/browse/GEOT-1264
             Project: GeoTools
          Issue Type: Bug
          Components: data versioning postgis 
    Affects Versions: 2.4.M2
            Reporter: Chris Holmes
            Assignee: Andrea Aime
             Fix For: 2.4.M3


Different versions of PostGIS return different orders for primary key columns.  
But the current code only check if the first column is an auto-increment one.  
If it's the second it is wrongly skipped.

Patch is:

Index: 
src/main/java/org/geotools/data/postgis/fidmapper/VersionedFIDMapperFactory.java
===================================================================
--- 
src/main/java/org/geotools/data/postgis/fidmapper/VersionedFIDMapperFactory.java
    (revision 25399)
+++ 
src/main/java/org/geotools/data/postgis/fidmapper/VersionedFIDMapperFactory.java
    (working copy)
@@ -98,7 +98,7 @@

     protected FIDMapper buildSingleColumnVersionedFidMapper(String schema, 
String tableName,
             Connection connection, ColumnInfo[] colInfos) {
-        if (colInfos[0].isAutoIncrement() && colInfos.length == 2) {
+        if (colInfos.length == 2 && (colInfos[0].isAutoIncrement() || 
colInfos[1].isAutoIncrement())){
             return new VersionedAutoincrementFIDMapper(schema, tableName, 
colInfos[0].colName,
                     colInfos[0].dataType, colInfos[0].decimalDigits);
         } else if (isIntegralType(colInfos[0].dataType)) {


This is confirmed to fix the problem (using database on sigma.openplans.org, 
where the problem first arose).  Would like review, as I'm not 100% sure about 
evaluation order, and if left is not checked first then this will make an error 
on occasion.  I suppose I also could have just nested the evaluation

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to