Mercurial > hg > monetdb-java
diff src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @ 724:2b763b189452
Corrected DatabaseMetaData.getUDTs() output.
It used to return rows for system types: inet, json, url and uuid.
However those are not User Defined Types.
Now they are no longer returned by this method.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 19 Jan 2023 20:50:52 +0100 (2023-01-19) |
parents | aeb268156580 |
children | ee061ab9ee32 |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @@ -3384,22 +3384,19 @@ public final class MonetDatabaseMetaData "s.\"name\" AS \"TYPE_SCHEM\", " + "t.\"sqlname\" AS \"TYPE_NAME\", " + "CASE t.\"sqlname\"" + - // next 4 UDTs are standard - " WHEN 'inet' THEN 'org.monetdb.jdbc.types.INET'" + - " WHEN 'json' THEN 'java.lang.String'" + - " WHEN 'url' THEN 'org.monetdb.jdbc.types.URL'" + - " WHEN 'uuid' THEN 'java.lang.String'" + // next UDT only when "CREATE TYPE xml EXTERNAL NAME xml;" is executed " WHEN 'xml' THEN 'java.lang.String'" + " ELSE 'java.lang.Object' END AS \"CLASS_NAME\", " + - "cast(CASE WHEN t.\"sqlname\" IN ('inet','json','url','uuid','xml') THEN ").append(Types.JAVA_OBJECT) + "cast(CASE WHEN t.\"sqlname\" = 'xml' THEN ").append(Types.JAVA_OBJECT) .append(" ELSE ").append(Types.STRUCT).append(" END AS int) AS \"DATA_TYPE\", " + "t.\"systemname\" AS \"REMARKS\", " + "cast(null as smallint) AS \"BASE_TYPE\" " + "FROM \"sys\".\"types\" t " + "JOIN \"sys\".\"schemas\" s ON t.\"schema_id\" = s.\"id\" " + - // exclude the built-in types (I assume they always have id <= 99 and eclass < 15) - "WHERE t.\"id\" > 99 AND t.\"eclass\" >= 15"); + // exclude the built-in types (I assume they always have id <= 99 and eclass < 18) + "WHERE t.\"id\" > 99" + + " AND t.\"eclass\" >= 18" + + " AND t.\"sqlname\" NOT IN ('inet','json','url','uuid')"); if (catalog != null && !catalog.isEmpty()) { // non-empty catalog selection.