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.
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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 );
}

}
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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;
}
}
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ protected String getCreateCommand() {
);
}

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

@Override
protected boolean supportsAsciiStringTypes() {
return true;
Expand Down
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Loading

0 comments on commit 1a6b01a

Please sign in to comment.