01: /*
02:
03: Derby - Class org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo
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.iapi.store.access;
23:
24: import org.apache.derby.iapi.error.StandardException;
25:
26: /**
27:
28: Information that can be "compiled" and reused per transaction per
29: open operation. This information is read only by the caller and
30: written by user. Likely information kept in this object is a set of
31: scratch buffers which will be used by openScan() and thus must not be
32: shared across multiple threads/openScan()'s/openConglomerate()'s. The
33: goal is to optimize repeated operations like btree inserts, by allowing a
34: set of scratch buffers to be reused across a repeated execution of a statement
35: like an insert/delete/update.
36:
37: This information is obtained from the getDynamicCompiledConglomInfo(conglomid)
38: method call. It can then be used in openConglomerate() and openScan() calls
39: for increased performance. The information is only valid until the next
40: ddl operation is performed on the conglomerate. It is up to the caller to
41: provide an invalidation methodology.
42:
43: The dynamic info is a set of variables to be used in a given ScanController
44: or ConglomerateController. It can only be used in one controller at a time.
45: It is up to the caller to insure the correct thread access to this info. The
46: type of info in this is a scratch template for btree traversal, other scratch
47: variables for qualifier evaluation, ...
48:
49: **/
50:
51: public interface DynamicCompiledOpenConglomInfo {
52: }
|