Browse Source
Db2Dialect added in order to support DB2. Added test configuration files. Adapted some tests to make them properly work with DB2 QueryAnnotationIntegrationTests converted into an Hsqldb only test since it is next to impossible to make it work across databases since it heavily depends on database and driver specifics. Removed license acceptance file from the repository in order to not accept a license in the name of someone forking the repository. For the CI build an appropriate file gets created on the fly. Original pull request: #213.pull/216/head
39 changed files with 625 additions and 74 deletions
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh |
||||
|
||||
{ |
||||
echo "mcr.microsoft.com/mssql/server:2017-CU12" |
||||
echo "ibmcom/db2:11.5.0.0a" |
||||
} > spring-data-jdbc/src/test/resources/container-license-acceptance.txt |
||||
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
/* |
||||
* Copyright 2020 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.data.jdbc.testing; |
||||
|
||||
import javax.sql.DataSource; |
||||
|
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.context.annotation.Profile; |
||||
import org.springframework.jdbc.datasource.DriverManagerDataSource; |
||||
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; |
||||
import org.testcontainers.containers.Db2Container; |
||||
|
||||
/** |
||||
* {@link DataSource} setup for DB2. |
||||
* |
||||
* @author Jens Schauder |
||||
* @author Oliver Gierke |
||||
*/ |
||||
@Configuration |
||||
@Profile("db2") |
||||
class Db2DataSourceConfiguration extends DataSourceConfiguration { |
||||
|
||||
private static final Db2Container DB_2_CONTAINER = new Db2Container(); |
||||
|
||||
static { |
||||
DB_2_CONTAINER.start(); |
||||
} |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.jdbc.testing.DataSourceConfiguration#createDataSource() |
||||
*/ |
||||
@Override |
||||
protected DataSource createDataSource() { |
||||
|
||||
DriverManagerDataSource dataSource = new DriverManagerDataSource(DB_2_CONTAINER.getJdbcUrl(), |
||||
DB_2_CONTAINER.getUsername(), DB_2_CONTAINER.getPassword()); |
||||
|
||||
return dataSource; |
||||
} |
||||
|
||||
@Override |
||||
protected void customizePopulator(ResourceDatabasePopulator populator) { |
||||
populator.setIgnoreFailedDrops(true); |
||||
} |
||||
} |
||||
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
mcr.microsoft.com/mssql/server:2017-CU12 |
||||
@ -0,0 +1,307 @@
@@ -0,0 +1,307 @@
|
||||
CREATE TABLE LEGO_SET |
||||
( |
||||
"id1" BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
NAME VARCHAR(30) |
||||
); |
||||
CREATE TABLE MANUAL |
||||
( |
||||
"id2" BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
LEGO_SET BIGINT, |
||||
"alternative" BIGINT, |
||||
CONTENT VARCHAR(2000) |
||||
); |
||||
|
||||
ALTER TABLE MANUAL |
||||
ADD FOREIGN KEY (LEGO_SET) |
||||
REFERENCES LEGO_SET ("id1"); |
||||
|
||||
CREATE TABLE ONE_TO_ONE_PARENT |
||||
( |
||||
"id3" BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
content VARCHAR(30) |
||||
); |
||||
CREATE TABLE Child_No_Id |
||||
( |
||||
ONE_TO_ONE_PARENT INTEGER NOT NULL PRIMARY KEY, |
||||
content VARCHAR(30) |
||||
); |
||||
|
||||
CREATE TABLE LIST_PARENT |
||||
( |
||||
"id4" BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, |
||||
NAME VARCHAR(100) |
||||
); |
||||
CREATE TABLE ELEMENT_NO_ID |
||||
( |
||||
CONTENT VARCHAR(100), |
||||
LIST_PARENT_KEY BIGINT, |
||||
LIST_PARENT BIGINT |
||||
); |
||||
ALTER TABLE ELEMENT_NO_ID |
||||
ADD FOREIGN KEY (LIST_PARENT) |
||||
REFERENCES LIST_PARENT ("id4"); |
||||
-- |
||||
-- CREATE TABLE ARRAY_OWNER |
||||
-- ( |
||||
-- ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
-- DIGITS VARCHAR(20) ARRAY[10] NOT NULL, |
||||
-- MULTIDIMENSIONAL VARCHAR(20) ARRAY[10] NULL |
||||
-- ); |
||||
|
||||
CREATE TABLE BYTE_ARRAY_OWNER |
||||
( |
||||
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
BINARY_DATA VARBINARY(20) NOT NULL |
||||
); |
||||
|
||||
CREATE TABLE CHAIN4 |
||||
( |
||||
FOUR BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40) PRIMARY KEY, |
||||
FOUR_VALUE VARCHAR(20) |
||||
); |
||||
|
||||
CREATE TABLE CHAIN3 |
||||
( |
||||
THREE BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 30) PRIMARY KEY, |
||||
THREE_VALUE VARCHAR(20), |
||||
CHAIN4 BIGINT, |
||||
FOREIGN KEY (CHAIN4) REFERENCES CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE CHAIN2 |
||||
( |
||||
TWO BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 20) PRIMARY KEY, |
||||
TWO_VALUE VARCHAR(20), |
||||
CHAIN3 BIGINT, |
||||
FOREIGN KEY (CHAIN3) REFERENCES CHAIN3 (THREE) |
||||
); |
||||
|
||||
CREATE TABLE CHAIN1 |
||||
( |
||||
ONE BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 10) PRIMARY KEY, |
||||
ONE_VALUE VARCHAR(20), |
||||
CHAIN2 BIGINT, |
||||
FOREIGN KEY (CHAIN2) REFERENCES CHAIN2 (TWO) |
||||
); |
||||
|
||||
CREATE TABLE CHAIN0 |
||||
( |
||||
ZERO BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 0) PRIMARY KEY, |
||||
ZERO_VALUE VARCHAR(20), |
||||
CHAIN1 BIGINT, |
||||
FOREIGN KEY (CHAIN1) REFERENCES CHAIN1 (ONE) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_CHAIN4 |
||||
( |
||||
FOUR BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40) PRIMARY KEY, |
||||
FOUR_VALUE VARCHAR(20) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_CHAIN3 |
||||
( |
||||
THREE_VALUE VARCHAR(20), |
||||
NO_ID_CHAIN4 BIGINT, |
||||
FOREIGN KEY (NO_ID_CHAIN4) REFERENCES NO_ID_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_CHAIN2 |
||||
( |
||||
TWO_VALUE VARCHAR(20), |
||||
NO_ID_CHAIN4 BIGINT, |
||||
FOREIGN KEY (NO_ID_CHAIN4) REFERENCES NO_ID_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_CHAIN1 |
||||
( |
||||
ONE_VALUE VARCHAR(20), |
||||
NO_ID_CHAIN4 BIGINT, |
||||
FOREIGN KEY (NO_ID_CHAIN4) REFERENCES NO_ID_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_CHAIN0 |
||||
( |
||||
ZERO_VALUE VARCHAR(20), |
||||
NO_ID_CHAIN4 BIGINT, |
||||
FOREIGN KEY (NO_ID_CHAIN4) REFERENCES NO_ID_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
|
||||
CREATE TABLE NO_ID_LIST_CHAIN4 |
||||
( |
||||
FOUR BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40) PRIMARY KEY, |
||||
FOUR_VALUE VARCHAR(20) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_LIST_CHAIN3 |
||||
( |
||||
THREE_VALUE VARCHAR(20), |
||||
NO_ID_LIST_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN4_KEY BIGINT NOT NULL, |
||||
PRIMARY KEY (NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY), |
||||
FOREIGN KEY (NO_ID_LIST_CHAIN4) REFERENCES NO_ID_LIST_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_LIST_CHAIN2 |
||||
( |
||||
TWO_VALUE VARCHAR(20), |
||||
NO_ID_LIST_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN4_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN3_KEY BIGINT NOT NULL, |
||||
PRIMARY KEY (NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY |
||||
) REFERENCES NO_ID_LIST_CHAIN3 ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY |
||||
) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_LIST_CHAIN1 |
||||
( |
||||
ONE_VALUE VARCHAR(20), |
||||
NO_ID_LIST_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN4_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN3_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN2_KEY BIGINT NOT NULL, |
||||
PRIMARY KEY (NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY, |
||||
NO_ID_LIST_CHAIN2_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY |
||||
) REFERENCES NO_ID_LIST_CHAIN2 ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY |
||||
) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_LIST_CHAIN0 |
||||
( |
||||
ZERO_VALUE VARCHAR(20), |
||||
NO_ID_LIST_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN4_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN3_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN2_KEY BIGINT NOT NULL, |
||||
NO_ID_LIST_CHAIN1_KEY BIGINT NOT NULL, |
||||
PRIMARY KEY (NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY, |
||||
NO_ID_LIST_CHAIN2_KEY, |
||||
NO_ID_LIST_CHAIN1_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY, |
||||
NO_ID_LIST_CHAIN2_KEY |
||||
) REFERENCES NO_ID_LIST_CHAIN1 ( |
||||
NO_ID_LIST_CHAIN4, |
||||
NO_ID_LIST_CHAIN4_KEY, |
||||
NO_ID_LIST_CHAIN3_KEY, |
||||
NO_ID_LIST_CHAIN2_KEY |
||||
) |
||||
); |
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE NO_ID_MAP_CHAIN4 |
||||
( |
||||
FOUR BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40) PRIMARY KEY, |
||||
FOUR_VALUE VARCHAR(20) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_MAP_CHAIN3 |
||||
( |
||||
THREE_VALUE VARCHAR(20), |
||||
NO_ID_MAP_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_MAP_CHAIN4_KEY VARCHAR(20) NOT NULL, |
||||
PRIMARY KEY (NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY), |
||||
FOREIGN KEY (NO_ID_MAP_CHAIN4) REFERENCES NO_ID_MAP_CHAIN4 (FOUR) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_MAP_CHAIN2 |
||||
( |
||||
TWO_VALUE VARCHAR(20), |
||||
NO_ID_MAP_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_MAP_CHAIN4_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN3_KEY VARCHAR(20) NOT NULL, |
||||
PRIMARY KEY (NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY |
||||
) REFERENCES NO_ID_MAP_CHAIN3 ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY |
||||
) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_MAP_CHAIN1 |
||||
( |
||||
ONE_VALUE VARCHAR(20), |
||||
NO_ID_MAP_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_MAP_CHAIN4_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN3_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN2_KEY VARCHAR(20) NOT NULL, |
||||
PRIMARY KEY (NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY, |
||||
NO_ID_MAP_CHAIN2_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY |
||||
) REFERENCES NO_ID_MAP_CHAIN2 ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY |
||||
) |
||||
); |
||||
|
||||
CREATE TABLE NO_ID_MAP_CHAIN0 |
||||
( |
||||
ZERO_VALUE VARCHAR(20), |
||||
NO_ID_MAP_CHAIN4 BIGINT NOT NULL, |
||||
NO_ID_MAP_CHAIN4_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN3_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN2_KEY VARCHAR(20) NOT NULL, |
||||
NO_ID_MAP_CHAIN1_KEY VARCHAR(20) NOT NULL, |
||||
PRIMARY KEY (NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY, |
||||
NO_ID_MAP_CHAIN2_KEY, |
||||
NO_ID_MAP_CHAIN1_KEY), |
||||
FOREIGN KEY ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY, |
||||
NO_ID_MAP_CHAIN2_KEY |
||||
) REFERENCES NO_ID_MAP_CHAIN1 ( |
||||
NO_ID_MAP_CHAIN4, |
||||
NO_ID_MAP_CHAIN4_KEY, |
||||
NO_ID_MAP_CHAIN3_KEY, |
||||
NO_ID_MAP_CHAIN2_KEY |
||||
) |
||||
); |
||||
|
||||
CREATE TABLE WITH_READ_ONLY ( |
||||
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 40) PRIMARY KEY, |
||||
NAME VARCHAR(200), |
||||
READ_ONLY VARCHAR(200) DEFAULT 'from-db' |
||||
); |
||||
|
||||
CREATE TABLE VERSIONED_AGGREGATE |
||||
( |
||||
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, |
||||
VERSION BIGINT |
||||
); |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
DROP TABLE Dummy_entity; |
||||
|
||||
CREATE TABLE Dummy_Entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY) |
||||
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100)) |
||||
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(100)) |
||||
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(100)) |
||||
@ -1,2 +0,0 @@
@@ -1,2 +0,0 @@
|
||||
DROP TABLE IF EXISTS dummy_entity; |
||||
CREATE TABLE dummy_entity ( id SERIAL PRIMARY KEY, NAME VARCHAR(100)); |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
DROP TABLE ENTITY_WITH_STRINGY_BIG_DECIMAL; |
||||
|
||||
CREATE TABLE ENTITY_WITH_STRINGY_BIG_DECIMAL ( id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY, Stringy_number DECIMAL(20,10)); |
||||
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
DROP TABLE dummy_entity; |
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, PREFIX_ATTR1 BIGINT, PREFIX_ATTR2 VARCHAR(100)) |
||||
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
DROP TABLE dummy_entity; |
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, TEST VARCHAR(100), PREFIX2_ATTR BIGINT, PREFIX_TEST VARCHAR(100), PREFIX_PREFIX2_ATTR BIGINT); |
||||
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
DROP TABLE dummy_entity; |
||||
DROP TABLE dummy_entity2; |
||||
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, TEST VARCHAR(100)); |
||||
CREATE TABLE dummy_entity2 ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, TEST VARCHAR(100), PREFIX_ATTR BIGINT) |
||||
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
DROP TABLE dummy_entity; |
||||
DROP TABLE dummy_entity2; |
||||
|
||||
CREATE TABLE dummy_entity |
||||
( |
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, |
||||
TEST VARCHAR(100), |
||||
PREFIX_TEST VARCHAR(100) |
||||
); |
||||
CREATE TABLE dummy_entity2 |
||||
( |
||||
id BIGINT NOT NULL, |
||||
ORDER_KEY BIGINT NOT NULL, |
||||
TEST VARCHAR(100), |
||||
PRIMARY KEY (id, ORDER_KEY) |
||||
) |
||||
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
DROP TABLE dummy_entity; |
||||
DROP TABLE dummy_entity2; |
||||
|
||||
CREATE TABLE dummy_entity |
||||
( |
||||
ID BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, |
||||
TEST VARCHAR(100), |
||||
PREFIX_TEST VARCHAR(100) |
||||
); |
||||
CREATE TABLE dummy_entity2 |
||||
( |
||||
ID BIGINT, |
||||
TEST VARCHAR(100) |
||||
) |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
DROP TABLE ReadOnlyIdEntity; |
||||
DROP TABLE PrimitiveIdEntity; |
||||
DROP TABLE ImmutableWithManualIdentity; |
||||
|
||||
CREATE TABLE ReadOnlyIdEntity (ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY, NAME VARCHAR(100)); |
||||
CREATE TABLE PrimitiveIdEntity (ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY, NAME VARCHAR(100)); |
||||
CREATE TABLE ImmutableWithManualIdentity (ID BIGINT NOT NULL PRIMARY KEY, NAME VARCHAR(100)); |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
DROP TABLE dummy_entity; |
||||
|
||||
CREATE TABLE dummy_entity ( id_Prop BIGINT PRIMARY KEY, NAME VARCHAR(100)) |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
DROP TABLE dummy_entity; |
||||
|
||||
CREATE TABLE dummy_entity |
||||
( |
||||
id_Prop BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, |
||||
NAME VARCHAR(100), |
||||
POINT_IN_TIME TIMESTAMP |
||||
); |
||||
@ -1,2 +0,0 @@
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(1), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -1,2 +0,0 @@
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(1), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -1,2 +0,0 @@
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(1), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
DROP TABLE IF EXISTS dummy_entity; |
||||
DROP TABLE IF EXISTS log; |
||||
CREATE TABLE dummy_entity ( id BIGINT IDENTITY PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(1), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -1,2 +0,0 @@
@@ -1,2 +0,0 @@
|
||||
CREATE TABLE dummy_entity ( id BIGINT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(1), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
DROP TABLE dummy_entity; |
||||
DROP TABLE log; |
||||
CREATE TABLE dummy_entity ( id SERIAL PRIMARY KEY, NAME VARCHAR(100), DELETED CHAR(5), log BIGINT); |
||||
CREATE TABLE log ( id BIGINT, TEXT VARCHAR(100)); |
||||
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
DROP TABLE ENTITY_WITH_COLUMNS_REQUIRING_CONVERSIONS; |
||||
|
||||
CREATE TABLE ENTITY_WITH_COLUMNS_REQUIRING_CONVERSIONS ( |
||||
id_Timestamp DATETIME NOT NULL PRIMARY KEY, |
||||
bool boolean, SOME_ENUM VARCHAR(100), |
||||
big_Decimal VARCHAR(100), |
||||
big_Integer BIGINT, |
||||
date DATETIME, |
||||
local_Date_Time DATETIME, |
||||
zoned_Date_Time VARCHAR(30) |
||||
); |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
DROP TABLE address; |
||||
DROP TABLE person; |
||||
|
||||
|
||||
CREATE TABLE person ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, name VARCHAR(100)); |
||||
CREATE TABLE address ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, street VARCHAR(100), person_id BIGINT); |
||||
ALTER TABLE address ADD FOREIGN KEY (person_id) REFERENCES person(id); |
||||
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
DROP TABLE element; |
||||
DROP TABLE dummy_entity; |
||||
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100)); |
||||
CREATE TABLE element (id BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, content VARCHAR(100), dummy_entity BIGINT); |
||||
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
DROP TABLE element; |
||||
DROP TABLE dummy_entity; |
||||
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100)); |
||||
CREATE TABLE element (id BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, content VARCHAR(100), Dummy_Entity_key BIGINT, dummy_entity BIGINT); |
||||
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
DROP TABLE element; |
||||
DROP TABLE dummy_entity; |
||||
|
||||
CREATE TABLE dummy_entity ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, NAME VARCHAR(100)); |
||||
CREATE TABLE element (id BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, content VARCHAR(100), Dummy_Entity_key VARCHAR(100), dummy_entity BIGINT); |
||||
|
||||
ALTER TABLE ELEMENT |
||||
ADD FOREIGN KEY (dummy_entity) |
||||
REFERENCES dummy_entity(id); |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
DROP TABLE car; |
||||
|
||||
CREATE TABLE car ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, model VARCHAR(100)); |
||||
@ -1 +1,4 @@
@@ -1 +1,4 @@
|
||||
DROP TABLE car; |
||||
|
||||
|
||||
CREATE TABLE car ( id BIGINT GENERATED BY DEFAULT AS IDENTITY ( START WITH 1 ) PRIMARY KEY, model VARCHAR(100)); |
||||
|
||||
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
/* |
||||
* Copyright 2020 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.data.relational.core.dialect; |
||||
|
||||
import org.springframework.data.relational.core.sql.IdentifierProcessing; |
||||
|
||||
/** |
||||
* An SQL dialect for DB2. |
||||
* |
||||
* @author Jens Schauder |
||||
* @since 2.1 |
||||
*/ |
||||
public class Db2Dialect extends AbstractDialect { |
||||
|
||||
/** |
||||
* Singleton instance. |
||||
*/ |
||||
public static final Db2Dialect INSTANCE = new Db2Dialect(); |
||||
|
||||
protected Db2Dialect() {} |
||||
|
||||
private static final LimitClause LIMIT_CLAUSE = new LimitClause() { |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.relational.core.dialect.LimitClause#getLimit(long) |
||||
*/ |
||||
@Override |
||||
public String getLimit(long limit) { |
||||
return "FIRST " + limit + " ROWS ONLY"; |
||||
} |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.relational.core.dialect.LimitClause#getOffset(long) |
||||
*/ |
||||
@Override |
||||
public String getOffset(long offset) { |
||||
return "OFFSET " + offset + " ROWS"; |
||||
} |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.relational.core.dialect.LimitClause#getClause(long, long) |
||||
*/ |
||||
@Override |
||||
public String getLimitOffset(long limit, long offset) { |
||||
return String.format("OFFSET %d ROWS FETCH FIRST %d ROWS ONLY", offset, limit); |
||||
} |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.relational.core.dialect.LimitClause#getClausePosition() |
||||
*/ |
||||
@Override |
||||
public Position getClausePosition() { |
||||
return Position.AFTER_ORDER_BY; |
||||
} |
||||
}; |
||||
|
||||
/* |
||||
* (non-Javadoc) |
||||
* @see org.springframework.data.relational.core.dialect.Dialect#limit() |
||||
*/ |
||||
@Override |
||||
public LimitClause limit() { |
||||
return LIMIT_CLAUSE; |
||||
} |
||||
|
||||
@Override |
||||
public IdentifierProcessing getIdentifierProcessing() { |
||||
return IdentifierProcessing.ANSI; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue