Modified:
trunk/testsuites/t_unixodbc_sap/sap_colattrb.c
trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c
trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
Log:
SQLColAttribute Function - SQL_DESC_SCHEMA_NAME is suspicious. See TODO.
Modified: trunk/testsuites/t_unixodbc_sap/sap_colattrb.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_colattrb.c 2007-06-07 09:20:40 UTC (rev 131)
+++ trunk/testsuites/t_unixodbc_sap/sap_colattrb.c 2007-06-07 09:39:28 UTC (rev 132)
@@ -25,8 +25,9 @@
10, /* SQL_DESC_NUM_PREC_RADIX */
4, /* SQL_DESC_OCTET_LENGTH */
11, /* SQL_DESC_PRECISION */
- 0 /* SQL_DESC_SCALE */
-
+ 0, /* SQL_DESC_SCALE */
+ "", SQL_NTS /* SQL_DESC_SCHEMA_NAME */
+
},
/* stop condition and "documentation" */
{
@@ -54,7 +55,9 @@
10, /* SQL_DESC_NUM_PREC_RADIX */
4, /* SQL_DESC_OCTET_LENGTH */
11, /* SQL_DESC_PRECISION */
- SQL_NULL_DATA /* SQL_DESC_SCALE */
+ SQL_NULL_DATA, /* SQL_DESC_SCALE */
+ "", SQL_NTS /* SQL_DESC_SCHEMA_NAME + len */
+ /* NOTE: "" tells the test to fill the field
automatically */
}
};
@@ -104,6 +107,15 @@
if (exp->name_len == SQL_NTS)
exp->name_len = (SQLSMALLINT)strlen((char*)exp->name);
+ if (exp->schema_name_len == SQL_NTS)
+ {
+ if (!strcmp("", exp->schema_name))
+ {
+ strncpy(exp->schema_name, catalog, sizeof(exp->schema_name));
+ }
+ exp->schema_name_len = (SQLSMALLINT)strlen((char*)exp->schema_name);
+ }
+
if (exp->catalog_name_len == SQL_NTS)
{
if (!strcmp("", exp->catalog_name))
@@ -383,7 +395,23 @@
hstmt);
OT_ASSERT_INT(exp->scale, col.scale);
+ CHECK_SQL_S(ret = SQLColAttribute(hstmt, num_cols, SQL_DESC_SCHEMA_NAME,
+ (SQLPOINTER)col.schema_name,
+ (SQLSMALLINT)sizeof(col.schema_name),
+ &out_len,
+ (SQLPOINTER)&dummy_num),
+ hstmt);
+ if (strncmp(exp->schema_name, col.schema_name, exp->schema_name_len))
+ {
+ snprintf(msg1, sizeof(msg1), "SCHEMA NAME: expecting '%s' got '%s'",
+ exp->schema_name,
+ col.schema_name);
+ OT_FAIL(msg1);
+ }
+ OT_ASSERT_INT(exp->schema_name_len, out_len);
+
+
}
/* SQL_DESC_COUNT */
Modified: trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c
===================================================================
--- trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c 2007-06-07 09:20:40 UTC (rev 131)
+++ trunk/testsuites/t_unixodbc_sap/sap_todo_v3.c 2007-06-07 09:39:28 UTC (rev 132)
@@ -305,5 +305,47 @@
OT_TEST_METHOD(sap_todo11)
{
- OT_FAIL("Dummy");
-}
\ No newline at end of file
+ SQLRETURN ret;
+ SQLHANDLE hdbc;
+ SQLHANDLE hstmt;
+ COLLATTRB_STRUCT col;
+ SQLINTEGER dummy_num;
+ SQLSMALLINT out_len;
+ char catalog[COLATTRB_STR_LEN];
+
+ OT_TODO("Isolated problem from sap_collattrb.c");
+ OT_TODO("No schema name set? v5 seems to return the database/catalog name.");
+ OT_TODO("Remove this test code after verficiation, it's nothing but a part of
sap_collattrb.c");
+ OT_TODO("2007-06-06, v3 issue, see code comments!");
+
+ OT_ASSERT(unixodbc_sap_get_dbc_handle(&hdbc));
+ if (unixodbc_sap_get_catalog(hdbc, catalog, sizeof(catalog)))
+ OT_FAIL(catalog);
+
+ CHECK_SQL(ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt),
+ hdbc, SQL_HANDLE_DBC);
+ OT_ASSERT_INT_MSG("SQLAllocHandle()", SQL_SUCCESS, ret);
+
+ CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"DROP TABLE IF EXISTS \"" TABLE_NAME "\"",
SQL_NTS), hstmt);
+ CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"CREATE TABLE " TABLE_NAME " ("
+ "ID INTEGER "
+ ") ENGINE = " TABLE_ENGINE, SQL_NTS), hstmt);
+ CHECK_SQL_S(SQLFreeStmt(hstmt, SQL_CLOSE), hstmt);
+ CHECK_SQL_S(SQLExecDirect(hstmt,
+ (SQLCHAR*)"INSERT INTO " TABLE_NAME " VALUES (10)",
+ SQL_NTS),
+ hstmt);
+ CHECK_SQL_S(SQLExecDirect(hstmt, (SQLCHAR*)"SELECT * FROM " TABLE_NAME, SQL_NTS),
hstmt);
+
+ CHECK_SQL_S(ret = SQLColAttribute(hstmt, 1, SQL_DESC_SCHEMA_NAME,
+ (SQLPOINTER)col.schema_name,
+ (SQLSMALLINT)sizeof(col.schema_name),
+ &out_len,
+ (SQLPOINTER)&dummy_num),
+ hstmt);
+
+ test_printf("SCHEMA NAME: Expecting '%s' got '%s'", catalog, col.schema_name);
+ OT_ASSERT(0 == strncmp(catalog, col.schema_name, strlen(catalog)));
+
+ CHECK_SQL_S(SQLFreeHandle(SQL_HANDLE_STMT, hstmt), hstmt);
+}
Modified: trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h
===================================================================
--- trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h 2007-06-07 09:20:40 UTC (rev
131)
+++ trunk/testsuites/t_unixodbc_sap/t_unixodbc_sap_suite.h 2007-06-07 09:39:28 UTC (rev
132)
@@ -201,6 +201,8 @@
SQLINTEGER octet_length; /* SQL_DESC_OCTET_LENGTH */
SQLINTEGER precision; /* SQL_DESC_PRECISION */
SQLINTEGER scale; /* SQL_DESC_SCALE */
+ SQLCHAR schema_name[COLATTRB_STR_LEN]; /* SQL_DESC_SCHEMA_NAME */
+ SQLSMALLINT schema_name_len;
} COLLATTRB_STRUCT;
OT_TEST_METHOD(sap_colattrb);
| Thread |
|---|
| • ODBC C-tests commit: r132 - trunk/testsuites/t_unixodbc_sap | uwendel | 7 Jun |