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