Skip to content

Commit

Permalink
ODBC-313 The testcase for the fix, that has been already committed
Browse files Browse the repository at this point in the history
Added inclusion of header limits.h in ma_connection.c missing in some of
previous commits(ODBC-377 fix) containing reference to UINT_MAX, and
corrected testcase for that issue

Fix of "deprecated" warnings in testcases.
  • Loading branch information
lawrinn committed Mar 21, 2023
1 parent 2168db0 commit e4b7741
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 48 deletions.
1 change: 1 addition & 0 deletions ma_connection.c
Expand Up @@ -17,6 +17,7 @@
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
*************************************************************************************/
#include <ma_odbc.h>
#include <limits.h>

extern const char* DefaultPluginLocation;
static const char* utf8mb3 = "utf8mb3";
Expand Down
19 changes: 14 additions & 5 deletions test/basic.c
@@ -1,6 +1,6 @@
/*
Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
2013, 2017 MariaDB Corporation AB
2013, 2023 MariaDB Corporation AB
The MySQL Connector/ODBC is licensed under the terms of the GPLv2
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
Expand Down Expand Up @@ -299,7 +299,7 @@ ODBC_TEST(t_disconnect)
SQLHSTMT hstmt;

rc= SQLAllocHandle(SQL_HANDLE_DBC, Env, &hdbc1);
CHECK_ENV_RC(Env, rc);
CHECK_ENV_RC(Env, rc);
rc= SQLConnectW(hdbc1, wdsn, SQL_NTS, wuid, SQL_NTS, wpwd, SQL_NTS);
CHECK_DBC_RC(hdbc1, rc);

Expand Down Expand Up @@ -919,7 +919,6 @@ ODBC_TEST(t_describe_nulti)

ODBC_Connect(&henv1, &hdbc1, &hstmt1);


OK_SIMPLE_STMT(hstmt1, "DROP TABLE IF EXISTS t1");
OK_SIMPLE_STMT(hstmt1, "CREATE TABLE t1 (columnX VARCHAR(255))");

Expand Down Expand Up @@ -1642,6 +1641,7 @@ ODBC_TEST(t_odbc139)
CHECK_DBC_RC(Hdbc, SQLSetConnectAttr(Hdbc, SQL_ATTR_CURRENT_CATALOG, (SQLPOINTER)"test", 4));
Hstmt= DoConnect(Hdbc, FALSE, NULL, NULL, NULL, 0, NULL, &Compression, NULL, NULL);

FAIL_IF(Hstmt == NULL, "Connection with compression failed");

Thread= CreateThread(NULL, 0, FireQueryInThread, Hstmt, 0, NULL);
WaitRc= WaitForSingleObject(Thread, 1500);
Expand Down Expand Up @@ -1789,6 +1789,7 @@ ODBC_TEST(t_odbc377)
{
SQLHDBC Hdbc;
SQLHSTMT Hstmt;
SQLCHAR Sqlstate[6];

CHECK_ENV_RC(Env, SQLAllocConnect(Env, &Hdbc));

Expand All @@ -1811,13 +1812,21 @@ ODBC_TEST(t_odbc377)

CHECK_STMT_RC(Hstmt, SQLSetStmtAttr(Hstmt, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER)1, 0));
EXPECT_STMT(Hstmt, SQLExecDirect(Hstmt, "SELECT SLEEP(2)", SQL_NTS), SQL_ERROR);
CHECK_SQLSTATE_EX(Hstmt, SQL_HANDLE_STMT, "70100");
CHECK_STMT_RC(Hstmt, SQLGetDiagRec(SQL_HANDLE_STMT, Hstmt, 1, Sqlstate, NULL, NULL, 0, NULL));
if (strncmp(Sqlstate, "70100", 6) != 0 && strncmp(Sqlstate, "HY018", 6) != 0)
{
FAIL_IF(1, "Unexpected SQL State");
}
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));

/* Verifying the same(i.e. query timeout works) for the case of prepare + execute */
CHECK_STMT_RC(Hstmt, SQLPrepare(Hstmt, "SELECT SLEEP(2)", SQL_NTS));
EXPECT_STMT(Hstmt, SQLExecute(Hstmt), SQL_ERROR);
CHECK_SQLSTATE_EX(Hstmt, SQL_HANDLE_STMT, "70100");
CHECK_STMT_RC(Hstmt, SQLGetDiagRec(SQL_HANDLE_STMT, Hstmt, 1, Sqlstate, NULL, NULL, 0, NULL));
if (strncmp(Sqlstate, "70100", 6) != 0 && strncmp(Sqlstate, "HY018", 6) != 0)
{
FAIL_IF(1, "Unexpected SQL State");
}

