Skip to content

Commit

Permalink
Add version to @SkipDialect and @RequiresDialect and re-enabled addit…
Browse files Browse the repository at this point in the history
…ional tests
  • Loading branch information
dreab8 authored and sebersole committed Jul 30, 2020
1 parent 61cd51a commit 1a6b01a
Show file tree
Hide file tree
Showing 77 changed files with 788 additions and 570 deletions.
Expand Up @@ -32,6 +32,7 @@
* @author Seok Jeong Il
*/
public class CUBRIDDialect extends Dialect {

/**
* Constructs a CUBRIDDialect
*/
Expand Down Expand Up @@ -87,6 +88,11 @@ public CUBRIDDialect() {
registerKeyword( "SEARCH" );
}

@Override
public int getVersion() {
return 0;
}

@Override
public int getPreferredSqlTypeCodeForBoolean() {
return Types.BIT;
Expand Down
Expand Up @@ -71,6 +71,11 @@ private static void useJdbcEscape(QueryEngine queryEngine, String name) {
);
}

@Override
public int getVersion() {
return 0;
}

@Override
public int getPreferredSqlTypeCodeForBoolean() {
return Types.BIT;
Expand Down
Expand Up @@ -11,6 +11,7 @@
import org.hibernate.dialect.pagination.OffsetFetchLimitHandler;
import org.hibernate.dialect.sequence.PostgreSQLSequenceSupport;
import org.hibernate.dialect.sequence.SequenceSupport;
import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
import org.hibernate.query.TemporalUnit;
import org.hibernate.query.spi.QueryEngine;
import org.hibernate.type.StandardBasicTypes;
Expand All @@ -33,9 +34,21 @@ public class CockroachDialect extends Dialect {

// * no support for java.sql.Clob

private int version;

public CockroachDialect() {
this(192);
}

public CockroachDialect(DialectResolutionInfo info) {
this( info.getDatabaseMajorVersion() * 100 + info.getDatabaseMinorVersion() * 10 );
}

public CockroachDialect(int version) {
super();

this.version = version;

registerColumnType( Types.TINYINT, "smallint" ); //no tinyint

//no binary/varbinary
Expand All @@ -57,6 +70,11 @@ public CockroachDialect() {
registerColumnType( Types.JAVA_OBJECT, "json" );
}

@Override
public int getVersion() {
return version;
}

@Override
public void initializeFunctionRegistry(QueryEngine queryEngine) {
super.initializeFunctionRegistry(queryEngine);
Expand Down
Expand Up @@ -10,15 +10,13 @@
* An SQL dialect for DB2 9.7.
*
* @author Gail Badner
*
* @deprecated use {@code DB2Dialect(970)}
*/
@Deprecated
public class DB297Dialect extends DB2Dialect {

@Override
int getVersion() {
return 970;
public DB297Dialect() {
super( 970 );
}

}
Expand Up @@ -61,10 +61,6 @@ public class DB2Dialect extends Dialect {

private LimitHandler limitHandler;

int getVersion() {
return version;
}

private final UniqueDelegate uniqueDelegate;

public DB2Dialect(DialectResolutionInfo info) {
Expand Down Expand Up @@ -119,11 +115,17 @@ public DB2Dialect(int version) {
: DB2LimitHandler.INSTANCE;
}

@Override
public int getDefaultDecimalPrecision() {
//this is the maximum allowed in DB2
return 31;
}

@Override
public int getVersion() {
return version;
}

@Override
public void initializeFunctionRegistry(QueryEngine queryEngine) {
super.initializeFunctionRegistry( queryEngine );
Expand Down
Expand Up @@ -70,10 +70,6 @@ public class DerbyDialect extends Dialect {

private final int version;

int getVersion() {
return version;
}

private final LimitHandler limitHandler;

public DerbyDialect(DialectResolutionInfo info) {
Expand Down Expand Up @@ -116,11 +112,17 @@ public DerbyDialect(int version) {
getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE, NO_BATCH );
}

@Override
public int getDefaultDecimalPrecision() {
//this is the maximum allowed in Derby
return 31;
}

@Override
public int getVersion() {
return version;
}

@Override
public int getFloatPrecision() {
return 23;
Expand Down
Expand Up @@ -135,7 +135,6 @@ public abstract class Dialect implements ConversionContext {

private DefaultSizeStrategy defaultSizeStrategy;


// constructors and factory methods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

protected Dialect() {
Expand Down Expand Up @@ -240,6 +239,8 @@ static Size binaryToDecimalPrecision(int code, Size size) {
: size;
}

public abstract int getVersion();

/**
* Initialize the given registry with any dialect-specific functions.
*
Expand Down
Expand Up @@ -66,10 +66,6 @@ public class FirebirdDialect extends Dialect {

private final int version;

public int getVersion() {
return version;
}

public FirebirdDialect() {
this(250);
}
Expand Down Expand Up @@ -132,6 +128,11 @@ public FirebirdDialect(int version) {
getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE, NO_BATCH );
}

@Override
public int getVersion() {
return version;
}

@Override
public int getPreferredSqlTypeCodeForBoolean() {
return getVersion() < 300
Expand Down
Expand Up @@ -59,6 +59,8 @@ public class H2Dialect extends Dialect {

private final boolean cascadeConstraints;

private final int version;

private final SequenceInformationExtractor sequenceInformationExtractor;
private final String querySequenceString;

Expand All @@ -68,7 +70,7 @@ public H2Dialect() {

public H2Dialect(int version, int buildId) {
super();

this.version = version;
//TODO: actually I think all builds of 1.4 support OFFSET FETCH
limitHandler = version > 140 || version == 140 && buildId >= 199
? OffsetFetchLimitHandler.INSTANCE
Expand Down Expand Up @@ -114,6 +116,11 @@ public H2Dialect(DialectResolutionInfo info) {
);
}

@Override
public int getVersion() {
return version;
}

@Override
public void initializeFunctionRegistry(QueryEngine queryEngine) {
super.initializeFunctionRegistry( queryEngine );
Expand Down
Expand Up @@ -27,85 +27,10 @@
* @deprecated use HANAColumnStoreDialect(400)
*/
@Deprecated
public class HANACloudColumnStoreDialect extends AbstractHANADialect {
public class HANACloudColumnStoreDialect extends HANAColumnStoreDialect {

public HANACloudColumnStoreDialect() {
super();

registerColumnType( Types.CHAR, "nvarchar(1)" );
registerColumnType( Types.VARCHAR, 5000, "nvarchar($l)" );
registerColumnType( Types.LONGVARCHAR, 5000, "nvarchar($l)" );

// for longer values map to clob/nclob
registerColumnType( Types.LONGVARCHAR, "nclob" );
registerColumnType( Types.VARCHAR, "nclob" );
registerColumnType( Types.CLOB, "nclob" );

registerHibernateType( Types.CLOB, StandardBasicTypes.MATERIALIZED_NCLOB.getName() );
registerHibernateType( Types.NCHAR, StandardBasicTypes.NSTRING.getName() );
registerHibernateType( Types.CHAR, StandardBasicTypes.CHARACTER.getName() );
registerHibernateType( Types.CHAR, 1, StandardBasicTypes.CHARACTER.getName() );
registerHibernateType( Types.CHAR, 5000, StandardBasicTypes.NSTRING.getName() );
registerHibernateType( Types.VARCHAR, StandardBasicTypes.NSTRING.getName() );
registerHibernateType( Types.LONGVARCHAR, StandardBasicTypes.NTEXT.getName() );

// register additional keywords
registerHanaCloudKeywords();
}

@Override
public void initializeFunctionRegistry(QueryEngine queryEngine) {
super.initializeFunctionRegistry( queryEngine );

// full-text search functions
queryEngine.getSqmFunctionRegistry().registerNamed( "score", StandardBasicTypes.DOUBLE );
queryEngine.getSqmFunctionRegistry().registerNamed( "snippets" );
queryEngine.getSqmFunctionRegistry().registerNamed( "highlighted" );
// queryEngine.getSqmFunctionRegistry().registerVarArgs( "contains", StandardSpiBasicTypes.BOOLEAN, "contains(", ",", ") /*" );
// queryEngine.getSqmFunctionRegistry().registerPattern( "contains_rhs", "*/", StandardSpiBasicTypes.BOOLEAN );
// queryEngine.getSqmFunctionRegistry().registerVarArgs( "not_contains", StandardSpiBasicTypes.BOOLEAN, "not_contains(", ",", ") /*" );
}

private void registerHanaCloudKeywords() {
registerKeyword( "array" );
registerKeyword( "at" );
registerKeyword( "authorization" );
registerKeyword( "between" );
registerKeyword( "by" );
registerKeyword( "collate" );
registerKeyword( "empty" );
registerKeyword( "filter" );
registerKeyword( "grouping" );
registerKeyword( "no" );
registerKeyword( "not" );
registerKeyword( "of" );
registerKeyword( "over" );
registerKeyword( "recursive" );
registerKeyword( "row" );
registerKeyword( "table" );
registerKeyword( "to" );
registerKeyword( "window" );
registerKeyword( "within" );
super( 400 );
}

@Override
public String getCreateTableString() {
return "create column table";
}


@Override
protected boolean supportsAsciiStringTypes() {
return false;
}

@Override
protected Boolean useUnicodeStringTypesDefault() {
return Boolean.TRUE;
}

@Override
public boolean isUseUnicodeStringTypes() {
return true;
}
}
Expand Up @@ -36,10 +36,6 @@
public class HANAColumnStoreDialect extends AbstractHANADialect {
private int version;

public int getVersion(){
return version;
}

public HANAColumnStoreDialect(DialectResolutionInfo info) {
this( info.getDatabaseMajorVersion() * 100 + info.getDatabaseMinorVersion() * 10 );
}
Expand Down Expand Up @@ -74,6 +70,11 @@ public HANAColumnStoreDialect(int version) {
}
}

@Override
public int getVersion(){
return version;
}

private void registerHanaCloudKeywords() {
registerKeyword( "array" );
registerKeyword( "at" );
Expand Down
Expand Up @@ -56,6 +56,11 @@ protected String getCreateCommand() {
);
}

@Override
public int getVersion() {
return 0;
}

@Override
protected boolean supportsAsciiStringTypes() {
return true;
Expand Down
Expand Up @@ -78,10 +78,6 @@ public class HSQLDialect extends Dialect {
*/
private final int version;

int getVersion() {
return version;
}

public HSQLDialect(DialectResolutionInfo info) {
this( info.getDatabaseMajorVersion()*100 + info.getDatabaseMinorVersion()*10 );
}
Expand Down Expand Up @@ -143,6 +139,11 @@ private static int reflectedVersion(int version) {
}
}

@Override
public int getVersion() {
return version;
}

@Override
public void initializeFunctionRegistry(QueryEngine queryEngine) {
super.initializeFunctionRegistry( queryEngine );
Expand Down
Expand Up @@ -48,10 +48,6 @@ public class InformixDialect extends Dialect {

private final int version;

int getVersion() {
return version;
}

public InformixDialect(DialectResolutionInfo info) {
this( info.getDatabaseMajorVersion() );
}
Expand Down Expand Up @@ -105,6 +101,12 @@ public InformixDialect(int version) {
: new SkipFirstLimitHandler( getVersion() >= 11 );
}

@Override
public int getVersion() {
return version;
}

@Override
public int getDefaultDecimalPrecision() {
//the maximum
return 32;
Expand Down

0 comments on commit 1a6b01a

Please sign in to comment.