summaryrefslogtreecommitdiff
path: root/options.c
diff options
context:
space:
mode:
authorHiroshi Inoue2007-12-26 13:28:36 +0000
committerHiroshi Inoue2007-12-26 13:28:36 +0000
commitf2ec8019c738c4c3603087e9f06073478b7664ef (patch)
treef7b19e9e98841f064070963b6edfbeae85579ed6 /options.c
parent3d38298b642ff817104b9fd2d89fef49f072f233 (diff)
*** empty log message ***
Diffstat (limited to 'options.c')
-rw-r--r--options.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/options.c b/options.c
index 910d3e0..97644ff 100644
--- a/options.c
+++ b/options.c
@@ -425,10 +425,18 @@ PGAPI_SetConnectOption(
PG_VERSION_LE(conn, 7.0))
retval = SQL_ERROR;
break;
+ case SQL_TXN_REPEATABLE_READ:
+ if (PG_VERSION_LT(conn, 8.0))
+ retval = SQL_ERROR;
+ break;
case SQL_TXN_READ_COMMITTED:
if (PG_VERSION_LT(conn, 6.5))
retval = SQL_ERROR;
break;
+ case SQL_TXN_READ_UNCOMMITTED:
+ if (PG_VERSION_LT(conn, 8.0))
+ retval = SQL_ERROR;
+ break;
default:
retval = SQL_ERROR;
}
@@ -442,10 +450,21 @@ PGAPI_SetConnectOption(
char *query;
QResultClass *res;
- if (vParam == SQL_TXN_SERIALIZABLE)
- query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE";
- else
- query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED";
+ switch (vParam)
+ {
+ case SQL_TXN_SERIALIZABLE:
+ query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE";
+ break;
+ case SQL_TXN_REPEATABLE_READ:
+ query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL REPEATABLE READ";
+ break;
+ case SQL_TXN_READ_UNCOMMITTED:
+ query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ UNCOMMITTED";
+ break;
+ default:
+ query = "SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED";
+ break;
+ }
res = CC_send_query(conn, query, NULL, 0, NULL);
if (!QR_command_maybe_successful(res))
retval = SQL_ERROR;