[ 
https://issues.apache.org/jira/browse/HAWQ-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

hongwu resolved HAWQ-1044.
--------------------------
    Resolution: Done

> Verify the correctness of hawq register
> ---------------------------------------
>
>                 Key: HAWQ-1044
>                 URL: https://issues.apache.org/jira/browse/HAWQ-1044
>             Project: Apache HAWQ
>          Issue Type: Sub-task
>          Components: Command Line Tools
>            Reporter: Lili Ma
>            Assignee: hongwu
>             Fix For: backlog
>
>
> Verify the correctness of hawq register, summary all the use scenarios and 
> design corresponding test cases for it.
> I think following test cases should be added for the HAWQ register.
> 1. Use Case 1: Register file/folder into HAWQ by specifying file/folder name
> a) hawq register -d postgres -f a.file tableA
> b) hawq register -d postgres -f a.file -e eof tableA
> c) hawq register -d postgres -f folderA tableA
> d) register file to existing table. normal path
> e) register file to existing table. error path: to-be-registered files under 
> the file folder for the existing table on HDFS. Should throw error out.
> f) verify wrong input file. The file format not parquet format.
> 2. Use case 2: Register into HAWQ table using .yml configuration file to a 
> non-existing table
> a) Verify normal input:
> create table a(a int, b int);
> insert into a values(generate_series(1,100), 25);
> hawq extract -d postgres -o a.yml a
> hawq register -d postgres -c a.yml b
> b) Modify the fileSize in .yml file to a value which is different from actual 
> data size of data file
> 3. Use Case 2: Regsiter into HAWQ table using .yml configuration file to an 
> existing table
> a) Verify normal path:
> Call multiple times of hawq register, to verify whether can succeed. Each 
> time the to-be-registered files are not under the table directory.
> b) Error path: to-be-registered files under the file folder for the existing 
> table on HDFS
> Should throw error out: not support!
> 4. Use Case 2: Register into HAWQ table using .yml configuration file by 
> specifying --force option
> a) The table not exist: should create a new table, and do the register
> b) The table already exist, but no data there: can directly call hawq register
> c) Table already exist, and already data there -- normal path: .yml 
> configuration file includes the data files under table directory, and 
> just include those data files.
> d) Table already exist, and already data there -- normal path: .yml 
> configuration file includes the data files under table directory, and 
> also includes data files not under table directory.
> e) Table already exist, and already data there -- error path: .yml 
> configuration file doesn't include the data files under that table directory. 
> Should throw error out, "there are already existing files under the table, 
> but not included in .yml configuration file"
> 5. Use Case 2: Register into HAWQ table using .yml configuration file by 
> specifying --repair option
> a) Normal Path 1: (Append to new file)
> create a tableA
> insert some data into tableA
> call hawq extract the metadata to a.yml file
> insert new data into tableA
> call hawq register --repair option to rollback to the state
> b) Normal Path 2: (New files generated)
> Same as Normal Path 1, but during the second insert, use multiple inserts 
> concurrenly aiming at producing new files. Then call hawq register --repair,
> the new files should be discarded.
> c) Error Path: restributed
> Create a table with hash-distributed, distributed by column A
> insert some data into tableA
> call hawq extract the metadata to a.yml file
> alter table redistributed by column B
> insert new data into tableA
> call hawq register --repair option to rollback to the state  
> --> should throw error "the table is redistributed"
> d) Error Path: table being truncated
> Create a table with hash-distributed, distributed by column A
> insert some data into tableA
> call hawq extract the metadata to a.yml file
> truncate tableA
> call hawq register --repair option to rollback to the state  
> --> should throw error "the table becomes smaller than the .yml config file 
> specified."
> e) Error Path: files specified in .yml configuration not under data directory 
> of table A
> --> should throw error "the files should all under the table directory when 
> --repair option specified for hawq register"
> 6. hawq register partition table support
> a) Normal Path: create a 1-level partition table, calling hawq extract and 
> then hawq register, can work
> b) Error Path: create a 2-level partition table, calling hawq extract and 
> then hawq register, 
> --> should throw error "only supports 1-level partition table"



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

Reply via email to