Author: rvesse
Date: Wed Sep 25 15:51:42 2013
New Revision: 1526211
URL: http://svn.apache.org/r1526211
Log:
Map xsd:dateTime to TIMESTAMP rather than DATE in JDBC core
Added:
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/metadata/columns/DateTimeColumn.java
Modified:
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/JdbcCompatibility.java
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/TestCompatibility.java
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
Modified:
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/JdbcCompatibility.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/JdbcCompatibility.java?rev=1526211&r1=1526210&r2=1526211&view=diff
==============================================================================
---
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/JdbcCompatibility.java
(original)
+++
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/JdbcCompatibility.java
Wed Sep 25 15:51:42 2013
@@ -26,6 +26,7 @@ import org.apache.jena.jdbc.results.meta
import org.apache.jena.jdbc.results.metadata.columns.ByteColumn;
import org.apache.jena.jdbc.results.metadata.columns.ColumnInfo;
import org.apache.jena.jdbc.results.metadata.columns.DateColumn;
+import org.apache.jena.jdbc.results.metadata.columns.DateTimeColumn;
import org.apache.jena.jdbc.results.metadata.columns.DecimalColumn;
import org.apache.jena.jdbc.results.metadata.columns.DoubleColumn;
import org.apache.jena.jdbc.results.metadata.columns.FloatColumn;
@@ -217,9 +218,12 @@ public class JdbcCompatibility {
* @throws SQLException
*/
private static ColumnInfo selectColumnType(String var, String dtUri, int
nullable) throws SQLException {
- if (dtUri.equals(XSD.date.toString()) ||
dtUri.equals(XSD.dateTime.toString())) {
+ if (dtUri.equals(XSD.date.toString())) {
// Date column
return new DateColumn(var, nullable);
+ } else if (dtUri.equals(XSD.dateTime.toString())) {
+ // Date time column
+ return new DateTimeColumn(var, nullable);
} else if (dtUri.equals(XSD.decimal.toString())) {
// Decimal column
return new DecimalColumn(var, nullable);
Added:
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/metadata/columns/DateTimeColumn.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/metadata/columns/DateTimeColumn.java?rev=1526211&view=auto
==============================================================================
---
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/metadata/columns/DateTimeColumn.java
(added)
+++
jena/trunk/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/results/metadata/columns/DateTimeColumn.java
Wed Sep 25 15:51:42 2013
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.jdbc.results.metadata.columns;
+
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.sql.Types;
+
+/**
+ * Column information for date time columns
+ *
+ */
+public class DateTimeColumn extends SparqlColumnInfo {
+
+ /**
+ * Creates new date column information
+ * @param label Label
+ * @param nullable Nullability
+ * @throws SQLException
+ */
+ public DateTimeColumn(String label, int nullable) throws SQLException {
+ super(label, Types.TIMESTAMP, nullable);
+ this.setClassName(Timestamp.class.getCanonicalName());
+ }
+
+
+}
Modified:
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/TestCompatibility.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/TestCompatibility.java?rev=1526211&r1=1526210&r2=1526211&view=diff
==============================================================================
---
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/TestCompatibility.java
(original)
+++
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/TestCompatibility.java
Wed Sep 25 15:51:42 2013
@@ -276,7 +276,7 @@ public class TestCompatibility {
@Test
public void test_column_type_detection_datetimes_01() throws SQLException {
Model m = ModelFactory.createDefaultModel();
- testColumnTypeDetection("x",
m.createTypedLiteral(Calendar.getInstance()).asNode(), true, Types.DATE,
Date.class.getCanonicalName());
+ testColumnTypeDetection("x",
m.createTypedLiteral(Calendar.getInstance()).asNode(), true, Types.TIMESTAMP,
Timestamp.class.getCanonicalName());
}
/**
Modified:
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java?rev=1526211&r1=1526210&r2=1526211&view=diff
==============================================================================
---
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
(original)
+++
jena/trunk/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/results/AbstractResultSetTests.java
Wed Sep 25 15:51:42 2013
@@ -277,7 +277,7 @@ public abstract class AbstractResultSetT
Object obj = rset.getObject("o");
Assert.assertNotNull(obj);
Assert.assertFalse(rset.wasNull());
- Assert.assertTrue(obj instanceof Date);
+ Assert.assertTrue(obj instanceof Timestamp);
}
Assert.assertTrue(rset.isAfterLast());