System Information

generated by SchemaCrawler 16.18.2
generated on 2022-10-24 10:18:49
database version HSQL Database Engine 2.7.1
driver version HSQL Database Engine Driver 2.7.1

 

 

Tables

PUBLIC.BOOKS.AUTHORS [table]
Contact details for book authors
ID INTEGER NOT NULL
FIRSTNAME VARCHAR(20) NOT NULL
LASTNAME VARCHAR(20) NOT NULL
ADDRESS1 VARCHAR(255)
ADDRESS2 VARCHAR(255)
CITY VARCHAR(50)
STATE CHARACTER(2)
POSTALCODE VARCHAR(10)
COUNTRY VARCHAR(50)
Primary Key
PK_AUTHORS [primary key]
ID
Foreign Keys
Z_FK_AUTHOR [foreign key, with no action]
ID ←(0..many) PUBLIC.BOOKS.BOOKAUTHORS.AUTHORID
Indexes
PK_AUTHORS [unique index]
ID ascending
IDX_B_AUTHORS [non-unique index]
LASTNAME ascending
FIRSTNAME ascending
IDX_A_AUTHORS [non-unique index]
CITY ascending
STATE ascending
POSTALCODE ascending
COUNTRY ascending
Triggers
TRG_AUTHORS [trigger, after delete, per row]
UPDATE BOOKS.PUBLISHERS SET PUBLISHER='Jacob'WHERE PUBLISHER='John'
Table Constraints
CHECK_UPPERCASE_STATE [check constraint]
STATE
BOOKS.AUTHORS.STATE=UPPER(BOOKS.AUTHORS.STATE)
SYS_CT_10104 [check constraint]
ID
BOOKS.AUTHORS.ID IS NOT NULL
SYS_CT_10105 [check constraint]
FIRSTNAME
BOOKS.AUTHORS.FIRSTNAME IS NOT NULL
SYS_CT_10106 [check constraint]
LASTNAME
BOOKS.AUTHORS.LASTNAME IS NOT NULL

 

PUBLIC.BOOKS.AUTHORSLIST [view]
ID INTEGER
FIRSTNAME VARCHAR(20)
LASTNAME VARCHAR(20)
Definition
[definition]
SELECT ID,FIRSTNAME,LASTNAME FROM BOOKS.AUTHORS
Table Usage
PUBLIC.BOOKS.AUTHORS [table]

 

PUBLIC.BOOKS.BOOKAUTHORS [table]
Relationship between books and their authors, along with the latest updated information
BOOKID INTEGER NOT NULL
AUTHORID INTEGER NOT NULL
SOMEDATA VARCHAR(30)
Foreign Keys
Z_FK_AUTHOR [foreign key, with no action]
AUTHORID (0..many)→ PUBLIC.BOOKS.AUTHORS.ID
SYS_FK_10120 [foreign key, with no action]
BOOKID (0..many)→ PUBLIC.BOOKS.BOOKS.ID
Indexes
Z_FK_AUTHOR [non-unique index]
AUTHORID ascending
SYS_FK_10120 [non-unique index]
BOOKID ascending
UIDX_BOOKAUTHORS [unique index]
BOOKID ascending
AUTHORID ascending
Table Constraints
SYS_CT_10118 [check constraint]
BOOKID
BOOKS.BOOKAUTHORS.BOOKID IS NOT NULL
SYS_CT_10119 [check constraint]
AUTHORID
BOOKS.BOOKAUTHORS.AUTHORID IS NOT NULL

 

PUBLIC.BOOKS.BOOKS [table]
Details for published books
ID INTEGER NOT NULL
Unique (internal) id for book
TITLE VARCHAR(255) NOT NULL
Book title
DESCRIPTION VARCHAR(255)
Book description (Usually the blurb from the book jacket or promotional materials)
PUBLISHERID INTEGER NOT NULL
Foreign key to the book publisher
PUBLICATIONDATE DATE
Book publication date
PRICE DOUBLE(64, 0)
Current price for the book
PREVIOUSEDITIONID INTEGER
Primary Key
PK_BOOKS [primary key]
ID
Foreign Keys
FK_SALES_BOOK [foreign key, with no action]
ID ←(0..many) PUBLIC."PUBLISHER SALES".SALES.BOOKID
SYS_FK_10120 [foreign key, with no action]
ID ←(0..many) PUBLIC.BOOKS.BOOKAUTHORS.BOOKID
FK_PREVIOUSEDITION [foreign key, with no action]
ID ←(0..1) PREVIOUSEDITIONID
Indexes
PK_BOOKS [unique index]
ID ascending
U_PREVIOUSEDITION [unique index]
PREVIOUSEDITIONID ascending
FK_PREVIOUSEDITION [non-unique index]
PREVIOUSEDITIONID ascending
Table Constraints
U_PREVIOUSEDITION [unique constraint]
PREVIOUSEDITIONID
SYS_CT_10111 [check constraint]
ID
BOOKS.BOOKS.ID IS NOT NULL
SYS_CT_10112 [check constraint]
TITLE
BOOKS.BOOKS.TITLE IS NOT NULL
SYS_CT_10113 [check constraint]
PUBLISHERID
BOOKS.BOOKS.PUBLISHERID IS NOT NULL

 

