You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2013/04/26 18:59:38 UTC
svn commit: r1476291 - in /db/derby/code/trunk/java:
drda/org/apache/derby/impl/drda/ engine/org/apache/derby/iapi/sql/conn/
engine/org/apache/derby/iapi/sql/execute/
engine/org/apache/derby/iapi/transaction/
engine/org/apache/derby/impl/jdbc/ engine/o...
Author: rhillegas
Date: Fri Apr 26 16:59:37 2013
New Revision: 1476291
URL: http://svn.apache.org/r1476291
Log:
DERBY-6206: Encapsulate constants and names used for isolation levels.
Modified:
db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/execute/ExecutionContext.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/transaction/TransactionControl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/DMLWriteResultSet.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ScanResultSet.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java
Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java Fri Apr 26 16:59:37 2013
@@ -40,6 +40,7 @@ import org.apache.derby.iapi.jdbc.Engine
import org.apache.derby.iapi.jdbc.EngineResultSet;
import org.apache.derby.iapi.reference.JDBC30Translation;
import org.apache.derby.iapi.sql.execute.ExecutionContext;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.util.StringUtil;
import org.apache.derby.impl.jdbc.Util;
@@ -841,9 +842,9 @@ class DRDAStatement
// for JCC. Other static packages will need to be supported for
// CCC. Maybe a static hash table would then be in order.
if (pkgid.equals("SYSSTAT"))
- return ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL;
+ return TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL;
else
- return ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ return TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
}
/**
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java Fri Apr 26 16:59:37 2013
@@ -843,7 +843,7 @@ public interface LanguageConnectionConte
* Get the prepare isolation level.
* If the isolation level has been explicitly set with a SQL statement or
* embedded call to setTransactionIsolation, this will return
- * ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL
+ * TransactionControl.UNSPECIFIED_ISOLATION_LEVEL
* SET ISOLATION always takes priority.
*
*/
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/execute/ExecutionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/execute/ExecutionContext.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/execute/ExecutionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/execute/ExecutionContext.java Fri Apr 26 16:59:37 2013
@@ -38,40 +38,6 @@ public interface ExecutionContext extend
String CONTEXT_ID = "ExecutionContext";
- /* Constants for scan isolation levels. */
- public static final int UNSPECIFIED_ISOLATION_LEVEL = 0;
- public static final int READ_UNCOMMITTED_ISOLATION_LEVEL = 1;
- public static final int READ_COMMITTED_ISOLATION_LEVEL = 2;
- public static final int REPEATABLE_READ_ISOLATION_LEVEL = 3;
- public static final int SERIALIZABLE_ISOLATION_LEVEL = 4;
-
- /**
- * Map from Derby transaction isolation constants to
- * JDBC constants.
- */
- public static final int[] CS_TO_JDBC_ISOLATION_LEVEL_MAP = {
- java.sql.Connection.TRANSACTION_NONE, // UNSPECIFIED_ISOLATION_LEVEL
- java.sql.Connection.TRANSACTION_READ_UNCOMMITTED, // READ_UNCOMMITTED_ISOLATION_LEVEL
- java.sql.Connection.TRANSACTION_READ_COMMITTED, // READ_COMMITTED_ISOLATION_LEVEL
- java.sql.Connection.TRANSACTION_REPEATABLE_READ, // REPEATABLE_READ_ISOLATION_LEVEL
- java.sql.Connection.TRANSACTION_SERIALIZABLE // SERIALIZABLE_ISOLATION_LEVEL
- };
-
- /**
- * Map from Derby transaction isolation constants to
- * text values used in SQL. Note that the text
- * "REPEATABLE READ" or "RR" maps to SERIALIZABLE_ISOLATION_LEVEL
- * as a hang over from DB2 compatibility and now to preserve
- * backwards compatability.
- */
- public static final String[][] CS_TO_SQL_ISOLATION_MAP = {
- { " "}, // UNSPECIFIED_ISOLATION_LEVEL
- { "UR", "DIRTY READ", "READ UNCOMMITTED"},
- { "CS", "CURSOR STABILITY", "READ COMMITTED"},
- { "RS"}, // read stability
- { "RR", "REPEATABLE READ", "SERIALIZABLE"}
- };
-
/**
* Get the ExecutionFactory from this ExecutionContext.
*
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/transaction/TransactionControl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/transaction/TransactionControl.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/transaction/TransactionControl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/transaction/TransactionControl.java Fri Apr 26 16:59:37 2013
@@ -25,6 +25,7 @@ import java.util.Iterator;
import org.apache.derby.iapi.error.ExceptionSeverity;
import org.apache.derby.iapi.error.StandardException;
+import org.apache.derby.iapi.services.io.ArrayUtil;
import org.apache.derby.iapi.reference.SQLState;
/**
@@ -36,7 +37,56 @@ import org.apache.derby.iapi.reference.S
*/
public final class TransactionControl {
+ /* Constants for scan isolation levels. */
+ public static final int UNSPECIFIED_ISOLATION_LEVEL = 0;
+ public static final int READ_UNCOMMITTED_ISOLATION_LEVEL = 1;
+ public static final int READ_COMMITTED_ISOLATION_LEVEL = 2;
+ public static final int REPEATABLE_READ_ISOLATION_LEVEL = 3;
+ public static final int SERIALIZABLE_ISOLATION_LEVEL = 4;
+
+ /**
+ * Map from Derby transaction isolation constants to
+ * JDBC constants.
+ */
+ private static final int[] CS_TO_JDBC_ISOLATION_LEVEL_MAP = {
+ java.sql.Connection.TRANSACTION_NONE, // UNSPECIFIED_ISOLATION_LEVEL
+ java.sql.Connection.TRANSACTION_READ_UNCOMMITTED, // READ_UNCOMMITTED_ISOLATION_LEVEL
+ java.sql.Connection.TRANSACTION_READ_COMMITTED, // READ_COMMITTED_ISOLATION_LEVEL
+ java.sql.Connection.TRANSACTION_REPEATABLE_READ, // REPEATABLE_READ_ISOLATION_LEVEL
+ java.sql.Connection.TRANSACTION_SERIALIZABLE // SERIALIZABLE_ISOLATION_LEVEL
+ };
+
+ /**
+ * Map from Derby transaction isolation constants to
+ * text values used in SQL. Note that the text
+ * "REPEATABLE READ" or "RR" maps to SERIALIZABLE_ISOLATION_LEVEL
+ * as a hang over from DB2 compatibility and now to preserve
+ * backwards compatability.
+ */
+ private static final String[][] CS_TO_SQL_ISOLATION_MAP = {
+ { " "}, // UNSPECIFIED_ISOLATION_LEVEL
+ { "UR", "DIRTY READ", "READ UNCOMMITTED"},
+ { "CS", "CURSOR STABILITY", "READ COMMITTED"},
+ { "RS"}, // read stability
+ { "RR", "REPEATABLE READ", "SERIALIZABLE"}
+ };
+
private final ArrayList listeners;
+
+ /** Map a Derby isolation level to the corresponding JDBC level */
+ public static int jdbcIsolationLevel( int derbyIsolationLevel )
+ {
+ return CS_TO_JDBC_ISOLATION_LEVEL_MAP[ derbyIsolationLevel ];
+ }
+
+ /** Map Derby isolation level to SQL text values */
+ public static String[] isolationTextNames( int derbyIsolationLevel )
+ {
+ return ArrayUtil.copy( CS_TO_SQL_ISOLATION_MAP[ derbyIsolationLevel ] );
+ }
+
+ /** Get number of isolation string mappings */
+ public static int isolationMapCount() { return CS_TO_SQL_ISOLATION_MAP.length; }
public TransactionControl()
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java Fri Apr 26 16:59:37 2013
@@ -84,6 +84,7 @@ import org.apache.derby.iapi.jdbc.Engine
import org.apache.derby.iapi.jdbc.ExceptionFactory;
import org.apache.derby.iapi.reference.Limits;
import org.apache.derby.iapi.sql.conn.StatementContext;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.util.InterruptStatus;
import org.apache.derby.impl.jdbc.authentication.NoneAuthenticationServiceImpl;
@@ -2213,19 +2214,19 @@ public class EmbedConnection implements
switch (level)
{
case java.sql.Connection.TRANSACTION_READ_UNCOMMITTED:
- iLevel = ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL;
+ iLevel = TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL;
break;
case java.sql.Connection.TRANSACTION_READ_COMMITTED:
- iLevel = ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL;
+ iLevel = TransactionControl.READ_COMMITTED_ISOLATION_LEVEL;
break;
case java.sql.Connection.TRANSACTION_REPEATABLE_READ:
- iLevel = ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL;
+ iLevel = TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL;
break;
case java.sql.Connection.TRANSACTION_SERIALIZABLE:
- iLevel = ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL;
+ iLevel = TransactionControl.SERIALIZABLE_ISOLATION_LEVEL;
break;
default:
throw newSQLException(SQLState.UNIMPLEMENTED_ISOLATION_LEVEL, new Integer(level));
@@ -2255,7 +2256,7 @@ public class EmbedConnection implements
*/
public final int getTransactionIsolation() throws SQLException {
checkIfClosed();
- return ExecutionContext.CS_TO_JDBC_ISOLATION_LEVEL_MAP[getLanguageConnection().getCurrentIsolationLevel()];
+ return TransactionControl.jdbcIsolationLevel( getLanguageConnection().getCurrentIsolationLevel() );
}
/**
@@ -3136,7 +3137,7 @@ public class EmbedConnection implements
* @param level Isolation level to change to. level is the DB2 level
* specified in the package names which happen to correspond
* to our internal levels. If
- * level == ExecutionContext.UNSPECIFIED_ISOLATION,
+ * level == TransactionControl.UNSPECIFIED_ISOLATION,
* the statement won't be prepared with an isolation level.
*
*
@@ -3148,11 +3149,11 @@ public class EmbedConnection implements
switch (level)
{
- case ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL:
- case ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL:
- case ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL:
- case ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL:
- case ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL:
+ case TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL:
+ case TransactionControl.READ_COMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.SERIALIZABLE_ISOLATION_LEVEL:
+ case TransactionControl.UNSPECIFIED_ISOLATION_LEVEL:
break;
default:
throw Util.generateCsSQLException(
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/GenericStatement.java Fri Apr 26 16:59:37 2013
@@ -44,6 +44,7 @@ import org.apache.derby.iapi.sql.diction
import org.apache.derby.iapi.sql.execute.ExecutionContext;
import org.apache.derby.impl.sql.compile.StatementNode;
import org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.util.InterruptStatus;
public class GenericStatement
@@ -310,7 +311,7 @@ public class GenericStatement
CompilerContext cc = lcc.pushCompilerContext(compilationSchema);
if (prepareIsolationLevel !=
- ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL)
+ TransactionControl.UNSPECIFIED_ISOLATION_LEVEL)
{
cc.setScanIsolationLevel(prepareIsolationLevel);
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java Fri Apr 26 16:59:37 2013
@@ -73,6 +73,7 @@ import org.apache.derby.iapi.error.Stand
import org.apache.derby.iapi.services.sanity.SanityManager;
import org.apache.derby.iapi.services.context.ContextImpl;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.util.ReuseFactory;
import java.sql.SQLWarning;
@@ -146,7 +147,7 @@ public class CompilerContextImpl extends
compilationSchema = null;
parameterList = null;
parameterDescriptors = null;
- scanIsolationLevel = ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ scanIsolationLevel = TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
warnings = null;
savedObjects = null;
reliability = CompilerContext.SQL_LEGAL;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java Fri Apr 26 16:59:37 2013
@@ -73,6 +73,7 @@ import org.apache.derby.iapi.sql.Languag
import org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo;
import org.apache.derby.iapi.store.access.StoreCostController;
import org.apache.derby.iapi.store.access.ScanController;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.store.access.TransactionController;
import org.apache.derby.iapi.types.DataValueDescriptor;
@@ -4260,7 +4261,7 @@ public class FromBaseTable extends FromT
getLanguageConnectionContext().getCurrentIsolationLevel();
- if ((isolationLevel != ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL) &&
+ if ((isolationLevel != TransactionControl.SERIALIZABLE_ISOLATION_LEVEL) &&
(tableDescriptor.getLockGranularity() !=
TableDescriptor.TABLE_LOCK_GRANULARITY))
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/FromVTI.java Fri Apr 26 16:59:37 2013
@@ -62,6 +62,7 @@ import org.apache.derby.iapi.sql.diction
import org.apache.derby.iapi.sql.dictionary.DataDictionary;
import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
import org.apache.derby.iapi.sql.execute.ExecutionContext;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.types.DataTypeDescriptor;
import org.apache.derby.iapi.types.DataValueDescriptor;
import org.apache.derby.iapi.util.JBitSet;
@@ -1956,7 +1957,7 @@ public class FromVTI extends FromTable i
}
public final int getStatementIsolationLevel() {
- return ExecutionContext.CS_TO_JDBC_ISOLATION_LEVEL_MAP[getCompilerContext().getScanIsolationLevel()];
+ return TransactionControl.jdbcIsolationLevel( getCompilerContext().getScanIsolationLevel() );
}
public void setSharedState(String key, java.io.Serializable value) {
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Fri Apr 26 16:59:37 2013
@@ -55,6 +55,7 @@ import org.apache.derby.iapi.types.TypeI
import org.apache.derby.iapi.sql.compile.TypeCompiler;
import org.apache.derby.iapi.sql.conn.LanguageConnectionContext;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.types.DateTimeDataValue;
import org.apache.derby.iapi.types.DataTypeDescriptor;
import org.apache.derby.iapi.types.DataTypeUtilities;
@@ -3319,7 +3320,7 @@ preparableSelectStatement(boolean checkP
ResultSetNode queryExpression;
ArrayList updateColumns = new ArrayList();
int forUpdateState = CursorNode.UNSPECIFIED;
- int isolationLevel = ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ int isolationLevel = TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
CursorNode retval;
OrderByList orderCols = null;
ValueNode[] offsetClauses = new ValueNode[ OFFSET_CLAUSE_COUNT ];
@@ -3355,7 +3356,7 @@ preparableSelectStatement(boolean checkP
}
/* Set the isolation levels for the scans if specified */
- if (isolationLevel != ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL)
+ if (isolationLevel != TransactionControl.UNSPECIFIED_ISOLATION_LEVEL)
{
getCompilerContext().setScanIsolationLevel(isolationLevel);
}
@@ -12286,7 +12287,7 @@ isolationLevelDB2OrReset() :
}
{
(
- <RESET> { return ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL; }
+ <RESET> { return TransactionControl.UNSPECIFIED_ISOLATION_LEVEL; }
| isolationLevel = isolationLevelDB2() { return isolationLevel; }
)
}
@@ -12300,22 +12301,22 @@ isolationLevelDB2() :
(
isolationLevel = isolationLevelDB2Abbrev() { return isolationLevel; }
| ( ( <REPEATABLE> <READ> ) | <SERIALIZABLE> )
- { return ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL; }
+ { return TransactionControl.SERIALIZABLE_ISOLATION_LEVEL; }
| <CURSOR> <STABILITY>
- { return ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_COMMITTED_ISOLATION_LEVEL; }
| <DIRTY> <READ>
- { return ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL; }
|
LOOKAHEAD( { getToken(1).kind == READ && getToken(2).kind == COMMITTED } )
<READ> <COMMITTED>
- { return ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_COMMITTED_ISOLATION_LEVEL; }
|
LOOKAHEAD( { getToken(1).kind == READ && getToken(2).kind == UNCOMMITTED } )
<READ> <UNCOMMITTED>
- { return ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL; }
)
}
@@ -12326,15 +12327,15 @@ isolationLevelDB2Abbrev() :
{
(
<RR>
- { return ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL; }
+ { return TransactionControl.SERIALIZABLE_ISOLATION_LEVEL; }
- | <RS> { return ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL; }
+ | <RS> { return TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL; }
| <CS>
- { return ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_COMMITTED_ISOLATION_LEVEL; }
| <UR>
- { return ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL; }
+ { return TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL; }
)
}
@@ -12363,12 +12364,12 @@ levelOfIsolation() :
|
<REPEATABLE> <READ>
{
- return ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL;
+ return TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL;
}
|
<SERIALIZABLE>
{
- return ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL;
+ return TransactionControl.SERIALIZABLE_ISOLATION_LEVEL;
}
}
@@ -12379,12 +12380,12 @@ levelOfIsolationRead() :
{
<UNCOMMITTED>
{
- return ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL;
+ return TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL;
}
|
<COMMITTED>
{
- return ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL;
+ return TransactionControl.READ_COMMITTED_ISOLATION_LEVEL;
}
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java Fri Apr 26 16:59:37 2013
@@ -73,6 +73,7 @@ import org.apache.derby.iapi.sql.Paramet
import org.apache.derby.iapi.store.access.TransactionController;
import org.apache.derby.iapi.store.access.XATransactionController;
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.util.IdUtil;
import org.apache.derby.iapi.util.InterruptStatus;
@@ -230,7 +231,7 @@ public class GenericLanguageConnectionCo
private SchemaDescriptor cachedInitialDefaultSchemaDescr = null;
// RESOLVE - How do we want to set the default.
- private int defaultIsolationLevel = ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL;
+ private int defaultIsolationLevel = TransactionControl.READ_COMMITTED_ISOLATION_LEVEL;
protected int isolationLevel = defaultIsolationLevel;
private boolean isolationLevelExplicitlySet = false;
@@ -254,7 +255,7 @@ public class GenericLanguageConnectionCo
// isolation level to when preparing statements.
// if unspecified, the statement won't be prepared with a specific
// scan isolationlevel
- protected int prepareIsolationLevel = ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ protected int prepareIsolationLevel = TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
// Whether or not to write executing statement info to db2j.log
private boolean logStatementText;
@@ -2950,7 +2951,7 @@ public class GenericLanguageConnectionCo
*/
public int getCurrentIsolationLevel()
{
- return (isolationLevel == ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL) ? defaultIsolationLevel : isolationLevel;
+ return (isolationLevel == TransactionControl.UNSPECIFIED_ISOLATION_LEVEL) ? defaultIsolationLevel : isolationLevel;
}
/**
@@ -2958,9 +2959,11 @@ public class GenericLanguageConnectionCo
*/
public String getCurrentIsolationLevelStr()
{
- if( isolationLevel >= 0 && isolationLevel < ExecutionContext.CS_TO_SQL_ISOLATION_MAP.length)
- return ExecutionContext.CS_TO_SQL_ISOLATION_MAP[ isolationLevel][0];
- return ExecutionContext.CS_TO_SQL_ISOLATION_MAP[ ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL][0];
+ if( isolationLevel >= 0 && isolationLevel < TransactionControl.isolationMapCount() )
+ {
+ return TransactionControl.isolationTextNames( isolationLevel )[0];
+ }
+ return TransactionControl.isolationTextNames( TransactionControl.UNSPECIFIED_ISOLATION_LEVEL )[0];
}
/**
@@ -2979,7 +2982,7 @@ public class GenericLanguageConnectionCo
if (!isolationLevelExplicitlySet)
return prepareIsolationLevel;
else
- return ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ return TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
}
/**
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/DMLWriteResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/DMLWriteResultSet.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/DMLWriteResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/DMLWriteResultSet.java Fri Apr 26 16:59:37 2013
@@ -40,6 +40,7 @@ import org.apache.derby.iapi.store.acces
import org.apache.derby.catalog.UUID;
import org.apache.derby.iapi.services.io.FormatableBitSet;
import org.apache.derby.iapi.services.sanity.SanityManager;
+import org.apache.derby.iapi.transaction.TransactionControl;
/**
* For INSERT/UPDATE/DELETE impls. Used to tag them.
@@ -235,7 +236,7 @@ abstract class DMLWriteResultSet extends
* Decode the update lock mode.
* <p>
* The value for update lock mode is in the second most significant byte for
- * ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL isolation level. Otherwise
+ * TransactionControl.SERIALIZABLE_ISOLATION_LEVEL isolation level. Otherwise
* (REPEATABLE READ, READ COMMITTED, and READ UNCOMMITTED) the lock mode is
* located in the least significant byte.
* <p>
@@ -260,12 +261,12 @@ abstract class DMLWriteResultSet extends
}
// Note that isolation level encoding from getCurrentIsolationLevel()
- // returns ExecutionContext.*ISOLATION_LEVEL constants, not
+ // returns TransactionControl.*ISOLATION_LEVEL constants, not
// TransactionController.ISOLATION* constants.
int isolationLevel = lcc.getCurrentIsolationLevel();
- if (isolationLevel == ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL) {
+ if (isolationLevel == TransactionControl.SERIALIZABLE_ISOLATION_LEVEL) {
return lockMode >>> 16;
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/RowChangerImpl.java Fri Apr 26 16:59:37 2013
@@ -42,7 +42,7 @@ import org.apache.derby.iapi.store.acces
import org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo;
import org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo;
import org.apache.derby.iapi.store.access.TransactionController;
-
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.types.DataValueDescriptor;
import org.apache.derby.iapi.types.RowLocation;
@@ -301,7 +301,7 @@ class RowChangerImpl implements RowChang
int isolationLevel;
if (lcc == null)
{
- isolationLevel = ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL;
+ isolationLevel = TransactionControl.READ_COMMITTED_ISOLATION_LEVEL;
}
else
{
@@ -313,22 +313,22 @@ class RowChangerImpl implements RowChang
{
// Even though we preserve the isolation level at READ UNCOMMITTED,
// Store will overwrite it to READ COMMITTED for update.
- case ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL:
isolationLevel =
TransactionController.ISOLATION_READ_UNCOMMITTED;
break;
- case ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.READ_COMMITTED_ISOLATION_LEVEL:
isolationLevel =
TransactionController.ISOLATION_READ_COMMITTED;
break;
- case ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL:
+ case TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL:
isolationLevel =
TransactionController.ISOLATION_REPEATABLE_READ;
break;
- case ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL:
+ case TransactionControl.SERIALIZABLE_ISOLATION_LEVEL:
isolationLevel =
TransactionController.ISOLATION_SERIALIZABLE;
break;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ScanResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ScanResultSet.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ScanResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/ScanResultSet.java Fri Apr 26 16:59:37 2013
@@ -28,6 +28,7 @@ import org.apache.derby.iapi.sql.execute
import org.apache.derby.iapi.sql.execute.ExecRowBuilder;
import org.apache.derby.iapi.sql.execute.ExecutionContext;
import org.apache.derby.iapi.store.access.TransactionController;
+import org.apache.derby.iapi.transaction.TransactionControl;
/**
* Abstract <code>ResultSet</code> class for <code>NoPutResultSet</code>s which
@@ -114,7 +115,7 @@ abstract class ScanResultSet extends NoP
this.tableLocked = tableLocked;
suppliedLockMode = lockMode;
- if (isolationLevel == ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL) {
+ if (isolationLevel == TransactionControl.UNSPECIFIED_ISOLATION_LEVEL) {
unspecifiedIsolationLevel = true;
isolationLevel = getLanguageConnectionContext().getCurrentIsolationLevel();
} else {
@@ -176,7 +177,7 @@ abstract class ScanResultSet extends NoP
*/
if (tableLocked ||
(languageLevel ==
- ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL)) {
+ TransactionControl.SERIALIZABLE_ISOLATION_LEVEL)) {
return suppliedLockMode;
} else {
return TransactionController.MODE_RECORD;
@@ -192,9 +193,9 @@ abstract class ScanResultSet extends NoP
private int translateLanguageIsolationLevel(int languageLevel) {
switch (languageLevel) {
- case ExecutionContext.READ_UNCOMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.READ_UNCOMMITTED_ISOLATION_LEVEL:
return TransactionController.ISOLATION_READ_UNCOMMITTED;
- case ExecutionContext.READ_COMMITTED_ISOLATION_LEVEL:
+ case TransactionControl.READ_COMMITTED_ISOLATION_LEVEL:
/*
* Now we see if we can get instantaneous locks
* if we are getting share locks.
@@ -205,9 +206,9 @@ abstract class ScanResultSet extends NoP
return TransactionController.ISOLATION_READ_COMMITTED;
}
return TransactionController.ISOLATION_READ_COMMITTED_NOHOLDLOCK;
- case ExecutionContext.REPEATABLE_READ_ISOLATION_LEVEL:
+ case TransactionControl.REPEATABLE_READ_ISOLATION_LEVEL:
return TransactionController.ISOLATION_REPEATABLE_READ;
- case ExecutionContext.SERIALIZABLE_ISOLATION_LEVEL:
+ case TransactionControl.SERIALIZABLE_ISOLATION_LEVEL:
return TransactionController.ISOLATION_SERIALIZABLE;
}
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java?rev=1476291&r1=1476290&r2=1476291&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/VTIResultSet.java Fri Apr 26 16:59:37 2013
@@ -44,7 +44,7 @@ import org.apache.derby.iapi.store.acces
import org.apache.derby.iapi.error.StandardException;
import org.apache.derby.iapi.services.loader.GeneratedMethod;
-
+import org.apache.derby.iapi.transaction.TransactionControl;
import org.apache.derby.iapi.types.RowLocation;
import org.apache.derby.iapi.reference.SQLState;
@@ -101,9 +101,9 @@ class VTIResultSet extends NoPutResultSe
/**
Specified isolation level of SELECT (scan). If not set or
- not application, it will be set to ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL
+ not application, it will be set to TransactionControl.UNSPECIFIED_ISOLATION_LEVEL
*/
- private int scanIsolationLevel = ExecutionContext.UNSPECIFIED_ISOLATION_LEVEL;
+ private int scanIsolationLevel = TransactionControl.UNSPECIFIED_ISOLATION_LEVEL;
//
// class interface
@@ -704,7 +704,7 @@ class VTIResultSet extends NoPutResultSe
}
public final int getStatementIsolationLevel() {
- return ExecutionContext.CS_TO_JDBC_ISOLATION_LEVEL_MAP[getScanIsolationLevel()];
+ return TransactionControl.jdbcIsolationLevel( getScanIsolationLevel() );
}