CHECK_STMT_RC(Hstmt, SQLFreeStmt(Hstmt, SQL_DROP));
CHECK_DBC_RC(Hdbc, SQLDisconnect(Hdbc));
Expand Down
17 changes: 8 additions & 9 deletions test/cursor.c
Expand Up @@ -308,7 +308,7 @@ ODBC_TEST(t_setpos_del_all)

CHECK_STMT_RC(Stmt, SQLSetCursorName(Stmt, (SQLCHAR *)"venu", SQL_NTS));

CHECK_STMT_RC(Stmt, SQLSetStmtOption(Stmt, SQL_ROWSET_SIZE, 4));
CHECK_STMT_RC(Stmt, SQLSetStmtAttr(Stmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)4, 0));

OK_SIMPLE_STMT(Stmt, "SELECT * FROM t_setpos_del_all ORDER BY a ASC");

Expand Down Expand Up @@ -344,7 +344,7 @@ ODBC_TEST(t_setpos_del_all)

CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));

CHECK_STMT_RC(Stmt, SQLSetStmtOption(Stmt, SQL_ROWSET_SIZE, 1));
CHECK_STMT_RC(Stmt, SQLSetStmtAttr(Stmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)1, 0));

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t_setpos_del_all");

Expand Down Expand Up @@ -719,11 +719,11 @@ ODBC_TEST(t_pos_datetime_delete1)

SQLSetStmtAttr(Stmt, SQL_ATTR_CONCURRENCY, (SQLPOINTER) SQL_CONCUR_ROWVER, 0);
SQLSetStmtAttr(Stmt, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER) SQL_CURSOR_DYNAMIC, 0);
SQLSetStmtOption(Stmt,SQL_SIMULATE_CURSOR,SQL_SC_NON_UNIQUE);
SQLSetStmtAttr(Stmt, SQL_SIMULATE_CURSOR, (SQLPOINTER) SQL_SC_NON_UNIQUE, 0);

SQLSetStmtAttr(hstmt1, SQL_ATTR_CONCURRENCY, (SQLPOINTER) SQL_CONCUR_ROWVER, 0);
SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER) SQL_CURSOR_DYNAMIC, 0);
SQLSetStmtOption(hstmt1,SQL_SIMULATE_CURSOR,SQL_SC_NON_UNIQUE);
SQLSetStmtAttr(hstmt1, SQL_SIMULATE_CURSOR, (SQLPOINTER) SQL_SC_NON_UNIQUE, 0);

rc = SQLSetCursorName(Stmt, (SQLCHAR *)"venu_cur",8);
CHECK_STMT_RC(Stmt,rc);
Expand Down Expand Up @@ -897,7 +897,7 @@ ODBC_TEST(t_acc_crash)
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));
CHECK_STMT_RC(Stmt, SQLSetStmtAttr(Stmt, SQL_ATTR_CURSOR_TYPE,
(SQLPOINTER)SQL_CURSOR_STATIC, 0));
CHECK_STMT_RC(Stmt, SQLSetStmtOption(Stmt, SQL_ROWSET_SIZE, 1));
CHECK_STMT_RC(Stmt, SQLSetStmtAttr(Stmt, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)1, 0));

OK_SIMPLE_STMT(Stmt, "SELECT * FROM t_acc_crash ORDER BY a ASC");

Expand Down Expand Up @@ -2030,8 +2030,7 @@ ODBC_TEST(t_setpos_upd_bug1)
rc = SQLExtendedFetch(Stmt,SQL_FETCH_FIRST,0,NULL,&rgfRowStatus);
CHECK_STMT_RC(Stmt,rc);

