EMMA Coverage Report (generated Sun Mar 01 22:06:14 CET 2015)
[all classes][org.h2.command.ddl]

COVERAGE SUMMARY FOR SOURCE FILE [AlterTableRenameColumn.java]

nameclass, %method, %block, %line, %
AlterTableRenameColumn.java100% (1/1)100% (6/6)100% (92/92)100% (24/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AlterTableRenameColumn100% (1/1)100% (6/6)100% (92/92)100% (24/24)
AlterTableRenameColumn (Session): void 100% (1/1)100% (4/4)100% (2/2)
getType (): int 100% (1/1)100% (2/2)100% (1/1)
setColumn (Column): void 100% (1/1)100% (4/4)100% (2/2)
setNewColumnName (String): void 100% (1/1)100% (4/4)100% (2/2)
setTable (Table): void 100% (1/1)100% (4/4)100% (2/2)
update (): int 100% (1/1)100% (74/74)100% (15/15)

1/*
2 * Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
3 * and the EPL 1.0 (http://h2database.com/html/license.html).
4 * Initial Developer: H2 Group
5 */
6package org.h2.command.ddl;
7 
8import org.h2.command.CommandInterface;
9import org.h2.engine.Database;
10import org.h2.engine.DbObject;
11import org.h2.engine.Right;
12import org.h2.engine.Session;
13import org.h2.expression.Expression;
14import org.h2.table.Column;
15import org.h2.table.Table;
16 
17/**
18 * This class represents the statement
19 * ALTER TABLE ALTER COLUMN RENAME
20 */
21public class AlterTableRenameColumn extends DefineCommand {
22 
23    private Table table;
24    private Column column;
25    private String newName;
26 
27    public AlterTableRenameColumn(Session session) {
28        super(session);
29    }
30 
31    public void setTable(Table table) {
32        this.table = table;
33    }
34 
35    public void setColumn(Column column) {
36        this.column = column;
37    }
38 
39    public void setNewColumnName(String newName) {
40        this.newName = newName;
41    }
42 
43    @Override
44    public int update() {
45        session.commit(true);
46        Database db = session.getDatabase();
47        session.getUser().checkRight(table, Right.ALL);
48        table.checkSupportAlter();
49        // we need to update CHECK constraint
50        // since it might reference the name of the column
51        Expression newCheckExpr = column.getCheckConstraint(session, newName);
52        table.renameColumn(column, newName);
53        column.removeCheckConstraint();
54        column.addCheckConstraint(session, newCheckExpr);
55        table.setModified();
56        db.updateMeta(session, table);
57        for (DbObject child : table.getChildren()) {
58            if (child.getCreateSQL() != null) {
59                db.updateMeta(session, child);
60            }
61        }
62        return 0;
63    }
64 
65    @Override
66    public int getType() {
67        return CommandInterface.ALTER_TABLE_ALTER_COLUMN_RENAME;
68    }
69 
70}

[all classes][org.h2.command.ddl]
EMMA 2.0.5312 (C) Vladimir Roubtsov