@Override public Dialect resolveDialect(DialectResolutionInfo info) { final String databaseName = info.getDatabaseName(); if ( "DB2 UDB for AS/400".equals( databaseName ) ) { return new DB2400Dialect(); } if ( databaseName.startsWith( "DB2/" ) ) { return new DB2Dialect(); } return null; } },
registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerColumnType( Types.LONGVARCHAR, "long varchar" ); registerColumnType( Types.LONGVARBINARY, "long varchar for bit data" ); registerColumnType( Types.BINARY, "varchar($l) for bit data" ); registerColumnType( Types.BINARY, 254, "char($l) for bit data" ); registerColumnType( Types.BOOLEAN, "smallint" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "abs", new StandardSQLFunction( "abs" ) ); registerFunction( "absval", new StandardSQLFunction( "absval" ) ); registerFunction( "sign", new StandardSQLFunction( "sign", StandardBasicTypes.INTEGER ) );
@Override public SequenceInformationExtractor getSequenceInformationExtractor() { if ( getQuerySequencesString() == null ) { return SequenceInformationExtractorNoOpImpl.INSTANCE; } else { return SequenceInformationExtractorDB2DatabaseImpl.INSTANCE; } }
public static void main(String[] args) { System.out.println( new DB2Dialect().getLimitString("/*foo*/ select * from foos", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select distinct * from foos", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select * from foos foo order by foo.bar, foo.baz", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select distinct * from foos foo order by foo.bar, foo.baz", true) ); }
registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "decimal($p,$s)" ); registerColumnType( Types.DECIMAL, "decimal($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerColumnType( Types.LONGVARCHAR, "long varchar" ); registerColumnType( Types.LONGVARBINARY, "long varchar for bit data" ); registerColumnType( Types.BINARY, "varchar($l) for bit data" ); registerColumnType( Types.BINARY, 254, "char($l) for bit data" ); registerColumnType( Types.BOOLEAN, "smallint" ); registerKeyword( "current" ); registerKeyword( "date" ); registerKeyword( "time" ); registerKeyword( "timestamp" ); registerKeyword( "fetch" );
public DB2Dialect() { super(); registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "numeric($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerFunction("abs", new StandardSQLFunction("abs") ); registerFunction("absval", new StandardSQLFunction("absval") ); registerFunction("sign", new StandardSQLFunction("sign", Hibernate.INTEGER) ); registerFunction("ceiling", new StandardSQLFunction("ceiling") ); registerFunction("ceil", new StandardSQLFunction("ceil") ); registerFunction("floor", new StandardSQLFunction("floor") ); registerFunction("round", new StandardSQLFunction("round") ); registerFunction("acos", new StandardSQLFunction("acos", Hibernate.DOUBLE) ); registerFunction("asin", new StandardSQLFunction("asin", Hibernate.DOUBLE) );
@Test @TestForIssue( jiraKey = "HHH-9850" ) public void testNewGeneratorTableCreationOnDb2() { StandardServiceRegistry ssr = new StandardServiceRegistryBuilder() .applySetting( AvailableSettings.DIALECT, DB2Dialect.class.getName() ) .build(); try { Metadata metadata = new MetadataSources( ssr ) .buildMetadata(); assertEquals( 0, metadata.getDatabase().getDefaultNamespace().getTables().size() ); TableGenerator generator = new TableGenerator(); Properties properties = new Properties(); generator.configure( IntegerType.INSTANCE, properties, ssr ); generator.registerExportables( metadata.getDatabase() ); assertEquals( 1, metadata.getDatabase().getDefaultNamespace().getTables().size() ); final Table table = metadata.getDatabase().getDefaultNamespace().getTables().iterator().next(); final String[] createCommands = new DB2Dialect().getTableExporter().getSqlCreateStrings( table, metadata ); assertContains( "sequence_name varchar(255) not null", createCommands[0] ); } finally { StandardServiceRegistryBuilder.destroy( ssr ); } }
public static void main(String[] args) { System.out.println( new DB2Dialect().getLimitString("/*foo*/ select * from foos", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select distinct * from foos", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select * from foos foo order by foo.bar, foo.baz", true) ); System.out.println( new DB2Dialect().getLimitString("/*foo*/ select distinct * from foos foo order by foo.bar, foo.baz", true) ); }
final String[] createCommands = new DB2Dialect().getTableExporter().getSqlCreateStrings( table, metadata ); assertContains( "sequence_name varchar(255) not null", createCommands[0] );
public DB2Dialect() { super(); registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "numeric($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerFunction("abs", new StandardSQLFunction("abs") ); registerFunction("absval", new StandardSQLFunction("absval") ); registerFunction("sign", new StandardSQLFunction("sign", Hibernate.INTEGER) ); registerFunction("ceiling", new StandardSQLFunction("ceiling") ); registerFunction("ceil", new StandardSQLFunction("ceil") ); registerFunction("floor", new StandardSQLFunction("floor") ); registerFunction("round", new StandardSQLFunction("round") ); registerFunction("acos", new StandardSQLFunction("acos", Hibernate.DOUBLE) ); registerFunction("asin", new StandardSQLFunction("asin", Hibernate.DOUBLE) );
public static void main(String[] args) { System.out.println( new DB2Dialect().getLimitString( "/*foo*/ select * from foos", true ) ); System.out.println( new DB2Dialect().getLimitString( "/*foo*/ select distinct * from foos", true ) ); System.out .println( new DB2Dialect().getLimitString( "/*foo*/ select * from foos foo order by foo.bar, foo.baz", true ) ); System.out .println( new DB2Dialect().getLimitString( "/*foo*/ select distinct * from foos foo order by foo.bar, foo.baz", true ) ); }
public IbmDb2DatabasePlatform() { super(new DB2Dialect(), "jdbc:db2://<host>[:<port>]/<database_name>"); }
@Override public SequenceInformationExtractor getSequenceInformationExtractor() { if ( getQuerySequencesString() == null ) { return SequenceInformationExtractorNoOpImpl.INSTANCE; } else { return SequenceInformationExtractorDB2DatabaseImpl.INSTANCE; } }
public DB2Dialect() { super(); registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "numeric($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerColumnType( Types.LONGVARCHAR, "long varchar" ); registerColumnType( Types.LONGVARBINARY, "long varchar for bit data" ); registerColumnType( Types.BINARY, "varchar($l) for bit data" ); registerColumnType( Types.BINARY, 254, "char($l) for bit data" ); registerColumnType( Types.BOOLEAN, "smallint" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "abs", new StandardSQLFunction( "abs" ) ); registerFunction( "absval", new StandardSQLFunction( "absval" ) ); registerFunction( "sign", new StandardSQLFunction( "sign", StandardBasicTypes.INTEGER ) );
public static void main(String[] args) { System.out.println( new DB2Dialect().getLimitString( "/*foo*/ select * from foos", true ) ); System.out.println( new DB2Dialect().getLimitString( "/*foo*/ select distinct * from foos", true ) ); System.out .println( new DB2Dialect().getLimitString( "/*foo*/ select * from foos foo order by foo.bar, foo.baz", true ) ); System.out .println( new DB2Dialect().getLimitString( "/*foo*/ select distinct * from foos foo order by foo.bar, foo.baz", true ) ); }
@Override public Dialect resolveDialect(DialectResolutionInfo info) { final String databaseName = info.getDatabaseName(); if ( "DB2 UDB for AS/400".equals( databaseName ) ) { return new DB2400Dialect(); } if ( databaseName.startsWith( "DB2/" ) ) { return new DB2Dialect(); } return null; } },
public DB2Dialect() { super(); registerColumnType( Types.BIT, "smallint" ); registerColumnType( Types.BIGINT, "bigint" ); registerColumnType( Types.SMALLINT, "smallint" ); registerColumnType( Types.TINYINT, "smallint" ); registerColumnType( Types.INTEGER, "integer" ); registerColumnType( Types.CHAR, "char(1)" ); registerColumnType( Types.VARCHAR, "varchar($l)" ); registerColumnType( Types.FLOAT, "float" ); registerColumnType( Types.DOUBLE, "double" ); registerColumnType( Types.DATE, "date" ); registerColumnType( Types.TIME, "time" ); registerColumnType( Types.TIMESTAMP, "timestamp" ); registerColumnType( Types.VARBINARY, "varchar($l) for bit data" ); registerColumnType( Types.NUMERIC, "numeric($p,$s)" ); registerColumnType( Types.BLOB, "blob($l)" ); registerColumnType( Types.CLOB, "clob($l)" ); registerColumnType( Types.LONGVARCHAR, "long varchar" ); registerColumnType( Types.LONGVARBINARY, "long varchar for bit data" ); registerColumnType( Types.BINARY, "varchar($l) for bit data" ); registerColumnType( Types.BINARY, 254, "char($l) for bit data" ); registerColumnType( Types.BOOLEAN, "smallint" ); registerFunction( "avg", new AvgWithArgumentCastFunction( "double" ) ); registerFunction( "abs", new StandardSQLFunction( "abs" ) ); registerFunction( "absval", new StandardSQLFunction( "absval" ) ); registerFunction( "sign", new StandardSQLFunction( "sign", StandardBasicTypes.INTEGER ) );