Changeset: ed6adf7663d6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ed6adf7663d6
Modified Files:
        clients/odbc/samples/testgetinfo.c
        sql/odbc/samples/Tests/testgetinfo.stable.out
Branch: Apr2019
Log Message:

Improved printing of SQLGetInfo information.


diffs (truncated from 5735 to 300 lines):

diff --git a/clients/odbc/samples/testgetinfo.c 
b/clients/odbc/samples/testgetinfo.c
--- a/clients/odbc/samples/testgetinfo.c
+++ b/clients/odbc/samples/testgetinfo.c
@@ -12,6 +12,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdint.h>
+#include <stdbool.h>
 #include <sql.h>
 #include <sqlext.h>
 
@@ -49,15 +50,15 @@ prerr(SQLSMALLINT tpe, SQLHANDLE hnd, co
        }
 }
 
-static void
+static bool
 check(SQLRETURN ret, SQLSMALLINT tpe, SQLHANDLE hnd, const char *func)
 {
        switch (ret) {
        case SQL_SUCCESS:
-               break;
+               return true;
        case SQL_SUCCESS_WITH_INFO:
                prerr(tpe, hnd, func, "Info");
-               break;
+               return true;
        case SQL_ERROR:
                prerr(tpe, hnd, func, "Error");
                break;
@@ -68,6 +69,7 @@ check(SQLRETURN ret, SQLSMALLINT tpe, SQ
                fprintf(stderr, "%s: Unexpected return value\n", func);
                break;
        }
+       return false;
 }
 
 int
@@ -110,2928 +112,3103 @@ main(int argc, char **argv)
        check(ret, SQL_HANDLE_DBC, dbc, "SQLConnect");
 
        ret = SQLGetInfo(dbc, SQL_ACCESSIBLE_PROCEDURES, str, sizeof(str), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ACCESSIBLE_PROCEDURES");
-       printf("SQL_ACCESSIBLE_PROCEDURES: %.*s\n", resultlen, str);
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_ACCESSIBLE_PROCEDURES")) {
+               printf("SQL_ACCESSIBLE_PROCEDURES: %.*s\n", resultlen, str);
+       }
 
        ret = SQLGetInfo(dbc, SQL_ACCESSIBLE_TABLES, str, sizeof(str), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ACCESSIBLE_TABLES");
-       printf("SQL_ACCESSIBLE_TABLES: %.*s\n", resultlen, str);
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_ACCESSIBLE_TABLES")) {
+               printf("SQL_ACCESSIBLE_TABLES: %.*s\n", resultlen, str);
+       }
 
        ret = SQLGetInfo(dbc, SQL_ACTIVE_ENVIRONMENTS, &s, sizeof(s), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ACTIVE_ENVIRONMENTS");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_ACTIVE_ENVIRONMENTS")) {
+       }
 
        ret = SQLGetInfo(dbc, SQL_AGGREGATE_FUNCTIONS, &i, sizeof(i), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_AGGREGATE_FUNCTIONS");
-       printf("SQL_AGGREGATE_FUNCTIONS:");
-       if (i & SQL_AF_ALL)
-               printf(" SQL_AF_ALL");
-       if (i & SQL_AF_AVG)
-               printf(" SQL_AF_AVG");
-       if (i & SQL_AF_COUNT)
-               printf(" SQL_AF_COUNT");
-       if (i & SQL_AF_DISTINCT)
-               printf(" SQL_AF_DISTINCT");
-       if (i & SQL_AF_MAX)
-               printf(" SQL_AF_MAX");
-       if (i & SQL_AF_MIN)
-               printf(" SQL_AF_MIN");
-       if (i & SQL_AF_SUM)
-               printf(" SQL_AF_SUM");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_AGGREGATE_FUNCTIONS")) {
+               printf("SQL_AGGREGATE_FUNCTIONS:");
+               if (i & SQL_AF_ALL)
+                       printf(" SQL_AF_ALL");
+               if (i & SQL_AF_AVG)
+                       printf(" SQL_AF_AVG");
+               if (i & SQL_AF_COUNT)
+                       printf(" SQL_AF_COUNT");
+               if (i & SQL_AF_DISTINCT)
+                       printf(" SQL_AF_DISTINCT");
+               if (i & SQL_AF_MAX)
+                       printf(" SQL_AF_MAX");
+               if (i & SQL_AF_MIN)
+                       printf(" SQL_AF_MIN");
+               if (i & SQL_AF_SUM)
+                       printf(" SQL_AF_SUM");
+               printf("\n");
+       }
 
        ret = SQLGetInfo(dbc, SQL_ALTER_DOMAIN, &i, sizeof(i), &resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ALTER_DOMAIN");
-       printf("SQL_ALTER_DOMAIN:");
-       if (i & SQL_AD_ADD_DOMAIN_CONSTRAINT)
-               printf(" SQL_AD_ADD_DOMAIN_CONSTRAINT");
-       if (i & SQL_AD_ADD_DOMAIN_DEFAULT)
-               printf(" SQL_AD_ADD_DOMAIN_DEFAULT");
-       if (i & SQL_AD_CONSTRAINT_NAME_DEFINITION)
-               printf(" SQL_AD_CONSTRAINT_NAME_DEFINITION");
-       if (i & SQL_AD_DROP_DOMAIN_CONSTRAINT)
-               printf(" SQL_AD_DROP_DOMAIN_CONSTRAINT");
-       if (i & SQL_AD_DROP_DOMAIN_DEFAULT)
-               printf(" SQL_AD_DROP_DOMAIN_DEFAULT");
-       if (i & SQL_AD_ADD_CONSTRAINT_DEFERRABLE)
-               printf(" SQL_AD_ADD_CONSTRAINT_DEFERRABLE");
-       if (i & SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE)
-               printf(" SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE");
-       if (i & SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED)
-               printf(" SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED");
-       if (i & SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE)
-               printf(" SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ALTER_DOMAIN")) {
+               printf("SQL_ALTER_DOMAIN:");
+               if (i & SQL_AD_ADD_DOMAIN_CONSTRAINT)
+                       printf(" SQL_AD_ADD_DOMAIN_CONSTRAINT");
+               if (i & SQL_AD_ADD_DOMAIN_DEFAULT)
+                       printf(" SQL_AD_ADD_DOMAIN_DEFAULT");
+               if (i & SQL_AD_CONSTRAINT_NAME_DEFINITION)
+                       printf(" SQL_AD_CONSTRAINT_NAME_DEFINITION");
+               if (i & SQL_AD_DROP_DOMAIN_CONSTRAINT)
+                       printf(" SQL_AD_DROP_DOMAIN_CONSTRAINT");
+               if (i & SQL_AD_DROP_DOMAIN_DEFAULT)
+                       printf(" SQL_AD_DROP_DOMAIN_DEFAULT");
+               if (i & SQL_AD_ADD_CONSTRAINT_DEFERRABLE)
+                       printf(" SQL_AD_ADD_CONSTRAINT_DEFERRABLE");
+               if (i & SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE)
+                       printf(" SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE");
+               if (i & SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED)
+                       printf(" SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED");
+               if (i & SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE)
+                       printf(" SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE");
+               printf("\n");
+       }
 
        ret = SQLGetInfo(dbc, SQL_ALTER_TABLE, &i, sizeof(i), &resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ALTER_TABLE");
-       printf("SQL_ALTER_TABLE:");
-       if (i & SQL_AT_ADD_COLUMN_COLLATION)
-               printf(" SQL_AT_ADD_COLUMN_COLLATION");
-       if (i & SQL_AT_ADD_COLUMN_DEFAULT)
-               printf(" SQL_AT_ADD_COLUMN_DEFAULT");
-       if (i & SQL_AT_ADD_COLUMN_SINGLE)
-               printf(" SQL_AT_ADD_COLUMN_SINGLE");
-       if (i & SQL_AT_ADD_CONSTRAINT)
-               printf(" SQL_AT_ADD_CONSTRAINT");
-       if (i & SQL_AT_ADD_TABLE_CONSTRAINT)
-               printf(" SQL_AT_ADD_TABLE_CONSTRAINT");
-       if (i & SQL_AT_CONSTRAINT_NAME_DEFINITION)
-               printf(" SQL_AT_CONSTRAINT_NAME_DEFINITION");
-       if (i & SQL_AT_DROP_COLUMN_CASCADE)
-               printf(" SQL_AT_DROP_COLUMN_CASCADE");
-       if (i & SQL_AT_DROP_COLUMN_DEFAULT)
-               printf(" SQL_AT_DROP_COLUMN_DEFAULT");
-       if (i & SQL_AT_DROP_COLUMN_RESTRICT)
-               printf(" SQL_AT_DROP_COLUMN_RESTRICT");
-       if (i & SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE)
-               printf(" SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE");
-       if (i & SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT)
-               printf(" SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT");
-       if (i & SQL_AT_SET_COLUMN_DEFAULT)
-               printf(" SQL_AT_SET_COLUMN_DEFAULT");
-       if (i & SQL_AT_CONSTRAINT_INITIALLY_DEFERRED)
-               printf(" SQL_AT_CONSTRAINT_INITIALLY_DEFERRED");
-       if (i & SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE)
-               printf(" SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE");
-       if (i & SQL_AT_CONSTRAINT_DEFERRABLE)
-               printf(" SQL_AT_CONSTRAINT_DEFERRABLE");
-       if (i & SQL_AT_CONSTRAINT_NON_DEFERRABLE)
-               printf(" SQL_AT_CONSTRAINT_NON_DEFERRABLE");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ALTER_TABLE")) {
+               printf("SQL_ALTER_TABLE:");
+               if (i & SQL_AT_ADD_COLUMN_COLLATION)
+                       printf(" SQL_AT_ADD_COLUMN_COLLATION");
+               if (i & SQL_AT_ADD_COLUMN_DEFAULT)
+                       printf(" SQL_AT_ADD_COLUMN_DEFAULT");
+               if (i & SQL_AT_ADD_COLUMN_SINGLE)
+                       printf(" SQL_AT_ADD_COLUMN_SINGLE");
+               if (i & SQL_AT_ADD_CONSTRAINT)
+                       printf(" SQL_AT_ADD_CONSTRAINT");
+               if (i & SQL_AT_ADD_TABLE_CONSTRAINT)
+                       printf(" SQL_AT_ADD_TABLE_CONSTRAINT");
+               if (i & SQL_AT_CONSTRAINT_NAME_DEFINITION)
+                       printf(" SQL_AT_CONSTRAINT_NAME_DEFINITION");
+               if (i & SQL_AT_DROP_COLUMN_CASCADE)
+                       printf(" SQL_AT_DROP_COLUMN_CASCADE");
+               if (i & SQL_AT_DROP_COLUMN_DEFAULT)
+                       printf(" SQL_AT_DROP_COLUMN_DEFAULT");
+               if (i & SQL_AT_DROP_COLUMN_RESTRICT)
+                       printf(" SQL_AT_DROP_COLUMN_RESTRICT");
+               if (i & SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE)
+                       printf(" SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE");
+               if (i & SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT)
+                       printf(" SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT");
+               if (i & SQL_AT_SET_COLUMN_DEFAULT)
+                       printf(" SQL_AT_SET_COLUMN_DEFAULT");
+               if (i & SQL_AT_CONSTRAINT_INITIALLY_DEFERRED)
+                       printf(" SQL_AT_CONSTRAINT_INITIALLY_DEFERRED");
+               if (i & SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE)
+                       printf(" SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE");
+               if (i & SQL_AT_CONSTRAINT_DEFERRABLE)
+                       printf(" SQL_AT_CONSTRAINT_DEFERRABLE");
+               if (i & SQL_AT_CONSTRAINT_NON_DEFERRABLE)
+                       printf(" SQL_AT_CONSTRAINT_NON_DEFERRABLE");
+               printf("\n");
+       }
 
 #ifdef SQL_ASYNC_DBC_FUNCTIONS
        ret = SQLGetInfo(dbc, SQL_ASYNC_DBC_FUNCTIONS, &i, sizeof(i), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ASYNC_DBC_FUNCTIONS");
-       printf("SQL_ASYNC_DBC_FUNCTIONS:");
-       if (i & SQL_ASYNC_DBC_CAPABLE)
-               printf(" SQL_ASYNC_DBC_CAPABLE");
-       if (i & SQL_ASYNC_DBC_NOT_CAPABLE)
-               printf(" SQL_ASYNC_DBC_NOT_CAPABLE");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_ASYNC_DBC_FUNCTIONS")) {
+               printf("SQL_ASYNC_DBC_FUNCTIONS: ");
+               switch (i) {
+               case SQL_ASYNC_DBC_CAPABLE:
+                       printf("SQL_ASYNC_DBC_CAPABLE");
+                       break;
+               case SQL_ASYNC_DBC_NOT_CAPABLE:
+                       printf("SQL_ASYNC_DBC_NOT_CAPABLE");
+                       break;
+               }
+               printf("\n");
+       }
 #endif
 
        ret = SQLGetInfo(dbc, SQL_ASYNC_MODE, &i, sizeof(i), &resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ASYNC_MODE");
-       printf("SQL_ASYNC_MODE:");
-       if (i & SQL_AM_CONNECTION)
-               printf(" SQL_AM_CONNECTION");
-       if (i & SQL_AM_STATEMENT)
-               printf(" SQL_AM_STATEMENT");
-       if (i & SQL_AM_NONE)
-               printf(" SQL_AM_NONE");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ASYNC_MODE")) {
+               printf("SQL_ASYNC_MODE: ");
+               switch (i) {
+               case SQL_AM_CONNECTION:
+                       printf("SQL_AM_CONNECTION");
+                       break;
+               case SQL_AM_STATEMENT:
+                       printf("SQL_AM_STATEMENT");
+                       break;
+               case SQL_AM_NONE:
+                       printf("SQL_AM_NONE");
+                       break;
+               }
+               printf("\n");
+       }
 
 #ifdef SQL_ASYNC_NOTIFICATION
        ret = SQLGetInfo(dbc, SQL_ASYNC_NOTIFICATION, &i, sizeof(i), 
&resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_ASYNC_NOTIFICATION");
-       printf("SQL_ASYNC_NOTIFICATION:");
-       if (i & SQL_ASYNC_NOTIFICATION_CAPABLE)
-               printf(" SQL_ASYNC_NOTIFICATION_CAPABLE");
-       if (i & SQL_ASYNC_NOTIFICATION_NOT_CAPABLE)
-               printf(" SQL_ASYNC_NOTIFICATION_NOT_CAPABLE");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo 
SQL_ASYNC_NOTIFICATION")) {
+               printf("SQL_ASYNC_NOTIFICATION: ");
+               switch (i) {
+               case SQL_ASYNC_NOTIFICATION_CAPABLE:
+                       printf("SQL_ASYNC_NOTIFICATION_CAPABLE");
+                       break;
+               case SQL_ASYNC_NOTIFICATION_NOT_CAPABLE:
+                       printf("SQL_ASYNC_NOTIFICATION_NOT_CAPABLE");
+                       break;
+               }
+               printf("\n");
+       }
 #endif
 
        ret = SQLGetInfo(dbc, SQL_BATCH_ROW_COUNT, &i, sizeof(i), &resultlen);
-       check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_BATCH_ROW_COUNT");
-       printf("SQL_BATCH_ROW_COUNT:");
-       if (i & SQL_BRC_ROLLED_UP)
-               printf(" SQL_BRC_ROLLED_UP");
-       if (i & SQL_BRC_PROCEDURES)
-               printf(" SQL_BRC_PROCEDURES");
-       if (i & SQL_BRC_EXPLICIT)
-               printf(" SQL_BRC_EXPLICIT");
-       printf("\n");
+       if (check(ret, SQL_HANDLE_DBC, dbc, "SQLGetInfo SQL_BATCH_ROW_COUNT")) {
+               printf("SQL_BATCH_ROW_COUNT:");
+               if (i & SQL_BRC_ROLLED_UP)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to