rc = SQLSetStmtOption(Stmt,SQL_QUERY_TIMEOUT,30);
CHECK_STMT_RC(Stmt,rc);
CHECK_STMT_RC(Stmt, SQLSetStmtAttr(Stmt, SQL_QUERY_TIMEOUT, (SQLPOINTER)30, 0));

strcpy((char *)fname , "updated");
strcpy((char *)lname , "updated01234567890");
Expand Down Expand Up @@ -2754,7 +2753,7 @@ ODBC_TEST(t_bug32420)

CHECK_STMT_RC(hstmt1, SQLFreeStmt(hstmt1, SQL_CLOSE));

CHECK_STMT_RC(hstmt1, SQLSetStmtOption(hstmt1, SQL_ROWSET_SIZE, 4));
CHECK_STMT_RC(hstmt1, SQLSetStmtAttr(hstmt1, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)4, 0));

OK_SIMPLE_STMT(hstmt1, "SELECT * FROM bug32420");
CHECK_STMT_RC(hstmt1, SQLBindCol(hstmt1, 1, SQL_C_LONG, nData, 0, NULL));
Expand Down Expand Up @@ -2841,7 +2840,7 @@ ODBC_TEST(t_bug32420)

CHECK_STMT_RC(hstmt1, SQLFreeStmt(hstmt1, SQL_CLOSE));

CHECK_STMT_RC(hstmt1, SQLSetStmtOption(hstmt1, SQL_ROWSET_SIZE, 4));
CHECK_STMT_RC(hstmt1, SQLSetStmtAttr(hstmt1, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)4, 0));

OK_SIMPLE_STMT(hstmt1, "SELECT * FROM bug32420");
CHECK_STMT_RC(hstmt1, SQLBindCol(hstmt1, 1, SQL_C_LONG, nData, 0, NULL));
Expand Down
29 changes: 27 additions & 2 deletions test/info.c
Expand Up @@ -761,7 +761,7 @@ ODBC_TEST(odbc143)

/**
Test of connect attributes that used to be treated as wrong data type.
SQL_ATTR_TXN_ISOLATION aslo had issue, but it is already cared of by other test
SQL_ATTR_TXN_ISOLATION also had issue, but it is already cared of by other test
*/
ODBC_TEST(odbc317)
{
Expand All @@ -775,13 +775,15 @@ ODBC_TEST(odbc317)
/* We ourselves kinda return ODBC(TODO: need to check why), but all other DM's return DRIVER. iODBC 3.52.12 used to do that toTODO: need to check why. The test is anyway about using correct data type for the attribute */
if (iOdbc() && DmMinVersion(3, 52, 13))
{
#pragma warning(disable:4995)
#pragma warning(push)
is_num(lenAttr, SQL_CUR_USE_ODBC);
#pragma warning(pop)
}
else
{
is_num(lenAttr, SQL_CUR_USE_DRIVER);
}

return OK;
}

Expand Down Expand Up @@ -830,6 +832,28 @@ ODBC_TEST(odbc326)
return OK;
}

/* Some apps use 1212 attribute */
ODBC_TEST(odbc313)
{
SQLLEN attr1212= 0;
SQLRETURN rc= SQL_SUCCESS;

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t_odbc313");
OK_SIMPLE_STMT(Stmt, "CREATE TABLE t_odbc313 ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, a INT NOT NULL)");

OK_SIMPLE_STMT(Stmt, "SELECT id, a FROM t_odbc313");
rc= SQLColAttribute(Stmt, 1, 1212, NULL, 0, NULL, &attr1212);
FAIL_IF(rc != SQL_SUCCESS, "Only SQL_SUCCESS is expected");
is_num(attr1212, SQL_TRUE);
rc= SQLColAttribute(Stmt, 2, 1212, NULL, 0, NULL, &attr1212);
FAIL_IF(rc != SQL_SUCCESS, "Only SQL_SUCCESS is expected");
is_num(attr1212, SQL_FALSE);
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));

