You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hawq.apache.org by "Chunling Wang (JIRA)" <ji...@apache.org> on 2016/11/01 10:43:58 UTC

[jira] [Created] (HAWQ-1132) HAWQ should throw error when we insert data in a hash table and the virtual segment number is 1

Chunling Wang created HAWQ-1132:
-----------------------------------

             Summary: HAWQ should throw error when we insert data in a hash table and the virtual segment number is 1
                 Key: HAWQ-1132
                 URL: https://issues.apache.org/jira/browse/HAWQ-1132
             Project: Apache HAWQ
          Issue Type: Bug
          Components: Core, Planner, Query Execution
            Reporter: Chunling Wang
            Assignee: Lei Chang


If we set  virtual segment number is 1, and create a hash table (default hash number is 6), we will just get a warning message in a no partition table when we insert a tuple. And we can even not get any message in a partition table. When we select from this table, HAWQ throws error. 

No partition table:
{code}
postgres=# set enforce_virtual_segment_number = 1;
SET
postgres=# create table t(id int) DISTRIBUTED BY (id);
CREATE TABLE
postgres=# insert into t values(1);
WARNING:  skipping "t" --- error returned: file count 1 in catalog is not in proportion to the bucket number 6 of hash table with oid=2966724, some data may be lost, if you still want to continue the query by considering the table as random, set GUC allow_file_count_bucket_num_mismatch to on and try again.
INFO:  ANALYZE completed. Success: 0, Failure: 1 (t)
INSERT 0 1
postgres=# select * from t;
ERROR:  file count 1 in catalog is not in proportion to the bucket number 6 of hash table with oid=2966724, some data may be lost, if you still want to continue the query by considering the table as random, set GUC allow_file_count_bucket_num_mismatch to on and try again. (cdbdatalocality.c:3801)
postgres=#
{code}

Partition table:
{code}
postgres=# set enforce_virtual_segment_number = 1;
SET
postgres=# CREATE TABLE t (id int, rank int, year int, gender char(1), count int ) DISTRIBUTED BY (id)     PARTITION BY LIST (gender) ( PARTITION girls VALUES ('F'), PARTITION boys VALUES ('M'), DEFAULT PARTITION other );
NOTICE:  CREATE TABLE will create partition "t_1_prt_girls" for table "t"
NOTICE:  CREATE TABLE will create partition "t_1_prt_boys" for table "t"
NOTICE:  CREATE TABLE will create partition "t_1_prt_other" for table "t"
CREATE TABLE
postgres=# insert into t values(51, 1, 1, 'F', 1);
INSERT 0 1
postgres=# select * from t;
ERROR:  file count 1 in catalog is not in proportion to the bucket number 6 of hash table with oid=2966703, some data may be lost, if you still want to continue the query by considering the table as random, set GUC allow_file_count_bucket_num_mismatch to on and try again. (cdbdatalocality.c:3801)
postgres=#
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)