Changeset: 9df089b0d69d for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=9df089b0d69d
Modified Files:
        src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
Branch: default
Log Message:

Improve performance of ResulSet methods getDate(), getTime() getTimestamp()
in case the value is NULL.


diffs (54 lines):

diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java 
b/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
+++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
@@ -2782,6 +2782,16 @@ public class MonetResultSet extends Mone
        public java.sql.Date getDate(int columnIndex, Calendar cal)
                throws SQLException
        {
+               // to avoid unnecessary work, check for NULL value and invalid 
columnIndex first
+               try {
+                       if (tlp.values[columnIndex - 1] == null) {
+                               lastReadWasNull = true;
+                               return null;
+                       }
+               } catch (IndexOutOfBoundsException e) {
+                       throw newSQLInvalidColumnIndexException(columnIndex);
+               }
+
                if (cal == null) {
                        cal = Calendar.getInstance();
                }
@@ -2860,6 +2870,16 @@ public class MonetResultSet extends Mone
        public Time getTime(int columnIndex, Calendar cal)
                throws SQLException
        {
+               // to avoid unnecessary work, check for NULL value and invalid 
columnIndex first
+               try {
+                       if (tlp.values[columnIndex - 1] == null) {
+                               lastReadWasNull = true;
+                               return null;
+                       }
+               } catch (IndexOutOfBoundsException e) {
+                       throw newSQLInvalidColumnIndexException(columnIndex);
+               }
+
                if (cal == null) {
                        cal = Calendar.getInstance();
                }
@@ -2938,6 +2958,16 @@ public class MonetResultSet extends Mone
        public Timestamp getTimestamp(int columnIndex, Calendar cal)
                throws SQLException
        {
+               // to avoid unnecessary work, check for NULL value and invalid 
columnIndex first
+               try {
+                       if (tlp.values[columnIndex - 1] == null) {
+                               lastReadWasNull = true;
+                               return null;
+                       }
+               } catch (IndexOutOfBoundsException e) {
+                       throw newSQLInvalidColumnIndexException(columnIndex);
+               }
+
                if (cal == null) {
                        cal = Calendar.getInstance();
                }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to