OK_SIMPLE_STMT(Stmt, "DROP TABLE t_odbc313");
return OK;
}


MA_ODBC_TESTS my_tests[]=
{
Expand All @@ -855,6 +879,7 @@ MA_ODBC_TESTS my_tests[]=
{ odbc143, "odbc143_odbc160_ANSI_QUOTES", NORMAL },
{ odbc317, "odbc317_conattributes", NORMAL },
{ odbc326, "odbc326", NORMAL },
{ odbc313, "odbc313", NORMAL },
{ NULL, NULL }
};

Expand Down
37 changes: 15 additions & 22 deletions test/multistatement.c
@@ -1,6 +1,6 @@
/*
Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
2013, 2019 MariaDB Corporation AB
2013, 2023 MariaDB Corporation AB
The MySQL Connector/ODBC is licensed under the terms of the GPLv2
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
Expand Down Expand Up @@ -79,27 +79,23 @@ ODBC_TEST(test_multi_on_off)

ODBC_TEST(test_params)
{
int i, j;
int i, j;

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t1; CREATE TABLE t1(a int)");

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t2; CREATE TABLE t2(a int)");

CHECK_STMT_RC(Stmt, SQLPrepare(Stmt, (SQLCHAR*)"INSERT INTO t1 VALUES (?), (?)", SQL_NTS));

CHECK_STMT_RC(Stmt, SQLBindParameter(Stmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 10, 0, &i, 0, NULL));

CHECK_STMT_RC(Stmt, SQLBindParameter(Stmt, 2, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 10, 0, &j, 0, NULL));


for (i=0; i < 100; i++)
{
j= i + 100;
CHECK_STMT_RC(Stmt, SQLExecute(Stmt));

while (SQLMoreResults(Stmt) == SQL_SUCCESS);
}

return OK;
}

Expand All @@ -108,15 +104,12 @@ ODBC_TEST(test_params_last_count_smaller)
int i, j, k;

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t1; CREATE TABLE t1(a int, b int)");

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t2; CREATE TABLE t2(a int)");

CHECK_STMT_RC(Stmt, SQLPrepare(Stmt, (SQLCHAR*)"INSERT INTO t1 VALUES (?,?); INSERT INTO t2 VALUES (?)", SQL_NTS));

CHECK_STMT_RC(Stmt, SQLBindParameter(Stmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 10, 0, &i, 0, NULL));

CHECK_STMT_RC(Stmt, SQLBindParameter(Stmt, 2, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 10, 0, &j, 0, NULL));

CHECK_STMT_RC(Stmt, SQLBindParameter(Stmt, 3, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 10, 0, &k, 0, NULL));

for (i=0; i < 100; i++)
Expand Down Expand Up @@ -546,8 +539,8 @@ ODBC_TEST(t_odbc177)

ODBC_TEST(t_odbc169)
{
SQLCHAR Query[][80]= {"SELECT 1 Col1; SELECT * from t_odbc169", "SELECT * FROM t_odbc169 ORDER BY col1 DESC; SELECT col3, col2 from t_odbc169",
"INSERT INTO t_odbc169 VALUES(8, 7, 'Row #4');SELECT * from t_odbc169"};
SQLCHAR Query[][80]= {"SELECT 1 Col1; SELECT * FROM t_odbc169", "SELECT * FROM t_odbc169 ORDER BY col1 DESC; SELECT col3, col2 FROM t_odbc169",
"INSERT INTO t_odbc169 VALUES(8, 7, 'Row #4');SELECT * FROM t_odbc169"};
char Expected[][3][7]={ {"1", "", "" }, /* RS 1*/
{"1", "2", "Row 1"}, /* RS 2*/
{"3", "4", "Row 2"},
Expand All @@ -568,14 +561,12 @@ ODBC_TEST(t_odbc169)
unsigned int i, RsIndex= 0, ExpectedRows[]= {1, 3, 3, 3, 0, 4};
SQLLEN Rows, ExpRowCount[]= {0, 0, 0, 0, 1, 0};
SQLSMALLINT ColumnsCount, expCols[]= {1, 3, 3, 2, 0, 3};
SQLRETURN rc;
SQLRETURN rc= SQL_SUCCESS;
SQLSMALLINT Column, Row= 0;
SQLCHAR ColumnData[MAX_ROW_DATA_LEN]={ 0 };

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t_odbc169");

OK_SIMPLE_STMT(Stmt, "CREATE TABLE t_odbc169(col1 INT, col2 INT, col3 varchar(32) not null)");

OK_SIMPLE_STMT(Stmt, "INSERT INTO t_odbc169 VALUES(1, 2, 'Row 1'),(3, 4, 'Row 2'), (5, 6, 'Row 3')");

for (i= 0; i < sizeof(Query)/sizeof(Query[0]); ++i)
Expand Down Expand Up @@ -667,12 +658,12 @@ ODBC_TEST(test_autocommit)
SQLCHAR tracked[256];

CHECK_ENV_RC(Env, SQLAllocConnect(Env, &Dbc));
CHECK_DBC_RC(Dbc, SQLSetConnectOption(Dbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_ON));
CHECK_DBC_RC(Dbc, SQLSetConnectAttr(Dbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, 0));
/* First testing with multistatements off */
Stmt = DoConnect(Dbc, FALSE, NULL, NULL, NULL, 0, NULL, &noMsOptions, NULL, "INITSTMT={SELECT 1}");
FAIL_IF(Stmt == NULL, "Connection error");

CHECK_DBC_RC(Dbc, SQLGetConnectOption(Dbc, SQL_AUTOCOMMIT, (SQLPOINTER)&ac));
CHECK_DBC_RC(Dbc, SQLGetConnectAttr(Dbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)&ac, sizeof(SQLUINTEGER), NULL));
is_num(ac, SQL_AUTOCOMMIT_ON);
OK_SIMPLE_STMT(Stmt, "SELECT @@autocommit");
CHECK_STMT_RC(Stmt, SQLFetch(Stmt));
Expand All @@ -681,12 +672,12 @@ ODBC_TEST(test_autocommit)
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_DROP));
CHECK_DBC_RC(Dbc, SQLDisconnect(Dbc));

CHECK_DBC_RC(Dbc, SQLSetConnectOption(Dbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF));
CHECK_DBC_RC(Dbc, SQLSetConnectAttr(Dbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0));

Stmt = DoConnect(Dbc, FALSE, NULL, NULL, NULL, 0, NULL, NULL, NULL, "INITSTMT={SELECT 1}");
FAIL_IF(Stmt == NULL, "Connection error");

CHECK_DBC_RC(Dbc, SQLGetConnectOption(Dbc, SQL_AUTOCOMMIT, (SQLPOINTER)&ac));
CHECK_DBC_RC(Dbc, SQLGetConnectAttr(Dbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)&ac, 0, NULL));
is_num(ac, SQL_AUTOCOMMIT_OFF);
OK_SIMPLE_STMT(Stmt, "SELECT @@autocommit");
CHECK_STMT_RC(Stmt, SQLFetch(Stmt));
Expand All @@ -700,18 +691,21 @@ ODBC_TEST(test_autocommit)
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));

OK_SIMPLE_STMT(Stmt, "SET autocommit=1;");
CHECK_DBC_RC(Dbc, SQLGetConnectOption(Dbc, SQL_AUTOCOMMIT, (SQLPOINTER)&ac));
CHECK_DBC_RC(Dbc, SQLGetConnectAttr(Dbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)&ac, 0, NULL));
is_num(ac, SQL_AUTOCOMMIT_ON);
}
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_DROP));
CHECK_DBC_RC(Dbc, SQLDisconnect(Dbc));

// Leaving couple of deprecated function calls to test them
#pragma warning(disable: 4996)
#pragma warning(push)
CHECK_DBC_RC(Dbc, SQLSetConnectOption(Dbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_ON));

Stmt = DoConnect(Dbc, FALSE, NULL, NULL, NULL, 0, NULL, NULL, NULL, "INITSTMT={SELECT 1}");
FAIL_IF(Stmt == NULL, "Connection error");

