Class Hana
- All Implemented Interfaces:
Backend
Requires at least SAP HANA 2.0. SAP HANA Cloud is supported as well.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intthe limit used to emulate an OFFSET without a LIMIT (HANA requires both).static final String[]array of additional reserved words (those not already covered by SQL92 and SQL2003).static final StringLIMIT string.static final StringLIMIT ?static final StringOFFSET string.static final StringOFFSET ?Fields inherited from class AbstractSql2003Backend
RESERVED_WORDS_SQL2003, SQL_WINDOW_1, SQL_WINDOW_2, SQL_WINDOW_LIMIT, SQL_WINDOW_OFFSETFields inherited from class AbstractSql92Backend
RESERVED_WORDS_SQL92, SQL_COALESCE, SQL_FOR_UPDATEFields inherited from class AbstractBackend
TYPE_BIGINT, TYPE_BIT, TYPE_BLOB, TYPE_BOOL, TYPE_BOOLEAN, TYPE_BYTE, TYPE_BYTEA, TYPE_CHAR_1, TYPE_CLOB, TYPE_DATE, TYPE_DATETIME, TYPE_DATETIME_6, TYPE_DATETIME_YEAR_TO_SECOND, TYPE_DECIMAL, TYPE_DECIMAL_19, TYPE_DOUBLE, TYPE_DOUBLE_PRECISION, TYPE_FLOAT, TYPE_FLOAT4, TYPE_FLOAT8, TYPE_INT, TYPE_INT2, TYPE_INT4, TYPE_INT8, TYPE_INTEGER, TYPE_JSON, TYPE_JSONB, TYPE_LONGBLOB, TYPE_LONGTEXT, TYPE_NCHAR_1, TYPE_NUMBER, TYPE_NUMBER_1, TYPE_NUMBER_10, TYPE_NUMBER_19, TYPE_NUMBER_5, TYPE_NVARCHAR, TYPE_NVARCHAR_MAX, TYPE_REAL, TYPE_SMALLFLOAT, TYPE_SMALLINT, TYPE_TEXT, TYPE_TIME, TYPE_TIME_6, TYPE_TIMESTAMP, TYPE_TINYINT, TYPE_UUID, TYPE_VARBINARY_MAX, TYPE_VARCHAR, TYPE_XML, TYPE_XMLTYPEFields inherited from interface Backend
SQL_ALLSTAR, SQL_ALTER_COLUMN, SQL_ALTER_INDEX, SQL_ALTER_TABLE, SQL_AND, SQL_ANDNOT, SQL_ARRAY_ALL, SQL_ARRAY_ALL_PAR, SQL_ARRAY_ANY, SQL_ARRAY_ANY_PAR, SQL_ARRAY_IN, SQL_ARRAY_IN_PAR, SQL_ARRAY_NOT_IN, SQL_ARRAY_NOT_IN_PAR, SQL_ARRAY_PAR, SQL_COMMA, SQL_COMMA_PAR, SQL_DELETE, SQL_DELETE_FROM, SQL_DOT_STAR, SQL_EQUAL, SQL_EQUAL_PAR, SQL_EQUAL_PAR_COMMA, SQL_EQUAL_ZERO, SQL_EXISTS, SQL_FROM, SQL_GREATER, SQL_GREATER_PAR, SQL_GREATEROREQUAL, SQL_GREATEROREQUAL_PAR, SQL_GROUPBY, SQL_IF_EXISTS, SQL_INSERT_INTO, SQL_INSERT_VALUES, SQL_ISNOTNULL, SQL_ISNULL, SQL_LEFT_PARENTHESIS, SQL_LESS, SQL_LESS_PAR, SQL_LESSOREQUAL, SQL_LESSOREQUAL_PAR, SQL_LIKE, SQL_LIKE_PAR, SQL_MAX, SQL_MIN, SQL_NOT, SQL_NOTEQUAL, SQL_NOTEQUAL_PAR, SQL_NOTEQUAL_ZERO, SQL_NOTLIKE, SQL_NOTLIKE_PAR, SQL_OR, SQL_ORDERBY, SQL_ORNOT, SQL_PAR, SQL_PAR_COMMA, SQL_PLUS_ONE, SQL_RIGHT_PARENTHESIS, SQL_SELECT, SQL_SELECT_ALL_FROM, SQL_SET, SQL_SORTASC, SQL_SORTDESC, SQL_UPDATE, SQL_WHERE, SQL_WHEREALL, SQL_WHEREAND, SQL_WHERENOTHING, SQL_WHEREOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbuildSelectSql(StringBuilder sqlBuilder, boolean writeLock, int limit, int offset) Creates a select statement string from an inner SQL string.columnTypeNullDefaultToString(String columnName, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Converts an SqlType, size, scale, nullable, and default value to a database type declaration.getBackendId(Connection connection) Determines the unique id or name used by the backend for a given connection.Gets the JDBC driver class name.Gets the dummy select to keep/test connections alive.
Most databases just require a"SELECT 1".intgetMaxNameLength(SqlNameType nameType) Gets the maximum allowed length for a name.
This method is used byBackend.assertValidName(SqlNameType, String).intgetMaxSize(SqlType sqlType) Returns the maximum size for a given SQL type.getMigrationStrategy(ColumnMetaData column, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Determines the best migration strategy.getName()Gets the name of the backend.Gets the list of reserved words for this backend.booleanReturns whether the backend requires an alias for a sub-select.booleanDetermines whether the exception is a communication error.booleanDetermines whether exception is a constraint violation.booleanisMatchingUrl(String url) Checks whether the backend belongs to the given jdbc url.
If multiple backend implementations are provided for the same database type, only one backend should match the URL.booleanisReservedSchemaName(String name) Checks whether this is a reserved schema name for this backend.booleanDetermines whether the exception is transient and retrying the transaction may succeed.
Typical transient exceptions are thrown when a deadlock is detected or when serialized transaction isolation is used.SqlType[]jdbcTypeToSqlType(int jdbcType, int size, int scale) Converts the JDBC data type integer to Tentackle SqlTypes.intsetLeadingSelectParameters(BackendPreparedStatement stmt, int limit, int offset) Sets optional parameters before applying the original parameters.intsetTrailingSelectParameters(BackendPreparedStatement stmt, int index, int limit, int offset) Sets optional parameters after applying the original parameters.sqlAddColumn(String tableName, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Generates SQL code to add a column.sqlAlterColumnDefault(String tableName, String columnName, SqlType sqlType, Object defaultValue) Generates SQL code to change the default value of a column.sqlAlterColumnNullConstraint(String tableName, String columnName, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Generates SQL code to change the null-constraint of a column, given its full declaration.
Some backends (MySQL, for example) cannot change a single property of a column: the whole declaration must be repeated.sqlAlterColumnType(String tableName, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Generates SQL code to change the datatype of a column.sqlCreateColumnComment(String tableName, String columnName, String comment) Generates SQL code to create the comment for an attribute.sqlCreateTableComment(String tableName, String comment) Generates SQL code to create the comment for a table.sqlDropColumn(String tableName, String columnName) Generates SQL code to drop a column.sqlNextFromSequence(String name) Creates the SQL string to retrieve the next id from a sequence.sqlRenameColumn(String tableName, String oldColumnName, String newColumnName) Generates SQL code to rename a column.sqlRenameIndex(String tableName, String oldIndexName, String newIndexName) Generates SQL code to rename an index.sqlRenameTable(String tableName, String newTableName) Generates SQL code to rename a table.sqlTypeToString(SqlType sqlType, int size) Converts the java SQL type to the database type name.voidvalidateVersion(BackendVersionInfo versionInfo) Verifies that the major and minor version of the connection's metadata is compatible with this backend.
If the latest backend is not compatible, the URL may be post-fixed with a backend type for an older version, for example:valueToLiteral(SqlType sqlType, Object value) Converts a type and value to a literal string.Methods inherited from class AbstractSql2003Backend
isSequenceSupported, sqlCreateSequenceMethods inherited from class AbstractSql92Backend
getCoalesceKeyword, isLeadingSelectMissing, removeLeadingSelect, sqlCreateForeignKey, sqlCreateSequenceComment, sqlCreateUniqueConstraint, sqlDropConstraint, sqlDropForeignKeyMethods inherited from class AbstractBackend
assertValidName, buildSelectSql, columnTypeToString, createColumnMetaData, createConnection, createIndexColumnMetaData, createIndexMetaData, createPassword, createScriptRunner, createTableMetaData, createXADataSource, enrichIndexDeferrability, getBlockCommentBegin, getBlockCommentBegins, getBlockCommentEnd, getBlockCommentEnds, getDefaultSchema, getDefaultSize, getEmptyString, getIndexMetaDataCommentColumnName, getJson, getMaxScale, getMetaData, getModelMetaData, getSingleLineComment, getSingleLineComments, getStatementSeparator, getStatementSeparators, getTableHeaders, getTableMetaData, getXADataSourceClassName, isArrayOperatorSupported, isClobSupported, isDatabaseInMemory, isDefaultEqual, isDeprecated, isDropIfExistsEnabled, isDropIfExistsSupported, isExceptionErrorCodeMatching, isExceptionStateMatching, isExceptionStateStartingWith, isExpressionReferringToTableBeingUpdatedSupported, isExtraCommitRequired, isFilteredIndexSupported, isFunctionBasedIndexSupported, isJsonSupported, isMatchingName, isPosixEscapeSyntaxSupported, isReleaseSavepointSupported, isReservedTableName, isReservedWord, isSchemaSupported, isSetConstraintsDeferredSupported, isSqlxmlSupported, isTemporaryName, isTxRequiredForFetchsize, isUUIDSupported, jdbcTypeToSqlType, normalizeDefault, optimizeSql, reduceSql, reduceSql, setArray, setDataSourceProperty, setDropIfExistsEnabled, setJson, sqlAlterColumnComment, sqlAlterColumnNullConstraint, sqlAlterIndexComment, sqlAlterTableComment, sqlAsBeforeTableAlias, sqlComment, sqlCreateColumn, sqlCreateIndex, sqlCreateIndexComment, sqlCreateSchema, sqlCreateTableAttributeWithoutComment, sqlCreateTableClosing, sqlCreateTableIntro, sqlCreateTableIntroWithoutComment, sqlDropIndex, sqlDropTable, sqlFunction, sqlJoin, sqlJoinSelects, sqlJoinSelects, sqlRenameAndAlterColumnType, sqlSetConstraintsDeferred, sqlUpdateToNotNull, toInternalType, toQuotedString, toString
-
Field Details
-
SQL_LIMIT
-
SQL_OFFSET
-
SQL_LIMIT_PAR
-
SQL_OFFSET_PAR
-
MAX_LIMIT
public static final int MAX_LIMITthe limit used to emulate an OFFSET without a LIMIT (HANA requires both).- See Also:
-
RESERVED_WORDS_HANA
array of additional reserved words (those not already covered by SQL92 and SQL2003).
-
-
Constructor Details
-
Hana
public Hana()Creates the HANA backend.
-
-
Method Details
-
getReservedWords
Description copied from interface:BackendGets the list of reserved words for this backend.- Specified by:
getReservedWordsin interfaceBackend- Overrides:
getReservedWordsin classAbstractSql2003Backend- Returns:
- the set of reserved words
-
getMaxNameLength
Description copied from interface:BackendGets the maximum allowed length for a name.
This method is used byBackend.assertValidName(SqlNameType, String).- Specified by:
getMaxNameLengthin interfaceBackend- Overrides:
getMaxNameLengthin classAbstractBackend- Parameters:
nameType- the type of the name- Returns:
- the length
-
isMatchingUrl
Description copied from interface:BackendChecks whether the backend belongs to the given jdbc url.
If multiple backend implementations are provided for the same database type, only one backend should match the URL. The others must be selected via name.- Parameters:
url- the jdbc url- Returns:
- true if matches
-
getName
-
getDriverClassName
-
validateVersion
Description copied from interface:BackendVerifies that the major and minor version of the connection's metadata is compatible with this backend.
If the latest backend is not compatible, the URL may be post-fixed with a backend type for an older version, for example:jdbc:oracle:thin:@//localhost:1521/xe|Oracle8
- Specified by:
validateVersionin interfaceBackend- Overrides:
validateVersionin classAbstractBackend- Parameters:
versionInfo- the database version- See Also:
-
getBackendId
Description copied from interface:BackendDetermines the unique id or name used by the backend for a given connection.Useful to figure out the corresponding
ManagedConnectionfrom the backend's logfiles.- Parameters:
connection- the jdbc connection- Returns:
- the backend id, null if none
-
getDummySelect
Description copied from interface:BackendGets the dummy select to keep/test connections alive.
Most databases just require a"SELECT 1".- Specified by:
getDummySelectin interfaceBackend- Overrides:
getDummySelectin classAbstractBackend- Returns:
- the select string
-
isReservedSchemaName
Description copied from interface:BackendChecks whether this is a reserved schema name for this backend.- Specified by:
isReservedSchemaNamein interfaceBackend- Overrides:
isReservedSchemaNamein classAbstractBackend- Parameters:
name- the schema name- Returns:
- true if reserved by backend
-
isAliasRequiredForSubSelect
public boolean isAliasRequiredForSubSelect()Description copied from interface:BackendReturns whether the backend requires an alias for a sub-select.- Specified by:
isAliasRequiredForSubSelectin interfaceBackend- Overrides:
isAliasRequiredForSubSelectin classAbstractBackend- Returns:
- true if a sub-select needs an alias.
-
isConstraintException
Description copied from interface:BackendDetermines whether exception is a constraint violation.- Specified by:
isConstraintExceptionin interfaceBackend- Overrides:
isConstraintExceptionin classAbstractBackend- Parameters:
ex- the exception- Returns:
- true if constraint violation
-
isCommunicationLinkException
Description copied from interface:BackendDetermines whether the exception is a communication error.- Specified by:
isCommunicationLinkExceptionin interfaceBackend- Overrides:
isCommunicationLinkExceptionin classAbstractBackend- Parameters:
ex- the exception- Returns:
- true if comlink down or alike
-
isTransientTransactionException
Description copied from interface:BackendDetermines whether the exception is transient and retrying the transaction may succeed.
Typical transient exceptions are thrown when a deadlock is detected or when serialized transaction isolation is used.Other transient errors are not covered by this method (e.g., connection timeouts, etc...).
- Specified by:
isTransientTransactionExceptionin interfaceBackend- Overrides:
isTransientTransactionExceptionin classAbstractBackend- Parameters:
ex- the exception- Returns:
- true if retrying the transaction may succeed
-
buildSelectSql
Description copied from class:AbstractSql2003BackendCreates a select statement string from an inner SQL string.sqlBuilderis anything like[SELECT] FROM... WHERE... ORDER BY....
It is decorated with a leadingSELECT, if missing, plus optional LIMIT, OFFSET and FOR UPDATE clauses according to the given parameters.Notice that not all backends support a write lock combined with a limit or offset.
With a limit or offset, the original select is wrapped into an enclosing select that filters by row number. A write lock cannot be combined with a limit or offset, since most databases refuse
FOR UPDATEwithin a nested select.- Specified by:
buildSelectSqlin interfaceBackend- Overrides:
buildSelectSqlin classAbstractSql2003Backend- Parameters:
sqlBuilder- the SQL builder, initially containing the inner SQL with or without leadingSELECTwriteLock- true if the select should write-locklimit- the limit value, ≤ 0 if no limit clauseoffset- the offset value, ≤ 0 if no offset clause
-
setLeadingSelectParameters
Description copied from interface:BackendSets optional parameters before applying the original parameters.- Specified by:
setLeadingSelectParametersin interfaceBackend- Overrides:
setLeadingSelectParametersin classAbstractSql2003Backend- Parameters:
stmt- the prepared statementlimit- the limit value, ≤ 0 if no limit clauseoffset- the offset value, ≤ 0 if no offset clause- Returns:
- the next parameter index
-
setTrailingSelectParameters
public int setTrailingSelectParameters(BackendPreparedStatement stmt, int index, int limit, int offset) Description copied from class:AbstractSql2003BackendSets optional parameters after applying the original parameters.Because the limit is applied as an upper bound of the row number, it is bound as
offset + limit.- Specified by:
setTrailingSelectParametersin interfaceBackend- Overrides:
setTrailingSelectParametersin classAbstractSql2003Backend- Parameters:
stmt- the prepared statementindex- the first parameter indexlimit- the limit value, ≤ 0 if no limit clauseoffset- the offset value, ≤ 0 if no offset clause- Returns:
- the next parameter index
-
getMaxSize
Description copied from interface:BackendReturns the maximum size for a given SQL type.- Specified by:
getMaxSizein interfaceBackend- Overrides:
getMaxSizein classAbstractBackend- Parameters:
sqlType- the SQL-type- Returns:
- the maximum size, 0 if unlimited, -1 for types without a size
-
sqlTypeToString
Description copied from interface:BackendConverts the java SQL type to the database type name.- Specified by:
sqlTypeToStringin interfaceBackend- Overrides:
sqlTypeToStringin classAbstractBackend- Parameters:
sqlType- the java SQL typesize- the column's size- Returns:
- the corresponding type string
-
jdbcTypeToSqlType
Description copied from interface:BackendConverts the JDBC data type integer to Tentackle SqlTypes.There may be more than one SqlType returned!
- Specified by:
jdbcTypeToSqlTypein interfaceBackend- Overrides:
jdbcTypeToSqlTypein classAbstractBackend- Parameters:
jdbcType- the jdbc data typesize- the column sizescale- the column's scale- Returns:
- the SqlTypes, empty array if no mapping available or no exact match (not generated by Tentackle)
- See Also:
-
columnTypeNullDefaultToString
public String columnTypeNullDefaultToString(String columnName, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Description copied from interface:BackendConverts an SqlType, size, scale, nullable, and default value to a database type declaration.- Specified by:
columnTypeNullDefaultToStringin interfaceBackend- Overrides:
columnTypeNullDefaultToStringin classAbstractBackend- Parameters:
columnName- the database column namesqlType- the SQL typesize- the optional sizescale- the optional scalenullable- true if NULL, else NOT NULLdefaultValue- the optional default value- Returns:
- the SQL code
-
valueToLiteral
Description copied from interface:BackendConverts a type and value to a literal string.- Specified by:
valueToLiteralin interfaceBackend- Overrides:
valueToLiteralin classAbstractBackend- Parameters:
sqlType- the SQL typevalue- the value- Returns:
- the constant
-
sqlNextFromSequence
Description copied from interface:BackendCreates the SQL string to retrieve the next id from a sequence.- Specified by:
sqlNextFromSequencein interfaceBackend- Overrides:
sqlNextFromSequencein classAbstractSql2003Backend- Parameters:
name- the name of the sequence- Returns:
- the SQL code
-
sqlCreateTableComment
Description copied from interface:BackendGenerates SQL code to create the comment for a table.- Specified by:
sqlCreateTableCommentin interfaceBackend- Overrides:
sqlCreateTableCommentin classAbstractBackend- Parameters:
tableName- the table namecomment- optional comment, null if none- Returns:
- the SQL code, empty string if the comment is created via
Backend.sqlCreateTableIntro(String, String)orBackend.sqlCreateTableClosing(String, String)
-
sqlCreateColumnComment
Description copied from interface:BackendGenerates SQL code to create the comment for an attribute.- Specified by:
sqlCreateColumnCommentin interfaceBackend- Overrides:
sqlCreateColumnCommentin classAbstractBackend- Parameters:
tableName- the table namecolumnName- the column namecomment- optional comment, null if none- Returns:
- the SQL-code, the empty string if comment is created via
Backend.sqlCreateColumn(String, String, SqlType, int, int, boolean, Object, boolean, boolean)
-
sqlRenameTable
Description copied from interface:BackendGenerates SQL code to rename a table.- Specified by:
sqlRenameTablein interfaceBackend- Overrides:
sqlRenameTablein classAbstractBackend- Parameters:
tableName- the old table name (with leading schema, if any)newTableName- the new table name (without the schema name)- Returns:
- the SQL code
-
sqlRenameColumn
Description copied from interface:BackendGenerates SQL code to rename a column.- Specified by:
sqlRenameColumnin interfaceBackend- Overrides:
sqlRenameColumnin classAbstractBackend- Parameters:
tableName- the table nameoldColumnName- the old column namenewColumnName- the new column name- Returns:
- the SQL code, null if
Backend.sqlRenameAndAlterColumnType(String, String, String, String, SqlType, int, int, boolean, Object)must be used instead
-
sqlRenameIndex
Description copied from interface:BackendGenerates SQL code to rename an index.- Specified by:
sqlRenameIndexin interfaceBackend- Overrides:
sqlRenameIndexin classAbstractBackend- Parameters:
tableName- the table nameoldIndexName- the old index namenewIndexName- the new index name- Returns:
- the SQL code, null if not supported by the backend and the index must be dropped and re-created
-
sqlAddColumn
public String sqlAddColumn(String tableName, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Description copied from interface:BackendGenerates SQL code to add a column.- Specified by:
sqlAddColumnin interfaceBackend- Overrides:
sqlAddColumnin classAbstractBackend- Parameters:
tableName- the table namecolumnName- the new column namecomment- optional comment, null if nonesqlType- the SQL typesize- the optional sizescale- the optional scalenullable- true if NULL, else NOT NULLdefaultValue- the optional default value- Returns:
- the SQL code
-
sqlDropColumn
Description copied from interface:BackendGenerates SQL code to drop a column.- Specified by:
sqlDropColumnin interfaceBackend- Overrides:
sqlDropColumnin classAbstractBackend- Parameters:
tableName- the table namecolumnName- the column name- Returns:
- the SQL code
-
sqlAlterColumnType
public String sqlAlterColumnType(String tableName, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Generates SQL code to change the datatype of a column.HANA alters a column by replacing its whole declaration. Hence, the null constraint and the default value always change along with the type.
- Specified by:
sqlAlterColumnTypein interfaceBackend- Overrides:
sqlAlterColumnTypein classAbstractBackend- Parameters:
tableName- the table namecolumnName- the column namecomment- optional comment, null if nonesqlType- the SQL typesize- the optional sizescale- the optional scalenullable- true if NULL, else NOT NULLdefaultValue- the optional default value- Returns:
- the SQL code
-
sqlAlterColumnNullConstraint
public String sqlAlterColumnNullConstraint(String tableName, String columnName, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Description copied from interface:BackendGenerates SQL code to change the null-constraint of a column, given its full declaration.
Some backends (MySQL, for example) cannot change a single property of a column: the whole declaration must be repeated. Backends that can change the null-constraint on their own simply ignore the type, size, scale, and default.- Specified by:
sqlAlterColumnNullConstraintin interfaceBackend- Overrides:
sqlAlterColumnNullConstraintin classAbstractBackend- Parameters:
tableName- the table namecolumnName- the column namesqlType- the SQL typesize- the optional sizescale- the optional scalenullable- true if NULL, else NOT NULLdefaultValue- the optional default value- Returns:
- the SQL code, null if need
Backend.sqlAlterColumnType(String, String, String, SqlType, int, int, boolean, Object) - See Also:
-
sqlAlterColumnDefault
public String sqlAlterColumnDefault(String tableName, String columnName, SqlType sqlType, Object defaultValue) Description copied from interface:BackendGenerates SQL code to change the default value of a column.- Specified by:
sqlAlterColumnDefaultin interfaceBackend- Overrides:
sqlAlterColumnDefaultin classAbstractBackend- Parameters:
tableName- the table namecolumnName- the column namesqlType- the SQL typedefaultValue- the optional default value- Returns:
- the SQL code, null if need
Backend.sqlAlterColumnType(String, String, String, SqlType, int, int, boolean, Object)
-
getMigrationStrategy
public MigrationStrategy[] getMigrationStrategy(ColumnMetaData column, String columnName, String comment, SqlType sqlType, int size, int scale, boolean nullable, Object defaultValue) Determines the best migration strategy.HANA cannot change the default of a column alone: the whole column declaration is repeated instead. Hence, a changed default yields
MigrationStrategy.TYPE, and a changed null constraint yieldsMigrationStrategy.NULL, which carries the type and the default as well.MigrationStrategy.DEFAULTis never returned.- Specified by:
getMigrationStrategyin interfaceBackend- Overrides:
getMigrationStrategyin classAbstractBackend- Parameters:
column- old column metadatacolumnName- new column namecomment- new commentsqlType- new SQL typesize- new sizescale- new scalenullable- new nullabledefaultValue- new default- Returns:
- the strategies to achieve the migration
-