EMMA Coverage Report (generated Wed Jun 28 19:54:35 CEST 2006)
[all classes][smallsql.database]

COVERAGE SUMMARY FOR SOURCE FILE [ExpressionInSelect.java]

nameclass, %method, %block, %line, %
ExpressionInSelect.java100% (1/1)100% (3/3)83%  (64/77)88%  (14/16)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExpressionInSelect100% (1/1)100% (3/3)83%  (64/77)88%  (14/16)
loadInList (): void 100% (1/1)72%  (33/46)78%  (7/9)
ExpressionInSelect (SSConnection, Expression, CommandSelect, int): void 100% (1/1)100% (18/18)100% (5/5)
isInList (): boolean 100% (1/1)100% (13/13)100% (2/2)

1/* =============================================================
2 * SmallSQL : a free Java DBMS library for the Java(tm) platform
3 * =============================================================
4 *
5 * (C) Copyright 2004-2006, by Volker Berlin.
6 *
7 * Project Info:  http://www.smallsql.de/
8 *
9 * This library is free software; you can redistribute it and/or modify it 
10 * under the terms of the GNU Lesser General Public License as published by 
11 * the Free Software Foundation; either version 2.1 of the License, or 
12 * (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful, but 
15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
17 * License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
22 * USA.  
23 *
24 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
25 * in the United States and other countries.]
26 *
27 * ---------------
28 * ExpressionInSelect.java
29 * ---------------
30 * Author: Volker Berlin
31 * 
32 * Created on 07.08.2004
33 */
34package smallsql.database;
35 
36 
37 
38/**
39 * @author Volker Berlin
40 */
41class ExpressionInSelect extends ExpressionArithmetic {
42 
43        final private CommandSelect cmdSel;
44        final private Index index = new Index(true);
45        final private SSConnection con;
46        
47        
48        ExpressionInSelect(SSConnection con, Expression left, CommandSelect cmdSel, int operation) {
49                super(left, (Expressions)null, operation);
50                this.cmdSel = cmdSel;
51                this.con = con;
52        }
53 
54        
55        private void loadInList() throws Exception{
56                if(cmdSel.compile(con)){
57                        cmdSel.join.execute();
58                        if(cmdSel.columnExpressions.size() != 1)
59                                throw Utils.createSQLException("Count of columns in subquery must be 1 and not "+cmdSel.columnExpressions.size());
60                        index.clear();
61                        while(cmdSel.next()){
62                                try{
63                                        index.addValues(0, cmdSel.columnExpressions );
64                                }catch(Exception e){
65                                        //double values can not add
66                                }
67                        }
68                }
69        }
70        
71        boolean isInList() throws Exception{
72                loadInList();
73                return index.findRows( getParams(), null ) != null;
74        }
75}

[all classes][smallsql.database]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov