diff --git a/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml b/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml index 1309cd7c7..825171455 100644 --- a/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml +++ b/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml @@ -13,16 +13,16 @@ if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_ if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)); delimiter $$ ------------------------------------------------------------ +-- -- PROCEDURE: usp_ebean_drop_indices TABLE, COLUMN -- deletes all indices referring to TABLE.COLUMN ------------------------------------------------------------ +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000) declare @indexName nvarchar(255) BEGIN - DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i + DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; @@ -41,10 +41,10 @@ END $$ delimiter $$ --------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_default_constraint TABLE, COLUMN -- deletes the default constraint, which has a random name --------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @tmp nvarchar(1000) @@ -58,16 +58,16 @@ END $$ delimiter $$ --------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_constraints TABLE, COLUMN -- deletes constraints and foreign keys refering to TABLE.COLUMN --------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000) declare @constraintName nvarchar(255) BEGIN - DECLARE name_cursor CURSOR FOR + DECLARE name_cursor CURSOR FOR SELECT cc.name from sys.check_constraints cc join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName @@ -92,10 +92,10 @@ END $$ delimiter $$ -------------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN -- deletes the column annd ensures that all indices and constraints are dropped first -------------------------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000) @@ -114,21 +114,21 @@ $$ DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; delimiter $$ ------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN -- deletes all constraints and foreign keys referring to TABLE.COLUMN ------------------------------------------------------------------------------- +-- CREATE PROCEDURE usp_ebean_drop_foreign_keys(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE c_fk_name CHAR(255); - DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE + DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = DATABASE() and TABLE_NAME = p_table_name and COLUMN_NAME = p_column_name AND REFERENCED_TABLE_NAME IS NOT NULL; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN curs; - + read_loop: LOOP FETCH curs INTO c_fk_name; IF done THEN @@ -138,7 +138,7 @@ BEGIN PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; - + CLOSE curs; END $$ @@ -146,10 +146,10 @@ $$ DROP PROCEDURE IF EXISTS usp_ebean_drop_column; delimiter $$ -------------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN -- deletes the column and ensures that all indices and constraints are dropped first -------------------------------------------------------------------------------------- +-- CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); diff --git a/src/test/java/org/tests/cache/TestQueryCacheTableDependency.java b/src/test/java/org/tests/cache/TestQueryCacheTableDependency.java index 494d5c377..ee12f6794 100644 --- a/src/test/java/org/tests/cache/TestQueryCacheTableDependency.java +++ b/src/test/java/org/tests/cache/TestQueryCacheTableDependency.java @@ -72,7 +72,7 @@ public class TestQueryCacheTableDependency extends BaseTestCase { .findCount(); assertThat(custs).isEqualTo(1); - Ebean.createSqlUpdate("update O_ADDRESS set line_2=? where line_2=?") + Ebean.createSqlUpdate("update o_address set line_2=? where line_2=?") .setNextParameter("St Lucky3") .setNextParameter("St Lucky2") .execute(); diff --git a/src/test/java/org/tests/model/composite/CkeUserKey.java b/src/test/java/org/tests/model/composite/CkeUserKey.java index cb7655e19..637a10cf7 100644 --- a/src/test/java/org/tests/model/composite/CkeUserKey.java +++ b/src/test/java/org/tests/model/composite/CkeUserKey.java @@ -8,14 +8,14 @@ import java.util.Objects; @Embeddable public class CkeUserKey { - @Basic(optional = false) - @Column(name = "cod_cpny") - private int codCompany; - @Basic(optional = false) @Column(name = "username") private String username; + @Basic(optional = false) + @Column(name = "cod_cpny") + private int codCompany; + public CkeUserKey(int codCompany, String username) { this.codCompany = codCompany; this.username = username; diff --git a/src/test/resources/dbmigration/migrationtest/mysql/I__create_procs.sql b/src/test/resources/dbmigration/migrationtest/mysql/I__create_procs.sql index 581d9965a..55acf0bf3 100644 --- a/src/test/resources/dbmigration/migrationtest/mysql/I__create_procs.sql +++ b/src/test/resources/dbmigration/migrationtest/mysql/I__create_procs.sql @@ -2,21 +2,21 @@ DROP PROCEDURE IF EXISTS usp_ebean_drop_foreign_keys; delimiter $$ ------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_foreign_keys TABLE, COLUMN -- deletes all constraints and foreign keys referring to TABLE.COLUMN ------------------------------------------------------------------------------- +-- CREATE PROCEDURE usp_ebean_drop_foreign_keys(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE c_fk_name CHAR(255); - DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE + DECLARE curs CURSOR FOR SELECT CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = DATABASE() and TABLE_NAME = p_table_name and COLUMN_NAME = p_column_name AND REFERENCED_TABLE_NAME IS NOT NULL; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN curs; - + read_loop: LOOP FETCH curs INTO c_fk_name; IF done THEN @@ -26,7 +26,7 @@ BEGIN PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; - + CLOSE curs; END $$ @@ -34,10 +34,10 @@ $$ DROP PROCEDURE IF EXISTS usp_ebean_drop_column; delimiter $$ -------------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN -- deletes the column and ensures that all indices and constraints are dropped first -------------------------------------------------------------------------------------- +-- CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); diff --git a/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql b/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql index 7ff3b383f..5c35dffc6 100644 --- a/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql +++ b/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql @@ -10,16 +10,16 @@ if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_ if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)); delimiter $$ ------------------------------------------------------------ +-- -- PROCEDURE: usp_ebean_drop_indices TABLE, COLUMN -- deletes all indices referring to TABLE.COLUMN ------------------------------------------------------------ +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000) declare @indexName nvarchar(255) BEGIN - DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i + DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; @@ -38,10 +38,10 @@ END $$ delimiter $$ --------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_default_constraint TABLE, COLUMN -- deletes the default constraint, which has a random name --------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @tmp nvarchar(1000) @@ -55,16 +55,16 @@ END $$ delimiter $$ --------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_constraints TABLE, COLUMN -- deletes constraints and foreign keys refering to TABLE.COLUMN --------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000) declare @constraintName nvarchar(255) BEGIN - DECLARE name_cursor CURSOR FOR + DECLARE name_cursor CURSOR FOR SELECT cc.name from sys.check_constraints cc join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName @@ -89,10 +89,10 @@ END $$ delimiter $$ -------------------------------------------------------------------------------------- +-- -- PROCEDURE: usp_ebean_drop_column TABLE, COLUMN -- deletes the column annd ensures that all indices and constraints are dropped first -------------------------------------------------------------------------------------- +-- CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) AS SET NOCOUNT ON declare @sql nvarchar(1000)