org.h2.engine.UserDataType Maven / Gradle / Ivy
/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.engine;
import org.h2.message.DbException;
import org.h2.message.Trace;
import org.h2.table.Column;
import org.h2.table.Table;
/**
* Represents a domain (user-defined data type).
*/
public class UserDataType extends DbObjectBase {
private Column column;
public UserDataType(Database database, int id, String name) {
initDbObjectBase(database, id, name, Trace.DATABASE);
}
@Override
public String getCreateSQLForCopy(Table table, String quotedName) {
throw DbException.throwInternalError();
}
@Override
public String getDropSQL() {
return "DROP DOMAIN IF EXISTS " + getSQL();
}
@Override
public String getCreateSQL() {
return "CREATE DOMAIN " + getSQL() + " AS " + column.getCreateSQL();
}
public Column getColumn() {
return column;
}
@Override
public int getType() {
return DbObject.USER_DATATYPE;
}
@Override
public void removeChildrenAndResources(Session session) {
database.removeMeta(session, getId());
}
@Override
public void checkRename() {
// ok
}
public void setColumn(Column column) {
this.column = column;
}
}