Changeset: 106674509b91 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=106674509b91
Modified Files:
        clients/odbc/driver/SQLGetConnectAttr.c
        clients/odbc/driver/SQLGetInfo.c
        clients/odbc/driver/SQLSetConnectAttr.c
Branch: Feb2013
Log Message:

Fix ODBC transaction levels.
MonetDB only implements the highest level, SQL_TXN_SERIALIZABLE, so
you can set any level in SQLSetConnectAttr, but it will not change
anything.


diffs (63 lines):

diff --git a/clients/odbc/driver/SQLGetConnectAttr.c 
b/clients/odbc/driver/SQLGetConnectAttr.c
--- a/clients/odbc/driver/SQLGetConnectAttr.c
+++ b/clients/odbc/driver/SQLGetConnectAttr.c
@@ -93,6 +93,9 @@ SQLGetConnectAttr_(ODBCDbc *dbc,
                           BufferLength, StringLengthPtr, SQLINTEGER,
                           addDbcError, dbc, return SQL_ERROR);
                break;
+       case SQL_ATTR_TXN_ISOLATION:
+               *(SQLUINTEGER *) ValuePtr = SQL_TXN_SERIALIZABLE;
+               break;
 
 /* TODO: implement all the other Connection Attributes */
        case SQL_ATTR_DISCONNECT_BEHAVIOR:
@@ -103,7 +106,6 @@ SQLGetConnectAttr_(ODBCDbc *dbc,
        case SQL_ATTR_TRACEFILE:
        case SQL_ATTR_TRANSLATE_LIB:
        case SQL_ATTR_TRANSLATE_OPTION:
-       case SQL_ATTR_TXN_ISOLATION:
                /* Optional feature not implemented */
                addDbcError(dbc, "HYC00", NULL, 0);
                return SQL_ERROR;
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -436,7 +436,7 @@ SQLGetInfo_(ODBCDbc *dbc,
                sValue = "N";
                break;
        case SQL_DEFAULT_TXN_ISOLATION:
-               nValue = SQL_TXN_READ_COMMITTED;
+               nValue = SQL_TXN_SERIALIZABLE;
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_EXPRESSIONS_IN_ORDERBY:
@@ -568,7 +568,7 @@ SQLGetInfo_(ODBCDbc *dbc,
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_TXN_ISOLATION_OPTION:
-               nValue = SQL_TXN_REPEATABLE_READ;
+               nValue = SQL_TXN_SERIALIZABLE;
                len = sizeof(SQLUINTEGER);
                break;
        case SQL_INTEGRITY:
diff --git a/clients/odbc/driver/SQLSetConnectAttr.c 
b/clients/odbc/driver/SQLSetConnectAttr.c
--- a/clients/odbc/driver/SQLSetConnectAttr.c
+++ b/clients/odbc/driver/SQLSetConnectAttr.c
@@ -101,6 +101,9 @@ SQLSetConnectAttr_(ODBCDbc *dbc,
                if (dbc->mid)
                        mapi_timeout(dbc->mid, 
dbc->sql_attr_connection_timeout);
                break;
+       case SQL_ATTR_TXN_ISOLATION:
+               /* nothing to change, we only do the highest level */
+               break;
 
                /* TODO: implement connection attribute behavior */
        case SQL_ATTR_ACCESS_MODE:
@@ -113,7 +116,6 @@ SQLSetConnectAttr_(ODBCDbc *dbc,
        case SQL_ATTR_TRACEFILE:
        case SQL_ATTR_TRANSLATE_LIB:
        case SQL_ATTR_TRANSLATE_OPTION:
-       case SQL_ATTR_TXN_ISOLATION:
                /* Optional feature not implemented */
                addDbcError(dbc, "HYC00", NULL, 0);
                return SQL_ERROR;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to