Revision: 5024
          http://sourceforge.net/p/jump-pilot/code/5024
Author:   michaudm
Date:     2016-09-20 21:04:45 +0000 (Tue, 20 Sep 2016)
Log Message:
-----------
Postgis writer : normalize index name

Modified Paths:
--------------
    core/trunk/ChangeLog
    
core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java

Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog        2016-09-20 20:45:17 UTC (rev 5023)
+++ core/trunk/ChangeLog        2016-09-20 21:04:45 UTC (rev 5024)
@@ -5,6 +5,7 @@
 
 2016-09-21 mmichaud <m.michael.mich...@orange.fr>
   * Postgis writer : create the sequence in the same schema as the table
+  * Postgis writer : normalize index name
 
 2016-09-17 mmichaud <m.michael.mich...@orange.fr>
   * FR #235 : Improved ExtractLayersByGeometryPlugIn

Modified: 
core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java 
    2016-09-20 20:45:17 UTC (rev 5023)
+++ 
core/trunk/src/com/vividsolutions/jump/datastore/postgis/PostgisDSMetadata.java 
    2016-09-20 21:04:45 UTC (rev 5024)
@@ -6,6 +6,7 @@
 import com.vividsolutions.jump.datastore.GeometryColumn;
 import com.vividsolutions.jump.feature.AttributeType;
 
+import java.text.Normalizer;
 import java.util.List;
 
 public class PostgisDSMetadata extends SpatialDatabasesDSMetadata {
@@ -95,9 +96,14 @@
      */
     @Override
     public String getAddSpatialIndexStatement(String schemaName, String 
tableName, String geometryColumn) {
-        return "CREATE INDEX \"" +
-                SQLUtil.compose(schemaName, tableName).replaceAll("\"","") + 
"_" + geometryColumn + "_idx\"\n" +
-                "ON " + SQLUtil.compose(schemaName, tableName) + " USING GIST 
( \"" + geometryColumn + "\" );";
+        String name = schemaName + "_" + tableName + "_" + geometryColumn + 
"_idx";
+        name = Normalizer.normalize(name, Normalizer.Form.NFD); // separe base 
character from accent
+        name = name.replaceAll("\\p{M}", ""); // remove accents
+        name = name.toLowerCase();
+        name = name.replaceAll("[^\\x5F\\x30-\\x39\\x41-\\x5A\\x61-\\x7A]", 
"_");
+        name = name.replaceAll("_+", "_");
+        return "CREATE INDEX " + name + " ON " +
+                SQLUtil.compose(schemaName, tableName) + " USING GIST ( \"" + 
geometryColumn + "\" );";
     }
 
 }


------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to