PUBLIC.BOOKS.COUPONS [table]
ID INTEGER NOT NULL
DATA CLOB
COUPONS INTEGER ARRAY
BOOKS VARCHAR(20) ARRAY[10]
Primary Key
PK_COUPONS [primary key]
ID
Indexes
PK_COUPONS [unique index]
ID ascending
Table Constraints
SYS_CT_10093 [check constraint]
ID
BOOKS.COUPONS.ID IS NOT NULL

 

PUBLIC.BOOKS.CUSTOMERDATA [table]
ID INTEGER NOT NULL
DATA VALID_STRING(20)
Primary Key
PK_CUSTOMERDATA [primary key]
ID
Indexes
PK_CUSTOMERDATA [unique index]
ID ascending
Table Constraints
SYS_CT_10102 [check constraint]
ID
BOOKS.CUSTOMERDATA.ID IS NOT NULL

 

PUBLIC.BOOKS.CUSTOMERS [table]
ID INTEGER NOT NULL
FIRSTNAME NAME_TYPE NOT NULL
LASTNAME NAME_TYPE NOT NULL
AGE AGE_TYPE
Primary Key
PK_CUSTOMERS [primary key]
ID
Indexes
PK_CUSTOMERS [unique index]
ID ascending
Table Constraints
SYS_CT_10095 [check constraint]
ID
BOOKS.CUSTOMERS.ID IS NOT NULL
SYS_CT_10096 [check constraint]
FIRSTNAME
BOOKS.CUSTOMERS.FIRSTNAME IS NOT NULL
SYS_CT_10097 [check constraint]
LASTNAME
BOOKS.CUSTOMERS.LASTNAME IS NOT NULL

 

PUBLIC.BOOKS."Global Counts" [table]
"Global Count" INTEGER
"UPDATE" VARCHAR(20)

 

PUBLIC.BOOKS.PUBLISHERS [table]
List of book publishers
ID INTEGER NOT NULL
auto-incremented
Unique (internal) id for book publisher
PUBLISHER VARCHAR(255)
Name of book publisher
Primary Key
SYS_PK_10126 [primary key]
ID
Foreign Keys
FK_ΒΙΒΛΊΑ_PUBLISHERS [foreign key, with no action]
ID ←(0..many) PUBLIC.BOOKS.ΒΙΒΛΊΑ.ΕΚΔΌΤΗΣ
Indexes
SYS_PK_10126 [unique index]
ID ascending

 

PUBLIC.BOOKS.ΒΙΒΛΊΑ [table]
ΜΟΝΑΔΙΚΌΣ SMALLINT NOT NULL
ΤΊΤΛΟΣ VARCHAR(255) NOT NULL
ΠΕΡΙΓΡΑΦΉ VARCHAR(255)
ΕΚΔΌΤΗΣ SMALLINT NOT NULL
Primary Key
PK_ΒΙΒΛΊΑ [primary key]
ΜΟΝΑΔΙΚΌΣ
Foreign Keys
FK_ΒΙΒΛΊΑ_PUBLISHERS [foreign key, with no action]
ΕΚΔΌΤΗΣ (0..many)→ PUBLIC.BOOKS.PUBLISHERS.ID
Indexes
FK_ΒΙΒΛΊΑ_PUBLISHERS [non-unique index]
ΕΚΔΌΤΗΣ ascending
PK_ΒΙΒΛΊΑ [unique index]
ΜΟΝΑΔΙΚΌΣ ascending
Table Constraints
SYS_CT_10128 [check constraint]
ΜΟΝΑΔΙΚΌΣ
BOOKS.ΒΙΒΛΊΑ.ΜΟΝΑΔΙΚΌΣ IS NOT NULL
SYS_CT_10129 [check constraint]
ΤΊΤΛΟΣ
BOOKS.ΒΙΒΛΊΑ.ΤΊΤΛΟΣ IS NOT NULL
SYS_CT_10130 [check constraint]
ΕΚΔΌΤΗΣ
BOOKS.ΒΙΒΛΊΑ.ΕΚΔΌΤΗΣ IS NOT NULL

 

