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