Modified:
branches/guffert/driver/catalog.c
branches/guffert/test/my_catalog.c
Log:
fixed SQLForeignKeys() result order to match spec (with additional field to get
deterministic ordering)
fixed test to match it
Modified: branches/guffert/driver/catalog.c
===================================================================
--- branches/guffert/driver/catalog.c 2008-01-23 22:58:09 UTC (rev 1009)
+++ branches/guffert/driver/catalog.c 2008-01-24 02:10:02 UTC (rev 1010)
@@ -1639,7 +1639,7 @@
/*
****************************************************************************
-SQLForeignJeys
+SQLForeignKeys
****************************************************************************
*/
MYSQL_FIELD SQLFORE_KEYS_fields[]=
@@ -1805,6 +1805,9 @@
buff+= mysql_real_escape_string(mysql, buff, (char *)szPkTableName,
cbPkTableName);
buff= strmov(buff, "' ");
+
+ strmov(buff, "ORDER BY PKTABLE_CAT, PKTABLE_NAME, "
+ "KEY_SEQ, FKTABLE_NAME");
}
if (szFkTableName && szFkTableName[0])
@@ -1827,10 +1830,11 @@
buff+= mysql_real_escape_string(mysql, buff, (char *)szFkTableName,
cbFkTableName);
buff= strmov(buff, "' ");
+
+ strmov(buff, "ORDER BY FKTABLE_CAT, FKTABLE_NAME, "
+ "KEY_SEQ, PKTABLE_NAME");
}
- strmov(buff, "ORDER BY FKTABLE_CAT, FKTABLE_NAME, KEY_SEQ");
-
rc= MySQLPrepare(hstmt, (SQLCHAR *)query, SQL_NTS, FALSE);
if (!SQL_SUCCEEDED(rc))
return rc;
Modified: branches/guffert/test/my_catalog.c
===================================================================
--- branches/guffert/test/my_catalog.c 2008-01-23 22:58:09 UTC (rev 1009)
+++ branches/guffert/test/my_catalog.c 2008-01-24 02:10:02 UTC (rev 1010)
@@ -1168,9 +1168,16 @@
NULL, 0, (SQLCHAR *)"t_bug19923c", SQL_NTS));
ok_stmt(hstmt, SQLFetch(hstmt));
- is_str(my_fetch_str(hstmt, buff, 3), "t_bug19923b", 10);
+ is_str(my_fetch_str(hstmt, buff, 3), "t_bug19923a", 11);
+ is_str(my_fetch_str(hstmt, buff, 4), "a", 1);
+ is_str(my_fetch_str(hstmt, buff, 7), "t_bug19923c", 11);
+ is_str(my_fetch_str(hstmt, buff, 8), "a", 1);
+ is_str(my_fetch_str(hstmt, buff, 12), "second_constraint", 17);
+
+ ok_stmt(hstmt, SQLFetch(hstmt));
+ is_str(my_fetch_str(hstmt, buff, 3), "t_bug19923b", 11);
is_str(my_fetch_str(hstmt, buff, 4), "b", 1);
- is_str(my_fetch_str(hstmt, buff, 7), "t_bug19923c", 10);
+ is_str(my_fetch_str(hstmt, buff, 7), "t_bug19923c", 11);
is_str(my_fetch_str(hstmt, buff, 8), "b", 1);
is_str(my_fetch_str(hstmt, buff, 12), "first_constraint", 16);
ok_stmt(hstmt, SQLGetData(hstmt, 2, SQL_C_CHAR, buff, sizeof(buff), &len));
@@ -1178,13 +1185,6 @@
ok_stmt(hstmt, SQLGetData(hstmt, 6, SQL_C_CHAR, buff, sizeof(buff), &len));
is_num(len, SQL_NULL_DATA);
- ok_stmt(hstmt, SQLFetch(hstmt));
- is_str(my_fetch_str(hstmt, buff, 3), "t_bug19923a", 10);
- is_str(my_fetch_str(hstmt, buff, 4), "a", 1);
- is_str(my_fetch_str(hstmt, buff, 7), "t_bug19923c", 10);
- is_str(my_fetch_str(hstmt, buff, 8), "a", 1);
- is_str(my_fetch_str(hstmt, buff, 12), "second_constraint", 17);
-
expect_stmt(hstmt, SQLFetch(hstmt), SQL_NO_DATA_FOUND);
ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
| Thread |
|---|
| • Connector/ODBC 3.51 commit: r1010 - in branches/guffert: driver test | jbalint | 24 Jan |