PUBLIC.FOR_LINT.EXTRA_PK [table]
Extra table with just a primary key
WRITERID BIGINT NOT NULL
PUBLICATIONID INTEGER NOT NULL
ID INTEGER NOT NULL
Primary Key
PK_EXTRA_PK [primary key]
ID
Foreign Keys
FK_PUBLICATION_JOIN [foreign key, with no action]
PUBLICATIONID (0..many)→ PUBLIC.FOR_LINT.PUBLICATIONS.ID
FK_WRITER_JOIN [foreign key, with no action]
WRITERID (0..many)→ PUBLIC.FOR_LINT.WRITERS.ID
Indexes
FK_WRITER_JOIN [non-unique index]
WRITERID ascending
PK_EXTRA_PK [unique index]
ID ascending
FK_PUBLICATION_JOIN [non-unique index]
PUBLICATIONID ascending
Table Constraints
SYS_CT_10177 [check constraint]
WRITERID
FOR_LINT.EXTRA_PK.WRITERID IS NOT NULL
SYS_CT_10178 [check constraint]
PUBLICATIONID
FOR_LINT.EXTRA_PK.PUBLICATIONID IS NOT NULL
SYS_CT_10179 [check constraint]
ID
FOR_LINT.EXTRA_PK.ID IS NOT NULL

 

PUBLIC.FOR_LINT."Global Counts" [table]
"Global Count" INTEGER

 

