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

Reply via email to