changeset 735:3dd0d43014e8

Disable checks for Types.LONGVARCHAR and Types.LONGVARBINARY as MonetDB server does not support these data types, and no mappings exists to these JDBC Types and thus these cases will never be reached in JDBC Driver.
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 16 Feb 2023 17:01:26 +0100 (2023-02-16)
parents e0caafa2d814
children f317b37bad30
files src/main/java/org/monetdb/jdbc/MonetDriver.java.in src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java src/main/java/org/monetdb/jdbc/MonetResultSet.java src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
diffstat 4 files changed, 16 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
+++ b/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
@@ -404,7 +404,7 @@ public class MonetDriver implements Driv
 		switch(type) {
 			case Types.CHAR:
 			case Types.VARCHAR:
-			case Types.LONGVARCHAR:
+		/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 				return String.class;
 			case Types.NUMERIC:
 			case Types.DECIMAL:
@@ -425,7 +425,7 @@ public class MonetDriver implements Driv
 				return Double.class;
 			case Types.BINARY:      // MonetDB currently does not support these
 			case Types.VARBINARY:   // see treat_blob_as_binary property
-			case Types.LONGVARBINARY:
+		/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 				return byte[].class;
 			case Types.DATE:
 				return java.sql.Date.class;
--- a/src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java
@@ -204,7 +204,7 @@ final class MonetParameterMetaData
 				}
 			case Types.CHAR:
 			case Types.VARCHAR:
-			case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+		/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 			case Types.CLOB:
 				// these data types have a variable length
 				try {
@@ -214,9 +214,10 @@ final class MonetParameterMetaData
 				}
 			case Types.BINARY:
 			case Types.VARBINARY:
+		/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 			case Types.BLOB:
 				// these data types have a variable length
-				// It expect number of bytes, not number of hex chars
+				// It expects number of bytes, not number of hex chars
 				try {
 					return precisions[param];
 				} catch (IndexOutOfBoundsException e) {
--- a/src/main/java/org/monetdb/jdbc/MonetResultSet.java
+++ b/src/main/java/org/monetdb/jdbc/MonetResultSet.java
@@ -437,7 +437,7 @@ public class MonetResultSet
 					return blob.getBinaryStream();
 				case Types.BINARY:
 				case Types.VARBINARY:
-				case Types.LONGVARBINARY:
+			/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 					final byte[] bte = getBytes(columnIndex);
 					if (bte == null)
 						return null;
@@ -792,7 +792,7 @@ public class MonetResultSet
 				case Types.BOOLEAN:
 				case Types.CHAR:
 				case Types.VARCHAR:
-				case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+			/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 				case Types.CLOB:
 					// check if string value equals "true" (case insensitive) or not
 					return Boolean.parseBoolean(val);
@@ -910,7 +910,7 @@ public class MonetResultSet
 				case Types.BLOB:
 				case Types.BINARY:
 				case Types.VARBINARY:
-				case Types.LONGVARBINARY:
+			/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 					return MonetBlob.hexStrToByteArray(val);
 				default:
 					throw new SQLException("Cannot operate on type: " + types[columnIndex - 1], "M1M05");
@@ -1416,7 +1416,7 @@ public class MonetResultSet
 				return val;
 			}
 			case Types.CHAR:
-			case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+		/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 				return val;
 			case Types.CLOB:
 				return new MonetClob(val);
@@ -1432,7 +1432,7 @@ public class MonetResultSet
 				return getTimestamp(columnIndex, null);
 			case Types.BINARY:
 			case Types.VARBINARY:
-			case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY, it's here for completeness
+		/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 				return getBytes(columnIndex);
 			case Types.OTHER:
 			default:
@@ -1993,7 +1993,7 @@ public class MonetResultSet
 			// so we attempt to parse it as the caller thinks it is.
 			if (JdbcType == Types.CHAR ||
 			    JdbcType == Types.VARCHAR ||
-			    JdbcType == Types.LONGVARCHAR ||
+			/*  JdbcType == Types.LONGVARCHAR ||  // MonetDB doesn't use type LONGVARCHAR */
 			    JdbcType == Types.CLOB)
 			{
 				JdbcType = type;
--- a/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
@@ -260,7 +260,7 @@ final class MonetResultSetMetaData
 	public boolean isCaseSensitive(final int column) throws SQLException {
 		switch (getColumnType(column)) {
 			case Types.CHAR:
-			case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+		/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 			case Types.CLOB:
 				return true;
 			case Types.VARCHAR:
@@ -589,7 +589,7 @@ final class MonetResultSetMetaData
 				return 18;
 			case Types.CHAR:
 			case Types.VARCHAR:
-			case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+		/*	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR */
 			case Types.CLOB:
 				// these data types have a variable length
 				if (precisions != null) {
@@ -611,6 +611,7 @@ final class MonetResultSetMetaData
 				return getColumnDisplaySize(column);
 			case Types.BINARY:
 			case Types.VARBINARY:
+		/*	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY */
 			case Types.BLOB:
 				// these data types have a variable length
 				if (precisions != null) {
@@ -709,10 +710,11 @@ final class MonetResultSetMetaData
 		//	case Types.DOUBLE:
 		//	case Types.CHAR:
 		//	case Types.VARCHAR:
-		//	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR, it's here for completeness
+		//	case Types.LONGVARCHAR: // MonetDB doesn't use type LONGVARCHAR
 		//	case Types.CLOB:
 		//	case Types.BINARY:
 		//	case Types.VARBINARY:
+		//	case Types.LONGVARBINARY: // MonetDB doesn't use type LONGVARBINARY
 		//	case Types.BLOB:
 		//	case Types.DATE:
 		//	case Types.BOOLEAN: