Changeset: 679b99c7604e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/679b99c7604e Modified Files: clients/odbc/ChangeLog.Dec2023 clients/odbc/driver/ODBCQueries.h clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLProcedureColumns.c clients/odbc/tests/ODBCmetadata.c Branch: Dec2023 Log Message:
Fix the computed CHAR_OCTET_LENGTH value for ODBC functions SQLColumns() and SQLProcedureColumns(). diffs (244 lines): diff --git a/clients/odbc/ChangeLog.Dec2023 b/clients/odbc/ChangeLog.Dec2023 --- a/clients/odbc/ChangeLog.Dec2023 +++ b/clients/odbc/ChangeLog.Dec2023 @@ -1,3 +1,7 @@ # ChangeLog file for odbc # This file is updated with Maddlog +* Thu Nov 30 2023 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Corrected the output value of column CHAR_OCTET_LENGTH of ODBC functions + SQLColumns() and SQLProcedureColumns(). + diff --git a/clients/odbc/driver/ODBCQueries.h b/clients/odbc/driver/ODBCQueries.h --- a/clients/odbc/driver/ODBCQueries.h +++ b/clients/odbc/driver/ODBCQueries.h @@ -291,10 +291,8 @@ SQL_CODE_TIME #define CHAR_OCTET_LENGTH(t) \ - "cast(case " #t ".type " \ - "when 'char' then 2 * " #t ".type_digits " \ - "when 'varchar' then 2 * " #t ".type_digits " \ - "when 'clob' then 2 * " #t ".type_digits " \ - "when 'blob' then " #t ".type_digits " \ + "cast(case when " #t ".type in ('varchar','clob','char','json','url','xml') " \ + "then 4 * " #t ".type_digits " \ + "when " #t ".type = 'blob' then " #t ".type_digits " \ "else cast(null as integer) " \ "end as integer) as \"CHAR_OCTET_LENGTH\"" diff --git a/clients/odbc/driver/SQLColumns.c b/clients/odbc/driver/SQLColumns.c --- a/clients/odbc/driver/SQLColumns.c +++ b/clients/odbc/driver/SQLColumns.c @@ -127,7 +127,7 @@ MNDBColumns(ODBCStmt *stmt, } /* construct the query now */ - querylen = 6500 + (sch ? strlen(sch) : 0) + + querylen = 6600 + (sch ? strlen(sch) : 0) + (tab ? strlen(tab) : 0) + (col ? strlen(col) : 0); query = malloc(querylen); if (query == NULL) @@ -217,7 +217,6 @@ MNDBColumns(ODBCStmt *stmt, #endif /* from clause: */ stmt->Dbc->has_comment ? " left outer join sys.comments com on com.id = c.id" : ""); - assert(pos < 6300); /* depending on the input parameter values we must add a variable selection condition dynamically */ @@ -248,6 +247,8 @@ MNDBColumns(ODBCStmt *stmt, /* add the ordering (exclude table_cat as it is the same for all rows) */ pos += strcpy_len(query + pos, " order by \"TABLE_SCHEM\", \"TABLE_NAME\", \"ORDINAL_POSITION\"", querylen - pos); + if (pos >= querylen) + fprintf(stderr, "pos >= querylen, %zu > %zu\n", pos, querylen); assert(pos < querylen); /* debug: fprintf(stdout, "SQLColumns query (pos: %zu, len: %zu):\n%s\n\n", pos, strlen(query), query); */ diff --git a/clients/odbc/driver/SQLProcedureColumns.c b/clients/odbc/driver/SQLProcedureColumns.c --- a/clients/odbc/driver/SQLProcedureColumns.c +++ b/clients/odbc/driver/SQLProcedureColumns.c @@ -119,7 +119,7 @@ MNDBProcedureColumns(ODBCStmt *stmt, } /* construct the query now */ - querylen = 6500 + (sch ? strlen(sch) : 0) + (prc ? strlen(prc) : 0) + + querylen = 6700 + (sch ? strlen(sch) : 0) + (prc ? strlen(prc) : 0) + (col ? strlen(col) : 0); query = malloc(querylen); if (query == NULL) @@ -228,7 +228,6 @@ MNDBProcedureColumns(ODBCStmt *stmt, stmt->Dbc->has_comment ? " left outer join sys.comments c on c.id = a.id" : "", /* where clause: */ F_FUNC, F_PROC, F_UNION); - assert(pos < 6400); /* depending on the input parameter values we must add a variable selection condition dynamically */ @@ -259,6 +258,8 @@ MNDBProcedureColumns(ODBCStmt *stmt, /* add the ordering (exclude procedure_cat as it is the same for all rows) */ pos += strcpy_len(query + pos, " order by \"PROCEDURE_SCHEM\", \"PROCEDURE_NAME\", \"SPECIFIC_NAME\", \"COLUMN_TYPE\", \"ORDINAL_POSITION\"", querylen - pos); + if (pos >= querylen) + fprintf(stderr, "pos >= querylen, %zu > %zu\n", pos, querylen); assert(pos < querylen); /* debug: fprintf(stdout, "SQLProcedureColumns query (pos: %zu, len: %zu):\n%s\n\n", pos, strlen(query), query); */ diff --git a/clients/odbc/tests/ODBCmetadata.c b/clients/odbc/tests/ODBCmetadata.c --- a/clients/odbc/tests/ODBCmetadata.c +++ b/clients/odbc/tests/ODBCmetadata.c @@ -608,12 +608,12 @@ main(int argc, char **argv) "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" "NULL odbctst nopk_twoucs id2 4 INTEGER 32 11 0 2 0 odbctst.nopk_twoucs.id2 column comment NULL 4 NULL NULL 1 NO\n" - "NULL odbctst nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 odbctst.nopk_twoucs.name2 column comment NULL -9 NULL 198 2 YES\n" + "NULL odbctst nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 odbctst.nopk_twoucs.name2 column comment NULL -9 NULL 396 2 YES\n" "NULL odbctst pk2c pkc1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL odbctst pk2c pkc2 -9 VARCHAR 99 198 NULL NULL 0 NULL NULL -9 NULL 198 2 NO\n" - "NULL odbctst pk2c name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 3 YES\n" + "NULL odbctst pk2c pkc2 -9 VARCHAR 99 198 NULL NULL 0 NULL NULL -9 NULL 396 2 NO\n" + "NULL odbctst pk2c name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 3 YES\n" "NULL odbctst pk_uc id1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL odbctst pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n"); + "NULL odbctst pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n"); // All columns of all tmp tables containg 'pk' in their name ret = SQLColumns(stmt, (SQLCHAR*)"", SQL_NTS, @@ -625,13 +625,13 @@ main(int argc, char **argv) "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" "NULL tmp glbl_nopk_twoucs id2 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" + "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" "NULL tmp glbl_pk_uc id1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL tmp glbl_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" + "NULL tmp glbl_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" "NULL tmp tmp_nopk_twoucs id2 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL tmp tmp_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" + "NULL tmp tmp_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" "NULL tmp tmp_pk_uc id1 4 INTEGER 32 11 0 2 0 NULL NULL 4 NULL NULL 1 NO\n" - "NULL tmp tmp_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n"); + "NULL tmp tmp_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n"); // All columns of all tmp tables containg 'pk' in their name and the column matching name_ pattern ret = SQLColumns(stmt, (SQLCHAR*)"", SQL_NTS, @@ -642,10 +642,10 @@ main(int argc, char **argv) "Resultset with 4 rows\n" "TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE\n" "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(1024) WVARCHAR(1024) SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(2048) SMALLINT SMALLINT INTEGER INTEGER WVARCHAR(3)\n" - "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" - "NULL tmp glbl_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" - "NULL tmp tmp_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n" - "NULL tmp tmp_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 198 2 YES\n"); + "NULL tmp glbl_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" + "NULL tmp glbl_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" + "NULL tmp tmp_nopk_twoucs name2 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n" + "NULL tmp tmp_pk_uc name1 -9 VARCHAR 99 198 NULL NULL 1 NULL NULL -9 NULL 396 2 YES\n"); ret = SQLSpecialColumns(stmt, SQL_ROWVER, (SQLCHAR*)NULL, 0, (SQLCHAR*)"%", SQL_NTS, (SQLCHAR*)"%", SQL_NTS, @@ -1251,12 +1251,12 @@ main(int argc, char **argv) "Resultset with 6 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER WCHAR WVARCHAR(10)\n" - "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys analyze tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys analyze tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys analyze cname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n"); + "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys analyze tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys analyze sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys analyze tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys analyze cname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n"); // test function sys.sin(). There are 2 overloaded variants of this function in MonetDB: sys.sin(real) and sys.sin(double). ret = SQLProcedures(stmt, (SQLCHAR*)"", SQL_NTS, @@ -1300,8 +1300,8 @@ main(int argc, char **argv) "Resultset with 2 rows\n" "PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME COLUMN_NAME COLUMN_TYPE DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION IS_NULLABLE SPECIFIC_NAME\n" "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER WCHAR WVARCHAR(10)\n" - "NULL sys env name 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys env value 3 -9 VARCHAR 2048 4096 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n"); + "NULL sys env name 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys env value 3 -9 VARCHAR 2048 4096 NULL NULL 2 NULL NULL -9 NULL 8192 2 replacedId\n"); // test table returning function sys.statistics(). 4 overloaded variants with 0, 1, 2 or 3 input parameters. 13 result columns. ret = SQLProcedures(stmt, (SQLCHAR*)"", SQL_NTS, @@ -1326,10 +1326,10 @@ main(int argc, char **argv) "WVARCHAR(1) WVARCHAR(1024) WVARCHAR(256) WVARCHAR(256) SMALLINT SMALLINT WCHAR(25) INTEGER INTEGER SMALLINT SMALLINT SMALLINT WVARCHAR(65000) WVARCHAR(1) SMALLINT SMALLINT INTEGER INTEGER WCHAR WVARCHAR(10)\n" // 0 input argument and 13 result columns of sys.statistics() "NULL sys statistics column_id 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 1 replacedId\n" - "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n" - "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 4 replacedId\n" - "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 5 replacedId\n" + "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n" + "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 4 replacedId\n" + "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 5 replacedId\n" "NULL sys statistics width 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 6 replacedId\n" "NULL sys statistics count 3 -5 BIGINT 64 20 0 2 2 NULL NULL -5 NULL NULL 7 replacedId\n" "NULL sys statistics unique 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 8 replacedId\n" @@ -1340,12 +1340,12 @@ main(int argc, char **argv) "NULL sys statistics revsorted 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 13 replacedId\n" // 1 input argument and 13 result columns of sys.statistics(sname) - "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" + "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" "NULL sys statistics column_id 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 1 replacedId\n" - "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n" - "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 4 replacedId\n" - "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 5 replacedId\n" + "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n" + "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 4 replacedId\n" + "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 5 replacedId\n" "NULL sys statistics width 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 6 replacedId\n" "NULL sys statistics count 3 -5 BIGINT 64 20 0 2 2 NULL NULL -5 NULL NULL 7 replacedId\n" "NULL sys statistics unique 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 8 replacedId\n" @@ -1356,13 +1356,13 @@ main(int argc, char **argv) "NULL sys statistics revsorted 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 13 replacedId\n" // 2 input arguments and 13 result columns of sys.statistics(sname, tname) - "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys statistics tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" + "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys statistics tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" "NULL sys statistics column_id 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 1 replacedId\n" - "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n" - "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 4 replacedId\n" - "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 5 replacedId\n" + "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n" + "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 4 replacedId\n" + "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 5 replacedId\n" "NULL sys statistics width 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 6 replacedId\n" "NULL sys statistics count 3 -5 BIGINT 64 20 0 2 2 NULL NULL -5 NULL NULL 7 replacedId\n" "NULL sys statistics unique 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 8 replacedId\n" @@ -1373,14 +1373,14 @@ main(int argc, char **argv) "NULL sys statistics revsorted 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 13 replacedId\n" // 3 input arguments and 13 result columns of sys.statistics(sname, tname, cname) - "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 1 replacedId\n" - "NULL sys statistics tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys statistics cname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n" + "NULL sys statistics sname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 1 replacedId\n" + "NULL sys statistics tname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys statistics cname 1 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n" "NULL sys statistics column_id 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 1 replacedId\n" - "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 2 replacedId\n" - "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 3 replacedId\n" - "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 4 replacedId\n" - "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 2048 5 replacedId\n" + "NULL sys statistics schema 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 2 replacedId\n" + "NULL sys statistics table 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 3 replacedId\n" + "NULL sys statistics column 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 4 replacedId\n" + "NULL sys statistics type 3 -9 VARCHAR 1024 2048 NULL NULL 2 NULL NULL -9 NULL 4096 5 replacedId\n" "NULL sys statistics width 3 4 INTEGER 32 11 0 2 2 NULL NULL 4 NULL NULL 6 replacedId\n" "NULL sys statistics count 3 -5 BIGINT 64 20 0 2 2 NULL NULL -5 NULL NULL 7 replacedId\n" "NULL sys statistics unique 3 -7 BOOLEAN 1 1 NULL NULL 2 NULL NULL -7 NULL NULL 8 replacedId\n" _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org