Search in sources :

Example 66 with Sql

use of liquibase.sql.Sql in project liquibase by liquibase.

the class DropIndexGeneratorTest method shouldDropIndexInPostgreSQL.

//    @Test
//    public void execute_defaultSchema() throws Exception {
//        new DatabaseTestTemplate().testOnAvailableDatabases(
//                new SqlStatementDatabaseTest(null, new DropIndexStatement(IDX_NAME, null, TABLE_NAME)) {
//
//                    protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) {
//                        assertNotNull(snapshot.getIndex(IDX_NAME));
//                    }
//
//                    protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) {
//                        assertNull(snapshot.getIndex(IDX_NAME));
//                    }
//
//                });
//    }
//
//    //todo: issues with schemas on some databases
////    @Test
////    public void execute_altSchema() throws Exception {
////        new DatabaseTestTemplate().testOnAvailableDatabases(
////                new SqlStatementDatabaseTest(TestContext.ALT_SCHEMA, new DropIndexStatement(ALT_IDX_NAME, TestContext.ALT_SCHEMA, TABLE_NAME)) {
////
////                    protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) {
////                        //todo: how do we assert indexes within a schema snapshot?
//////                        assertNotNull(snapshot.getIndex(ALT_IDX_NAME));
////                    }
////
////                    protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) {
////                        //todo: how do we assert indexes within a schema snapshot?
//////                        assertNull(snapshot.getIndex(ALT_IDX_NAME));
////                    }
////
////                });
////    }
@Test
public void shouldDropIndexInPostgreSQL() throws Exception {
    DropIndexGenerator dropIndexGenerator = new DropIndexGenerator();
    DropIndexStatement statement = new DropIndexStatement("indexName", "defaultCatalog", "defaultSchema", "aTable", null);
    Database database = new PostgresDatabase();
    SortedSet<SqlGenerator> sqlGenerators = new TreeSet<SqlGenerator>();
    SqlGeneratorChain sqlGenerationChain = new SqlGeneratorChain(sqlGenerators);
    Sql[] sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain);
    assertEquals("DROP INDEX \"defaultSchema\".\"indexName\"", sqls[0].toSql());
    statement = new DropIndexStatement("index_name", "default_catalog", "default_schema", "a_table", null);
    sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain);
    assertEquals("DROP INDEX default_schema.index_name", sqls[0].toSql());
    statement = new DropIndexStatement("index_name", null, null, "a_table", null);
    sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain);
    assertEquals("DROP INDEX index_name", sqls[0].toSql());
}
Also used : PostgresDatabase(liquibase.database.core.PostgresDatabase) TreeSet(java.util.TreeSet) SqlGenerator(liquibase.sqlgenerator.SqlGenerator) PostgresDatabase(liquibase.database.core.PostgresDatabase) Database(liquibase.database.Database) SqlGeneratorChain(liquibase.sqlgenerator.SqlGeneratorChain) DropIndexStatement(liquibase.statement.core.DropIndexStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Example 67 with Sql

use of liquibase.sql.Sql in project liquibase by liquibase.

the class GetViewDefinitionGeneratorSybaseTest method testGenerateSqlForDefaultSchema.

@Test
public void testGenerateSqlForDefaultSchema() {
    GetViewDefinitionGeneratorSybase generator = new GetViewDefinitionGeneratorSybase();
    GetViewDefinitionStatement statement = new GetViewDefinitionStatement(null, null, "view_name");
    Sql[] sql = generator.generateSql(statement, new SybaseDatabase(), null);
    assertEquals(1, sql.length);
    assertEquals("select text from syscomments where id = object_id('dbo.view_name') order by colid", sql[0].toSql());
}
Also used : SybaseDatabase(liquibase.database.core.SybaseDatabase) GetViewDefinitionStatement(liquibase.statement.core.GetViewDefinitionStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Example 68 with Sql

use of liquibase.sql.Sql in project liquibase by liquibase.

the class GetViewDefinitionGeneratorSybaseTest method testGenerateSqlForNamedSchema.

@Test
public void testGenerateSqlForNamedSchema() {
    GetViewDefinitionGeneratorSybase generator = new GetViewDefinitionGeneratorSybase();
    GetViewDefinitionStatement statement = new GetViewDefinitionStatement(null, "owner", "view_name");
    Sql[] sql = generator.generateSql(statement, new SybaseDatabase(), null);
    assertEquals(1, sql.length);
    assertEquals("select text from syscomments where id = object_id('OWNER.view_name') order by colid", sql[0].toSql());
}
Also used : SybaseDatabase(liquibase.database.core.SybaseDatabase) GetViewDefinitionStatement(liquibase.statement.core.GetViewDefinitionStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Example 69 with Sql

use of liquibase.sql.Sql in project liquibase by liquibase.

the class InsertOrUpdateGeneratorOracleTest method testInsertSequenceValWithSchema.

@Test
public void testInsertSequenceValWithSchema() {
    OracleDatabase database = new OracleDatabase();
    InsertGenerator generator = new InsertGenerator();
    InsertStatement statement = new InsertStatement("mycatalog", "myschema", "mytable");
    ColumnConfig columnConfig = new ColumnConfig();
    columnConfig.setValueSequenceNext(new SequenceNextValueFunction("myschema.my_seq"));
    columnConfig.setName("col3");
    statement.addColumn(columnConfig);
    Sql[] sql = generator.generateSql(statement, database, null);
    String theSql = sql[0].toSql();
    assertEquals("INSERT INTO mycatalog.mytable (col3) VALUES (\"myschema\".\"my_seq\".nextval)", theSql);
}
Also used : OracleDatabase(liquibase.database.core.OracleDatabase) ColumnConfig(liquibase.change.ColumnConfig) SequenceNextValueFunction(liquibase.statement.SequenceNextValueFunction) InsertStatement(liquibase.statement.core.InsertStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Example 70 with Sql

use of liquibase.sql.Sql in project liquibase by liquibase.

the class InsertOrUpdateGeneratorOracleTest method testOnlyUpdateFlag.

@Test
public void testOnlyUpdateFlag() {
    OracleDatabase database = new OracleDatabase();
    InsertOrUpdateGeneratorOracle generator = new InsertOrUpdateGeneratorOracle();
    InsertOrUpdateStatement statement = new InsertOrUpdateStatement("mycatalog", "myschema", "mytable", "pk_col1", true);
    statement.addColumnValue("pk_col1", "value1");
    statement.addColumnValue("col2", "value2");
    Sql[] sql = generator.generateSql(statement, database, null);
    String theSql = sql[0].toSql();
    assertFalse("should not have had insert statement", theSql.contains("INSERT INTO mycatalog.mytable (pk_col1, col2) VALUES ('value1', 'value2');"));
    assertTrue("missing update statement", theSql.contains("UPDATE mycatalog.mytable"));
    String[] sqlLines = theSql.split("\n");
    int lineToCheck = 0;
    assertEquals("UPDATE mycatalog.mytable SET col2 = 'value2' WHERE pk_col1 = 'value1'", sqlLines[lineToCheck].trim());
    lineToCheck++;
    assertEquals("Wrong number of lines", 1, sqlLines.length);
}
Also used : OracleDatabase(liquibase.database.core.OracleDatabase) InsertOrUpdateStatement(liquibase.statement.core.InsertOrUpdateStatement) Sql(liquibase.sql.Sql) Test(org.junit.Test)

Aggregations

Sql (liquibase.sql.Sql)95 Test (org.junit.Test)55 Database (liquibase.database.Database)42 MSSQLDatabase (liquibase.database.core.MSSQLDatabase)40 AbstractSqlGeneratorTest (liquibase.sqlgenerator.AbstractSqlGeneratorTest)37 OracleDatabase (liquibase.database.core.OracleDatabase)36 PostgresDatabase (liquibase.database.core.PostgresDatabase)36 MySQLDatabase (liquibase.database.core.MySQLDatabase)35 DB2Database (liquibase.database.core.DB2Database)33 SQLiteDatabase (liquibase.database.core.SQLiteDatabase)33 SybaseDatabase (liquibase.database.core.SybaseDatabase)33 AutoIncrementConstraint (liquibase.statement.AutoIncrementConstraint)33 HsqlDatabase (liquibase.database.core.HsqlDatabase)32 SybaseASADatabase (liquibase.database.core.SybaseASADatabase)32 CreateTableStatement (liquibase.statement.core.CreateTableStatement)32 DerbyDatabase (liquibase.database.core.DerbyDatabase)31 H2Database (liquibase.database.core.H2Database)31 UnparsedSql (liquibase.sql.UnparsedSql)31 ArrayList (java.util.ArrayList)11 CatalogAndSchema (liquibase.CatalogAndSchema)8