Mercurial > hg > monetdb-java
diff src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @ 471:e14e81b8044e
Improved performance of ResultSetMetaData methods getPrecision(), getScale(), isNullable() and isAutoIncrement().
The data is fetched from the server by sending a query. This used to be one query for each column of the ResultSet.
Now these queries are combined into one query fetching this meta data for up to 50 columns in one query.
This reduces the number of queries sent to the server significantly.
This is noticable for instance when using generic JDBC query tools such as SQuirreL, which now respond much faster.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 29 Apr 2021 22:56:37 +0200 (2021-04-29) |
parents | a851e6d6a71a |
children | 6aa38e8c0f2d |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java @@ -2131,7 +2131,9 @@ public class MonetDatabaseMetaData "WHEN c.\"type\" IN ('int','smallint','tinyint','bigint','hugeint','float','real','double','oid','wrd') THEN 2 " + "ELSE 0 END AS int) AS \"NUM_PREC_RADIX\", " + "cast(CASE c.\"null\" WHEN true THEN ").append(ResultSetMetaData.columnNullable) - .append(" WHEN false THEN ").append(ResultSetMetaData.columnNoNulls).append(" END AS int) AS \"NULLABLE\", ") + .append(" WHEN false THEN ").append(ResultSetMetaData.columnNoNulls) + .append(" ELSE ").append(ResultSetMetaData.columnNullableUnknown) + .append(" END AS int) AS \"NULLABLE\", ") .append(useCommentsTable ? "cm.\"remark\"" : "cast(null AS varchar(9999))").append(" AS \"REMARKS\", " + "c.\"default\" AS \"COLUMN_DEF\", " + "cast(0 as int) AS \"SQL_DATA_TYPE\", " +