Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.ddlutils.platform.sybase
Class SybaseBuilder

    java.lang.Object
      org.apache.ddlutils.platform.SqlBuilder
          org.apache.ddlutils.platform.sybase.SybaseBuilder

    public class SybaseBuilder

extends SqlBuilder

The SQL Builder for Sybase.

Version:
  $Revision: 532976 $

Field Summary

Fields inherited from class org.apache.ddlutils.platform.SqlBuilder
`_log, SIZE_PLACEHOLDER`

Constructor Summary
`SybaseBuilder(Platform platform)` Creates a new builder instance.

Method Summary
`void` | `createTable(Database database, Table table, Map parameters)` Outputs the DDL to create the table along with any non-external constraints as well as with external primary keys and indices (but not foreign keys).
`void` | `dropExternalForeignKeys(Table table)` Creates external foreignkey drop statements.
`void` | `dropTable(Table table)` Outputs the DDL to drop the table.
`protected String` | `getDisableIdentityOverrideSql(Table table)` Returns the SQL to disable identity override mode.
`protected String` | `getEnableIdentityOverrideSql(Table table)` Returns the SQL to enable identity override mode.
`protected String` | `getNativeDefaultValue(Column column)` Returns the native default value for the column.
`protected String` | `getQuotationOnStatement()` Returns the statement that turns on the ability to write delimited identifiers.
`String` | `getSelectLastIdentityValues(Table table)` Generates the SQL for querying the id that was created in the last insertion operation.
`protected void` | `processChange(Database currentModel, Database desiredModel, AddColumnChange change)` Processes the addition of a column to a table.
`protected void` | `processChange(Database currentModel, Database desiredModel, ColumnDefaultValueChange change)` Processes the change of the default value of a column.
`protected void` | `processChange(Database currentModel, Database desiredModel, RemoveColumnChange change)` Processes the removal of a column from a table.
`protected void` | `processChange(Database currentModel, Database desiredModel, RemovePrimaryKeyChange change)` Processes the removal of a primary key from a table.
`protected void` | `processChanges(Database currentModel, Database desiredModel, List changes, CreationParameters params)` Processes the changes.
`protected void` | `processColumnChange(Table sourceTable, Table targetTable, Column sourceColumn, Column targetColumn)` Processes a change to a column.
`protected void` | `processTableStructureChanges(Database currentModel, Database desiredModel, Table sourceTable, Table targetTable, Map parameters, List changes)` Allows database-specific implementations to handle changes in a database specific manner.
`protected void` | `writeCastExpression(Column sourceColumn, Column targetColumn)` Writes a cast expression that converts the value of the source column to the data type of the target column.
`protected void` | `writeColumn(Table table, Column column)` Outputs the DDL for the specified column.
`protected void` | `writeCopyDataStatement(Table sourceTable, Table targetTable)` Writes a statement that copies the data from the source to the target table.
`protected void` | `writeExternalForeignKeyDropStmt(Table table, ForeignKey foreignKey)` Generates the statement to drop a foreignkey constraint from the database using an alter table statement.
`void` | `writeExternalIndexDropStmt(Table table, Index index)` Generates the statement to drop a non-embedded index from the database.
`protected void` | `writeTableCreationStmtEnding(Table table, Map parameters)` Writes the end of the table creation statement.

Methods inherited from class org.apache.ddlutils.platform.SqlBuilder
`addEscapedCharSequence, alterDatabase, applyForSelectedChanges, areEqual, columnsDiffer, createExternalForeignKeys, createExternalForeignKeys, createTable, createTables, createTables, createTables, createTemporaryTable, createUniqueIdentifier, dropTable, dropTables, dropTemporaryTable, escapeStringValue, findCorrespondingForeignKey, getBareNativeType, getColumnName, getConstraintName, getDefaultValueHelper, getDeleteSql, getDelimitedIdentifier, getForeignKeyName, getIndent, getIndexName, getInsertSql, getMaxColumnNameLength, getMaxConstraintNameLength, getMaxForeignKeyNameLength, getMaxTableNameLength, getNativeType, getPlatform, getPlatformInfo, getRealTargetTableFor, getSqlType, getTableName, getTemporaryTableFor, getUpdateSql, getValueAsString, getValueDateFormat, getValueLocale, getValueNumberFormat, getValueTimeFormat, getWriter, isValidDefaultValue, print, printComment, printDefaultValue, printEndOfStatement, printIdentifier, printIndent, println, println, printlnIdentifier, printStartOfEmbeddedStatement, processChange, processChange, processChange, processChange, processChange, processChange, processChange, processChange, processTableStructureChanges, processTableStructureChanges, setIndent, setValueDateFormat, setValueLocale, setValueNumberFormat, setValueTimeFormat, setWriter, shortenName, shouldGeneratePrimaryKeys, writeColumnAutoIncrementStmt, writeColumnDefaultValue, writeColumnDefaultValueStmt, writeColumnNotNullableStmt, writeColumnNullableStmt, writeColumns, writeEmbeddedForeignKeysStmt, writeEmbeddedIndexCreateStmt, writeEmbeddedIndicesStmt, writeEmbeddedPrimaryKeysStmt, writeExternalForeignKeyCreateStmt, writeExternalIndexCreateStmt, writeExternalIndicesCreateStmt, writeExternalPrimaryKeysCreateStmt, writeForeignReferences, writeLocalReferences, writePrimaryKeyStmt, writeTableAlterStmt, writeTableComment, writeTableCreationStmt`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SybaseBuilder

    public SybaseBuilder(Platform platform)

  Creates a new builder instance.

  Parameters:
    `platform` - The plaftform this builder belongs to

