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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel