Changeset: ee29cddffdd0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ee29cddffdd0 Modified Files: clients/odbc/driver/SQLExecDirect.c clients/odbc/driver/SQLNativeSql.c clients/odbc/driver/SQLPrepare.c Branch: escape-sequences Log Message:
let odbc pass through escape sequences diffs (97 lines): diff --git a/clients/odbc/driver/SQLExecDirect.c b/clients/odbc/driver/SQLExecDirect.c --- a/clients/odbc/driver/SQLExecDirect.c +++ b/clients/odbc/driver/SQLExecDirect.c @@ -54,8 +54,14 @@ ODBCExecDirect(ODBCStmt *stmt, const SQL stmt->Dbc->qtimeout = stmt->qtimeout; } - query = ODBCTranslateSQL(stmt->Dbc, StatementText, (size_t) TextLength, - stmt->noScan); + if (stmt->Dbc->minor >= 46) + query = (char *) StatementText; + else + query = ODBCTranslateSQL( + stmt->Dbc, + StatementText, + (size_t) TextLength, + stmt->noScan); if (query == NULL) { /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); @@ -81,7 +87,8 @@ ODBCExecDirect(ODBCStmt *stmt, const SQL stmt->Dbc->cachelimit = 100; } ret = mapi_query_handle(hdl, query); - free(query); + if (query != (char *) StatementText) + free(query); switch (ret) { case MOK: break; diff --git a/clients/odbc/driver/SQLNativeSql.c b/clients/odbc/driver/SQLNativeSql.c --- a/clients/odbc/driver/SQLNativeSql.c +++ b/clients/odbc/driver/SQLNativeSql.c @@ -50,9 +50,13 @@ MNDBNativeSql(ODBCDbc *dbc, #ifdef ODBCDEBUG ODBCLOG("\"%.*s\"\n", (int) TextLength1, (char *) InStatementText); #endif - - query = ODBCTranslateSQL(dbc, InStatementText, (size_t) TextLength1, - SQL_NOSCAN_OFF); + if (dbc->minor >= 46) + query = (char *) InStatementText; + else + query = ODBCTranslateSQL(dbc, + InStatementText, + (size_t) TextLength1, + SQL_NOSCAN_OFF); if (query == NULL) { /* Memory allocation error */ addDbcError(dbc, "HY001", NULL, 0); @@ -61,7 +65,8 @@ MNDBNativeSql(ODBCDbc *dbc, copyString(query, strlen(query), OutStatementText, BufferLength, TextLength2Ptr, SQLINTEGER, addDbcError, dbc, free(query); return SQL_ERROR); - free(query); + if (query != (char *) InStatementText) + free(query); return dbc->Error ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS; } diff --git a/clients/odbc/driver/SQLPrepare.c b/clients/odbc/driver/SQLPrepare.c --- a/clients/odbc/driver/SQLPrepare.c +++ b/clients/odbc/driver/SQLPrepare.c @@ -74,8 +74,13 @@ MNDBPrepare(ODBCStmt *stmt, } fixODBCstring(StatementText, TextLength, SQLINTEGER, addStmtError, stmt, return SQL_ERROR); - query = ODBCTranslateSQL(stmt->Dbc, StatementText, (size_t) TextLength, - stmt->noScan); + if (stmt->Dbc->minor >= 46) + query = (char *) StatementText; + else + query = ODBCTranslateSQL(stmt->Dbc, + StatementText, + (size_t) TextLength, + stmt->noScan); if (query == NULL) { /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); @@ -87,13 +92,15 @@ MNDBPrepare(ODBCStmt *stmt, size_t querylen = strlen(query) + 9; s = malloc(querylen); if (s == NULL) { - free(query); + if (query != (char *) StatementText) + free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; } strconcat_len(s, querylen, "prepare ", query, NULL); - free(query); + if (query != (char *) StatementText) + free(query); ODBCResetStmt(stmt); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org