Skip to content

Commit

Permalink
HHH-16271 Fix generated keys issues with Sybase JConn and insert-sele…
Browse files Browse the repository at this point in the history
…ct statements
  • Loading branch information
beikov committed Apr 26, 2023
1 parent 0170db7 commit 279b6ad
Show file tree
Hide file tree
Showing 58 changed files with 213 additions and 46 deletions.
Expand Up @@ -371,7 +371,7 @@ public LimitHandler getLimitHandler() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new CUBRIDIdentityColumnSupport();
return CUBRIDIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -295,7 +295,7 @@ public String getNativeIdentifierGeneratorStrategy() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new CacheIdentityColumnSupport();
return CacheIdentityColumnSupport.INSTANCE;
}

// SEQUENCE support ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
Expand Up @@ -103,7 +103,6 @@
public class CockroachLegacyDialect extends Dialect {

private static final CoreMessageLogger LOG = Logger.getMessageLogger( CoreMessageLogger.class, CockroachLegacyDialect.class.getName() );
private static final CockroachDBIdentityColumnSupport IDENTITY_COLUMN_SUPPORT = new CockroachDBIdentityColumnSupport();
// KNOWN LIMITATIONS:
// * no support for java.sql.Clob

Expand Down Expand Up @@ -513,7 +512,7 @@ public boolean qualifyIndexName() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return IDENTITY_COLUMN_SUPPORT;
return CockroachDBIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -65,6 +65,6 @@ public LimitHandler getLimitHandler() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2zIdentityColumnSupport();
return DB2zIdentityColumnSupport.INSTANCE;
}
}
Expand Up @@ -934,7 +934,7 @@ protected <T extends JdbcOperation> SqlAstTranslator<T> buildTranslator(

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2IdentityColumnSupport();
return DB2IdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -128,8 +128,8 @@ public LimitHandler getLimitHandler() {
@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return getVersion().isSameOrAfter(7, 3)
? new DB2IdentityColumnSupport()
: new DB2390IdentityColumnSupport();
? DB2IdentityColumnSupport.INSTANCE
: DB2390IdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -146,7 +146,7 @@ public LimitHandler getLimitHandler() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2390IdentityColumnSupport();
return DB2390IdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -589,7 +589,7 @@ public LimitHandler getLimitHandler() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2IdentityColumnSupport();
return DB2IdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -625,7 +625,7 @@ public void appendBooleanValueString(SqlAppender appender, boolean bool) {
public IdentityColumnSupport getIdentityColumnSupport() {
return getVersion().isBefore( 3, 0 )
? super.getIdentityColumnSupport()
: new FirebirdIdentityColumnSupport();
: FirebirdIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -100,9 +100,11 @@ public class HSQLLegacyDialect extends Dialect {
org.hibernate.community.dialect.HSQLLegacyDialect.class.getName()
);
private final UniqueDelegate uniqueDelegate = new CreateTableUniqueDelegate( this );
private final HSQLIdentityColumnSupport identityColumnSupport;

public HSQLLegacyDialect(DialectResolutionInfo info) {
super( info );
this.identityColumnSupport = new HSQLIdentityColumnSupport( getVersion() );
}

public HSQLLegacyDialect() {
Expand All @@ -111,6 +113,7 @@ public HSQLLegacyDialect() {

public HSQLLegacyDialect(DatabaseVersion version) {
super( version.isSame( 1, 8 ) ? reflectedVersion( version ) : version );
this.identityColumnSupport = new HSQLIdentityColumnSupport( getVersion() );
}

@Override
Expand Down Expand Up @@ -770,7 +773,7 @@ public boolean requiresFloatCastingOfIntegerDivision() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new HSQLIdentityColumnSupport( this.getVersion() );
return identityColumnSupport;
}

@Override
Expand Down
Expand Up @@ -518,7 +518,7 @@ public UniqueDelegate getUniqueDelegate() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new InformixIdentityColumnSupport();
return InformixIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -399,10 +399,10 @@ public LimitHandler getLimitHandler() {
@Override
public IdentityColumnSupport getIdentityColumnSupport() {
if ( getVersion().isSameOrAfter( 10 ) ) {
return new Ingres10IdentityColumnSupport();
return Ingres10IdentityColumnSupport.INSTANCE;
}
else if ( getVersion().isSameOrAfter( 9, 3 ) ) {
return new Ingres9IdentityColumnSupport();
return Ingres9IdentityColumnSupport.INSTANCE;
}
else {
return super.getIdentityColumnSupport();
Expand Down
Expand Up @@ -328,6 +328,6 @@ public boolean useInputStreamToInsertBlob() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new MimerSQLIdentityColumnSupport();
return MimerSQLIdentityColumnSupport.INSTANCE;
}
}
Expand Up @@ -1117,7 +1117,7 @@ public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuilder builder, D

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new MySQLIdentityColumnSupport();
return MySQLIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -840,7 +840,7 @@ public String getNativeIdentifierGeneratorStrategy() {
public IdentityColumnSupport getIdentityColumnSupport() {
return getVersion().isBefore( 12 )
? super.getIdentityColumnSupport()
: new Oracle12cIdentityColumnSupport();
: Oracle12cIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -148,8 +148,6 @@
*/
public class PostgreSQLLegacyDialect extends Dialect {

private static final PostgreSQLIdentityColumnSupport IDENTITY_COLUMN_SUPPORT = new PostgreSQLIdentityColumnSupport();

protected final PostgreSQLDriverKind driverKind;
private final UniqueDelegate uniqueDelegate = new CreateTableUniqueDelegate(this);

Expand Down Expand Up @@ -1007,7 +1005,7 @@ public boolean qualifyIndexName() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return IDENTITY_COLUMN_SUPPORT;
return PostgreSQLIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -623,7 +623,7 @@ public int getInExpressionCountLimit() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new SQLServerIdentityColumnSupport();
return SQLServerIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -94,8 +94,6 @@
*/
public class SQLiteDialect extends Dialect {

private static final SQLiteIdentityColumnSupport IDENTITY_COLUMN_SUPPORT = new SQLiteIdentityColumnSupport();

private final UniqueDelegate uniqueDelegate;

public SQLiteDialect(DialectResolutionInfo info) {
Expand Down Expand Up @@ -545,7 +543,7 @@ public boolean supportsWindowFunctions() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return IDENTITY_COLUMN_SUPPORT;
return SQLiteIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -173,7 +173,7 @@ public boolean supportsLateral() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new SybaseAnywhereIdentityColumnSupport();
return SybaseAnywhereIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -618,7 +618,7 @@ public String[] getSqlCreateStrings(Index index, Metadata metadata, SqlStringGen
public IdentityColumnSupport getIdentityColumnSupport() {
return getVersion().isBefore( 14 )
? super.getIdentityColumnSupport()
: new Teradata14IdentityColumnSupport();
: Teradata14IdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -12,6 +12,9 @@
* @author Andrea Boriero
*/
public class CUBRIDIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final CUBRIDIdentityColumnSupport INSTANCE = new CUBRIDIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -13,6 +13,9 @@
* @author Andrea Boriero
*/
public class CacheIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final CacheIdentityColumnSupport INSTANCE = new CacheIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -13,6 +13,8 @@
*/
public class FirebirdIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final FirebirdIdentityColumnSupport INSTANCE = new FirebirdIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -15,6 +15,9 @@
* @author Andrea Boriero
*/
public class InformixIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final InformixIdentityColumnSupport INSTANCE = new InformixIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -10,6 +10,9 @@
* @author Andrea Boriero
*/
public class Ingres10IdentityColumnSupport extends Ingres9IdentityColumnSupport {

public static final Ingres10IdentityColumnSupport INSTANCE = new Ingres10IdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -12,6 +12,9 @@
* @author Andrea Boriero
*/
public class Ingres9IdentityColumnSupport extends IdentityColumnSupportImpl {

public static final Ingres9IdentityColumnSupport INSTANCE = new Ingres9IdentityColumnSupport();

@Override
public String getIdentitySelectString(String table, String column, int type) {
return "select last_identity()";
Expand Down
Expand Up @@ -12,6 +12,9 @@
* @author Andrea Boriero
*/
public class MimerSQLIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final MimerSQLIdentityColumnSupport INSTANCE = new MimerSQLIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return false;
Expand Down
Expand Up @@ -16,6 +16,8 @@
*/
public class SQLiteIdentityColumnSupport extends IdentityColumnSupportImpl {

public static final SQLiteIdentityColumnSupport INSTANCE = new SQLiteIdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -12,6 +12,9 @@
* @author Andrea Boriero
*/
public class SybaseAnywhereIdentityColumnSupport extends AbstractTransactSQLIdentityColumnSupport {

public static final SybaseAnywhereIdentityColumnSupport INSTANCE = new SybaseAnywhereIdentityColumnSupport();

@Override
public boolean supportsInsertSelectIdentity() {
return false;
Expand Down
Expand Up @@ -12,6 +12,9 @@
* @author Andrea Boriero
*/
public class Teradata14IdentityColumnSupport extends IdentityColumnSupportImpl {

public static Teradata14IdentityColumnSupport INSTANCE = new Teradata14IdentityColumnSupport();

@Override
public boolean supportsIdentityColumns() {
return true;
Expand Down
Expand Up @@ -1075,7 +1075,7 @@ public void appendBooleanValueString(SqlAppender appender, boolean bool) {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new HANAIdentityColumnSupport();
return HANAIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -375,7 +375,7 @@ public boolean supportsTupleDistinctCounts() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new AbstractTransactSQLIdentityColumnSupport();
return AbstractTransactSQLIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -118,7 +118,6 @@
public class CockroachDialect extends Dialect {

private static final CoreMessageLogger LOG = Logger.getMessageLogger( CoreMessageLogger.class, CockroachDialect.class.getName() );
private static final CockroachDBIdentityColumnSupport IDENTITY_COLUMN_SUPPORT = new CockroachDBIdentityColumnSupport();
// KNOWN LIMITATIONS:
// * no support for java.sql.Clob

Expand Down Expand Up @@ -516,7 +515,7 @@ public boolean qualifyIndexName() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return IDENTITY_COLUMN_SUPPORT;
return CockroachDBIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down
Expand Up @@ -48,6 +48,6 @@ public LimitHandler getLimitHandler() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2zIdentityColumnSupport();
return DB2zIdentityColumnSupport.INSTANCE;
}
}
Expand Up @@ -50,6 +50,6 @@ public String getQuerySequencesString() {

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2IdentityColumnSupport();
return DB2IdentityColumnSupport.INSTANCE;
}
}
Expand Up @@ -1010,7 +1010,7 @@ protected <T extends JdbcOperation> SqlAstTranslator<T> buildTranslator(

@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return new DB2IdentityColumnSupport();
return DB2IdentityColumnSupport.INSTANCE;
}

/**
Expand Down
Expand Up @@ -122,8 +122,8 @@ public LimitHandler getLimitHandler() {
@Override
public IdentityColumnSupport getIdentityColumnSupport() {
return getVersion().isSameOrAfter(7, 3)
? new DB2IdentityColumnSupport()
: new DB2zIdentityColumnSupport();
? DB2IdentityColumnSupport.INSTANCE
: DB2zIdentityColumnSupport.INSTANCE;
}

@Override
Expand Down

0 comments on commit 279b6ad

Please sign in to comment.