-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Modify test for #69 such that sql server platform test includes I__cr…
…eate_procs.sql Note that this test will run slowly unless the docker images has already been pulled from docker hub.
- Loading branch information
Showing
4 changed files
with
136 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
create table m1 | ||
( | ||
id integer, | ||
acol varchar(20) | ||
); | ||
|
||
create table m2 | ||
( | ||
id integer, | ||
acol varchar(20), | ||
bcol timestamp | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
create table m3 | ||
( | ||
id integer, | ||
acol varchar(20), | ||
bcol timestamp | ||
); | ||
|
||
insert into m3 (id, acol) | ||
VALUES (1, 'text with ; sign'); -- plus some comment |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
-- Initial script to create stored procedures etc for sqlserver platform | ||
|
||
-- create table-value-parameters | ||
if not exists (select name from sys.types where name = 'ebean_bigint_tvp') | ||
create type ebean_bigint_tvp as table (c1 bigint); | ||
if not exists (select name from sys.types where name = 'ebean_float_tvp') | ||
create type ebean_float_tvp as table (c1 float); | ||
if not exists (select name from sys.types where name = 'ebean_bit_tvp') | ||
create type ebean_bit_tvp as table (c1 bit); | ||
if not exists (select name from sys.types where name = 'ebean_date_tvp') | ||
create type ebean_date_tvp as table (c1 date); | ||
if not exists (select name from sys.types where name = 'ebean_time_tvp') | ||
create type ebean_time_tvp as table (c1 time); | ||
if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') | ||
create type ebean_uniqueidentifier_tvp as table (c1 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 | ||
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; | ||
OPEN index_cursor | ||
FETCH NEXT FROM index_cursor INTO @indexName | ||
WHILE @@FETCH_STATUS = 0 | ||
BEGIN | ||
set @sql = 'drop index ' + @indexName + ' on ' + @tableName; | ||
EXECUTE(@sql); | ||
|
||
FETCH NEXT FROM index_cursor INTO @indexName | ||
END; | ||
CLOSE index_cursor; | ||
DEALLOCATE index_cursor; | ||
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) | ||
BEGIN | ||
select @tmp = t1.name from sys.default_constraints t1 | ||
join sys.columns t2 on t1.object_id = t2.default_object_id | ||
where t1.parent_object_id = OBJECT_ID(@tableName) and t2.name = @columnName; | ||
|
||
if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); | ||
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 | ||
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 | ||
UNION SELECT fk.name from sys.foreign_keys fk | ||
join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id | ||
and fkc.parent_object_id = fk.parent_object_id | ||
join sys.columns c on c.object_id = fkc.parent_object_id and c.column_id = fkc.parent_column_id | ||
where fkc.parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName; | ||
|
||
OPEN name_cursor | ||
FETCH NEXT FROM name_cursor INTO @constraintName | ||
WHILE @@FETCH_STATUS = 0 | ||
BEGIN | ||
set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; | ||
EXECUTE(@sql); | ||
|
||
FETCH NEXT FROM name_cursor INTO @constraintName | ||
END; | ||
CLOSE name_cursor; | ||
DEALLOCATE name_cursor; | ||
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) | ||
BEGIN | ||
EXEC usp_ebean_drop_indices @tableName, @columnName; | ||
EXEC usp_ebean_drop_default_constraint @tableName, @columnName; | ||
EXEC usp_ebean_drop_constraints @tableName, @columnName; | ||
|
||
set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; | ||
EXECUTE(@sql); | ||
END | ||
$$ |