changeset 726:89bbd04036cd

For type inet we always get 0 as length from the server. As inet has a maximum display length of 18 we should return that more useful value instead.
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 26 Jan 2023 19:03:14 +0100 (2023-01-26)
parents 224d73363dc9
children 55c14e65b4be
files src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java
@@ -392,7 +392,15 @@ final class MonetResultSetMetaData
 		checkColumnIndexValidity(column);
 		if (lengths != null) {
 			try {
-				return lengths[column - 1];
+				int len = lengths[column - 1];
+				if (len == 0) {
+					final String monettype = getColumnTypeName(column);
+					// in case of inet it always has 0 as length. we need to correct it.
+					if (monettype != null && "inet".equals(monettype)) {
+						len = 18;	// 128.127.126.125/24
+					}
+				}
+				return len;
 			} catch (IndexOutOfBoundsException e) {
 				throw MonetResultSet.newSQLInvalidColumnIndexException(column);
 			}