PUBLIC.FOR_LINT.PUBLICATIONS [table]
ID INTEGER NOT NULL
TITLE VARCHAR(255) NOT NULL
Publication title
DESCRIPTION VARCHAR(255)
WRITERID BIGINT NOT NULL
PUBLICATIONDATE DATE
PRICE DOUBLE(64, 0)
"UPDATE" CLOB
PRESS_RELEASE CLOB
Primary Key
PK_PUBLICATIONS [primary key]
ID
Foreign Keys
FK_PUBLICATION_JOIN [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.EXTRA_PK.PUBLICATIONID
FK_PUBLICATIONS_WRITER [foreign key, with no action]
WRITERID (0..many)→ PUBLIC.FOR_LINT.WRITERS.ID
FK_PUBLICATION [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.PUBLICATIONWRITERS.PUBLICATIONID
FK_WRITERS_PUBLICATION [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.WRITERS.PUBLICATION_ID
Indexes
FK_PUBLICATIONS_WRITER [non-unique index]
WRITERID ascending
PK_PUBLICATIONS [unique index]
ID ascending
Table Constraints
SYS_CT_10162 [check constraint]
ID
FOR_LINT.PUBLICATIONS.ID IS NOT NULL
SYS_CT_10163 [check constraint]
TITLE
FOR_LINT.PUBLICATIONS.TITLE IS NOT NULL
SYS_CT_10164 [check constraint]
WRITERID
FOR_LINT.PUBLICATIONS.WRITERID IS NOT NULL

 

PUBLIC.FOR_LINT.PUBLICATIONWRITERS [table]
PUBLICATIONID INTEGER NOT NULL
WRITERID BIGINT NOT NULL
Foreign Keys
FK_PUBLICATION [foreign key, with no action]
PUBLICATIONID (0..many)→ PUBLIC.FOR_LINT.PUBLICATIONS.ID
FK_WRITER [foreign key, with no action]
WRITERID (0..many)→ PUBLIC.FOR_LINT.WRITERS.ID
Indexes
FK_WRITER [non-unique index]
WRITERID ascending
FK_PUBLICATION [non-unique index]
PUBLICATIONID ascending
Table Constraints
SYS_CT_10169 [check constraint]
PUBLICATIONID
FOR_LINT.PUBLICATIONWRITERS.PUBLICATIONID IS NOT NULL
SYS_CT_10170 [check constraint]
WRITERID
FOR_LINT.PUBLICATIONWRITERS.WRITERID IS NOT NULL

 

PUBLIC.FOR_LINT.SELFREFERENCE [table]
ID INTEGER NOT NULL
TITLE VARCHAR(255) NOT NULL
Primary Key
PK_SELFREFERENCE [primary key]
ID
Foreign Keys
FK_SELFREFERENCE [foreign key, with no action]
ID ←(0..1) ID
Indexes
PK_SELFREFERENCE [unique index]
ID ascending
FK_SELFREFERENCE [non-unique index]
ID ascending
Table Constraints
SYS_CT_10185 [check constraint]
ID
FOR_LINT.SELFREFERENCE.ID IS NOT NULL
SYS_CT_10186 [check constraint]
TITLE
FOR_LINT.SELFREFERENCE.TITLE IS NOT NULL

 

PUBLIC.FOR_LINT.WRITERS [table]
ID BIGINT NOT NULL
FIRSTNAME VARCHAR(20) NOT NULL
LASTNAME VARCHAR(20) NOT NULL
ADDRESS1 VARCHAR(255)
ADDRESS2 VARCHAR(255) NOT NULL
CITY VARCHAR(50)
STATE VARCHAR(2)
POSTALCODE VARCHAR(10)
COUNTRY VARCHAR(50)
PHONE1 VARCHAR(10)
PHONE2 VARCHAR(15)
EMAIL1 VARCHAR(10)
EMAIL2 INTEGER
FAX VARCHAR(10)
FAX3 INTEGER
HOMEEMAIL11 VARCHAR(10)
HOMEEMAIL12 VARCHAR(10)
PUBLICATION_ID BIGINT NOT NULL
Primary Key
PK_WRITERS [primary key]
ID
Foreign Keys
FK_WRITER_JOIN [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.EXTRA_PK.WRITERID
FK_PUBLICATIONS_WRITER [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.PUBLICATIONS.WRITERID
FK_WRITER [foreign key, with no action]
ID ←(0..many) PUBLIC.FOR_LINT.PUBLICATIONWRITERS.WRITERID
FK_WRITERS_PUBLICATION [foreign key, with no action]
PUBLICATION_ID (0..many)→ PUBLIC.FOR_LINT.PUBLICATIONS.ID
Indexes
PK_WRITERS [unique index]
ID ascending
FK_WRITERS_PUBLICATION [non-unique index]
PUBLICATION_ID ascending
IDX_A1_WRITERS [non-unique index]
CITY ascending
STATE ascending
IDX_U_WRITERS [unique index]
EMAIL1 ascending
COUNTRY ascending
IDX_B_WRITERS [non-unique index]
LASTNAME ascending
FIRSTNAME ascending
IDX_A_WRITERS [non-unique index]
CITY ascending
STATE ascending
POSTALCODE ascending
COUNTRY ascending
Table Constraints
CHECK_UPPERCASE_STATE [check constraint]
STATE
FOR_LINT.WRITERS.STATE=UPPER(FOR_LINT.WRITERS.STATE)
SYS_CT_10151 [check constraint]
ID
FOR_LINT.WRITERS.ID IS NOT NULL
SYS_CT_10152 [check constraint]
FIRSTNAME
FOR_LINT.WRITERS.FIRSTNAME IS NOT NULL
SYS_CT_10153 [check constraint]
LASTNAME
FOR_LINT.WRITERS.LASTNAME IS NOT NULL
SYS_CT_10154 [check constraint]
ADDRESS2
FOR_LINT.WRITERS.ADDRESS2 IS NOT NULL
SYS_CT_10155 [check constraint]
PUBLICATION_ID
FOR_LINT.WRITERS.PUBLICATION_ID IS NOT NULL

 

PUBLIC."PUBLISHER SALES".REGIONS [table]
CITY VARCHAR(50) NOT NULL
STATE VARCHAR(2) NOT NULL
POSTALCODE VARCHAR(10) NOT NULL
COUNTRY VARCHAR(50) NOT NULL
Primary Key
PK_CUSTOMERS [primary key]
POSTALCODE
COUNTRY
Foreign Keys
FK_SALES_REGIONS [foreign key, with no action]
POSTALCODE ←(0..many) PUBLIC."PUBLISHER SALES".SALES.POSTALCODE
COUNTRY ←(0..many) PUBLIC."PUBLISHER SALES".SALES.COUNTRY
Indexes
PK_CUSTOMERS [unique index]
POSTALCODE ascending
COUNTRY ascending
Table Constraints
SYS_CT_10199 [check constraint]
CITY
"PUBLISHER SALES".REGIONS.CITY IS NOT NULL
SYS_CT_10200 [check constraint]
STATE
"PUBLISHER SALES".REGIONS.STATE IS NOT NULL
SYS_CT_10201 [check constraint]
POSTALCODE
"PUBLISHER SALES".REGIONS.POSTALCODE IS NOT NULL
SYS_CT_10202 [check constraint]
COUNTRY
"PUBLISHER SALES".REGIONS.COUNTRY IS NOT NULL

 

PUBLIC."PUBLISHER SALES".SALES [table]
POSTALCODE VARCHAR(10) NOT NULL
COUNTRY VARCHAR(50) NOT NULL
BOOKID INTEGER
COUPON_ID INTEGER
PERIODENDDATE DATE
TOTALAMOUNT DOUBLE(64, 0)
SALESDATAID INTEGER
Foreign Keys
FK_SALES_BOOK [foreign key, with no action]
BOOKID (0..many)→ PUBLIC.BOOKS.BOOKS.ID
FK_SALES_SALESDATA [foreign key, with no action]
SALESDATAID (0..many)→ PUBLIC."PUBLISHER SALES".SALESDATA.SALESDATAID
FK_SALES_REGIONS [foreign key, with no action]
POSTALCODE (0..many)→ PUBLIC."PUBLISHER SALES".REGIONS.POSTALCODE
COUNTRY (0..many)→ PUBLIC."PUBLISHER SALES".REGIONS.COUNTRY
Indexes
FK_SALES_BOOK [non-unique index]
BOOKID ascending
FK_SALES_SALESDATA [non-unique index]
SALESDATAID ascending
FK_SALES_REGIONS [non-unique index]
POSTALCODE ascending
COUNTRY ascending
Table Constraints
SYS_CT_10208 [check constraint]
POSTALCODE
"PUBLISHER SALES".SALES.POSTALCODE IS NOT NULL
SYS_CT_10209 [check constraint]
COUNTRY
"PUBLISHER SALES".SALES.COUNTRY IS NOT NULL

 

PUBLIC."PUBLISHER SALES".SALESDATA [table]
SALESDATAID INTEGER
YEARLYAMOUNT DOUBLE(64, 0)
Foreign Keys
FK_SALES_SALESDATA [foreign key, with no action]
SALESDATAID ←(0..many) PUBLIC."PUBLISHER SALES".SALES.SALESDATAID
Indexes
UQ_CUSTOMERS [unique index]
SALESDATAID ascending
Table Constraints
UQ_CUSTOMERS [unique constraint]
SALESDATAID

 

 

Routines

PUBLIC.BOOKS.NEW_PUBLISHER [procedure, no result]
PUBLISHER CHARACTER VARYING, out
[specific name]
NEW_PUBLISHER_FORCE_VALUE
Definition
[definition]
CREATE PROCEDURE BOOKS.NEW_PUBLISHER(OUT PUBLISHER VARCHAR(50)) SPECIFIC NEW_PUBLISHER_FORCE_VALUE LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL NEW SAVEPOINT LEVEL SET PUBLISHER = 'New Publisher'

 

PUBLIC.BOOKS.NEW_PUBLISHER [procedure, no result]
NEWPUBLISHER CHARACTER VARYING, in
PUBLISHER CHARACTER VARYING, out
[specific name]
NEW_PUBLISHER_10148
Definition
[definition]
CREATE PROCEDURE BOOKS.NEW_PUBLISHER(IN NEWPUBLISHER VARCHAR(50),OUT PUBLISHER VARCHAR(50)) SPECIFIC NEW_PUBLISHER_10148 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL NEW SAVEPOINT LEVEL SET PUBLISHER = NEWPUBLISHER

 

PUBLIC.BOOKS.CUSTOMADD [function, does not return a table]
ONE INTEGER, in
[specific name]
CUSTOMADD_10150
Definition
[definition]
CREATE FUNCTION BOOKS.CUSTOMADD(IN ONE INTEGER) RETURNS INTEGER SPECIFIC CUSTOMADD_10150 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL CALLED ON NULL INPUT RETURN BOOKS.CUSTOMADD(ONE,1)

 

PUBLIC.BOOKS.CUSTOMADD [function, does not return a table]
ONE INTEGER, in
TWO INTEGER, in
[specific name]
CUSTOMADD_10149
Definition
[definition]
CREATE FUNCTION BOOKS.CUSTOMADD(IN ONE INTEGER,IN TWO INTEGER) RETURNS INTEGER SPECIFIC CUSTOMADD_10149 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL CALLED ON NULL INPUT RETURN ONE+TWO

 

PUBLIC.SYSTEM_LOBS.ALLOC_BLOCKS [procedure, no result]
B_COUNT INTEGER, in
B_OFFSET INTEGER, in
L_ID BIGINT, in
[specific name]
ALLOC_BLOCKS_10071
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.ALLOC_BLOCKS(IN B_COUNT INTEGER,IN B_OFFSET INTEGER,IN L_ID BIGINT) SPECIFIC ALLOC_BLOCKS_10071 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE LOB_ADDR INT DEFAULT NULL;DECLARE REMAINING_COUNT INT DEFAULT 0;DECLARE BL_ADDR INT DEFAULT NULL;DECLARE TEMP_COUNT INT DEFAULT 0;DECLARE BL_OFFSET INT DEFAULT 0;SET REMAINING_COUNT=B_COUNT;SET BL_OFFSET=B_OFFSET;MAIN_LOOP:LOOP SET BL_ADDR=(SELECT BLOCK_ADDR FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_COUNT=REMAINING_COUNT AND TX_ID=0 FETCH 1 ROW ONLY);IF BL_ADDR IS NOT NULL THEN CALL CONVERT_BLOCK(BL_ADDR,REMAINING_COUNT,BL_OFFSET,L_ID);IF LOB_ADDR IS NULL THEN SET LOB_ADDR=BL_ADDR;END IF;LEAVE MAIN_LOOP;END IF;SET(BL_ADDR,TEMP_COUNT)=(SELECT BLOCK_ADDR,BLOCK_COUNT FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_COUNT<REMAINING_COUNT AND TX_ID=0 FETCH 1 ROW ONLY);IF BL_ADDR IS NOT NULL THEN CALL CONVERT_BLOCK(BL_ADDR,TEMP_COUNT,BL_OFFSET,L_ID);IF LOB_ADDR IS NULL THEN SET LOB_ADDR=BL_ADDR;END IF;SET REMAINING_COUNT=REMAINING_COUNT-TEMP_COUNT;SET BL_OFFSET=BL_OFFSET+TEMP_COUNT;SET BL_ADDR=NULL;SET TEMP_COUNT=0;ELSE CALL CREATE_EMPTY_BLOCK(BL_ADDR,REMAINING_COUNT);CALL CONVERT_BLOCK(BL_ADDR,REMAINING_COUNT,BL_OFFSET,L_ID);IF LOB_ADDR IS NULL THEN SET LOB_ADDR=BL_ADDR;END IF;LEAVE MAIN_LOOP;END IF;END LOOP MAIN_LOOP;END

 

PUBLIC.SYSTEM_LOBS.ALLOC_SINGLE_BLOCK [procedure, no result]
B_COUNT INTEGER, in
B_OFFSET INTEGER, in
L_ID BIGINT, in
[specific name]
ALLOC_SINGLE_BLOCK_10074
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.ALLOC_SINGLE_BLOCK(IN B_COUNT INTEGER,IN B_OFFSET INTEGER,IN L_ID BIGINT) SPECIFIC ALLOC_SINGLE_BLOCK_10074 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE BL_ADDR INT DEFAULT NULL;SET BL_ADDR=(SELECT BLOCK_ADDR FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_COUNT=B_COUNT AND TX_ID=0 FETCH 1 ROW ONLY);IF BL_ADDR IS NULL THEN CALL CREATE_EMPTY_BLOCK(BL_ADDR,B_COUNT);END IF;CALL CONVERT_BLOCK(BL_ADDR,B_COUNT,B_OFFSET,L_ID);END

 

PUBLIC.SYSTEM_LOBS.CONVERT_BLOCK [procedure, no result]
B_ADDR INTEGER, in
B_COUNT INTEGER, in
B_OFFSET INTEGER, in
L_ID BIGINT, in
[specific name]
CONVERT_BLOCK_10029
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.CONVERT_BLOCK(IN B_ADDR INTEGER,IN B_COUNT INTEGER,IN B_OFFSET INTEGER,IN L_ID BIGINT) SPECIFIC CONVERT_BLOCK_10029 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DELETE FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_ADDR=B_ADDR;INSERT INTO SYSTEM_LOBS.LOBS(BLOCK_ADDR,BLOCK_COUNT,BLOCK_OFFSET,LOB_ID) VALUES(B_ADDR,B_COUNT,B_OFFSET,L_ID);END

 

PUBLIC.SYSTEM_LOBS.CREATE_EMPTY_BLOCK [procedure, no result]
B_ADDR INTEGER, in/ out
B_COUNT INTEGER, in
[specific name]
CREATE_EMPTY_BLOCK_10063
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.CREATE_EMPTY_BLOCK(INOUT B_ADDR INTEGER,IN B_COUNT INTEGER) SPECIFIC CREATE_EMPTY_BLOCK_10063 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE TEMP_COUNT INT DEFAULT NULL;DECLARE TEMP_ADDR INT DEFAULT NULL;SET(TEMP_ADDR,TEMP_COUNT)=(SELECT BLOCK_ADDR,BLOCK_COUNT FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_COUNT>B_COUNT AND TX_ID=0 FETCH 1 ROW ONLY);IF TEMP_ADDR IS NULL THEN SIGNAL SQLSTATE'45000';END IF;UPDATE SYSTEM_LOBS.BLOCKS SET BLOCK_COUNT=B_COUNT WHERE BLOCK_ADDR=TEMP_ADDR;INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID) VALUES(TEMP_ADDR+B_COUNT,TEMP_COUNT-B_COUNT,0);SET B_ADDR=TEMP_ADDR;END

 

PUBLIC.SYSTEM_LOBS.DELETE_BLOCKS [procedure, no result]
L_ID BIGINT, in
B_OFFSET INTEGER, in
B_LIMIT INTEGER, in
TX_ID BIGINT, in
[specific name]
DELETE_BLOCKS_10060
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.DELETE_BLOCKS(IN L_ID BIGINT,IN B_OFFSET INTEGER,IN B_LIMIT INTEGER,IN TX_ID BIGINT) SPECIFIC DELETE_BLOCKS_10060 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID)(SELECT BLOCK_ADDR,BLOCK_COUNT,TX_ID FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID=L_ID AND BLOCK_OFFSET>=B_OFFSET AND BLOCK_OFFSET<B_LIMIT);DELETE FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID=L_ID AND BLOCK_OFFSET>=B_OFFSET AND BLOCK_OFFSET<B_LIMIT;END

 

PUBLIC.SYSTEM_LOBS.DELETE_LOB [procedure, no result]
L_ID BIGINT, in
TX_ID BIGINT, in
[specific name]
DELETE_LOB_10031
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.DELETE_LOB(IN L_ID BIGINT,IN TX_ID BIGINT) SPECIFIC DELETE_LOB_10031 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID)(SELECT BLOCK_ADDR,BLOCK_COUNT,TX_ID FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID=L_ID);DELETE FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID=L_ID;DELETE FROM SYSTEM_LOBS.PARTS WHERE LOB_ID=L_ID;DELETE FROM SYSTEM_LOBS.LOB_IDS WHERE LOB_IDS.LOB_ID=L_ID;END

 

PUBLIC.SYSTEM_LOBS.DELETE_UNUSED [procedure, no result]
L_IDS BIGINT ARRAY, in
[specific name]
DELETE_UNUSED_10046
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.DELETE_UNUSED(IN L_IDS BIGINT ARRAY) SPECIFIC DELETE_UNUSED_10046 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE TABLE LIVE_IDS(LIVE_ID INT);DECLARE TABLE TEMP_IDS(TEMP_ID INT);DECLARE TEMP_COUNT INT DEFAULT 1;WHILE TEMP_COUNT<=CARDINALITY(L_IDS)DO INSERT INTO LIVE_IDS(LIVE_ID) VALUES L_IDS[TEMP_COUNT];SET TEMP_COUNT=TEMP_COUNT+1;END WHILE;SET TEMP_COUNT=0;REPEAT INSERT INTO TEMP_IDS(TEMP_ID) SELECT LOB_IDS.LOB_ID FROM SYSTEM_LOBS.LOB_IDS WHERE LOB_USAGE_COUNT<1 AND LOB_IDS.LOB_ID NOT IN(SELECT LIVE_ID FROM LIVE_IDS)LIMIT 1000;INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID)(SELECT BLOCK_ADDR,BLOCK_COUNT,0 FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS));DELETE FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);DELETE FROM SYSTEM_LOBS.PARTS WHERE LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);DELETE FROM SYSTEM_LOBS.LOB_IDS WHERE LOB_IDS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);GET DIAGNOSTICS TEMP_COUNT=ROW_COUNT;DELETE FROM TEMP_IDS;UNTIL TEMP_COUNT<1000 END REPEAT;END

 

