Changeset: ba8c39611383 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ba8c39611383
Modified Files:
        clients/odbc/tests/ODBCmetadata.c
Branch: default
Log Message:

Extend tests by also retrieving and comparing dataType, columnSize and 
decimalDigits of result columns.


diffs (truncated from 685 to 300 lines):

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
@@ -90,6 +90,52 @@ check(SQLRETURN ret, SQLSMALLINT tpe, SQ
        }
 }
 
+static char *
+nameofSQLtype(SQLSMALLINT dataType)
+{
+       /* 
https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-data-types */
+       switch (dataType) {
+       case SQL_CHAR:          return "CHAR";
+       case SQL_VARCHAR:       return "VARCHAR";
+       case SQL_LONGVARCHAR:   return "LONGVARCHAR";
+       case SQL_WCHAR:         return "WCHAR";
+       case SQL_WVARCHAR:      return "WVARCHAR";
+       case SQL_WLONGVARCHAR:  return "WLONGVARCHAR";
+       case SQL_DECIMAL:       return "DECIMAL";
+       case SQL_NUMERIC:       return "NUMERIC";
+       case SQL_SMALLINT:      return "SMALLINT";
+       case SQL_INTEGER:       return "INTEGER";
+       case SQL_REAL:          return "REAL";
+       case SQL_FLOAT:         return "FLOAT";
+       case SQL_DOUBLE:        return "DOUBLE";
+       case SQL_BIT:           return "BIT";
+       case SQL_TINYINT:       return "TINYINT";
+       case SQL_BIGINT:        return "BIGINT";
+       case SQL_BINARY:        return "BINARY";
+       case SQL_VARBINARY:     return "VARBINARY";
+       case SQL_LONGVARBINARY: return "LONGVARBINARY";
+       case SQL_DATETIME:      return "DATETIME";
+       case SQL_TYPE_DATE:     return "TYPE_DATE";
+       case SQL_TYPE_TIME:     return "TYPE_TIME";
+       case SQL_TYPE_TIMESTAMP:        return "TYPE_TIMESTAMP";
+       case SQL_INTERVAL_MONTH:        return "INTERVAL_MONTH";
+       case SQL_INTERVAL_YEAR:         return "INTERVAL_YEAR";
+       case SQL_INTERVAL_YEAR_TO_MONTH: return "SQL_INTERVAL_YEAR_TO_MONTH";
+       case SQL_INTERVAL_DAY:          return "INTERVAL_DAY";
+       case SQL_INTERVAL_HOUR:         return "INTERVAL_HOUR";
+       case SQL_INTERVAL_MINUTE:       return "INTERVAL_MINUTE";
+       case SQL_INTERVAL_SECOND:       return "INTERVAL_SECOND";
+       case SQL_INTERVAL_DAY_TO_HOUR:  return "INTERVAL_DAY_TO_HOUR";
+       case SQL_INTERVAL_DAY_TO_MINUTE:        return "INTERVAL_DAY_TO_MINUTE";
+       case SQL_INTERVAL_DAY_TO_SECOND:        return "INTERVAL_DAY_TO_SECOND";
+       case SQL_INTERVAL_HOUR_TO_MINUTE:       return 
"INTERVAL_HOUR_TO_MINUTE";
+       case SQL_INTERVAL_HOUR_TO_SECOND:       return 
"INTERVAL_HOUR_TO_SECOND";
+       case SQL_INTERVAL_MINUTE_TO_SECOND:     return 
"INTERVAL_MINUTE_TO_SECOND";
+       case SQL_GUID:          return "GUID";
+       default:                return "UNDEFINED";
+       }
+}
+
 static void
 compareResult(SQLHANDLE stmt, SQLRETURN retcode, const char * functionname, 
const char * expected)
 {
@@ -103,6 +149,9 @@ compareResult(SQLHANDLE stmt, SQLRETURN 
        SQLUSMALLINT col;
        SQLLEN indicator;
        char buf[2048];
+       SQLSMALLINT dataType = 0;
+       SQLULEN columnSize = 0;
+       SQLSMALLINT decimalDigits = 0;
        int replaceId = 0;      /* used to replace system id values in column 
SPECIFIC_NAME of getProcedures and getProcedureColumns */
 
        if (outp == NULL) {
@@ -126,11 +175,43 @@ compareResult(SQLHANDLE stmt, SQLRETURN 
        for (col = 1; col <= columns; col++) {
                ret = SQLDescribeCol(stmt, col, (SQLCHAR *) buf, sizeof(buf),
                        NULL, NULL, NULL, NULL, NULL);
-               check(ret, SQL_HANDLE_STMT, stmt, "SQLDescribeCol()");
+               check(ret, SQL_HANDLE_STMT, stmt, "SQLDescribeCol(colName)");
                pos += snprintf(outp + pos, outp_len - pos,
                                (col > 1) ? "\t%s" : "%s", buf);
        }
        pos += snprintf(outp + pos, outp_len - pos, "\n");
+       /* get Result Column Data Types and print them */
+       for (col = 1; col <= columns; col++) {
+               ret = SQLDescribeCol(stmt, col, (SQLCHAR *) buf, sizeof(buf),
+                       NULL, &dataType, &columnSize, &decimalDigits, NULL);
+               check(ret, SQL_HANDLE_STMT, stmt, "SQLDescribeCol(colType)");
+               pos += snprintf(outp + pos, outp_len - pos,
+                               (col > 1) ? "\t%s" : "%s", 
nameofSQLtype(dataType));
+               switch (dataType) {
+               case SQL_CHAR:
+               case SQL_VARCHAR:
+               case SQL_LONGVARCHAR:
+               case SQL_WCHAR:
+               case SQL_WVARCHAR:
+               case SQL_WLONGVARCHAR:
+               case SQL_DECIMAL:
+               case SQL_NUMERIC:
+               case SQL_BINARY:
+               case SQL_VARBINARY:
+               case SQL_LONGVARBINARY:
+                       if (columnSize != 0) {
+                               if (decimalDigits != 0) {
+                                       pos += snprintf(outp + pos, outp_len - 
pos,
+                                               "(%d,%d)", (int) columnSize, 
(int) decimalDigits);
+                               } else {
+                                       pos += snprintf(outp + pos, outp_len - 
pos,
+                                               "(%d)", (int) columnSize);
+                               }
+                       }
+                       break;
+               }
+       }
+       pos += snprintf(outp + pos, outp_len - pos, "\n");
 
        /* detect if special handling of data of column SPECIFIC_NAME returned 
by SQLProcedures and SQLProcedureColumns
           is needed as it contains system generated id values which can differ 
per version and platform */
@@ -288,6 +369,7 @@ main(int argc, char **argv)
                "Resultset with 5 columns\n"
                "Resultset with 1 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      
REMARKS\n"
+               "WVARCHAR(2048) WVARCHAR(1)     WVARCHAR(1)     WVARCHAR(1)     
WVARCHAR(1)\n"
                "mTests_sql_odbc_tests  NULL    NULL    NULL    NULL\n");
 
        // All schemas query
@@ -298,6 +380,7 @@ main(int argc, char **argv)
                "Resultset with 5 columns\n"
                "Resultset with 8 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      
REMARKS\n"
+               "WVARCHAR(1)    WVARCHAR(1024)  WVARCHAR(1)     WVARCHAR(1)     
WVARCHAR(1)\n"
                "NULL   json    NULL    NULL    NULL\n"
                "NULL   logging NULL    NULL    NULL\n"
                "NULL   odbctst NULL    NULL    NULL\n"
@@ -315,6 +398,7 @@ main(int argc, char **argv)
                "Resultset with 5 columns\n"
                "Resultset with 10 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      
REMARKS\n"
+               "WVARCHAR(1)    WVARCHAR(1)     WVARCHAR(1)     WVARCHAR(25)    
WVARCHAR(1)\n"
                "NULL   NULL    NULL    GLOBAL TEMPORARY TABLE  NULL\n"
                "NULL   NULL    NULL    LOCAL TEMPORARY TABLE   NULL\n"
                "NULL   NULL    NULL    MERGE TABLE     NULL\n"
@@ -334,6 +418,7 @@ main(int argc, char **argv)
                "Resultset with 5 columns\n"
                "Resultset with 7 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      
REMARKS\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(25)    
WVARCHAR(65000)\n"
                "mTests_sql_odbc_tests  odbctst CUSTOMERS       TABLE   NULL\n"
                "mTests_sql_odbc_tests  odbctst LINES   TABLE   NULL\n"
                "mTests_sql_odbc_tests  odbctst ORDERS  TABLE   NULL\n"
@@ -350,6 +435,7 @@ main(int argc, char **argv)
                "Resultset with 5 columns\n"
                "Resultset with 11 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      
REMARKS\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(25)    
WVARCHAR(65000)\n"
                "mTests_sql_odbc_tests  tmp     glbl_nopk_twoucs        GLOBAL 
TEMPORARY TABLE  NULL\n"
                "mTests_sql_odbc_tests  tmp     glbl_pk_uc      GLOBAL 
TEMPORARY TABLE  NULL\n"
                "mTests_sql_odbc_tests  tmp     tmp_nopk_twoucs LOCAL TEMPORARY 
TABLE   NULL\n"
@@ -370,6 +456,7 @@ main(int argc, char **argv)
                "Resultset with 18 columns\n"
                "Resultset with 7 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"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WCHAR(25)       INTEGER BIGINT  BIGINT  SMALLINT        
SMALLINT        WVARCHAR(65000) WVARCHAR(2048)  SMALLINT        SMALLINT        
BIGINT  INTEGER WVARCHAR(3)\n"
                "mTests_sql_odbc_tests  odbctst nopk_twoucs     id2     4       
INTEGER 32      11      0       2       0       NULL    NULL    4       NULL    
NULL    1       NO\n"
                "mTests_sql_odbc_tests  odbctst nopk_twoucs     name2   -9      
VARCHAR 99      198     NULL    NULL    1       NULL    NULL    -9      NULL    
198     2       YES\n"
                "mTests_sql_odbc_tests  odbctst pk2c    pkc1    4       INTEGER 
32      11      0       2       0       NULL    NULL    4       NULL    NULL    
1       NO\n"
@@ -386,6 +473,7 @@ main(int argc, char **argv)
                "Resultset with 18 columns\n"
                "Resultset with 8 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"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WCHAR(25)       INTEGER BIGINT  BIGINT  SMALLINT        
SMALLINT        WVARCHAR(65000) WVARCHAR(2048)  SMALLINT        SMALLINT        
BIGINT  INTEGER WVARCHAR(3)\n"
                "mTests_sql_odbc_tests  tmp     glbl_nopk_twoucs        id2     
4       INTEGER 32      11      0       2       0       NULL    NULL    4       
NULL    NULL    1       NO\n"
                "mTests_sql_odbc_tests  tmp     glbl_nopk_twoucs        name2   
-9      VARCHAR 99      198     NULL    NULL    1       NULL    NULL    -9      
NULL    198     2       YES\n"
                "mTests_sql_odbc_tests  tmp     glbl_pk_uc      id1     4       
INTEGER 32      11      0       2       0       NULL    NULL    4       NULL    
NULL    1       NO\n"
@@ -403,6 +491,7 @@ main(int argc, char **argv)
                "Resultset with 18 columns\n"
                "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"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WCHAR(25)       INTEGER BIGINT  BIGINT  SMALLINT        
SMALLINT        WVARCHAR(65000) WVARCHAR(2048)  SMALLINT        SMALLINT        
BIGINT  INTEGER WVARCHAR(3)\n"
                "mTests_sql_odbc_tests  tmp     glbl_nopk_twoucs        name2   
-9      VARCHAR 99      198     NULL    NULL    1       NULL    NULL    -9      
NULL    198     2       YES\n"
                "mTests_sql_odbc_tests  tmp     glbl_pk_uc      name1   -9      
VARCHAR 99      198     NULL    NULL    1       NULL    NULL    -9      NULL    
198     2       YES\n"
                "mTests_sql_odbc_tests  tmp     tmp_nopk_twoucs name2   -9      
VARCHAR 99      198     NULL    NULL    1       NULL    NULL    -9      NULL    
198     2       YES\n"
@@ -415,6 +504,7 @@ main(int argc, char **argv)
                "Resultset with 6 columns\n"
                "Resultset with 1 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
KEY_SEQ PK_NAME\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WVARCHAR(1024)\n"
                "mTests_sql_odbc_tests  sys     table_types     table_type_id   
1       table_types_table_type_id_pkey\n");
 
        ret = SQLSpecialColumns(stmt, SQL_BEST_ROWID, (SQLCHAR*)"", SQL_NTS,
@@ -424,6 +514,7 @@ main(int argc, char **argv)
                "Resultset with 8 columns\n"
                "Resultset with 1 rows\n"
                "SCOPE  COLUMN_NAME     DATA_TYPE       TYPE_NAME       
COLUMN_SIZE     BUFFER_LENGTH   DECIMAL_DIGITS  PSEUDO_COLUMN\n"
+               "SMALLINT       WVARCHAR(1024)  SMALLINT        WCHAR(25)       
INTEGER BIGINT  BIGINT  SMALLINT\n"
                "1      table_type_id   5       SMALLINT        16      6       
0       1\n");
 
        ret = SQLStatistics(stmt, (SQLCHAR*)"", SQL_NTS,
@@ -433,6 +524,7 @@ main(int argc, char **argv)
                "Resultset with 13 columns\n"
                "Resultset with 2 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      NON_UNIQUE      
INDEX_QUALIFIER INDEX_NAME      TYPE    ORDINAL_POSITION        COLUMN_NAME     
ASC_OR_DESC     CARDINALITY     PAGES   FILTER_CONDITION\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  SMALLINT        
WVARCHAR(1)     WVARCHAR(1024)  SMALLINT        SMALLINT        WVARCHAR(1024)  
WCHAR(1)        INTEGER INTEGER WVARCHAR(1)\n"
                "mTests_sql_odbc_tests  sys     table_types     0       NULL    
table_types_table_type_id_pkey  2       1       table_type_id   NULL    10      
NULL    NULL\n"
                "mTests_sql_odbc_tests  sys     table_types     0       NULL    
table_types_table_type_name_unique      2       1       table_type_name NULL    
10      NULL    NULL\n");
 
@@ -443,6 +535,7 @@ main(int argc, char **argv)
                "Resultset with 13 columns\n"
                "Resultset with 2 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      NON_UNIQUE      
INDEX_QUALIFIER INDEX_NAME      TYPE    ORDINAL_POSITION        COLUMN_NAME     
ASC_OR_DESC     CARDINALITY     PAGES   FILTER_CONDITION\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  SMALLINT        
WVARCHAR(1)     WVARCHAR(1024)  SMALLINT        SMALLINT        WVARCHAR(1024)  
WCHAR(1)        INTEGER INTEGER WVARCHAR(1)\n"
                "mTests_sql_odbc_tests  sys     table_types     0       NULL    
table_types_table_type_id_pkey  2       1       table_type_id   NULL    10      
NULL    NULL\n"
                "mTests_sql_odbc_tests  sys     table_types     0       NULL    
table_types_table_type_name_unique      2       1       table_type_name NULL    
10      NULL    NULL\n");
 
@@ -451,7 +544,8 @@ main(int argc, char **argv)
        compareResult(stmt, ret, "SQLTablePrivileges (sys, table_types)",
                "Resultset with 7 columns\n"
                "Resultset with 0 rows\n"
-               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      GRANTOR GRANTEE 
PRIVILEGE       IS_GRANTABLE\n");
+               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      GRANTOR GRANTEE 
PRIVILEGE       IS_GRANTABLE\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WCHAR(1024)     
WCHAR(1024)     WVARCHAR(40)    WCHAR(3)\n");
 
        ret = SQLColumnPrivileges(stmt, (SQLCHAR*)"", SQL_NTS,
                        (SQLCHAR*)"sys", SQL_NTS, (SQLCHAR*)"table_types", 
SQL_NTS,
@@ -459,7 +553,8 @@ main(int argc, char **argv)
        compareResult(stmt, ret, "SQLColumnPrivileges (sys, table_types, %)",
                "Resultset with 8 columns\n"
                "Resultset with 0 rows\n"
-               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
GRANTOR GRANTEE PRIVILEGE       IS_GRANTABLE\n");
+               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
GRANTOR GRANTEE PRIVILEGE       IS_GRANTABLE\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
WCHAR(1024)     WCHAR(1024)     WVARCHAR(40)    WCHAR(3)\n");
 
        // odbctst.pk_uc
        ret = SQLPrimaryKeys(stmt, (SQLCHAR*)"", SQL_NTS,
@@ -468,6 +563,7 @@ main(int argc, char **argv)
                "Resultset with 6 columns\n"
                "Resultset with 1 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
KEY_SEQ PK_NAME\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WVARCHAR(1024)\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   id1     1       
pk_uc_id1_pkey\n");
 
        ret = SQLSpecialColumns(stmt, SQL_BEST_ROWID, (SQLCHAR*)"", SQL_NTS,
@@ -477,6 +573,7 @@ main(int argc, char **argv)
                "Resultset with 8 columns\n"
                "Resultset with 1 rows\n"
                "SCOPE  COLUMN_NAME     DATA_TYPE       TYPE_NAME       
COLUMN_SIZE     BUFFER_LENGTH   DECIMAL_DIGITS  PSEUDO_COLUMN\n"
+               "SMALLINT       WVARCHAR(1024)  SMALLINT        WCHAR(25)       
INTEGER BIGINT  BIGINT  SMALLINT\n"
                "1      id1     4       INTEGER 32      11      0       1\n");
 
        ret = SQLSpecialColumns(stmt, SQL_ROWVER, (SQLCHAR*)"", SQL_NTS,
@@ -485,7 +582,8 @@ main(int argc, char **argv)
        compareResult(stmt, ret, "SQLSpecialColumns (odbctst, pk_uc, 
SQL_ROWVER)",
                "Resultset with 8 columns\n"
                "Resultset with 0 rows\n"
-               "SCOPE  COLUMN_NAME     DATA_TYPE       TYPE_NAME       
COLUMN_SIZE     BUFFER_LENGTH   DECIMAL_DIGITS  PSEUDO_COLUMN\n");
+               "SCOPE  COLUMN_NAME     DATA_TYPE       TYPE_NAME       
COLUMN_SIZE     BUFFER_LENGTH   DECIMAL_DIGITS  PSEUDO_COLUMN\n"
+               "SMALLINT       WVARCHAR(1)     SMALLINT        WVARCHAR(4)     
INTEGER INTEGER SMALLINT        SMALLINT\n");
 
        ret = SQLStatistics(stmt, (SQLCHAR*)"", SQL_NTS,
                        (SQLCHAR*)"odbctst", SQL_NTS, (SQLCHAR*)"pk_uc", 
SQL_NTS,
@@ -494,6 +592,7 @@ main(int argc, char **argv)
                "Resultset with 13 columns\n"
                "Resultset with 2 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      NON_UNIQUE      
INDEX_QUALIFIER INDEX_NAME      TYPE    ORDINAL_POSITION        COLUMN_NAME     
ASC_OR_DESC     CARDINALITY     PAGES   FILTER_CONDITION\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  SMALLINT        
WVARCHAR(1)     WVARCHAR(1024)  SMALLINT        SMALLINT        WVARCHAR(1024)  
WCHAR(1)        INTEGER INTEGER WVARCHAR(1)\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   0       NULL    
pk_uc_id1_pkey  2       1       id1     NULL    0       NULL    NULL\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   0       NULL    
pk_uc_name1_unique      2       1       name1   NULL    0       NULL    
NULL\n");
 
@@ -504,6 +603,7 @@ main(int argc, char **argv)
                "Resultset with 13 columns\n"
                "Resultset with 4 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      NON_UNIQUE      
INDEX_QUALIFIER INDEX_NAME      TYPE    ORDINAL_POSITION        COLUMN_NAME     
ASC_OR_DESC     CARDINALITY     PAGES   FILTER_CONDITION\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  SMALLINT        
WVARCHAR(1)     WVARCHAR(1024)  SMALLINT        SMALLINT        WVARCHAR(1024)  
WCHAR(1)        INTEGER INTEGER WVARCHAR(1)\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   0       NULL    
pk_uc_id1_pkey  2       1       id1     NULL    0       NULL    NULL\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   0       NULL    
pk_uc_name1_unique      2       1       name1   NULL    0       NULL    NULL\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   1       NULL    pk_uc_i 
2       1       id1     NULL    NULL    NULL    NULL\n"
@@ -515,6 +615,7 @@ main(int argc, char **argv)
                "Resultset with 7 columns\n"
                "Resultset with 4 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      GRANTOR GRANTEE 
PRIVILEGE       IS_GRANTABLE\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WCHAR(1024)     
WCHAR(1024)     WVARCHAR(40)    WCHAR(3)\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   _SYSTEM monetdb DELETE  
NO\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   _SYSTEM monetdb INSERT  
NO\n"
                "mTests_sql_odbc_tests  odbctst pk_uc   monetdb PUBLIC  SELECT  
NO\n"
@@ -526,7 +627,8 @@ main(int argc, char **argv)
        compareResult(stmt, ret, "SQLColumnPrivileges (odbctst, pk_uc, %1)",
                "Resultset with 8 columns\n"
                "Resultset with 0 rows\n"
-               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
GRANTOR GRANTEE PRIVILEGE       IS_GRANTABLE\n");
+               "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
GRANTOR GRANTEE PRIVILEGE       IS_GRANTABLE\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
WCHAR(1024)     WCHAR(1024)     WVARCHAR(40)    WCHAR(3)\n");
 
        // tmp.tmp_pk_uc
        ret = SQLPrimaryKeys(stmt, (SQLCHAR*)"", SQL_NTS,
@@ -535,6 +637,7 @@ main(int argc, char **argv)
                "Resultset with 6 columns\n"
                "Resultset with 1 rows\n"
                "TABLE_CAT      TABLE_SCHEM     TABLE_NAME      COLUMN_NAME     
KEY_SEQ PK_NAME\n"
+               "WCHAR(21)      WVARCHAR(1024)  WVARCHAR(1024)  WVARCHAR(1024)  
SMALLINT        WVARCHAR(1024)\n"
                "mTests_sql_odbc_tests  tmp     tmp_pk_uc       id1     1       
tmp_pk_uc_id1_pkey\n");
 
        ret = SQLSpecialColumns(stmt, SQL_BEST_ROWID, (SQLCHAR*)"", SQL_NTS,
@@ -544,6 +647,7 @@ main(int argc, char **argv)
                "Resultset with 8 columns\n"
                "Resultset with 1 rows\n"
                "SCOPE  COLUMN_NAME     DATA_TYPE       TYPE_NAME       
COLUMN_SIZE     BUFFER_LENGTH   DECIMAL_DIGITS  PSEUDO_COLUMN\n"
+               "SMALLINT       WVARCHAR(1024)  SMALLINT        WCHAR(25)       
INTEGER BIGINT  BIGINT  SMALLINT\n"
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to