Method Detail

### createTable

    public void createTable(Database database,
                            Table table,
                            Map parameters)
                     throws IOException

  Outputs the DDL to create the table along with any non-external constraints as well as with external primary keys and indices (but not foreign keys).

  Overrides:
    `createTable` in class `SqlBuilder`
  Parameters:
    `database` - The database model
    `table` - The table
    `parameters` - Additional platform-specific parameters for the table creation
  Throws:
    `IOException`

### writeTableCreationStmtEnding

    protected void writeTableCreationStmtEnding(Table table,
                                                Map parameters)
                                         throws IOException

  Writes the end of the table creation statement. Per default, only the end of the statement is written, but this can be changed in subclasses.

  Overrides:
    `writeTableCreationStmtEnding` in class `SqlBuilder`
  Parameters:
    `table` - The table
    `parameters` - Additional platform-specific parameters for the table creation
  Throws:
    `IOException`

### writeColumn

    protected void writeColumn(Table table,
                               Column column)
                        throws IOException

  Outputs the DDL for the specified column.

  Overrides:
    `writeColumn` in class `SqlBuilder`
  Parameters:
    `table` - The table containing the column
    `column` - The column
  Throws:
    `IOException`

### getNativeDefaultValue

    protected String getNativeDefaultValue(Column column)

  Returns the native default value for the column.

  Overrides:
    `getNativeDefaultValue` in class `SqlBuilder`
  Parameters:
    `column` - The column
  Returns:
    The native default value

### dropTable

    public void dropTable(Table table)
                   throws IOException

  Outputs the DDL to drop the table. Note that this method does not drop foreign keys to this table. Use `SqlBuilder.dropTable(Database, Table)` if you want that.

  Overrides:
    `dropTable` in class `SqlBuilder`
  Parameters:
    `table` - The table to drop
  Throws:
    `IOException`

### writeExternalForeignKeyDropStmt

    protected void writeExternalForeignKeyDropStmt(Table table,
                                                   ForeignKey foreignKey)
                                            throws IOException

  Generates the statement to drop a foreignkey constraint from the database using an alter table statement.

  Overrides:
    `writeExternalForeignKeyDropStmt` in class `SqlBuilder`
  Parameters:
    `table` - The table
    `foreignKey` - The foreign key
  Throws:
    `IOException`

### writeExternalIndexDropStmt

    public void writeExternalIndexDropStmt(Table table,
                                           Index index)
                                    throws IOException

  Generates the statement to drop a non-embedded index from the database.

  Overrides:
    `writeExternalIndexDropStmt` in class `SqlBuilder`
  Parameters:
    `table` - The table the index is on
    `index` - The index to drop
  Throws:
    `IOException`

### dropExternalForeignKeys

    public void dropExternalForeignKeys(Table table)
                                 throws IOException

  Creates external foreignkey drop statements.

  Overrides:
    `dropExternalForeignKeys` in class `SqlBuilder`
  Parameters:
    `table` - The table
  Throws:
    `IOException`

### getSelectLastIdentityValues

    public String getSelectLastIdentityValues(Table table)

  Generates the SQL for querying the id that was created in the last insertion operation. This is obviously only useful for pk fields that are auto-incrementing. A database that does not support this, will return `null`.

  Overrides:
    `getSelectLastIdentityValues` in class `SqlBuilder`
  Parameters:
    `table` - The table
  Returns:
    The sql, or `null` if the database does not support this