PUBLIC.SYSTEM_LOBS.DELETE_UNUSED_LOBS [procedure, no result]
LIMIT_ID BIGINT, in
TOTAL_COUNT INTEGER, out
[specific name]
DELETE_UNUSED_LOBS_10058
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.DELETE_UNUSED_LOBS(IN LIMIT_ID BIGINT,OUT TOTAL_COUNT INTEGER) SPECIFIC DELETE_UNUSED_LOBS_10058 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE TABLE TEMP_IDS(TEMP_ID INT);DECLARE TEMP_COUNT INT DEFAULT 0;DECLARE TOTAL INT DEFAULT 0;REPEAT INSERT INTO TEMP_IDS(TEMP_ID) SELECT LOB_IDS.LOB_ID FROM SYSTEM_LOBS.LOB_IDS WHERE LOB_USAGE_COUNT=0 AND LOB_IDS.LOB_ID<LIMIT_ID LIMIT 1000;INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID)(SELECT BLOCK_ADDR,BLOCK_COUNT,0 FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS));DELETE FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);DELETE FROM SYSTEM_LOBS.PARTS WHERE LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);DELETE FROM SYSTEM_LOBS.LOB_IDS WHERE LOB_IDS.LOB_ID IN(SELECT TEMP_ID FROM TEMP_IDS);GET DIAGNOSTICS TEMP_COUNT=ROW_COUNT;SET TOTAL=TOTAL+TEMP_COUNT;DELETE FROM TEMP_IDS;UNTIL TEMP_COUNT<1000 END REPEAT;SET TOTAL_COUNT=TOTAL;END

 

