Revision: 6129
          http://sourceforge.net/p/jump-pilot/code/6129
Author:   edso
Date:     2019-02-19 15:21:53 +0000 (Tue, 19 Feb 2019)
Log Message:
-----------
speedup loading datasets w/ date/time columns
utilizing flex feature lazy conversion

Modified Paths:
--------------
    
core/trunk/src/com/vividsolutions/jump/datastore/jdbc/ValueConverterFactory.java
    
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesResultSetConverter.java

Modified: 
core/trunk/src/com/vividsolutions/jump/datastore/jdbc/ValueConverterFactory.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/datastore/jdbc/ValueConverterFactory.java
    2019-02-19 15:01:52 UTC (rev 6128)
+++ 
core/trunk/src/com/vividsolutions/jump/datastore/jdbc/ValueConverterFactory.java
    2019-02-19 15:21:53 UTC (rev 6129)
@@ -117,23 +117,24 @@
     public static class  DateConverter implements ValueConverter {
         public AttributeType getType() { return AttributeType.DATE; }
         public Object getValue(ResultSet rs, int columnIndex) throws 
SQLException {
-            //return rs.getDate(columnIndex);
-            Object ret = null;
-            try {
-                ret = rs.getTimestamp(columnIndex);
-                if (rs.wasNull()) return null;
-            } catch (Exception e) {
-                // try to read date from string, as some SpatialDatabases like 
SQLite
-                // can store DATE type in string
-                FlexibleDateParser parser = new FlexibleDateParser();
-                try {
-                    ret = parser.parse(rs.getString(columnIndex), false);
-                } catch (Exception ee) {
-                    System.err.println("cannot parse date value: \"" + 
rs.getString(columnIndex)
-                    + "\" Defaulting to null.\n" + ee.getMessage());
-                }
-            }
-            return ret;
+              // always return string for dates and let FlexibleFeature 
convert later during runtime
+              return rs.getString(columnIndex);
+//            Object ret = null;
+//            try {
+//                ret = rs.getTimestamp(columnIndex);
+//                if (rs.wasNull()) return null;
+//            } catch (Exception e) {
+//                // try to read date from string, as some SpatialDatabases 
like SQLite
+//                // can store DATE type in string
+//                FlexibleDateParser parser = new FlexibleDateParser();
+//                try {
+//                    ret = parser.parse(rs.getString(columnIndex), false);
+//                } catch (Exception ee) {
+//                    System.err.println("cannot parse date value: \"" + 
rs.getString(columnIndex)
+//                    + "\" Defaulting to null.\n" + ee.getMessage());
+//                }
+//            }
+//            return ret;
         }
     }
 

Modified: 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesResultSetConverter.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesResultSetConverter.java
   2019-02-19 15:01:52 UTC (rev 6128)
+++ 
core/trunk/src/com/vividsolutions/jump/datastore/spatialdatabases/SpatialDatabasesResultSetConverter.java
   2019-02-19 15:21:53 UTC (rev 6129)
@@ -2,9 +2,9 @@
 
 import com.vividsolutions.jump.datastore.jdbc.ValueConverter;
 import com.vividsolutions.jump.feature.AttributeType;
-import com.vividsolutions.jump.feature.BasicFeature;
 import com.vividsolutions.jump.feature.Feature;
 import com.vividsolutions.jump.feature.FeatureSchema;
+import com.vividsolutions.jump.feature.FlexibleFeature;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
@@ -47,7 +47,8 @@
   public Feature getFeature()
       throws Exception {
     init();
-    Feature f = new BasicFeature(featureSchema);
+    // use flex feature for lazy data type conversion
+    Feature f = new FlexibleFeature(featureSchema);
     for (int i = 0; i < mapper.length; i++) {
       f.setAttribute(i, mapper[i].getValue(rs, i + 1));
     }



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

Reply via email to