You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Istvan Toth (Jira)" <ji...@apache.org> on 2021/10/18 06:19:00 UTC

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

    [ https://issues.apache.org/jira/browse/PHOENIX-6574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17429830#comment-17429830 ] 

Istvan Toth commented on PHOENIX-6574:
--------------------------------------

Confirmed.

> 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
>            Priority: Critical
>
> 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)