PUBLIC.SYSTEM_LOBS.DIVIDE_BLOCK [procedure, no result]
B_OFFSET INTEGER, in
L_ID BIGINT, in
[specific name]
DIVIDE_BLOCK_10066
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.DIVIDE_BLOCK(IN B_OFFSET INTEGER,IN L_ID BIGINT) SPECIFIC DIVIDE_BLOCK_10066 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE BL_ADDR INT DEFAULT NULL;DECLARE BL_COUNT INT DEFAULT NULL;DECLARE BL_OFFSET INT DEFAULT NULL;SET(BL_ADDR,BL_COUNT,BL_OFFSET)=(SELECT BLOCK_ADDR,BLOCK_COUNT,BLOCK_OFFSET FROM SYSTEM_LOBS.LOBS WHERE LOBS.LOB_ID=L_ID AND B_OFFSET>BLOCK_OFFSET AND B_OFFSET<BLOCK_OFFSET+BLOCK_COUNT);IF BL_ADDR IS NULL THEN SIGNAL SQLSTATE'45000';END IF;DELETE FROM SYSTEM_LOBS.LOBS WHERE BLOCK_ADDR=BL_ADDR;INSERT INTO SYSTEM_LOBS.LOBS(BLOCK_ADDR,BLOCK_COUNT,BLOCK_OFFSET,LOB_ID) VALUES(BL_ADDR,B_OFFSET-BL_OFFSET,BL_OFFSET,L_ID);INSERT INTO SYSTEM_LOBS.LOBS(BLOCK_ADDR,BLOCK_COUNT,BLOCK_OFFSET,LOB_ID) VALUES(BL_ADDR+B_OFFSET-BL_OFFSET,BL_OFFSET+BL_COUNT-B_OFFSET,B_OFFSET,L_ID);END

 

