[#1993] Bad code generated when the same table name exists in multiple
schemas in SQL Server
This commit is contained in:
parent
52743a9e01
commit
0fc7ff56ee
@ -66,7 +66,8 @@ public class SQLServerTableDefinition extends AbstractTableDefinition {
|
||||
List<ColumnDefinition> result = new ArrayList<ColumnDefinition>();
|
||||
Field<Integer> identity = field("c.is_identity", Integer.class);
|
||||
|
||||
for (Record record : create().select(
|
||||
for (Record record : create()
|
||||
.select(
|
||||
COLUMNS.COLUMN_NAME,
|
||||
COLUMNS.ORDINAL_POSITION,
|
||||
COLUMNS.DATA_TYPE,
|
||||
@ -76,14 +77,18 @@ public class SQLServerTableDefinition extends AbstractTableDefinition {
|
||||
COLUMNS.NUMERIC_SCALE,
|
||||
identity)
|
||||
.from(COLUMNS)
|
||||
.join("sys.objects o")
|
||||
.on("o.type in ('U', 'V')")
|
||||
.and(COLUMNS.TABLE_NAME.equal(field("o.name", String.class)))
|
||||
.join("sys.columns c")
|
||||
.on("c.object_id = o.object_id")
|
||||
.and(COLUMNS.COLUMN_NAME.equal(field("c.name", String.class)))
|
||||
.join("sys.schemas s")
|
||||
.on(COLUMNS.TABLE_SCHEMA.equal(field("s.name", String.class)))
|
||||
// sys.objects is used rather than sys.tables, to include tables AND views
|
||||
.join("sys.objects t")
|
||||
.on("t.type in ('U', 'V')")
|
||||
.and("t.schema_id = s.schema_id")
|
||||
.and(COLUMNS.TABLE_NAME.equal(field("t.name", String.class)))
|
||||
.join("sys.columns c")
|
||||
.on("c.object_id = t.object_id")
|
||||
.and(COLUMNS.COLUMN_NAME.equal(field("c.name", String.class)))
|
||||
.where(COLUMNS.TABLE_SCHEMA.equal(getSchema().getName()))
|
||||
.and(COLUMNS.TABLE_NAME.equal(getName()))
|
||||
.and(COLUMNS.TABLE_NAME.equal(getName()))
|
||||
.orderBy(COLUMNS.ORDINAL_POSITION)
|
||||
.fetch()) {
|
||||
|
||||
|
||||
@ -28,6 +28,10 @@ DROP FUNCTION f378/
|
||||
|
||||
DROP TRIGGER t_triggers_trigger/
|
||||
|
||||
DROP TABLE multi_schema.t_book_sale/
|
||||
DROP TABLE multi_schema.t_book/
|
||||
DROP TABLE multi_schema.t_author/
|
||||
|
||||
DROP TABLE t_dates/
|
||||
DROP TABLE t_triggers/
|
||||
DROP TABLE t_arrays/
|
||||
@ -205,6 +209,18 @@ CREATE TABLE t_book_to_book_store (
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE MULTI_SCHEMA.t_author (
|
||||
ID int NOT NULL,
|
||||
FIRST_NAME VARCHAR(50),
|
||||
LAST_NAME VARCHAR(50) NOT NULL,
|
||||
DATE_OF_BIRTH DATE,
|
||||
YEAR_OF_BIRTH int,
|
||||
ADDRESS VARCHAR(50),
|
||||
|
||||
CONSTRAINT pk_t_author PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
|
||||
|
||||
CREATE TABLE x_unused (
|
||||
id int NOT NULL,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user