mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-22 00:34:05 +00:00
#1695 Fix case sensitive builtin sql server proc
- Update main.StartSqlServer to use updated ebean-test-docker with collation support
This commit is contained in:
@@ -229,7 +229,7 @@
|
||||
<dependency>
|
||||
<groupId>io.ebean.test</groupId>
|
||||
<artifactId>ebean-test-docker</artifactId>
|
||||
<version>2.4.1</version>
|
||||
<version>2.5.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -49,11 +49,11 @@ CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(
|
||||
AS SET NOCOUNT ON
|
||||
declare @tmp nvarchar(1000)
|
||||
BEGIN
|
||||
select @Tmp = t1.name from sys.default_constraints t1
|
||||
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);
|
||||
if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp);
|
||||
END
|
||||
$$
|
||||
|
||||
@@ -171,13 +171,13 @@ AS
|
||||
BEGIN
|
||||
DECLARE foreign_key_names TABLE(CONSTRAINT_NAME NVARCHAR(256), TABLE_NAME NVARCHAR(256));
|
||||
DECLARE i INT;
|
||||
|
||||
|
||||
foreign_key_names = SELECT CONSTRAINT_NAME, TABLE_NAME FROM SYS.REFERENTIAL_CONSTRAINTS WHERE SCHEMA_NAME=CURRENT_SCHEMA AND TABLE_NAME=UPPER(:table_name) AND COLUMN_NAME=UPPER(:column_name);
|
||||
|
||||
|
||||
FOR I IN 1 .. RECORD_COUNT(:foreign_key_names) DO
|
||||
EXEC 'ALTER TABLE "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.TABLE_NAME[i]) || '" DROP CONSTRAINT "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.CONSTRAINT_NAME[i]) || '"';
|
||||
END FOR;
|
||||
|
||||
|
||||
END;
|
||||
$$
|
||||
|
||||
|
||||
@@ -11,9 +11,15 @@ public class StartSqlServer {
|
||||
config.setDbName("test_ebean");
|
||||
config.setUser("test_ebean");
|
||||
|
||||
// by default this sqlserver docker collation is case sensitive
|
||||
// using MSSQL_COLLATION=Latin1_General_100_BIN2
|
||||
//
|
||||
// when changing to a CI collation also use
|
||||
// ebean.sqlserver.caseSensitiveCollation=false
|
||||
// ... such that tests now take that into account
|
||||
//config.setCollation("Latin1_General_100_CI");
|
||||
|
||||
SqlServerContainer container = new SqlServerContainer(config);
|
||||
container.start();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ AS
|
||||
BEGIN
|
||||
DECLARE foreign_key_names TABLE(CONSTRAINT_NAME NVARCHAR(256), TABLE_NAME NVARCHAR(256));
|
||||
DECLARE i INT;
|
||||
|
||||
|
||||
foreign_key_names = SELECT CONSTRAINT_NAME, TABLE_NAME FROM SYS.REFERENTIAL_CONSTRAINTS WHERE SCHEMA_NAME=CURRENT_SCHEMA AND TABLE_NAME=UPPER(:table_name) AND COLUMN_NAME=UPPER(:column_name);
|
||||
|
||||
|
||||
FOR I IN 1 .. RECORD_COUNT(:foreign_key_names) DO
|
||||
EXEC 'ALTER TABLE "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.TABLE_NAME[i]) || '" DROP CONSTRAINT "' || ESCAPE_DOUBLE_QUOTES(:foreign_key_names.CONSTRAINT_NAME[i]) || '"';
|
||||
END FOR;
|
||||
|
||||
|
||||
END;
|
||||
$$
|
||||
|
||||
|
||||
@@ -46,11 +46,11 @@ CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(
|
||||
AS SET NOCOUNT ON
|
||||
declare @tmp nvarchar(1000)
|
||||
BEGIN
|
||||
select @Tmp = t1.name from sys.default_constraints t1
|
||||
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);
|
||||
if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp);
|
||||
END
|
||||
$$
|
||||
|
||||
|
||||
@@ -161,8 +161,8 @@ datasource.pg.maxStackTraceSize=50
|
||||
ebean.sqlserver.databasePlatformName=sqlserver17
|
||||
|
||||
# set caseSensitiveCollation=false when using a
|
||||
# case insenstive collation with sql server
|
||||
ebean.sqlserver.caseSensitiveCollation=false
|
||||
# case insenstive collation with sql server - See main.StartSqlServer
|
||||
#ebean.sqlserver.caseSensitiveCollation=false
|
||||
datasource.sqlserver.username=test_ebean
|
||||
datasource.sqlserver.password=SqlS3rv#r
|
||||
datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=test_ebean;sendTimeAsDateTime=false
|
||||
|
||||
Reference in New Issue
Block a user