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());


Reply via email to