KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > derby > iapi > sql > execute > ExecIndexRow


1 /*
2
3    Derby - Class org.apache.derby.iapi.sql.execute.ExecIndexRow
4
5    Licensed to the Apache Software Foundation (ASF) under one or more
6    contributor license agreements. See the NOTICE file distributed with
7    this work for additional information regarding copyright ownership.
8    The ASF licenses this file to you under the Apache License, Version 2.0
9    (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.sql.execute;
23
24 /**
25  * This is an extension of ExecRow for use
26  * with indexes and sorting.
27  *
28  * @author jeff after ames
29  */

30 public interface ExecIndexRow extends ExecRow {
31
32     /**
33      * These two methods are a sort of a hack. The store implements ordered
34      * null semantics for start and stop positioning, which is correct for
35      * IS NULL and incorrect for everything else. To work around this,
36      * TableScanResultSet will check whether the start and stop positions
37      * have NULL in any column position other than for an IS NULL check.
38      * If so, it won't do the scan (that is, it will return no rows).
39      *
40      * This method is to inform this ExecIndexRow (which can be used for
41      * start and stop positioning) that the given column uses ordered null
42      * semantics.
43      *
44      * @param columnPosition The position of the column that uses ordered
45      * null semantics (zero-based).
46      */

47     void orderedNulls(int columnPosition);
48
49     /**
50      * Return true if orderedNulls was called on this ExecIndexRow for
51      * the given column position.
52      *
53      * @param columnPosition The position of the column (zero-based) for
54      * which we want to check if ordered null semantics
55      * are used.
56      *
57      * @return true if we are to use ordered null semantics on the given column
58      */

59     boolean areNullsOrdered(int columnPosition);
60
61     /**
62      * Turn the ExecRow into an ExecIndexRow.
63      */

64     public void execRowToExecIndexRow(ExecRow valueRow);
65 }
66
Popular Tags