PUBLIC.SYSTEM_LOBS.MERGE_EMPTY_BLOCKS [procedure, no result]
[specific name]
MERGE_EMPTY_BLOCKS_10079
Definition
[definition]
CREATE PROCEDURE SYSTEM_LOBS.MERGE_EMPTY_BLOCKS() SPECIFIC MERGE_EMPTY_BLOCKS_10079 LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA NEW SAVEPOINT LEVEL BEGIN ATOMIC DECLARE BL_BASE_ADDR INT DEFAULT-1;DECLARE BL_BASE_COUNT INT;DECLARE BL_ADDR INT;DECLARE BL_COUNT INT;DECLARE BL_MERGE BOOLEAN;REPEAT SET BL_BASE_COUNT=NULL;SET(BL_BASE_ADDR,BL_BASE_COUNT)=(SELECT BLOCK_ADDR,BLOCK_COUNT FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_ADDR>BL_BASE_ADDR ORDER BY BLOCK_ADDR FETCH 1 ROW ONLY);IF BL_BASE_COUNT IS NOT NULL THEN SET BL_MERGE=FALSE;REPEAT SET BL_ADDR=NULL;SET(BL_ADDR,BL_COUNT)=(SELECT BLOCK_ADDR,BLOCK_COUNT FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_ADDR=BL_BASE_ADDR+BL_BASE_COUNT);IF BL_ADDR IS NOT NULL THEN SET BL_BASE_COUNT=BL_BASE_COUNT+BL_COUNT;SET BL_MERGE=TRUE;END IF;UNTIL BL_ADDR IS NULL END REPEAT;IF BL_MERGE THEN DELETE FROM SYSTEM_LOBS.BLOCKS WHERE BLOCK_ADDR>=BL_BASE_ADDR AND BLOCK_ADDR<BL_BASE_ADDR+BL_BASE_COUNT;INSERT INTO SYSTEM_LOBS.BLOCKS(BLOCK_ADDR,BLOCK_COUNT,TX_ID) VALUES BL_BASE_ADDR,BL_BASE_COUNT,0;END IF;END IF;UNTIL BL_BASE_COUNT IS NULL END REPEAT;END

 

 

