[#826] Allow for returning several records in the INSERT .. RETURNING clause

This commit is contained in:
Lukas Eder 2011-09-12 16:49:58 +00:00
parent cf71232458
commit f4d7641806
75 changed files with 650 additions and 235 deletions

View File

@ -39,6 +39,7 @@ import static org.jooq.util.ase.sys.tables.Sysindexes.SYSINDEXES;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.jooq.Record;
@ -202,8 +203,10 @@ public class ASEDatabase extends AbstractDatabase {
List<String> result = new ArrayList<String>();
for (Record record : create().fetch("sp_help")) {
if (getSchemaName().equals(record.getValueAsString("Owner"))) {
result.add(record.getValueAsString("Name"));
if (Arrays.asList("view", "user table", "system table").contains(record.getValueAsString("Object_type"))) {
if (getSchemaName().equals(record.getValueAsString("Owner"))) {
result.add(record.getValueAsString("Name"));
}
}
}

View File

@ -8,7 +8,7 @@ jdbc.Password=
generator=org.jooq.util.DefaultGenerator
generator.database=org.jooq.util.hsqldb.HSQLDBDatabase
generator.database.includes=.*
generator.database.excludes=T_BOOK_DETAILS
generator.database.excludes=T_BOOK_DETAILS,S_TRIGGERS_SEQUENCE
generator.generate.relations=true

View File

@ -8,7 +8,7 @@ jdbc.Password=TEST
generator=org.jooq.util.DefaultGenerator
generator.database=org.jooq.util.oracle.OracleDatabase
generator.database.includes=.*
generator.database.excludes=T_BOOK_DETAILS
generator.database.excludes=T_BOOK_DETAILS,S_TRIGGERS_SEQUENCE
generator.generate.relations=true
#Generate a master data table enum from T_LANGUAGE

View File

@ -8,7 +8,7 @@ jdbc.Password=test
generator=org.jooq.util.DefaultGenerator
generator.database=org.jooq.util.postgres.PostgresDatabase
generator.database.includes=.*
generator.database.excludes=t_book_details,t_book_store_id_seq
generator.database.excludes=t_book_details,.*?_seq
generator.generate.relations=true
generator.generate.deprecated=false

View File

@ -41,7 +41,7 @@ CREATE TABLE t_triggers (
id int null,
counter int null,
CONSTRAINT pk_t_triggers UNIQUE (id)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/

View File

@ -24,7 +24,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.TBookRecord> pk_t_book = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.ase.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.TBookStoreRecord> uk_t_book_store_name = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.ase.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.TBookToBookStoreRecord> pk_b2bs = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.ase.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.ase.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ase.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ase.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.XTestCase_64_69Record> pk_x_test_case_64_69 = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.ase.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.XTestCase_71Record> pk_x_test_case_71 = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.ase.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ase.generatedclasses.tables.records.XTestCase_85Record> pk_x_test_case_85 = createUniqueKey(org.jooq.test.ase.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.ase.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.ase.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1507849517;
private static final long serialVersionUID = 1753070474;
/**
* The singleton instance of t_triggers
@ -32,6 +32,8 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.as
/**
* An uncommented item
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);

View File

@ -10,10 +10,12 @@ package org.jooq.test.ase.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.ase.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 253956263;
private static final long serialVersionUID = 1100463701;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.ase.generatedclasses.tables.TTriggers.ID_GENERATED, value);
@ -21,6 +23,8 @@ public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.ase.generatedclasses.tables.TTriggers.ID_GENERATED);

View File

@ -14,6 +14,7 @@ DROP VIEW v_author/
DROP VIEW v_book/
DROP TRIGGER t_triggers_trigger/
DROP TABLE t_triggers/
DROP TABLE t_book_to_book_store/
DROP TABLE t_book_store/
@ -40,10 +41,11 @@ DROP SEQUENCE s_trigger_id/
CREATE SEQUENCE s_trigger_id/
CREATE TABLE t_triggers (
id int not null,
id_generated int not null,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
@ -53,8 +55,10 @@ ON t_triggers
REFERENCING NEW AS new
FOR EACH ROW
BEGIN
select s_trigger_id.nextval into new.id from sysibm.dual;
set new.counter = new.id * 2;
select s_trigger_id.nextval into new.id_generated from sysibm.dual;
set new.id = new.id_generated;
set new.counter = new.id_generated * 2;
END
/

View File

@ -23,7 +23,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.TBookRecord> PK_T_BOOK = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.db2.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.TBookStoreRecord> UK_T_BOOK_STORE_NAME = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.db2.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.TBookToBookStoreRecord> PK_B2BS = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.db2.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.db2.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.db2.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.db2.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.XTestCase_64_69Record> PK_X_TEST_CASE_64_69 = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.db2.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.XTestCase_71Record> PK_X_TEST_CASE_71 = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.db2.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.db2.generatedclasses.tables.records.XTestCase_85Record> PK_X_TEST_CASE_85 = createUniqueKey(org.jooq.test.db2.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.db2.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.db2.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -610495800;
private static final long serialVersionUID = -1110969074;
/**
* The singleton instance of T_TRIGGERS
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.db
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID_GENERATED", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.db2.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.db2.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -58813923;
private static final long serialVersionUID = -1871836969;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.db2.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.db2.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.db2.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.db2.generatedclasses.tables.TTriggers.ID);

View File

@ -3,6 +3,7 @@ DROP VIEW v_book/
DROP VIEW v_library/
DROP TRIGGER t_triggers_trigger/
DROP TABLE t_triggers/
DROP TABLE t_book_to_book_store/
DROP TABLE t_book_store/
@ -33,7 +34,7 @@ CREATE TABLE t_triggers (
id int,
counter int,
CONSTRAINT pk_t_triggers UNIQUE (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/

View File

@ -18,7 +18,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.Identity<org.jooq.test.derby.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_T_BOOK_STORE = createIdentity(org.jooq.test.derby.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.derby.generatedclasses.tables.TBookStore.ID);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.derby.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.derby.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.derby.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.derby.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.derby.generatedclasses.tables.records.T_725LobTestRecord> PK_T_725_LOB_TEST = createUniqueKey(org.jooq.test.derby.generatedclasses.tables.T_725LobTest.T_725_LOB_TEST, org.jooq.test.derby.generatedclasses.tables.T_725LobTest.ID);
public static final org.jooq.UniqueKey<org.jooq.test.derby.generatedclasses.tables.records.TAuthorRecord> PK_T_AUTHOR = createUniqueKey(org.jooq.test.derby.generatedclasses.tables.TAuthor.T_AUTHOR, org.jooq.test.derby.generatedclasses.tables.TAuthor.ID);
public static final org.jooq.UniqueKey<org.jooq.test.derby.generatedclasses.tables.records.TBookRecord> PK_T_BOOK = createUniqueKey(org.jooq.test.derby.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.derby.generatedclasses.tables.TBook.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.derby.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -1726272252;
private static final long serialVersionUID = -1942318461;
/**
* The singleton instance of T_TRIGGERS
@ -32,6 +32,8 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.de
/**
* An uncommented item
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID_GENERATED", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);

View File

@ -10,10 +10,12 @@ package org.jooq.test.derby.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.derby.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 2086496711;
private static final long serialVersionUID = 615281343;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.derby.generatedclasses.tables.TTriggers.ID_GENERATED, value);
@ -21,6 +23,8 @@ public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.derby.generatedclasses.tables.TTriggers.ID_GENERATED);

View File

@ -39,7 +39,7 @@ import java.sql.Connection;
import java.sql.SQLException;
import org.h2.api.Trigger;
import org.jooq.test.h2.generatedclasses.tables.TTriggers;
import org.jooq.test.h2.generatedclasses.Sequences;
import org.jooq.util.h2.H2Factory;
/**
@ -56,12 +56,10 @@ public class TTriggersTrigger implements Trigger {
@Override
public void fire(Connection conn, Object[] oldRow, Object[] newRow) throws SQLException {
H2Factory create = new H2Factory(conn);
Integer maxID =
create.select(TTriggers.ID.max().nvl(0).add(1))
.from(TTriggers.T_TRIGGERS)
.fetchOne(0, Integer.class);
newRow[1] = maxID * 2;
int maxID = create.nextval(Sequences.S_TRIGGERS_SEQUENCE).intValue();
newRow[0] = maxID;
newRow[1] = maxID;
newRow[2] = maxID * 2;
}
@Override

View File

@ -3,6 +3,7 @@ DROP VIEW IF EXISTS v_book/
DROP VIEW IF EXISTS v_library/
DROP TRIGGER IF EXISTS t_triggers_trigger/
DROP SEQUENCE IF EXISTS s_triggers_sequence/
DROP TABLE IF EXISTS t_triggers/
DROP TABLE IF EXISTS t_arrays/
@ -39,13 +40,16 @@ DROP ALIAS IF EXISTS p_create_author_by_name/
DROP ALIAS IF EXISTS f_get_one_cursor/
CREATE TABLE t_triggers (
id int AUTO_INCREMENT,
id_generated int AUTO_INCREMENT,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
CREATE SEQUENCE s_triggers_sequence START WITH 1/
CREATE TRIGGER t_triggers_trigger
BEFORE INSERT
ON t_triggers
@ -63,14 +67,10 @@ CREATE TABLE t_language (
)
/
COMMENT ON TABLE t_language IS 'An entity holding language master data'
/
COMMENT ON COLUMN t_language.id IS 'The language ID'
/
COMMENT ON COLUMN t_language.cd IS 'The language ISO code'
/
COMMENT ON COLUMN t_language.description IS 'The language description'
/
COMMENT ON TABLE t_language IS 'An entity holding language master data'/
COMMENT ON COLUMN t_language.id IS 'The language ID'/
COMMENT ON COLUMN t_language.cd IS 'The language ISO code'/
COMMENT ON COLUMN t_language.description IS 'The language description'/
CREATE TABLE t_658_11 (
id CHAR(3) NOT NULL,
@ -160,20 +160,13 @@ CREATE TABLE t_author (
CONSTRAINT pk_t_author PRIMARY KEY (ID)
);
/
COMMENT ON TABLE t_author IS 'An entity holding authors of books'
/
COMMENT ON COLUMN t_author.id IS 'The author ID'
/
COMMENT ON COLUMN t_author.first_name IS 'The author''s first name'
/
COMMENT ON COLUMN t_author.last_name IS 'The author''s last name'
/
COMMENT ON COLUMN t_author.date_of_birth IS 'The author''s date of birth'
/
COMMENT ON COLUMN t_author.year_of_birth IS 'The author''s year of birth'
/
COMMENT ON COLUMN t_author.address IS 'The author''s address'
/
COMMENT ON TABLE t_author IS 'An entity holding authors of books'/
COMMENT ON COLUMN t_author.id IS 'The author ID'/
COMMENT ON COLUMN t_author.first_name IS 'The author''s first name'/
COMMENT ON COLUMN t_author.last_name IS 'The author''s last name'/
COMMENT ON COLUMN t_author.date_of_birth IS 'The author''s date of birth'/
COMMENT ON COLUMN t_author.year_of_birth IS 'The author''s year of birth'/
COMMENT ON COLUMN t_author.address IS 'The author''s address'/
CREATE TABLE t_book_details (
ID INT,
@ -181,8 +174,7 @@ CREATE TABLE t_book_details (
CONSTRAINT pk_t_book_details PRIMARY KEY (ID)
)
/
COMMENT ON TABLE t_book_details IS 'An unused details table'
/
COMMENT ON TABLE t_book_details IS 'An unused details table'/
CREATE TABLE t_book (
ID INT NOT NULL,
@ -202,22 +194,14 @@ CREATE TABLE t_book (
CONSTRAINT fk_t_book_language_id FOREIGN KEY (LANGUAGE_ID) REFERENCES T_LANGUAGE(ID)
);
/
COMMENT ON TABLE t_book IS 'An entity holding books'
/
COMMENT ON COLUMN t_book.id IS 'The book ID'
/
COMMENT ON COLUMN t_book.author_id IS 'The author ID in entity ''author'''
/
COMMENT ON COLUMN t_book.title IS 'The book''s title'
/
COMMENT ON COLUMN t_book.published_in IS 'The year the book was published in'
/
COMMENT ON COLUMN t_book.language_id IS 'The language of the book'
/
COMMENT ON COLUMN t_book.content_text IS 'Some textual content of the book'
/
COMMENT ON COLUMN t_book.content_pdf IS 'Some binary content of the book'
/
COMMENT ON TABLE t_book IS 'An entity holding books'/
COMMENT ON COLUMN t_book.id IS 'The book ID'/
COMMENT ON COLUMN t_book.author_id IS 'The author ID in entity ''author'''/
COMMENT ON COLUMN t_book.title IS 'The book''s title'/
COMMENT ON COLUMN t_book.published_in IS 'The year the book was published in'/
COMMENT ON COLUMN t_book.language_id IS 'The language of the book'/
COMMENT ON COLUMN t_book.content_text IS 'Some textual content of the book'/
COMMENT ON COLUMN t_book.content_pdf IS 'Some binary content of the book'/
CREATE TABLE t_book_store (
id INTEGER AUTO_INCREMENT,
@ -226,10 +210,8 @@ CREATE TABLE t_book_store (
CONSTRAINT uk_t_book_store_name UNIQUE(name)
);
/
COMMENT ON TABLE t_book_store IS 'A book store'
/
COMMENT ON COLUMN t_book_store.name IS 'The books store name'
/
COMMENT ON TABLE t_book_store IS 'A book store'/
COMMENT ON COLUMN t_book_store.name IS 'The books store name'/
CREATE TABLE t_book_to_book_store (
@ -246,14 +228,10 @@ CREATE TABLE t_book_to_book_store (
ON DELETE CASCADE
);
/
COMMENT ON TABLE t_book_to_book_store IS 'An m:n relation between books and book stores'
/
COMMENT ON COLUMN t_book_to_book_store.book_store_name IS 'The book store name'
/
COMMENT ON COLUMN t_book_to_book_store.book_id IS 'The book ID'
/
COMMENT ON COLUMN t_book_to_book_store.stock IS 'The number of books on stock'
/
COMMENT ON TABLE t_book_to_book_store IS 'An m:n relation between books and book stores'/
COMMENT ON COLUMN t_book_to_book_store.book_store_name IS 'The book store name'/
COMMENT ON COLUMN t_book_to_book_store.book_id IS 'The book ID'/
COMMENT ON COLUMN t_book_to_book_store.stock IS 'The number of books on stock'/
CREATE TABLE t_arrays (

View File

@ -14,11 +14,11 @@ package org.jooq.test.h2.generatedclasses;
public class Keys extends org.jooq.impl.AbstractKeys {
// IDENTITY definitions
public static final org.jooq.Identity<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_T_TRIGGERS = createIdentity(org.jooq.test.h2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.h2.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.Identity<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_T_TRIGGERS = createIdentity(org.jooq.test.h2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.h2.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.Identity<org.jooq.test.h2.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_T_BOOK_STORE = createIdentity(org.jooq.test.h2.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.h2.generatedclasses.tables.TBookStore.ID);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.h2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.h2.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.h2.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.h2.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.h2.generatedclasses.tables.records.T_725LobTestRecord> PK_T_725_LOB_TEST = createUniqueKey(org.jooq.test.h2.generatedclasses.tables.T_725LobTest.T_725_LOB_TEST, org.jooq.test.h2.generatedclasses.tables.T_725LobTest.ID);
public static final org.jooq.UniqueKey<org.jooq.test.h2.generatedclasses.tables.records.TAuthorRecord> PK_T_AUTHOR = createUniqueKey(org.jooq.test.h2.generatedclasses.tables.TAuthor.T_AUTHOR, org.jooq.test.h2.generatedclasses.tables.TAuthor.ID);
public static final org.jooq.UniqueKey<org.jooq.test.h2.generatedclasses.tables.records.TBookRecord> PK_T_BOOK = createUniqueKey(org.jooq.test.h2.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.h2.generatedclasses.tables.TBook.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.h2.generatedclasses;
comments = "This class is generated by jOOQ")
public class Public extends org.jooq.impl.SchemaImpl {
private static final long serialVersionUID = -1342529007;
private static final long serialVersionUID = 1071755472;
/**
* The singleton instance of PUBLIC
@ -26,7 +26,9 @@ public class Public extends org.jooq.impl.SchemaImpl {
@Override
public final java.util.List<org.jooq.Sequence> getSequences() {
return java.util.Arrays.<org.jooq.Sequence>asList(org.jooq.test.h2.generatedclasses.Sequences.S_AUTHOR_ID);
return java.util.Arrays.<org.jooq.Sequence>asList(
org.jooq.test.h2.generatedclasses.Sequences.S_AUTHOR_ID,
org.jooq.test.h2.generatedclasses.Sequences.S_TRIGGERS_SEQUENCE);
}
@Override

View File

@ -17,6 +17,11 @@ public final class Sequences {
*/
public static final org.jooq.Sequence S_AUTHOR_ID = new org.jooq.impl.SequenceImpl("S_AUTHOR_ID", org.jooq.test.h2.generatedclasses.Public.PUBLIC);
/**
* The sequence S_TRIGGERS_SEQUENCE
*/
public static final org.jooq.Sequence S_TRIGGERS_SEQUENCE = new org.jooq.impl.SequenceImpl("S_TRIGGERS_SEQUENCE", org.jooq.test.h2.generatedclasses.Public.PUBLIC);
/**
* No instances
*/

View File

@ -10,7 +10,7 @@ package org.jooq.test.h2.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -997811883;
private static final long serialVersionUID = 1537829755;
/**
* The singleton instance of T_TRIGGERS
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.h2
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID_GENERATED", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.h2.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.h2.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1588395399;
private static final long serialVersionUID = 1764902775;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.h2.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.h2.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.h2.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.h2.generatedclasses.tables.TTriggers.ID);

View File

@ -22,6 +22,7 @@ DROP VIEW IF EXISTS v_book/
DROP VIEW IF EXISTS v_library/
DROP TRIGGER IF EXISTS t_triggers_trigger/
DROP SEQUENCE s_triggers_sequence/
DROP TABLE IF EXISTS t_triggers/
DROP TABLE IF EXISTS t_arrays/
@ -53,11 +54,14 @@ DROP TABLE IF EXISTS object/
DROP TABLE IF EXISTS string/
DROP TABLE IF EXISTS big_decimal/
CREATE SEQUENCE s_triggers_sequence START WITH 1/
CREATE TABLE t_triggers (
id int not null,
id_generated int not null,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
@ -67,8 +71,12 @@ ON t_triggers
REFERENCING NEW AS new
FOR EACH ROW
BEGIN ATOMIC
select nvl(max(id), 0) + 1 into new.id from t_triggers;
select nvl(max(counter), 0) + 2 into new.counter from t_triggers;
select next value for s_triggers_sequence
into new.id_generated
from information_schema.system_users;
set new.id = new.id_generated;
set new.counter = new.id_generated * 2;
END
/

View File

@ -24,7 +24,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.TBookRecord> PK_T_BOOK = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.hsqldb.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.TBookStoreRecord> UK_T_BOOK_STORE_NAME = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.hsqldb.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.TBookToBookStoreRecord> PK_B2BS = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.hsqldb.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.hsqldb.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.XTestCase_64_69Record> PK_X_TEST_CASE_64_69 = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.XTestCase_71Record> PK_X_TEST_CASE_71 = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.hsqldb.generatedclasses.tables.records.XTestCase_85Record> PK_X_TEST_CASE_85 = createUniqueKey(org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.hsqldb.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.hsqldb.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 830158782;
private static final long serialVersionUID = -1284887400;
/**
* The singleton instance of T_TRIGGERS
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.hs
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID_GENERATED", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.hsqldb.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.hsqldb.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1564457699;
private static final long serialVersionUID = -467383905;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.hsqldb.generatedclasses.tables.TTriggers.ID);

View File

@ -29,17 +29,19 @@ DROP TABLE IF EXISTS t_725_lob_test/
DROP TABLE IF EXISTS t_785/
CREATE TABLE t_triggers (
id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
id_generated INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
CREATE PROCEDURE p_triggers AS
BEGIN
UPDATE t_triggers
SET counter = id * 2;
SET id = id_generated,
counter = id_generated * 2;
END
/

View File

@ -15,7 +15,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
// IDENTITY definitions
public static final org.jooq.Identity<org.jooq.test.ingres.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_t_book_store = createIdentity(org.jooq.test.ingres.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.ingres.generatedclasses.tables.TBookStore.ID);
public static final org.jooq.Identity<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.ingres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.Identity<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.ingres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID_GENERATED);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.T_639NumbersTableRecord> pk_t_639_numbers_table = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.T_639NumbersTable.T_639_NUMBERS_TABLE, org.jooq.test.ingres.generatedclasses.tables.T_639NumbersTable.ID);
@ -24,7 +24,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.TBookRecord> pk_t_book = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.ingres.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.TBookStoreRecord> uk_t_book_store_name = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.ingres.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.TBookToBookStoreRecord> pk_b2bs = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.ingres.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.ingres.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.XTestCase_64_69Record> pk_x_test_case_64_69 = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.ingres.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.XTestCase_71Record> pk_x_test_case_71 = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.ingres.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.ingres.generatedclasses.tables.records.XTestCase_85Record> pk_x_test_case_85 = createUniqueKey(org.jooq.test.ingres.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.ingres.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.ingres.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 301614065;
private static final long serialVersionUID = 1545101495;
/**
* The singleton instance of t_triggers
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.in
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.ingres.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.ingres.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -2059434049;
private static final long serialVersionUID = -44808761;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.ingres.generatedclasses.tables.TTriggers.ID);

View File

@ -396,6 +396,11 @@ public class jOOQASETest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -227,6 +227,11 @@ public abstract class jOOQAbstractTest<
continue;
}
// There is no DROP TRIGGER IF EXISTS statement in Oracle
else if (e.getMessage().contains("ORA-04080")) {
continue;
}
// There is no DROP TABLE IF EXISTS statement in DB2
else if (e.getMessage().contains("SQLCODE=-204") && e.getMessage().contains("SQLSTATE=42704")) {
continue;
@ -504,6 +509,7 @@ public abstract class jOOQAbstractTest<
protected abstract TableField<D, String> TDirectory_NAME();
protected abstract UpdatableTable<T> TTriggers();
protected abstract TableField<T, Integer> TTriggers_ID_GENERATED();
protected abstract TableField<T, Integer> TTriggers_ID();
protected abstract TableField<T, Integer> TTriggers_COUNTER();
@ -989,16 +995,16 @@ public abstract class jOOQAbstractTest<
sequences++;
// DB2 has an additional sequence for the T_TRIGGERS table
if (getDialect() == SQLDialect.DB2) {
if (getDialect() == SQLDialect.DB2 ||
getDialect() == SQLDialect.H2) {
sequences++;
}
}
assertEquals(sequences, schema.getSequences().size());
int tables = 15;
// The additional T_DIRECTORY table for recursive queries
@ -3742,47 +3748,91 @@ public abstract class jOOQAbstractTest<
// Without RETURNING clause
query = create().insertQuery(TTriggers());
query.addValue(TTriggers_ID(), null);
query.addValue(TTriggers_COUNTER(), 0);
assertEquals(1, query.execute());
assertNull(query.getReturned());
assertNull(query.getReturnedRecord());
// Check if the trigger works correctly
assertEquals(1, create().selectFrom(TTriggers()).fetch().size());
assertEquals(++ID, (int) create().selectFrom(TTriggers()).fetchOne(TTriggers_ID()));
assertEquals(++ID, (int) create().selectFrom(TTriggers()).fetchOne(TTriggers_ID_GENERATED()));
assertEquals( ID, (int) create().selectFrom(TTriggers()).fetchOne(TTriggers_ID()));
assertEquals(2*ID, (int) create().selectFrom(TTriggers()).fetchOne(TTriggers_COUNTER()));
// Returning all fields
query = create().insertQuery(TTriggers());
query.addValue(TTriggers_COUNTER(), null);
query.addValue(TTriggers_COUNTER(), 0);
query.setReturning();
assertEquals(1, query.execute());
assertNotNull(query.getReturned());
assertEquals(++ID, (int) query.getReturned().getValue(TTriggers_ID()));
assertEquals(2*ID, (int) query.getReturned().getValue(TTriggers_COUNTER()));
assertNotNull(query.getReturnedRecord());
assertEquals(++ID, (int) query.getReturnedRecord().getValue(TTriggers_ID_GENERATED()));
assertEquals( ID, (int) query.getReturnedRecord().getValue(TTriggers_ID()));
assertEquals(2*ID, (int) query.getReturnedRecord().getValue(TTriggers_COUNTER()));
// Returning only the ID field
query = create().insertQuery(TTriggers());
query.addValue(TTriggers_COUNTER(), 0);
query.setReturning(TTriggers_ID());
query.setReturning(TTriggers_ID_GENERATED());
assertEquals(1, query.execute());
assertNotNull(query.getReturned());
assertEquals(++ID, (int) query.getReturned().getValue(TTriggers_ID()));
assertNull(query.getReturned().getValue(TTriggers_COUNTER()));
assertNotNull(query.getReturnedRecord());
assertEquals(++ID, (int) query.getReturnedRecord().getValue(TTriggers_ID_GENERATED()));
assertNull(query.getReturnedRecord().getValue(TTriggers_ID()));
assertNull(query.getReturnedRecord().getValue(TTriggers_COUNTER()));
query.getReturned().refresh();
assertEquals(2*ID, (int) query.getReturned().getValue(TTriggers_COUNTER()));
query.getReturnedRecord().refresh();
assertEquals( ID, (int) query.getReturnedRecord().getValue(TTriggers_ID_GENERATED()));
assertEquals( ID, (int) query.getReturnedRecord().getValue(TTriggers_ID()));
assertEquals(2*ID, (int) query.getReturnedRecord().getValue(TTriggers_COUNTER()));
// TODO [#813] DSL querying
// ------------------------
// DSL querying
// ------------
TableRecord<T> returned = (TableRecord<T>)
create().insertInto(TTriggers(), TTriggers_COUNTER())
.values(0)
.returning()
.fetchOne();
assertNotNull(returned);
assertEquals(++ID, (int) returned.getValue(TTriggers_ID()));
assertEquals(++ID, (int) returned.getValue(TTriggers_ID_GENERATED()));
assertEquals( ID, (int) returned.getValue(TTriggers_ID()));
assertEquals(2*ID, (int) returned.getValue(TTriggers_COUNTER()));
switch (getDialect()) {
case ASE:
case DERBY:
case H2:
case INGRES:
case ORACLE:
// TODO [#832] Fix this. This might be a driver issue for Sybase
case SQLITE:
case SQLSERVER:
case SYBASE:
log.info("SKIPPING", "Multiple INSERT RETURNING");
break;
default:
Result<?> many =
create().insertInto(TTriggers(), TTriggers_COUNTER())
.values(-1)
.values(-2)
.values(-3)
.returning()
.fetch();
assertNotNull(many);
assertEquals(3, many.size());
assertEquals(++ID, (int) many.getValue(0, TTriggers_ID_GENERATED()));
assertEquals( ID, (int) many.getValue(0, TTriggers_ID()));
assertEquals(2*ID, (int) many.getValue(0, TTriggers_COUNTER()));
assertEquals(++ID, (int) many.getValue(1, TTriggers_ID_GENERATED()));
assertEquals( ID, (int) many.getValue(1, TTriggers_ID()));
assertEquals(2*ID, (int) many.getValue(1, TTriggers_COUNTER()));
assertEquals(++ID, (int) many.getValue(2, TTriggers_ID_GENERATED()));
assertEquals( ID, (int) many.getValue(2, TTriggers_ID()));
assertEquals(2*ID, (int) many.getValue(2, TTriggers_COUNTER()));
break;
}
returned = (TableRecord<T>)
create().insertInto(TTriggers(), TTriggers_COUNTER())
.values(0)
@ -3790,18 +3840,22 @@ public abstract class jOOQAbstractTest<
.fetchOne();
assertNotNull(returned);
assertEquals(++ID, (int) returned.getValue(TTriggers_ID()));
assertNull(returned.getValue(TTriggers_ID_GENERATED()));
assertNull(returned.getValue(TTriggers_COUNTER()));
returned.refreshUsing(TTriggers_ID());
assertEquals( ID, (int) returned.getValue(TTriggers_ID_GENERATED()));
assertEquals(2*ID, (int) returned.getValue(TTriggers_COUNTER()));
// store() and similar methods
T triggered = create().newRecord(TTriggers());
triggered.setValue(TTriggers_COUNTER(), 0);
assertEquals(1, triggered.store());
assertEquals(++ID, (int) triggered.getValue(TTriggers_ID()));
assertEquals(++ID, (int) triggered.getValue(TTriggers_ID_GENERATED()));
assertEquals(null, triggered.getValue(TTriggers_ID()));
assertEquals(0, (int) triggered.getValue(TTriggers_COUNTER()));
triggered.refresh();
assertEquals( ID, (int) triggered.getValue(TTriggers_ID()));
assertEquals(2*ID, (int) triggered.getValue(TTriggers_COUNTER()));
}

View File

@ -413,6 +413,11 @@ public class jOOQDB2Test extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -403,6 +403,11 @@ public class jOOQDerbyTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -412,6 +412,11 @@ public class jOOQH2Test extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -407,6 +407,11 @@ public class jOOQHSQLDBTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -409,6 +409,11 @@ public class jOOQHSQLDBTest2 extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -404,6 +404,11 @@ public class jOOQIngresTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -408,6 +408,11 @@ public class jOOQMySQLTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -449,6 +449,11 @@ public class jOOQOracleTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -410,6 +410,11 @@ public class jOOQPostgresTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -404,6 +404,11 @@ public class jOOQSQLServerTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -404,6 +404,11 @@ public class jOOQSQLiteTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -399,6 +399,11 @@ public class jOOQSybaseTest extends jOOQAbstractTest<
return TTriggers.T_TRIGGERS;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID_GENERATED() {
return TTriggers.ID_GENERATED;
}
@Override
protected TableField<TTriggersRecord, Integer> TTriggers_ID() {
return TTriggers.ID;

View File

@ -1,7 +1,9 @@
DROP VIEW IF EXISTS v_library/
DROP VIEW IF EXISTS v_author/
DROP VIEW IF EXISTS v_book/
DROP TRIGGER IF EXISTS t_triggers_trigger/
DROP TABLE IF EXISTS t_triggers/
DROP TABLE IF EXISTS t_book_to_book_store/
DROP TABLE IF EXISTS t_book_store/
@ -35,10 +37,11 @@ DROP FUNCTION IF EXISTS f_number/
DROP FUNCTION IF EXISTS f317/
CREATE TABLE t_triggers (
id int not null AUTO_INCREMENT,
id_generated int not null AUTO_INCREMENT,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
) ENGINE = InnoDB
/
@ -47,9 +50,12 @@ BEFORE INSERT
ON t_triggers
FOR EACH ROW
BEGIN
DECLARE new_counter INT;
select ifnull(max(counter), 0) + 2 into new_counter from t_triggers;
SET NEW.counter = new_counter;
DECLARE new_id INT;
SELECT IFNULL(MAX(id_generated), 0) + 1 INTO new_id FROM t_triggers;
SET NEW.id = new_id;
SET NEW.counter = new_id * 2;
END;
/

View File

@ -15,7 +15,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
// IDENTITY definitions
public static final org.jooq.Identity<org.jooq.test.mysql.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_t_book_store = createIdentity(org.jooq.test.mysql.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.mysql.generatedclasses.tables.TBookStore.ID);
public static final org.jooq.Identity<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.mysql.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.Identity<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.mysql.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID_GENERATED);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.T_639NumbersTableRecord> KEY_t_639_numbers_table_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.T_639NumbersTable.T_639_NUMBERS_TABLE, org.jooq.test.mysql.generatedclasses.tables.T_639NumbersTable.ID);
@ -25,7 +25,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.TBookStoreRecord> KEY_t_book_store_uk_t_book_store_name = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.mysql.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.TBookStoreRecord> KEY_t_book_store_uk_t_book_store_id = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.mysql.generatedclasses.tables.TBookStore.ID);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.TBookToBookStoreRecord> KEY_t_book_to_book_store_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.mysql.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.mysql.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord> KEY_t_triggers_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord> KEY_t_triggers_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.XTestCase_64_69Record> KEY_x_test_case_64_69_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.mysql.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.XTestCase_71Record> KEY_x_test_case_71_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.mysql.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.mysql.generatedclasses.tables.records.XTestCase_85Record> KEY_x_test_case_85_PRIMARY = createUniqueKey(org.jooq.test.mysql.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.mysql.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.mysql.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1197587687;
private static final long serialVersionUID = 755517789;
/**
* The singleton instance of t_triggers
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.my
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.mysql.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.mysql.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -235249727;
private static final long serialVersionUID = 1935220531;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.mysql.generatedclasses.tables.TTriggers.ID);

View File

@ -15,7 +15,7 @@ INSERT INTO t_language (id, cd, description, description_english) VALUES (1, 'en
INSERT INTO t_language (id, cd, description, description_english) VALUES (2, 'de', 'Deutsch', 'German')/
INSERT INTO t_language (id, cd, description, description_english) VALUES (3, 'fr', 'Français', 'French')/
INSERT INTO t_language (id, cd, description, description_english) VALUES (4, 'pt', null, null)/
/
INSERT INTO t_658_11 VALUES ('A'), ('B'), ('C')/
INSERT INTO t_658_21 VALUES (1), (2), (3)/
@ -25,25 +25,18 @@ INSERT INTO t_658_22 VALUES (1, 1), (2, 2), (3, 3)/
INSERT INTO t_658_32 VALUES (1, 1), (2, 2), (3, 3)/
INSERT INTO t_658_ref VALUES ('A', 1, 1, 'B', 2, 2)/
INSERT INTO t_author VALUES (1, 'George', 'Orwell', '1903-06-25', 1903, null);
/
INSERT INTO t_author VALUES (2, 'Paulo', 'Coelho', '1947-08-24', 1947, null);
/
INSERT INTO t_author VALUES (1, 'George', 'Orwell', '1903-06-25', 1903, null);/
INSERT INTO t_author VALUES (2, 'Paulo', 'Coelho', '1947-08-24', 1947, null);/
INSERT INTO t_book VALUES (1, 1, null, null, '1984', 1948, 1, 'To know and not to know, to be conscious of complete truthfulness while telling carefully constructed lies, to hold simultaneously two opinions which cancelled out, knowing them to be contradictory and believing in both of them, to use logic against logic, to repudiate morality while laying claim to it, to believe that democracy was impossible and that the Party was the guardian of democracy, to forget, whatever it was necessary to forget, then to draw it back into memory again at the moment when it was needed, and then promptly to forget it again, and above all, to apply the same process to the process itself -- that was the ultimate subtlety; consciously to induce unconsciousness, and then, once again, to become unconscious of the act of hypnosis you had just performed. Even to understand the word ''doublethink'' involved the use of doublethink..', null, 'ORDERED')
/
INSERT INTO t_book VALUES (2, 1, null, null, 'Animal Farm', 1945, 1, null, null, 'ON STOCK')
/
INSERT INTO t_book VALUES (3, 2, null, null, 'O Alquimista', 1988, 4, null, null, 'ON STOCK')
/
INSERT INTO t_book VALUES (4, 2, null, null, 'Brida', 1990, 2, null, null, 'SOLD OUT')
/
INSERT INTO t_book VALUES (1, 1, null, null, '1984', 1948, 1, 'To know and not to know, to be conscious of complete truthfulness while telling carefully constructed lies, to hold simultaneously two opinions which cancelled out, knowing them to be contradictory and believing in both of them, to use logic against logic, to repudiate morality while laying claim to it, to believe that democracy was impossible and that the Party was the guardian of democracy, to forget, whatever it was necessary to forget, then to draw it back into memory again at the moment when it was needed, and then promptly to forget it again, and above all, to apply the same process to the process itself -- that was the ultimate subtlety; consciously to induce unconsciousness, and then, once again, to become unconscious of the act of hypnosis you had just performed. Even to understand the word ''doublethink'' involved the use of doublethink..', null, 'ORDERED')/
INSERT INTO t_book VALUES (2, 1, null, null, 'Animal Farm', 1945, 1, null, null, 'ON STOCK')/
INSERT INTO t_book VALUES (3, 2, null, null, 'O Alquimista', 1988, 4, null, null, 'ON STOCK')/
INSERT INTO t_book VALUES (4, 2, null, null, 'Brida', 1990, 2, null, null, 'SOLD OUT')/
INSERT INTO t_book_store (name) VALUES
('Orell Füssli'),
('Ex Libris'),
('Buchhandlung im Volkshaus')
/
('Buchhandlung im Volkshaus')/
INSERT INTO t_book_to_book_store VALUES
('Orell Füssli', 1, 10),
@ -51,6 +44,5 @@ INSERT INTO t_book_to_book_store VALUES
('Orell Füssli', 3, 10),
('Ex Libris', 1, 1),
('Ex Libris', 3, 2),
('Buchhandlung im Volkshaus', 3, 1)
/
('Buchhandlung im Volkshaus', 3, 1)/

View File

@ -3,6 +3,7 @@ DROP VIEW v_author/
DROP VIEW v_book/
DROP VIEW v_incomplete/
DROP SEQUENCE s_triggers_sequence/
DROP TRIGGER t_triggers_trigger/
DROP TABLE t_triggers/
@ -94,11 +95,15 @@ CREATE TYPE u_address_type AS OBJECT (
)
/
CREATE SEQUENCE s_triggers_sequence
/
CREATE TABLE t_triggers (
id_generated number(7) not null,
id number(7) not null,
counter number(7) not null,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
@ -108,8 +113,12 @@ ON t_triggers
REFERENCING NEW AS new
FOR EACH ROW
BEGIN
select nvl(max(id), 0) + 1 into :new.id from t_triggers;
select nvl(max(counter), 0) + 2 into :new.counter from t_triggers;
select s_triggers_sequence.nextval
into :new.id_generated
from dual;
:new.id := :new.id_generated;
:new.counter := :new.id_generated * 2;
END t_triggers_trigger;
/

View File

@ -22,7 +22,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.TBookStoreRecord> UK_T_BOOK_STORE_NAME = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.oracle.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.TBookToBookStoreRecord> PK_B2BS = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.oracle.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.oracle.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.TDirectoryRecord> PK_T_DIRECTORY = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.TDirectory.T_DIRECTORY, org.jooq.test.oracle.generatedclasses.tables.TDirectory.ID);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord> PK_T_TRIGGERS = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.T_639NumbersTableRecord> PK_T_639_NUMBERS_TABLE = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.T_639NumbersTable.T_639_NUMBERS_TABLE, org.jooq.test.oracle.generatedclasses.tables.T_639NumbersTable.ID);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.T_725LobTestRecord> PK_T_725_LOB_TEST = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.T_725LobTest.T_725_LOB_TEST, org.jooq.test.oracle.generatedclasses.tables.T_725LobTest.ID);
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.tables.records.XTestCase_64_69Record> PK_X_TEST_CASE_64_69 = createUniqueKey(org.jooq.test.oracle.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.oracle.generatedclasses.tables.XTestCase_64_69.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.oracle.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 157980472;
private static final long serialVersionUID = 1085408850;
/**
* The singleton instance of T_TRIGGERS
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.or
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID_GENERATED", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("ID", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**

View File

@ -10,21 +10,35 @@ package org.jooq.test.oracle.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.oracle.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -713128001;
private static final long serialVersionUID = -57784889;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.oracle.generatedclasses.tables.TTriggers.ID);

View File

@ -79,10 +79,11 @@ CREATE TYPE u_address_type AS (
/
CREATE TABLE t_triggers (
id int not null,
id_generated serial4 not null,
id int,
counter int,
CONSTRAINT pk_t_triggers PRIMARY KEY (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
@ -90,10 +91,10 @@ CREATE FUNCTION p_triggers ()
RETURNS trigger
AS $$
BEGIN
select coalesce(max(id), 0) + 1 into new.id from t_triggers;
new.counter = new.id * 2;
return new;
new.id = new.id_generated;
new.counter = new.id_generated * 2;
return new;
END
$$ LANGUAGE plpgsql;
/

View File

@ -15,6 +15,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
// IDENTITY definitions
public static final org.jooq.Identity<org.jooq.test.postgres.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_t_book_store = createIdentity(org.jooq.test.postgres.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.postgres.generatedclasses.tables.TBookStore.ID);
public static final org.jooq.Identity<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.postgres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID_GENERATED);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.T_639NumbersTableRecord> pk_t_639_numbers_table = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.T_639NumbersTable.T_639_NUMBERS_TABLE, org.jooq.test.postgres.generatedclasses.tables.T_639NumbersTable.ID);
@ -24,7 +25,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TBookRecord> pk_t_book = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.postgres.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TBookStoreRecord> uk_t_book_store_name = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.postgres.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TBookToBookStoreRecord> pk_b2bs = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.postgres.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.postgres.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.XTestCase_64_69Record> pk_x_test_case_64_69 = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.postgres.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.XTestCase_71Record> pk_x_test_case_71 = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.postgres.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.XTestCase_85Record> pk_x_test_case_85 = createUniqueKey(org.jooq.test.postgres.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.postgres.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.postgres.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 605844723;
private static final long serialVersionUID = 620174928;
/**
* The singleton instance of t_triggers
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.po
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
@ -49,6 +54,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.po
super("t_triggers", org.jooq.test.postgres.generatedclasses.Public.PUBLIC);
}
@Override
public org.jooq.Identity<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> getIdentity() {
return org.jooq.test.postgres.generatedclasses.Keys.IDENTITY_t_triggers;
}
@Override
public org.jooq.UniqueKey<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord> getMainKey() {
return org.jooq.test.postgres.generatedclasses.Keys.pk_t_triggers;

View File

@ -10,21 +10,35 @@ package org.jooq.test.postgres.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.postgres.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1239061772;
private static final long serialVersionUID = 169903866;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.postgres.generatedclasses.tables.TTriggers.ID);

View File

@ -26,7 +26,8 @@ DROP TABLE IF EXISTS t_725_lob_test/
DROP TABLE IF EXISTS t_785/
CREATE TABLE t_triggers (
id integer primary key autoincrement,
id_generated integer primary key autoincrement,
id int,
counter int
)
/
@ -37,7 +38,8 @@ ON t_triggers
FOR EACH ROW
BEGIN
update t_triggers
set counter = id * 2;
set id = id_generated,
counter = id_generated * 2;
END;
/

View File

@ -14,7 +14,7 @@ package org.jooq.test.sqlite.generatedclasses;
public class Keys extends org.jooq.impl.AbstractKeys {
// IDENTITY definitions
public static final org.jooq.Identity<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.Identity<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> IDENTITY_t_triggers = createIdentity(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID_GENERATED);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.T_639NumbersTableRecord> pk_t_639_numbers_table_ID = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.T_639NumbersTable.T_639_NUMBERS_TABLE, org.jooq.test.sqlite.generatedclasses.tables.T_639NumbersTable.ID);
@ -24,7 +24,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TBookStoreRecord> pk_t_book_store_name = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.sqlite.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TBookToBookStoreRecord> pk_t_book_to_book_store_book_store_name = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.sqlite.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TBookToBookStoreRecord> pk_t_book_to_book_store_book_id = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.sqlite.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers_id = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers_id_generated = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.XTestCase_64_69Record> pk_x_test_case_64_69_ID = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.sqlite.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.XTestCase_71Record> pk_x_test_case_71_ID = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.sqlite.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.XTestCase_85Record> pk_x_test_case_85_id = createUniqueKey(org.jooq.test.sqlite.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.sqlite.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.sqlite.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -907994199;
private static final long serialVersionUID = -2071516285;
/**
* The singleton instance of t_triggers
@ -35,6 +35,11 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sq
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
* An uncommented item
*/
public static final org.jooq.TableField<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID = new org.jooq.impl.TableFieldImpl<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);
/**
@ -56,12 +61,12 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sq
@Override
public org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord> getMainKey() {
return org.jooq.test.sqlite.generatedclasses.Keys.pk_t_triggers_id;
return org.jooq.test.sqlite.generatedclasses.Keys.pk_t_triggers_id_generated;
}
@Override
@SuppressWarnings("unchecked")
public java.util.List<org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord>> getKeys() {
return java.util.Arrays.<org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord>>asList(org.jooq.test.sqlite.generatedclasses.Keys.pk_t_triggers_id);
return java.util.Arrays.<org.jooq.UniqueKey<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord>>asList(org.jooq.test.sqlite.generatedclasses.Keys.pk_t_triggers_id_generated);
}
}

View File

@ -10,21 +10,35 @@ package org.jooq.test.sqlite.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.sqlite.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 292136915;
private static final long serialVersionUID = -1515326657;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID_GENERATED, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID_GENERATED);
}
/**
* An uncommented item
*/
public void setId(java.lang.Integer value) {
setValue(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID, value);
}
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getId() {
return getValue(org.jooq.test.sqlite.generatedclasses.tables.TTriggers.ID);

View File

@ -64,7 +64,7 @@ CREATE TABLE t_triggers (
id int,
counter int,
CONSTRAINT pk_t_triggers UNIQUE (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/

View File

@ -24,7 +24,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.TBookRecord> pk_t_book = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.sqlserver.generatedclasses.tables.TBook.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.TBookStoreRecord> uk_t_book_store_name = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.sqlserver.generatedclasses.tables.TBookStore.NAME);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.TBookToBookStoreRecord> pk_b2bs = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.TBookToBookStore.T_BOOK_TO_BOOK_STORE, org.jooq.test.sqlserver.generatedclasses.tables.TBookToBookStore.BOOK_STORE_NAME, org.jooq.test.sqlserver.generatedclasses.tables.TBookToBookStore.BOOK_ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord> pk_t_triggers = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.XTestCase_64_69Record> pk_x_test_case_64_69 = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_64_69.X_TEST_CASE_64_69, org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_64_69.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.XTestCase_71Record> pk_x_test_case_71 = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_71.X_TEST_CASE_71, org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_71.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sqlserver.generatedclasses.tables.records.XTestCase_85Record> pk_x_test_case_85 = createUniqueKey(org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_85.X_TEST_CASE_85, org.jooq.test.sqlserver.generatedclasses.tables.XTestCase_85.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.sqlserver.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1329404027;
private static final long serialVersionUID = -146834588;
/**
* The singleton instance of t_triggers
@ -32,6 +32,8 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sq
/**
* An uncommented item
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);

View File

@ -10,10 +10,12 @@ package org.jooq.test.sqlserver.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.sqlserver.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1935921255;
private static final long serialVersionUID = 1595105233;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.ID_GENERATED, value);
@ -21,6 +23,8 @@ public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.sqlserver.generatedclasses.tables.TTriggers.ID_GENERATED);

View File

@ -41,20 +41,10 @@ CREATE TABLE t_triggers (
id int null,
counter int null,
CONSTRAINT pk_t_triggers UNIQUE (ID)
CONSTRAINT pk_t_triggers PRIMARY KEY (id_generated)
)
/
CREATE OR REPLACE TRIGGER t_triggers_reset
BEFORE INSERT
ON t_triggers
REFERENCING NEW AS n
FOR EACH ROW
BEGIN
set n.id = 0;
END
/
CREATE TRIGGER t_triggers_trigger
AFTER INSERT
ON t_triggers

View File

@ -18,7 +18,7 @@ public class Keys extends org.jooq.impl.AbstractKeys {
public static final org.jooq.Identity<org.jooq.test.sybase.generatedclasses.tables.records.TBookStoreRecord, java.lang.Integer> IDENTITY_t_book_store = createIdentity(org.jooq.test.sybase.generatedclasses.tables.TBookStore.T_BOOK_STORE, org.jooq.test.sybase.generatedclasses.tables.TBookStore.ID);
// UNIQUE and PRIMARY KEY definitions
public static final org.jooq.UniqueKey<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord> t_triggers_pk_t_triggers = createUniqueKey(org.jooq.test.sybase.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sybase.generatedclasses.tables.TTriggers.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord> t_triggers_pk_t_triggers = createUniqueKey(org.jooq.test.sybase.generatedclasses.tables.TTriggers.T_TRIGGERS, org.jooq.test.sybase.generatedclasses.tables.TTriggers.ID_GENERATED);
public static final org.jooq.UniqueKey<org.jooq.test.sybase.generatedclasses.tables.records.T_725LobTestRecord> t_725_lob_test_pk_t_725_lob_test = createUniqueKey(org.jooq.test.sybase.generatedclasses.tables.T_725LobTest.T_725_LOB_TEST, org.jooq.test.sybase.generatedclasses.tables.T_725LobTest.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sybase.generatedclasses.tables.records.TAuthorRecord> t_author_pk_t_author = createUniqueKey(org.jooq.test.sybase.generatedclasses.tables.TAuthor.T_AUTHOR, org.jooq.test.sybase.generatedclasses.tables.TAuthor.ID);
public static final org.jooq.UniqueKey<org.jooq.test.sybase.generatedclasses.tables.records.TBookRecord> t_book_pk_t_book = createUniqueKey(org.jooq.test.sybase.generatedclasses.tables.TBook.T_BOOK, org.jooq.test.sybase.generatedclasses.tables.TBook.ID);

View File

@ -10,7 +10,7 @@ package org.jooq.test.sybase.generatedclasses.tables;
comments = "This class is generated by jOOQ")
public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = -1087053605;
private static final long serialVersionUID = 1342002436;
/**
* The singleton instance of t_triggers
@ -32,6 +32,8 @@ public class TTriggers extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.sy
/**
* An uncommented item
*
* PRIMARY KEY
*/
public static final org.jooq.TableField<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer> ID_GENERATED = new org.jooq.impl.TableFieldImpl<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord, java.lang.Integer>("id_generated", org.jooq.impl.SQLDataType.INTEGER, T_TRIGGERS);

View File

@ -10,10 +10,12 @@ package org.jooq.test.sybase.generatedclasses.tables.records;
comments = "This class is generated by jOOQ")
public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.sybase.generatedclasses.tables.records.TTriggersRecord> {
private static final long serialVersionUID = 1230083887;
private static final long serialVersionUID = 1536247563;
/**
* An uncommented item
*
* PRIMARY KEY
*/
public void setIdGenerated(java.lang.Integer value) {
setValue(org.jooq.test.sybase.generatedclasses.tables.TTriggers.ID_GENERATED, value);
@ -21,6 +23,8 @@ public class TTriggersRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.
/**
* An uncommented item
*
* PRIMARY KEY
*/
public java.lang.Integer getIdGenerated() {
return getValue(org.jooq.test.sybase.generatedclasses.tables.TTriggers.ID_GENERATED);

View File

@ -163,6 +163,63 @@ public interface InsertQuery<R extends TableRecord<R>> extends StoreQuery<R>, In
* must assure transactional integrity between the two statements.</li>
* <li>Ingres support will be added with #808</li>
* </ul>
*
* @deprecated - 1.6.6 [#826] - Use {@link #getReturnedRecord()} instead
*/
@Deprecated
R getReturned();
/**
* The record holding returned values as specified by any of the
* {@link #setReturning()} methods.
* <p>
* If the insert statement returns several records, this is the same as
* calling <code>getReturnedRecords().get(0)</code>
* <p>
* This implemented differently for every dialect:
* <ul>
* <li>Postgres has native support for <code>INSERT .. RETURNING</code>
* clauses</li>
* <li>HSQLDB, Oracle, and DB2 JDBC drivers allow for retrieving any table
* column as "generated key" in one statement</li>
* <li>Derby, H2, MySQL, SQL Server only allow for retrieving IDENTITY
* column values as "generated key". If other fields are requested, a second
* statement is issued. Client code must assure transactional integrity
* between the two statements.</li>
* <li>Sybase and SQLite allow for retrieving IDENTITY values as
* <code>@@identity</code> or <code>last_inserted_rowid()</code> values.
* Those values are fetched in a separate <code>SELECT</code> statement. If
* other fields are requested, a second statement is issued. Client code
* must assure transactional integrity between the two statements.</li>
* <li>Ingres support will be added with #808</li>
* </ul>
*
* @see #getReturnedRecords()
*/
R getReturnedRecord();
/**
* The records holding returned values as specified by any of the
* {@link #setReturning()} methods.
* <p>
* This implemented differently for every dialect:
* <ul>
* <li>Postgres has native support for <code>INSERT .. RETURNING</code>
* clauses</li>
* <li>HSQLDB, Oracle, and DB2 JDBC drivers allow for retrieving any table
* column as "generated key" in one statement</li>
* <li>Derby, H2, MySQL, SQL Server only allow for retrieving IDENTITY
* column values as "generated key". If other fields are requested, a second
* statement is issued. Client code must assure transactional integrity
* between the two statements.</li>
* <li>Sybase and SQLite allow for retrieving IDENTITY values as
* <code>@@identity</code> or <code>last_inserted_rowid()</code> values.
* Those values are fetched in a separate <code>SELECT</code> statement. If
* other fields are requested, a second statement is issued. Client code
* must assure transactional integrity between the two statements.</li>
* <li>Ingres support will be added with #808</li>
* </ul>
*/
Result<R> getReturnedRecords();
}

View File

@ -71,6 +71,12 @@ import java.sql.SQLException;
*/
public interface InsertResultStep extends Insert {
/**
* The result holding returned values as specified by the
* {@link InsertReturningStep}
*/
Result<?> fetch() throws SQLException;
/**
* The record holding returned values as specified by the
* {@link InsertReturningStep}

View File

@ -54,6 +54,7 @@ import org.jooq.InsertSetMoreStep;
import org.jooq.InsertSetStep;
import org.jooq.InsertValuesStep;
import org.jooq.RenderContext;
import org.jooq.Result;
import org.jooq.Table;
import org.jooq.TableRecord;
import org.jooq.exception.DetachedException;
@ -206,9 +207,15 @@ class InsertImpl<R extends TableRecord<R>> extends AbstractQueryPart implements
return this;
}
@Override
public final Result<?> fetch() throws SQLException {
delegate.execute();
return delegate.getReturnedRecords();
}
@Override
public final TableRecord<?> fetchOne() throws SQLException {
delegate.execute();
return delegate.getReturned();
return delegate.getReturnedRecord();
}
}

View File

@ -58,6 +58,7 @@ import org.jooq.Merge;
import org.jooq.QueryPart;
import org.jooq.Record;
import org.jooq.RenderContext;
import org.jooq.Result;
import org.jooq.SQLDialect;
import org.jooq.SQLDialectNotSupportedException;
import org.jooq.Table;
@ -75,7 +76,7 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
private final FieldMapForUpdate updateMap;
private final FieldMapsForInsert insertMaps;
private final FieldList returning;
private R returned;
private Result<R> returned;
private boolean onDuplicateKeyUpdate;
InsertQueryImpl(Configuration configuration, Table<R> into) {
@ -366,25 +367,31 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
// SQLite can select _rowid_ after the insert
case SQLITE: {
result = statement.executeUpdate();
returned = JooqUtil.newRecord(getInto(), configuration);
SQLiteFactory create = new SQLiteFactory(configuration.getConnection());
Field<Long> rowid = create.rowid();
Record record =
create.select(returning)
.from(getInto())
.where(rowid.equal(rowid.getDataType().convert(create.lastID())))
.fetchOne();
for (Record untyped : create
.select(returning)
.from(getInto())
.where(rowid.equal(rowid.getDataType().convert(create.lastID())))
.fetch()) {
for (Field<?> field : returning) {
setValue(record, field);
R typed = JooqUtil.newRecord(getInto(), configuration);
for (Field<?> field : returning) {
setValue(field, typed, untyped);
}
getReturnedRecords().add(typed);
}
return result;
}
// Sybase can select @@identity after the insert
// TODO [#832] Fix this. This might be a driver issue. JDBC
// Generated keys don't work with jconn3, but they seem to work
// with jTDS (which is used for Sybase ASE integration)
case SYBASE: {
result = statement.executeUpdate();
selectReturning(configuration, create(configuration).lastID());
@ -402,11 +409,18 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
result = statement.executeUpdate();
rs = statement.getGeneratedKeys();
if (rs.next()) {
selectReturning(configuration, rs.getObject(1));
}
try {
List<Object> list = new ArrayList<Object>();
while (rs.next()) {
list.add(rs.getObject(1));
}
return result;
selectReturning(configuration, list.toArray());
return result;
}
finally {
rs.close();
}
}
// Postgres can execute the INSERT .. RETURNING clause like
@ -430,7 +444,7 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
}
CursorImpl<R> cursor = new CursorImpl<R>(configuration, returning, rs, statement, getInto().getRecordType());
returned = cursor.fetchOne();
returned = cursor.fetchResult();
return result;
}
}
@ -440,33 +454,42 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
* arbitrary fields from JDBC's {@link Statement#getGeneratedKeys()} method.
*/
@SuppressWarnings("unchecked")
private void selectReturning(Configuration configuration, Object o) throws SQLException {
private final void selectReturning(Configuration configuration, Object... values) throws SQLException {
if (getInto() instanceof UpdatableTable) {
UpdatableTable<R> updatable = (UpdatableTable<R>) getInto();
// This shouldn't be null, as relevant dialects should
// return empty generated keys ResultSet
if (updatable.getIdentity() != null) {
Field<Number> id = (Field<Number>) updatable.getIdentity().getField();
Number value = id.getDataType().convert(o);
returned = JooqUtil.newRecord(updatable, configuration);
Field<Number> field = (Field<Number>) updatable.getIdentity().getField();
Number[] ids = new Number[values.length];
for (int i = 0; i < values.length; i++) {
ids[i] = field.getDataType().convert(values[i]);
}
// Only the IDENTITY value was requested. No need for an
// additional query
if (returning.size() == 1 && returning.get(0).equals(id)) {
((AbstractRecord) returned).setValue(id, new Value<Number>(value));
if (returning.size() == 1 && returning.get(0).equals(field)) {
for (Number id : ids) {
R typed = JooqUtil.newRecord(getInto(), configuration);
((AbstractRecord) typed).setValue(field, new Value<Number>(id));
getReturnedRecords().add(typed);
}
}
// Other values are requested, too. Run another query
else {
Record record =
create(configuration).select(returning)
.from(updatable)
.where(id.equal(value))
.fetchOne();
for (Record untyped : create(configuration).select(returning)
.from(updatable)
.where(field.in(ids))
.fetch()) {
for (Field<?> field : returning) {
setValue(record, field);
R typed = JooqUtil.newRecord(getInto(), configuration);
for (Field<?> f : returning) {
setValue(f, typed, untyped);
}
getReturnedRecords().add(typed);
}
}
}
@ -474,10 +497,10 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
}
/**
* Generic type-safe utility method
* Generic typesafety
*/
private final <T> void setValue(Record record, Field<T> field) {
((AbstractRecord) returned).setValue(field, new Value<T>(record.getValue(field)));
private <T> void setValue(Field<T> field, R typed, Record untyped) {
typed.setValue(field, untyped.getValue(field));
}
@Override
@ -504,7 +527,27 @@ class InsertQueryImpl<R extends TableRecord<R>> extends AbstractStoreQuery<R> im
}
@Override
@Deprecated
public final R getReturned() {
return getReturnedRecord();
}
@Override
public final R getReturnedRecord() {
if (getReturnedRecords().size() == 0) {
return null;
}
return getReturnedRecords().get(0);
}
@SuppressWarnings("deprecation")
@Override
public final Result<R> getReturnedRecords() {
if (returned == null) {
returned = new ResultImpl<R>(getConfiguration(), returning);
}
return returned;
}
}

View File

@ -138,9 +138,9 @@ public class TableRecordImpl<R extends TableRecord<R>> extends TypeRecord<Table<
// If an insert was successful try fetching the generated IDENTITY value
if (!key.isEmpty() && result > 0) {
if (insert.getReturned() != null) {
if (insert.getReturnedRecord() != null) {
for (Field<?> field : key) {
setValue0(field, new Value<Object>(insert.getReturned().getValue(field)));
setValue0(field, new Value<Object>(insert.getReturnedRecord().getValue(field)));
}
}
}