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

COVERAGE SUMMARY FOR SOURCE FILE [CommandUpdate.java]

nameclass, %method, %block, %line, %
CommandUpdate.java100% (1/1)100% (3/3)100% (67/67)100% (18/18)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CommandUpdate100% (1/1)100% (3/3)100% (67/67)100% (18/18)
CommandUpdate (Logger): void 100% (1/1)100% (14/14)100% (4/4)
addSetting (Expression, Expression): void 100% (1/1)100% (9/9)100% (3/3)
executeImpl (SSConnection, SSStatement): void 100% (1/1)100% (44/44)100% (11/11)

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 * CommandUpdate.java
29 * ---------------
30 * Author: Volker Berlin
31 * 
32 */
33package smallsql.database;
34 
35 
36/**
37 * @author Volker Berlin
38 *
39 */
40class CommandUpdate extends CommandSelect {
41 
42        // expression from the SET clause like SET dest1 = src1, dest2 = src2
43        private Expressions destinations = new Expressions();
44        private Expressions sources = new Expressions();
45        
46        private Expression[] newRowSources;
47        
48        CommandUpdate( Logger log ){
49                super(log);
50        }
51        
52        /**
53         * Set a value pair of the update command. For example:
54         * "UPDATE table1 SET col1 = 234"
55         * "col1" is the dest
56         * "234" is the source
57         * @param dest
58         * @param source must be a ExpressionName
59         */
60        void addSetting(Expression dest, Expression source){
61                //destinations.add(dest);
62                columnExpressions.add(dest);
63                sources.add(source);
64        }
65        
66        
67        /*boolean compile(SSConnection con) throws Exception{
68                if(super.compile(con)){
69                        TableView table = TableViewResult.getTableViewResult(join).getTableView();
70                        newRowSources = new Expression[table.columns.size()];
71                        for(int i=0; i<destinations.size(); i++){
72                                String name = destinations.get(i).getName();
73                                int colIdx = table.findColumn( name );
74                                if(colIdx>=0){
75                                        // Column found 
76                                        newRowSources[colIdx] = sources.get(i);
77                                        break;
78                                }else
79                                        throw Utils.createSQLException("Invalid column name '" + name + "'.");
80                        }
81                        return true;
82                }
83                return false;                
84        }*/
85        
86        
87        void executeImpl(SSConnection con, SSStatement st) throws Exception {
88                int count = columnExpressions.size();
89                columnExpressions.addAll(sources);
90                compile(con);
91                columnExpressions.setSize(count);
92                //TableViewResult result = TableViewResult.getTableViewResult(join);
93                newRowSources = sources.toArray();
94                updateCount = 0;
95                join.execute();
96                while(next()){
97                        //result.updateRow(newRowSources);
98                        updateRow( con, newRowSources);
99                        updateCount++;
100                }
101        }
102}

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