Package org.h2.command.ddl
Class AlterTableAlterColumn
- java.lang.Object
-
- org.h2.command.Prepared
-
- org.h2.command.ddl.DefineCommand
-
- org.h2.command.ddl.SchemaCommand
-
- org.h2.command.ddl.CommandWithColumns
-
- org.h2.command.ddl.AlterTableAlterColumn
-
public class AlterTableAlterColumn extends CommandWithColumns
This class represents the statements ALTER TABLE ADD, ALTER TABLE ADD IF NOT EXISTS, ALTER TABLE ALTER COLUMN, ALTER TABLE ALTER COLUMN SELECTIVITY, ALTER TABLE ALTER COLUMN SET DEFAULT, ALTER TABLE ALTER COLUMN DROP DEFAULT, ALTER TABLE ALTER COLUMN DROP EXPRESSION, ALTER TABLE ALTER COLUMN SET NULL, ALTER TABLE ALTER COLUMN DROP NULL, ALTER TABLE ALTER COLUMN SET VISIBLE, ALTER TABLE ALTER COLUMN SET INVISIBLE, ALTER TABLE DROP COLUMN
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringaddAfterprivate java.lang.StringaddBeforeprivate booleanaddFirstprivate booleanbooleanFlagprivate java.util.ArrayList<Column>columnsToAddprivate java.util.ArrayList<Column>columnsToRemoveprivate ExpressiondefaultExpressionDefault or on update expression.private booleanifNotExistsprivate booleanifTableExistsprivate ColumnnewColumnprivate ExpressionnewSelectivityprivate ColumnoldColumnprivate java.lang.StringtableNameprivate inttypeprivate ExpressionusingExpression-
Fields inherited from class org.h2.command.ddl.DefineCommand
transactional
-
Fields inherited from class org.h2.command.Prepared
create, parameters, prepareAlways, session, sqlStatement, sqlTokens
-
-
Constructor Summary
Constructors Constructor Description AlterTableAlterColumn(SessionLocal session, Schema schema)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddColumn(Column column)Add a column to this table.private static java.lang.StringBuilderaddColumn(Column column, java.lang.StringBuilder columnNames, java.lang.StringBuilder columnValues)private voidcheckClustering(Column c)private static voidcheckDefaultReferencesTable(Table table, Expression defaultExpression)private voidcheckNoNullValues(Table table)private voidcheckNullable(Table table)private voidcheckViews(SchemaObject sourceTable, SchemaObject newTable)Check that all views and other dependent objects.private voidcheckViewsAreValid(DbObject tableOrView)Check that a table or view is still valid.private TablecloneTableStructure(Table table, Column[] columns, Database db, java.lang.String tempName, java.util.ArrayList<Column> newColumns)private voidconvertIdentityColumn(Table table, Column c)private voidcopyData(Table table, java.util.ArrayList<Sequence> sequences, boolean createConstraints)private voidexecute(java.lang.String sql)intgetType()Get the command type as defined in CommandInterfaceprivate voidremoveSequence(Table table, Sequence sequence)voidsetAddAfter(java.lang.String after)voidsetAddBefore(java.lang.String before)voidsetAddFirst()Add the column as the first column of the table.voidsetBooleanFlag(boolean booleanFlag)voidsetColumnsToRemove(java.util.ArrayList<Column> columnsToRemove)voidsetDefaultExpression(Expression defaultExpression)Set default or on update expression.voidsetIfNotExists(boolean ifNotExists)voidsetIfTableExists(boolean b)voidsetNewColumn(Column newColumn)voidsetOldColumn(Column oldColumn)voidsetSelectivity(Expression selectivity)voidsetTableName(java.lang.String tableName)voidsetType(int type)voidsetUsingExpression(Expression usingExpression)Set using expression.longupdate()Execute the statement.-
Methods inherited from class org.h2.command.ddl.CommandWithColumns
addConstraintCommand, changePrimaryKeysToNotNull, createConstraints, generateSequences, getPrimaryKey
-
Methods inherited from class org.h2.command.ddl.SchemaCommand
getSchema
-
Methods inherited from class org.h2.command.ddl.DefineCommand
isReadOnly, isTransactional, queryMeta, setTransactional
-
Methods inherited from class org.h2.command.Prepared
checkCanceled, checkParameters, collectDependencies, getCteCleanups, getCurrentRowNumber, getObjectId, getParameters, getPersistedObjectId, getPlanSQL, getSession, getSimpleSQL, getSQL, getSQLTokens, isCacheable, isQuery, needRecompile, prepare, query, setCommand, setCteCleanups, setCurrentRowNumber, setParameterList, setPersistedObjectId, setPrepareAlways, setRow, setSession, setSQL, toString
-
-
-
-
Field Detail
-
tableName
private java.lang.String tableName
-
oldColumn
private Column oldColumn
-
newColumn
private Column newColumn
-
type
private int type
-
defaultExpression
private Expression defaultExpression
Default or on update expression.
-
newSelectivity
private Expression newSelectivity
-
usingExpression
private Expression usingExpression
-
addFirst
private boolean addFirst
-
addBefore
private java.lang.String addBefore
-
addAfter
private java.lang.String addAfter
-
ifTableExists
private boolean ifTableExists
-
ifNotExists
private boolean ifNotExists
-
columnsToAdd
private java.util.ArrayList<Column> columnsToAdd
-
columnsToRemove
private java.util.ArrayList<Column> columnsToRemove
-
booleanFlag
private boolean booleanFlag
-
-
Constructor Detail
-
AlterTableAlterColumn
public AlterTableAlterColumn(SessionLocal session, Schema schema)
-
-
Method Detail
-
setIfTableExists
public void setIfTableExists(boolean b)
-
setTableName
public void setTableName(java.lang.String tableName)
-
setOldColumn
public void setOldColumn(Column oldColumn)
-
setAddFirst
public void setAddFirst()
Add the column as the first column of the table.
-
setAddBefore
public void setAddBefore(java.lang.String before)
-
setAddAfter
public void setAddAfter(java.lang.String after)
-
update
public long update()
Description copied from class:PreparedExecute the statement.
-
checkDefaultReferencesTable
private static void checkDefaultReferencesTable(Table table, Expression defaultExpression)
-
checkClustering
private void checkClustering(Column c)
-
copyData
private void copyData(Table table, java.util.ArrayList<Sequence> sequences, boolean createConstraints)
-
cloneTableStructure
private Table cloneTableStructure(Table table, Column[] columns, Database db, java.lang.String tempName, java.util.ArrayList<Column> newColumns)
-
addColumn
private static java.lang.StringBuilder addColumn(Column column, java.lang.StringBuilder columnNames, java.lang.StringBuilder columnValues)
-
checkViews
private void checkViews(SchemaObject sourceTable, SchemaObject newTable)
Check that all views and other dependent objects.
-
checkViewsAreValid
private void checkViewsAreValid(DbObject tableOrView)
Check that a table or view is still valid.- Parameters:
tableOrView- the table or view to check
-
execute
private void execute(java.lang.String sql)
-
checkNullable
private void checkNullable(Table table)
-
checkNoNullValues
private void checkNoNullValues(Table table)
-
setType
public void setType(int type)
-
setSelectivity
public void setSelectivity(Expression selectivity)
-
setDefaultExpression
public void setDefaultExpression(Expression defaultExpression)
Set default or on update expression.- Parameters:
defaultExpression- default or on update expression
-
setUsingExpression
public void setUsingExpression(Expression usingExpression)
Set using expression.- Parameters:
usingExpression- using expression
-
setNewColumn
public void setNewColumn(Column newColumn)
-
getType
public int getType()
Description copied from class:PreparedGet the command type as defined in CommandInterface
-
setIfNotExists
public void setIfNotExists(boolean ifNotExists)
-
addColumn
public void addColumn(Column column)
Description copied from class:CommandWithColumnsAdd a column to this table.- Specified by:
addColumnin classCommandWithColumns- Parameters:
column- the column to add
-
setColumnsToRemove
public void setColumnsToRemove(java.util.ArrayList<Column> columnsToRemove)
-
setBooleanFlag
public void setBooleanFlag(boolean booleanFlag)
-
-