Mercurial > hg > monetdb-java
comparison src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @ 366:83bfade6333e
Optimise constructed SQL query for getFunctions().
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Wed, 16 Sep 2020 19:07:05 +0200 (2020-09-16) |
parents | 63cccacad468 |
children | 2ab474af487c |
comparison
equal
deleted
inserted
replaced
365:63cccacad468 | 366:83bfade6333e |
---|---|
3768 final StringBuilder query = new StringBuilder(800); | 3768 final StringBuilder query = new StringBuilder(800); |
3769 query.append("SELECT cast(null as char(1)) AS \"FUNCTION_CAT\", " + | 3769 query.append("SELECT cast(null as char(1)) AS \"FUNCTION_CAT\", " + |
3770 "s.\"name\" AS \"FUNCTION_SCHEM\", " + | 3770 "s.\"name\" AS \"FUNCTION_SCHEM\", " + |
3771 "f.\"name\" AS \"FUNCTION_NAME\", ") | 3771 "f.\"name\" AS \"FUNCTION_NAME\", ") |
3772 .append(useCommentsTable ? "COALESCE(cm.\"remark\", cast(f.\"func\" as varchar(9999)))" : "cast(f.\"func\" as varchar(9999))").append(" AS \"REMARKS\", " + | 3772 .append(useCommentsTable ? "COALESCE(cm.\"remark\", cast(f.\"func\" as varchar(9999)))" : "cast(f.\"func\" as varchar(9999))").append(" AS \"REMARKS\", " + |
3773 "CASE f.\"type\"" + | 3773 "CASE WHEN f.\"type\" IN (1,2,3,4,6) THEN ").append(DatabaseMetaData.functionNoTable) |
3774 " WHEN 1 THEN ").append(DatabaseMetaData.functionNoTable) | 3774 .append(" WHEN f.\"type\" IN (5,7) THEN ").append(DatabaseMetaData.functionReturnsTable) |
3775 .append(" WHEN 2 THEN ").append(DatabaseMetaData.functionNoTable) | |
3776 .append(" WHEN 3 THEN ").append(DatabaseMetaData.functionNoTable) | |
3777 .append(" WHEN 4 THEN ").append(DatabaseMetaData.functionNoTable) | |
3778 .append(" WHEN 5 THEN ").append(DatabaseMetaData.functionReturnsTable) | |
3779 .append(" WHEN 6 THEN ").append(DatabaseMetaData.functionNoTable) | |
3780 .append(" WHEN 7 THEN ").append(DatabaseMetaData.functionReturnsTable) | |
3781 .append(" ELSE ").append(DatabaseMetaData.functionResultUnknown).append(" END AS \"FUNCTION_TYPE\", " + | 3775 .append(" ELSE ").append(DatabaseMetaData.functionResultUnknown).append(" END AS \"FUNCTION_TYPE\", " + |
3782 // only the id value uniquely identifies a function. Include it to be able to differentiate between multiple overloaded functions with the same name | 3776 // only the id value uniquely identifies a function. Include it to be able to differentiate between multiple overloaded functions with the same name |
3783 "cast(f.\"id\" as varchar(10)) AS \"SPECIFIC_NAME\" " + | 3777 "cast(f.\"id\" as varchar(10)) AS \"SPECIFIC_NAME\" " + |
3784 "FROM \"sys\".\"functions\" f " + | 3778 "FROM \"sys\".\"functions\" f " + |
3785 "JOIN \"sys\".\"schemas\" s ON f.\"schema_id\" = s.\"id\" "); | 3779 "JOIN \"sys\".\"schemas\" s ON f.\"schema_id\" = s.\"id\" "); |