From: Date: January 24 2008 3:10am Subject: Connector/ODBC 3.51 commit: r1010 - in branches/guffert: driver test List-Archive: http://lists.mysql.com/commits/41187 Message-Id: <200801240210.m0O2A20J026616@bk-internal.mysql.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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));