Data Types

BIGINT [data type]
defined with no parameters
nullable
auto-incrementable
searchable except with where .. like

 

BINARY [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable

 

BIT [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable except with where .. like

 

BLOB [data type]
defined with LENGTH
nullable
not auto-incrementable
not searchable

 

BOOLEAN [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

CHARACTER [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable

 

CLOB [data type]
defined with LENGTH
nullable
not auto-incrementable
not searchable

 

DATE [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

DECIMAL [data type]
defined with PRECISION,SCALE
nullable
auto-incrementable
searchable except with where .. like

 

DOUBLE [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

FLOAT [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

INTEGER [data type]
defined with no parameters
nullable
auto-incrementable
searchable except with where .. like

 

NUMERIC [data type]
defined with PRECISION,SCALE
nullable
auto-incrementable
searchable except with where .. like

 

NVARCHAR [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable

 

OTHER [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

REAL [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

SMALLINT [data type]
defined with no parameters
nullable
auto-incrementable
searchable except with where .. like

 

TIME [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

TIMESTAMP [data type]
defined with no parameters
nullable
not auto-incrementable
searchable except with where .. like

 

TINYINT [data type]
defined with no parameters
nullable
auto-incrementable
searchable except with where .. like

 

UUID [data type]
defined with no parameters
nullable
not auto-incrementable
searchable

 

VARBINARY [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable

 

VARCHAR [data type]
defined with LENGTH
nullable
not auto-incrementable
searchable

 

PUBLIC.BOOKS.AGE_TYPE [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on SMALLINT

 

PUBLIC.BOOKS."CHARACTER VARYING" [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

PUBLIC.BOOKS."INTEGER ARRAY" [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

PUBLIC.BOOKS.NAME_TYPE [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

PUBLIC.BOOKS.VALID_STRING [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

PUBLIC.BOOKS."VARCHAR(20) ARRAY[10]" [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

PUBLIC.SYSTEM_LOBS."BIGINT ARRAY" [user defined data type]
defined with no parameters
not nullable
not auto-incrementable
not searchable
based on

 

 

System Information

Database Information

database product name HSQL Database Engine
database product version 2.7.1
database user name SA

 

JDBC Driver Information

connection url jdbc:hsqldb:hsql://0.0.0.0:62948/schemacrawler62948
driver name HSQL Database Engine Driver
driver version 2.7.1