Changeset: 5970f9e88c5e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5970f9e88c5e
Modified Files:
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/SQLExecDirect.c
        clients/odbc/driver/SQLNativeSql.c
        clients/odbc/driver/SQLPrepare.c
Branch: escape-sequences
Log Message:

better way of pass through escape sequences


diffs (110 lines):

diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -892,6 +892,9 @@ ODBCTranslateSQL(ODBCDbc *dbc, const SQL
         * plenty long enough */
        char buf[128], buf2[128];
 
+       if (dbc->minor >= 46)
+               noscan = SQL_NOSCAN_ON;
+
        if (noscan != SQL_NOSCAN_ON) {
                char *nquery;
                bool quoted = false, rawstring = false, dquoted = false;
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
@@ -56,14 +56,8 @@ ODBCExecDirect(ODBCStmt *stmt, const SQL
                        stmt->Dbc->qtimeout = stmt->qtimeout;
        }
 
-       if (stmt->Dbc->minor >= 46)
-               query = (char *) StatementText;
-       else
-               query = ODBCTranslateSQL(
-                               stmt->Dbc,
-                               StatementText,
-                               (size_t) TextLength,
-                               stmt->noScan);
+       query = ODBCTranslateSQL(stmt->Dbc, StatementText, (size_t) TextLength,
+                                stmt->noScan);
        if (query == NULL) {
                /* Memory allocation error */
                addStmtError(stmt, "HY001", NULL, 0);
@@ -89,8 +83,7 @@ ODBCExecDirect(ODBCStmt *stmt, const SQL
                stmt->Dbc->cachelimit = 100;
        }
        ret = mapi_query_handle(hdl, query);
-       if (query != (char *) StatementText)
-               free(query);
+       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,13 +50,9 @@ MNDBNativeSql(ODBCDbc *dbc,
 #ifdef ODBCDEBUG
        ODBCLOG("\"%.*s\"\n", (int) TextLength1, (char *) InStatementText);
 #endif
-       if (dbc->minor >= 46)
-               query = (char *) InStatementText;
-       else
-               query = ODBCTranslateSQL(dbc,
-                               InStatementText,
-                               (size_t) TextLength1,
-                               SQL_NOSCAN_OFF);
+
+       query = ODBCTranslateSQL(dbc, InStatementText, (size_t) TextLength1,
+                                SQL_NOSCAN_OFF);
        if (query == NULL) {
                /* Memory allocation error */
                addDbcError(dbc, "HY001", NULL, 0);
@@ -65,8 +61,7 @@ MNDBNativeSql(ODBCDbc *dbc,
        copyString(query, strlen(query), OutStatementText, BufferLength,
                   TextLength2Ptr, SQLINTEGER, addDbcError, dbc,
                   free(query); return SQL_ERROR);
-       if (query != (char *) InStatementText)
-               free(query);
+       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,13 +74,8 @@ MNDBPrepare(ODBCStmt *stmt,
        }
 
        fixODBCstring(StatementText, TextLength, SQLINTEGER, addStmtError, 
stmt, return SQL_ERROR);
-       if (stmt->Dbc->minor >= 46)
-               query = (char *) StatementText;
-       else
-               query = ODBCTranslateSQL(stmt->Dbc,
-                               StatementText,
-                               (size_t) TextLength,
-                               stmt->noScan);
+       query = ODBCTranslateSQL(stmt->Dbc, StatementText, (size_t) TextLength,
+                                stmt->noScan);
        if (query == NULL) {
                /* Memory allocation error */
                addStmtError(stmt, "HY001", NULL, 0);
@@ -92,15 +87,13 @@ MNDBPrepare(ODBCStmt *stmt,
        size_t querylen = strlen(query) + 9;
        s = malloc(querylen);
        if (s == NULL) {
-               if (query != (char *) StatementText)
-                       free(query);
+               free(query);
                /* Memory allocation error */
                addStmtError(stmt, "HY001", NULL, 0);
                return SQL_ERROR;
        }
        strconcat_len(s, querylen, "prepare ", query, NULL);
-       if (query != (char *) StatementText)
-               free(query);
+       free(query);
 
        ODBCResetStmt(stmt);
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to