Changeset: 4845c198f29f for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/4845c198f29f
Modified Files:
        ChangeLog
        src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
Branch: default
Log Message:

Corrected output of columns SEARCHABLE and AUTO_INCREMENT of method 
DatabaseMetaData.getTypeInfo().
Most types are searchable with LIKE pattern matching. AUTO_INCREMENT is no 
longer true for base integer types.


diffs (48 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 # ChangeLog file for monetdb-java
 # This file is updated with Maddlog
 
+* Thu Jul  3 2025 Martin van Dinther <[email protected]>
+- Corrected output of columns SEARCHABLE and AUTO_INCREMENT of method
+  DatabaseMetaData.getTypeInfo(). Most types are searchable with LIKE
+  pattern matching. AUTO_INCREMENT is no longer true for base integer types.
+
 * Thu Feb 13 2025 Martin van Dinther <[email protected]>
 - Corrected the returned integer values of Statement methods
   getUpdateCount() and getLargeUpdateCount(). They returned -2 for
diff --git a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java 
b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
--- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
@@ -3073,11 +3073,10 @@ public final class MonetDatabaseMetaData
                        "cast(CASE WHEN \"systemname\" = 'oid' THEN " + 
DatabaseMetaData.typeNoNulls +
                                " ELSE " + DatabaseMetaData.typeNullable + " 
END AS smallint) AS \"NULLABLE\", " +
                        "CASE WHEN \"systemname\" IN ('str','json','url','xml') 
THEN true ELSE false END AS \"CASE_SENSITIVE\", " +
-                       "cast(CASE WHEN \"systemname\" IN 
('str','inet','json','url','uuid','xml') THEN " + 
DatabaseMetaData.typeSearchable +
-                               " ELSE " + DatabaseMetaData.typePredBasic + " 
END AS smallint) AS \"SEARCHABLE\", " +
+                       "cast(" + DatabaseMetaData.typeSearchable + " AS 
smallint) AS \"SEARCHABLE\", " +
                        "CASE WHEN \"sqlname\" IN 
('tinyint','smallint','int','bigint','hugeint','decimal','real','double') THEN 
false ELSE true END AS \"UNSIGNED_ATTRIBUTE\", " +
                        "CASE \"sqlname\" WHEN 'decimal' THEN true ELSE false 
END AS \"FIXED_PREC_SCALE\", " +
-                       "CASE WHEN \"sqlname\" IN 
('tinyint','smallint','int','bigint') THEN true ELSE false END AS 
\"AUTO_INCREMENT\", " +
+                       "false AS \"AUTO_INCREMENT\", " +
                        "\"systemname\" AS \"LOCAL_TYPE_NAME\", " +
                        "cast(0 AS smallint) AS \"MINIMUM_SCALE\", " +
                        "cast(CASE WHEN \"sqlname\" = 'decimal' THEN (CASE 
\"systemname\" WHEN 'int' THEN 9 WHEN 'lng' THEN 18 WHEN 'sht' THEN 4 WHEN 
'hge' THEN 38 WHEN 'bte' THEN 2 ELSE 0 END)" +
@@ -3113,12 +3112,12 @@ public final class MonetDatabaseMetaData
                "UNION ALL " +
                // also add the 2 serial types (like done in ODBC 
SQLGetTypeInfo())
                "SELECT \"TYPE_NAME\", \"DATA_TYPE\", PRECISION, NULL AS 
LITERAL_PREFIX, NULL AS LITERAL_SUFFIX, NULL AS CREATE_PARAMS, " +
-                       DatabaseMetaData.typeNoNulls + " AS NULLABLE, false AS 
CASE_SENSITIVE, " + DatabaseMetaData.typePredBasic + " AS SEARCHABLE, " +
+                       DatabaseMetaData.typeNoNulls + " AS NULLABLE, false AS 
CASE_SENSITIVE, " + DatabaseMetaData.typeSearchable + " AS SEARCHABLE, " +
                        "false AS UNSIGNED_ATTRIBUTE, false AS 
FIXED_PREC_SCALE, true AS \"AUTO_INCREMENT\", LOCAL_TYPE_NAME, 0 AS 
MINIMUM_SCALE, " +
                        "0 AS MAXIMUM_SCALE, 0 AS SQL_DATA_TYPE, 0 AS 
SQL_DATETIME_SUB, 2 AS NUM_PREC_RADIX " +
                "FROM (VALUES" +
-               " ('bigserial', -5, 64, 'bigint')" +
-               ",('serial', 4, 32, 'int')" +
+               " ('bigserial', -5, 63, 'bigint')" +
+               ",('serial', 4, 31, 'int')" +
                ") AS serial_types(\"TYPE_NAME\", \"DATA_TYPE\", PRECISION, 
LOCAL_TYPE_NAME) " +
                "ORDER BY \"DATA_TYPE\", \"TYPE_NAME\"");
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to