Modified:
trunk/testsuites/t_jbalint/catalog.c
trunk/testsuites/t_jbalint/t_jbalint.h
trunk/testsuites/t_jbalint/t_jbalint_suite.c
Log:
Added tests for SQLColAttribute issues
Expanded SQLColumns tests to nullability
Modified: trunk/testsuites/t_jbalint/catalog.c
===================================================================
--- trunk/testsuites/t_jbalint/catalog.c 2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/catalog.c 2007-05-02 21:14:54 UTC (rev 82)
@@ -575,21 +575,26 @@
SQLHANDLE stmt = get_statement();
SQLSMALLINT colcnt;
SQLLEN len[18];
- const SQLSMALLINT realtype[3] = {SQL_INTEGER, SQL_VARCHAR, SQL_INTEGER};
+ const SQLSMALLINT realtype[3] =
+ {SQL_INTEGER, SQL_VARCHAR, SQL_INTEGER};
+ const SQLSMALLINT realnullable[3] =
+ {SQL_NO_NULLS, SQL_NULLABLE, SQL_NULLABLE};
SQLRETURN rc;
int i;
+ const char *realtable = "simple2";
SQLCHAR catalog[STRLEN];
SQLCHAR schema[STRLEN];
SQLCHAR table[STRLEN];
SQLCHAR colname[STRLEN];
SQLSMALLINT datatype;
SQLCHAR currdb[STRLEN];
+ SQLSMALLINT nullable;
CHECK_SQL_S(get_currdb(stmt, currdb), stmt);
reset_statement(stmt);
CHECK_SQL_S(SQLColumns(stmt, NULL, SQL_NTS, NULL, SQL_NTS,
- (SQLCHAR *)TD_SIMPLE1_TBL, SQL_NTS, NULL, SQL_NTS), stmt);
+ (SQLCHAR *)realtable, SQL_NTS, NULL, SQL_NTS), stmt);
CHECK_SQL_S(SQLNumResultCols(stmt, &colcnt), stmt);
OT_ASSERT_INT_MSG("SQLColumns col count for ODBC v3", 18, colcnt);
@@ -602,7 +607,9 @@
CHECK_SQL_S(SQLBindCol(stmt, COLNAM+1, SQL_C_CHAR,
colname, STRLEN, &len[COLNAM]), stmt);
CHECK_SQL_S(SQLBindCol(stmt, COLTYP+1, SQL_C_SHORT,
- &datatype, 0, &len[COLTYP]), stmt);
+ &datatype, 0, NULL), stmt);
+ CHECK_SQL_S(SQLBindCol(stmt, COLNUL+1, SQL_C_SHORT,
+ &nullable, 0, NULL), stmt);
for(i = 0; (rc = SQLFetch(stmt)) == SQL_SUCCESS; ++i)
{
@@ -615,8 +622,8 @@
OT_ASSERT_STR_MSG("Schema name", "", schema);
OT_ASSERT_INT(0, len[COLSCH]);
test_printf("\tTable=%s\n", table);
- OT_ASSERT_STR_MSG("Table name", TD_SIMPLE1_TBL, table);
- OT_ASSERT_INT((int)strlen(TD_SIMPLE1_TBL), len[COLTBL]);
+ OT_ASSERT_STR_MSG("Table name", realtable, table);
+ OT_ASSERT_INT((int)strlen(realtable), len[COLTBL]);
test_printf("\tName=%s\n", colname);
OT_ASSERT_STR_MSG("Column name",
TD_SIMPLE1_COLNAMES[i], colname);
@@ -624,6 +631,8 @@
test_printf("\tType=%d\n", datatype);
OT_ASSERT_INT_MSG("Data type", realtype[i], datatype);
+ test_printf("\tNullable=%d\n", nullable);
+ OT_ASSERT_INT_MSG("Nullability", realnullable[i], nullable);
}
OT_ASSERT_INT(SQL_NO_DATA, rc);
OT_ASSERT_INT_MSG("Saw all columns", 3, i);
@@ -944,3 +953,39 @@
free_statement(stmt);
}
+
+/*
+ * Test the type-related info from SQLColAttribute.
+ *
+ * http://bugs.mysql.com/bug.php?id=20127
+ */
+OT_TEST_METHOD(colattribute_types)
+{
+ int colcnt = 36;
+ SQLUSMALLINT i;
+ SQLINTEGER type;
+ SQLHANDLE stmt = get_statement();
+ SQLCHAR colname[STRLEN];
+ const char *selqry = "select xbit, "
+ "xtinyint, xutinyint, xboolean, "
+ "xsmallint, xusmallint, xmediumint, xumediumint, "
+ "xint, xuint, xbigint, xubigint, "
+ "xfloat, xdouble, xdecimal, "
+ "xdate, xdatetime, xtimestamp, xtime, xyear, "
+ "xchar, xvarchar, xnchar, xnvarchar, xbinary, xvarbinary, "
+ "xtinyblob, xtinytext, xblob, xtext, xmediumblob, xmediumtext, "
+ "xlongblob, xlongtext, xenum, xset from all_types";
+
+ CHECK_SQL_S(SQLExecDirect(stmt, (SQLCHAR *)selqry, SQL_NTS), stmt);
+ for(i = 0; i < colcnt; ++i)
+ {
+ CHECK_SQL_S(SQLColAttribute(stmt, i+1, SQL_DESC_NAME,
+ colname, STRLEN, NULL, NULL), stmt);
+ CHECK_SQL_S(SQLColAttribute(stmt, i+1, SQL_DESC_CONCISE_TYPE,
+ NULL, 0, NULL, &type), stmt);
+ test_printf("Type of %s is %d\n", colname, type);
+ /* TODO finish test */
+ }
+
+ free_statement(stmt);
+}
\ No newline at end of file
Modified: trunk/testsuites/t_jbalint/t_jbalint.h
===================================================================
--- trunk/testsuites/t_jbalint/t_jbalint.h 2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/t_jbalint.h 2007-05-02 21:14:54 UTC (rev 82)
@@ -59,6 +59,7 @@
OT_TEST_METHOD(sqltables_schemas);
OT_TEST_METHOD(sqltables_tbltypes);
OT_TEST_METHOD(colattribute_basic);
+OT_TEST_METHOD(colattribute_types);
/* getdata.c */
OT_TEST_METHOD(getdata_alltypes);
OT_TEST_METHOD(getdata_binary);
Modified: trunk/testsuites/t_jbalint/t_jbalint_suite.c
===================================================================
--- trunk/testsuites/t_jbalint/t_jbalint_suite.c 2007-04-26 08:27:00 UTC (rev 81)
+++ trunk/testsuites/t_jbalint/t_jbalint_suite.c 2007-05-02 21:14:54 UTC (rev 82)
@@ -56,6 +56,7 @@
OT_SUITE_ADD_TEST(sqltables_schemas, NULL, NULL);
OT_SUITE_ADD_TEST(sqltables_tbltypes, NULL, NULL);
OT_SUITE_ADD_TEST(colattribute_basic, NULL, NULL);
+ OT_SUITE_ADD_TEST(colattribute_types, NULL, NULL);
/* getdata.c */
OT_SUITE_ADD_TEST(getdata_alltypes, NULL, NULL);
OT_SUITE_ADD_TEST(getdata_binary, NULL, NULL);
@@ -97,4 +98,3 @@
OT_SUITE_ADD_TEST(wchar_write, NULL, NULL);
OT_SUITE_ADD_TEST(utf8_read_write, NULL, NULL);
OT_SUITE_REGISTER_END
-
| Thread |
|---|
| • ODBC C-tests commit: r82 - trunk/testsuites/t_jbalint | jbalint | 2 May |