### getEnableIdentityOverrideSql

    protected String getEnableIdentityOverrideSql(Table table)

  Returns the SQL to enable identity override mode.

  Parameters:
    `table` - The table to enable the mode for
  Returns:
    The SQL

### getDisableIdentityOverrideSql

    protected String getDisableIdentityOverrideSql(Table table)

  Returns the SQL to disable identity override mode.

  Parameters:
    `table` - The table to disable the mode for
  Returns:
    The SQL

### getQuotationOnStatement

    protected String getQuotationOnStatement()

  Returns the statement that turns on the ability to write delimited identifiers.

  Returns:
    The quotation-on statement

### writeCopyDataStatement

    protected void writeCopyDataStatement(Table sourceTable,
                                          Table targetTable)
                                   throws IOException

  Writes a statement that copies the data from the source to the target table. Note that this copies only those columns that are in both tables. Database-specific implementations might redefine this method though they usually it suffices to redefine the `SqlBuilder.writeCastExpression(Column, Column)` method.

  Overrides:
    `writeCopyDataStatement` in class `SqlBuilder`
  Parameters:
    `sourceTable` - The source table
    `targetTable` - The target table
  Throws:
    `IOException`

### writeCastExpression

    protected void writeCastExpression(Column sourceColumn,
                                       Column targetColumn)
                                throws IOException

  Writes a cast expression that converts the value of the source column to the data type of the target column. Per default, simply the name of the source column is written thereby assuming that any casts happen implicitly.

  Overrides:
    `writeCastExpression` in class `SqlBuilder`
  Parameters:
    `sourceColumn` - The source column
    `targetColumn` - The target column
  Throws:
    `IOException`

### processChanges

    protected void processChanges(Database currentModel,
                                  Database desiredModel,
                                  List changes,
                                  CreationParameters params)
                           throws IOException

  Processes the changes. The default argument performs several passes:
  1. `RemoveForeignKeyChange` and `RemoveIndexChange` come first to allow for e.g. subsequent primary key changes or column removal.
  2. `RemoveTableChange` comes after the removal of foreign keys and indices.
  3. These are all handled together:
     `RemovePrimaryKeyChange`
     `AddPrimaryKeyChange`
     `PrimaryKeyChange`
     `RemoveColumnChange`
     `AddColumnChange`
     `ColumnAutoIncrementChange`
     `ColumnDefaultValueChange`
     `ColumnRequiredChange`
     `ColumnDataTypeChange`
     `ColumnSizeChange`
     The reason for this is that the default algorithm rebuilds the table for these changes and thus their order is irrelevant.
  4. `AddTableChange`
     needs to come after the table removal (so that tables of the same name are removed) and before the addition of foreign keys etc.
  5. `AddForeignKeyChange` and `AddIndexChange` come last after table/column/primary key additions or changes.

  Overrides:
    `processChanges` in class `SqlBuilder`
  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `changes` - The changes
    `params` - The parameters used in the creation of new tables. Note that for existing tables, the parameters won't be applied
  Throws:
    `IOException`

### processTableStructureChanges

    protected void processTableStructureChanges(Database currentModel,
                                                Database desiredModel,
                                                Table sourceTable,
                                                Table targetTable,
                                                Map parameters,
                                                List changes)
                                         throws IOException

  Allows database-specific implementations to handle changes in a database specific manner. Any handled change should be applied to the given current model (which is a copy of the real original model) and be removed from the list of changes.
  In the default implementation, all `AddPrimaryKeyChange` changes are applied via an `ALTER TABLE ADD CONSTRAINT` statement.

  Overrides:
    `processTableStructureChanges` in class `SqlBuilder`
  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `sourceTable` - The original table
    `targetTable` - The desired table
    `parameters` - The creation parameters for the table
    `changes` - The change objects for the target table
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 AddColumnChange change)
                          throws IOException

  Processes the addition of a column to a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 RemoveColumnChange change)
                          throws IOException

  Processes the removal of a column from a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 RemovePrimaryKeyChange change)
                          throws IOException

  Processes the removal of a primary key from a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 ColumnDefaultValueChange change)
                          throws IOException

  Processes the change of the default value of a column. Note that this method is only used if it is the only change to that column.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processColumnChange

    protected void processColumnChange(Table sourceTable,
                                       Table targetTable,
                                       Column sourceColumn,
                                       Column targetColumn)
                                throws IOException

  Processes a change to a column.

  Parameters:
    `sourceTable` - The current table
    `targetTable` - The desired table
    `sourceColumn` - The current column
    `targetColumn` - The desired column
  Throws:
    `IOException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005-2007 Apache Software Foundation. All Rights Reserved.