01: /*
02:
03: Derby - Class org.apache.derby.impl.sql.compile.TransactionStatementNode
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derby.impl.sql.compile;
23:
24: import org.apache.derby.iapi.services.context.ContextManager;
25:
26: import org.apache.derby.iapi.services.sanity.SanityManager;
27:
28: /**
29: * A TransactionStatementNode represents any type of Transaction statement:
30: * SET TRANSACTION, COMMIT, and ROLLBACK.
31: *
32: * @author Ames Carlson
33: */
34:
35: abstract class TransactionStatementNode extends StatementNode {
36: int activationKind() {
37: return StatementNode.NEED_NOTHING_ACTIVATION;
38: }
39:
40: /**
41: * COMMIT and ROLLBACK are allowed to commit
42: * and rollback, duh.
43: *
44: * @return false
45: */
46: public boolean isAtomic() {
47: return false;
48: }
49:
50: /**
51: * Returns whether or not this Statement requires a set/clear savepoint
52: * around its execution. The following statement "types" do not require them:
53: * Cursor - unnecessary and won't work in a read only environment
54: * Xact - savepoint will get blown away underneath us during commit/rollback
55: *
56: * @return boolean Whether or not this Statement requires a set/clear savepoint
57: */
58: public boolean needsSavepoint() {
59: return false;
60: }
61: }
|