Dropping FK on GTT crashes server
---------------------------------
Key: CORE-4212
URL: http://tracker.firebirdsql.org/browse/CORE-4212
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 2.5.3
Reporter: Andrei Kireev
Priority: Blocker
Here is a script which creates some permanent and global temporary tables:
============================================================
SET NAMES WIN1251;
SET SQL DIALECT 3;
CREATE DATABASE 'put_your_database_name'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET WIN1251;
CREATE DOMAIN dintkey
AS INTEGER NOT NULL
CHECK (VALUE > 0);
CREATE DOMAIN dtext255
AS VARCHAR(255) CHARACTER SET WIN1251 COLLATE PXW_CYRL;
CREATE DOMAIN dtext20
AS VARCHAR(20) CHARACTER SET WIN1251 COLLATE PXW_CYRL;
CREATE DOMAIN dboolean
AS SMALLINT
DEFAULT 0
CHECK ((VALUE IS NULL) OR (VALUE IN (0, 1)));
CREATE DOMAIN dboolean_notnull
AS SMALLINT
DEFAULT 0
NOT NULL
CHECK (VALUE IN (0, 1));
CREATE DOMAIN dblobtext80_1251
AS BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET win1251;
CREATE DOMAIN dname
AS VARCHAR(60) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL;
CREATE DOMAIN dclassname
AS VARCHAR(40) CHARACTER SET WIN1251 COLLATE PXW_CYRL;
CREATE DOMAIN dtext60
AS VARCHAR(60) CHARACTER SET WIN1251 COLLATE PXW_CYRL;
CREATE DOMAIN dinteger_notnull
AS INTEGER NOT NULL;
CREATE DOMAIN dinteger
AS INTEGER;
CREATE DOMAIN dforeignkey
AS INTEGER;
CREATE TABLE at_namespace (
id dintkey,
name dtext255 NOT NULL UNIQUE,
caption dtext255,
filename dtext255,
filetimestamp TIMESTAMP,
version dtext20 DEFAULT '1.0.0.0' NOT NULL,
dbversion dtext20,
optional dboolean_notnull DEFAULT 0,
internal dboolean_notnull DEFAULT 1,
comment dblobtext80_1251,
settingruid VARCHAR(21),
CONSTRAINT at_pk_namespace PRIMARY KEY (id)
);
CREATE GLOBAL TEMPORARY TABLE at_namespace_file (
filename dtext255,
filetimestamp TIMESTAMP,
filesize dinteger,
name dtext255 NOT NULL UNIQUE,
caption dtext255,
version dtext20,
dbversion dtext20,
optional dboolean_notnull DEFAULT 0,
internal dboolean_notnull DEFAULT 1,
comment dblobtext80_1251,
xid dinteger,
dbid dinteger,
CONSTRAINT at_pk_namespace_file PRIMARY KEY (filename)
)
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE at_namespace_sync (
namespacekey dforeignkey,
filename dtext255,
operation CHAR(2) DEFAULT ' ' NOT NULL,
CONSTRAINT at_fk_namespace_sync_nsk
FOREIGN KEY (namespacekey) REFERENCES at_namespace (id),
CONSTRAINT at_fk_namespace_sync_fn
FOREIGN KEY (filename) REFERENCES at_namespace_file (filename)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT at_chk_namespace_sync_op
CHECK (operation IN (' ', '< ', '> ', '>>', '<<', '==', '=>', '<=', '! ',
'? '))
)
ON COMMIT DELETE ROWS;
============================================================
Next statement will crash server:
alter table at_namespace_sync drop constraint at_fk_namespace_sync_nsk
Confirmed for embedded and client-server versions.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel