You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Alejandro Anadon (Jira)" <ji...@apache.org> on 2021/10/16 10:51:00 UTC

[jira] [Created] (PHOENIX-6574) when execute "DROP TABLE IF EXISTS", it removes sequences from catalog

Alejandro Anadon created PHOENIX-6574:
-----------------------------------------

             Summary: when  execute "DROP TABLE IF EXISTS", it removes sequences from catalog
                 Key: PHOENIX-6574
                 URL: https://issues.apache.org/jira/browse/PHOENIX-6574
             Project: Phoenix
          Issue Type: Bug
          Components: core
    Affects Versions: 5.1.2
            Reporter: Alejandro Anadon


It is a very strange behavior (to my understanding). If I create a table and delete it immediately afterwards, it deletes the sequences from the catalog. Moreover, depending on whether I have used them or not, itdisappears completely or not..

In the following sequence of instructions you see what I mean (My starting point is an empty bbdd):

-first case (not using the sequence):

SELECT * FROM SYSTEM."SEQUENCE";

// empty data

 

CREATE SEQUENCE SEQUENCENAME;
SELECT * FROM SYSTEM."SEQUENCE";

// there is the secuence


CREATE TABLE DUMMYTABLE (FIELD1 BIGINT, FIELD2 VARCHAR(255), ID BIGINT NOT NULL, CONSTRAINT PK PRIMARY KEY (ID));

//we create a table

 

SELECT * FROM SYSTEM."SEQUENCE";

//The sequence is still there

 

DROP TABLE IF EXISTS DUMMYTABLE;

//delete the table

 

SELECT * FROM SYSTEM."SEQUENCE";
 // hey!! the sequence has disappeared !!! why?!?


SELECT NEXT VALUE FOR SEQUENCENAME;

//It throws an exception because the squence does not exists

 

-secondcase (using the sequence):

SELECT * FROM SYSTEM."SEQUENCE";

CREATE SEQUENCE SEQUENCENAME2;
SELECT * FROM SYSTEM."SEQUENCE";

SELECT NEXT VALUE FOR SEQUENCENAME2;

// this is the little diference: we are using the secuence
SELECT * FROM SYSTEM."SEQUENCE";


CREATE TABLE DUMMYTABLE (FIELD1 BIGINT, FIELD2 VARCHAR(255), ID BIGINT NOT NULL, CONSTRAINT PK PRIMARY KEY (ID));
SELECT * FROM SYSTEM."SEQUENCE";

DROP TABLE IF EXISTS DUMMYTABLE;
SELECT * FROM SYSTEM."SEQUENCE";
 //The sequence also disapears. It should not be usable.
SELECT NEXT VALUE FOR SEQUENCENAME2;

//it does NOT throws an exception even it does not exists
SELECT * FROM SYSTEM."SEQUENCE";

 

Maybe there is something that I am missing, but I think that this is critical a bug.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)