HHH-15519 Fix bitwise operation tests on CockroachDB
This commit is contained in:
parent
2c8665029d
commit
0163fceed9
|
@ -51,6 +51,7 @@ import org.hibernate.query.SemanticException;
|
||||||
import org.hibernate.query.sqm.IntervalType;
|
import org.hibernate.query.sqm.IntervalType;
|
||||||
import org.hibernate.dialect.NullOrdering;
|
import org.hibernate.dialect.NullOrdering;
|
||||||
import org.hibernate.query.sqm.TemporalUnit;
|
import org.hibernate.query.sqm.TemporalUnit;
|
||||||
|
import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslator;
|
import org.hibernate.sql.ast.SqlAstTranslator;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
||||||
|
@ -478,6 +479,12 @@ public class CockroachLegacyDialect extends Dialect {
|
||||||
functionFactory.arrayFill_cockroachdb();
|
functionFactory.arrayFill_cockroachdb();
|
||||||
functionFactory.arrayToString_postgresql();
|
functionFactory.arrayToString_postgresql();
|
||||||
|
|
||||||
|
// Postgres uses # instead of ^ for XOR
|
||||||
|
functionContributions.getFunctionRegistry().patternDescriptorBuilder( "bitxor", "(?1#?2)" )
|
||||||
|
.setExactArgumentCount( 2 )
|
||||||
|
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
|
||||||
|
.register();
|
||||||
|
|
||||||
functionContributions.getFunctionRegistry().register(
|
functionContributions.getFunctionRegistry().register(
|
||||||
"trunc",
|
"trunc",
|
||||||
new PostgreSQLTruncFunction(
|
new PostgreSQLTruncFunction(
|
||||||
|
|
|
@ -82,6 +82,7 @@ import org.hibernate.query.sqm.mutation.internal.temptable.GlobalTemporaryTableM
|
||||||
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
|
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
|
||||||
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
|
||||||
import org.hibernate.query.sqm.produce.function.FunctionParameterType;
|
import org.hibernate.query.sqm.produce.function.FunctionParameterType;
|
||||||
|
import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslator;
|
import org.hibernate.sql.ast.SqlAstTranslator;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
||||||
|
@ -253,6 +254,17 @@ public class OracleLegacyDialect extends Dialect {
|
||||||
functionFactory.coalesce();
|
functionFactory.coalesce();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
functionContributions.getFunctionRegistry()
|
||||||
|
.patternDescriptorBuilder( "bitor", "(?1+?2-bitand(?1,?2))")
|
||||||
|
.setExactArgumentCount( 2 )
|
||||||
|
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
|
||||||
|
.register();
|
||||||
|
functionContributions.getFunctionRegistry()
|
||||||
|
.patternDescriptorBuilder( "bitxor", "(?1+?2-2*bitand(?1,?2))")
|
||||||
|
.setExactArgumentCount( 2 )
|
||||||
|
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
|
||||||
|
.register();
|
||||||
|
|
||||||
functionContributions.getFunctionRegistry().registerBinaryTernaryPattern(
|
functionContributions.getFunctionRegistry().registerBinaryTernaryPattern(
|
||||||
"locate",
|
"locate",
|
||||||
typeConfiguration.getBasicTypeRegistry().resolve( StandardBasicTypes.INTEGER ),
|
typeConfiguration.getBasicTypeRegistry().resolve( StandardBasicTypes.INTEGER ),
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
|
||||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||||
import org.hibernate.query.sqm.CastType;
|
import org.hibernate.query.sqm.CastType;
|
||||||
import org.hibernate.query.sqm.TemporalUnit;
|
import org.hibernate.query.sqm.TemporalUnit;
|
||||||
|
import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslator;
|
import org.hibernate.sql.ast.SqlAstTranslator;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
||||||
import org.hibernate.sql.ast.spi.StandardSqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.spi.StandardSqlAstTranslatorFactory;
|
||||||
|
@ -60,7 +61,12 @@ public class PostgresPlusLegacyDialect extends PostgreSQLLegacyDialect {
|
||||||
functionFactory.sysdate();
|
functionFactory.sysdate();
|
||||||
functionFactory.systimestamp();
|
functionFactory.systimestamp();
|
||||||
|
|
||||||
// queryEngine.getSqmFunctionRegistry().register( "coalesce", new NvlCoalesceEmulation() );
|
functionFactory.bitand();
|
||||||
|
functionFactory.bitor();
|
||||||
|
functionContributions.getFunctionRegistry().patternDescriptorBuilder( "bitxor", "(bitor(?1,?2)-bitand(?1,?2))" )
|
||||||
|
.setExactArgumentCount( 2 )
|
||||||
|
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
|
||||||
|
.register();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ import org.hibernate.internal.util.config.ConfigurationHelper;
|
||||||
import org.hibernate.query.SemanticException;
|
import org.hibernate.query.SemanticException;
|
||||||
import org.hibernate.query.sqm.IntervalType;
|
import org.hibernate.query.sqm.IntervalType;
|
||||||
import org.hibernate.query.sqm.TemporalUnit;
|
import org.hibernate.query.sqm.TemporalUnit;
|
||||||
|
import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslator;
|
import org.hibernate.sql.ast.SqlAstTranslator;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
||||||
|
@ -479,6 +480,12 @@ public class CockroachDialect extends Dialect {
|
||||||
functionFactory.arrayFill_cockroachdb();
|
functionFactory.arrayFill_cockroachdb();
|
||||||
functionFactory.arrayToString_postgresql();
|
functionFactory.arrayToString_postgresql();
|
||||||
|
|
||||||
|
// Postgres uses # instead of ^ for XOR
|
||||||
|
functionContributions.getFunctionRegistry().patternDescriptorBuilder( "bitxor", "(?1#?2)" )
|
||||||
|
.setExactArgumentCount( 2 )
|
||||||
|
.setArgumentTypeResolver( StandardFunctionArgumentTypeResolvers.ARGUMENT_OR_IMPLIED_RESULT_TYPE )
|
||||||
|
.register();
|
||||||
|
|
||||||
functionContributions.getFunctionRegistry().register(
|
functionContributions.getFunctionRegistry().register(
|
||||||
"trunc",
|
"trunc",
|
||||||
new PostgreSQLTruncFunction(
|
new PostgreSQLTruncFunction(
|
||||||
|
|
Loading…
Reference in New Issue