CHECK_DBC_RC(Dbc, SQLGetConnectOption(Dbc, SQL_AUTOCOMMIT, (SQLPOINTER)&ac));
#pragma warning(pop)
is_num(ac, SQL_AUTOCOMMIT_ON);
OK_SIMPLE_STMT(Stmt, "SELECT @@autocommit");
CHECK_STMT_RC(Stmt, SQLFetch(Stmt));
Expand All @@ -726,8 +720,7 @@ ODBC_TEST(test_autocommit)

ODBC_TEST(t_odbc375)
{
SQLSMALLINT ColumnCount;
const SQLCHAR *Query= "SELECT 1; SELECT(SELECT ENGINE FROM INFORMATION_SCHEMA.ENGINES); SELECT 2";
SQLCHAR *Query= "SELECT 1; SELECT(SELECT ENGINE FROM INFORMATION_SCHEMA.ENGINES); SELECT 2";

EXPECT_STMT(Stmt, SQLExecDirect(Stmt, Query, SQL_NTS), SQL_ERROR);
CHECK_STMT_RC(Stmt, SQLFreeStmt(Stmt, SQL_CLOSE));
Expand Down
10 changes: 5 additions & 5 deletions test/prepare.c
Expand Up @@ -1011,9 +1011,7 @@ ODBC_TEST(t_acc_update)
rc = SQLFreeStmt(Stmt,SQL_CLOSE);
mystmt(Stmt,rc);


rc = SQLSetConnectOption(Connection,SQL_AUTOCOMMIT,0L);
CHECK_DBC_RC(Connection,rc);
CHECK_DBC_RC(Connection, SQLSetConnectAttr(Connection, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0));

rc = SQLAllocStmt(Connection,&hstmt1);
CHECK_DBC_RC(Connection,rc);
Expand All @@ -1039,8 +1037,7 @@ ODBC_TEST(t_acc_update)
rc = SQLTransact(NULL,Connection,0);
CHECK_DBC_RC(Connection,rc);

rc = SQLSetConnectOption(Connection,SQL_AUTOCOMMIT,1L);
CHECK_DBC_RC(Connection,rc);
CHECK_DBC_RC(Connection, SQLSetConnectAttr(Connection, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, 0));

OK_SIMPLE_STMT(Stmt, "DROP TABLE IF EXISTS t_acc_update");

Expand All @@ -1059,11 +1056,14 @@ ODBC_TEST(t_bug29871)
OK_SIMPLE_STMT(Stmt, "CREATE TABLE t_bug29871 (a INT)");

/* The bug is related to calling deprecated SQLSetParam */
#pragma warning(disable:4996)
#pragma warning(push)
CHECK_STMT_RC(Stmt, SQLSetParam(Stmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
param, 0));
OK_SIMPLE_STMT(Stmt, "INSERT INTO t_bug29871 VALUES (?)");
CHECK_STMT_RC(Stmt, SQLSetParam(Stmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
param, 0));
#pragma warning(pop)
OK_SIMPLE_STMT(Stmt, "SELECT * FROM t_bug29871 WHERE a=?");
CHECK_STMT_RC(Stmt, SQLFetch(Stmt));
is_num(my_fetch_int(Stmt, 1), 1);
Expand Down
2 changes: 1 addition & 1 deletion test/result2.c
Expand Up @@ -52,7 +52,7 @@ ODBC_TEST(t_bug32420)

CHECK_STMT_RC(hstmt1, SQLFreeStmt(hstmt1, SQL_CLOSE));

CHECK_STMT_RC(hstmt1, SQLSetStmtOption(hstmt1, SQL_ROWSET_SIZE, 4));
CHECK_STMT_RC(hstmt1, SQLSetStmtAttr(hstmt1, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)4, 0));

OK_SIMPLE_STMT(hstmt1, "SELECT * FROM bug32420 order by 1");
CHECK_STMT_RC(hstmt1, SQLBindCol(hstmt1, 1, SQL_C_LONG, nData, 0, NULL));
Expand Down

0 comments on commit e4b7741

Please sign in to comment.