You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by iw...@apache.org on 2016/10/20 01:59:04 UTC

[2/2] incubator-hawq git commit: HAWQ-1044. Enhance hawq register test cases for normal mode and force mode

HAWQ-1044. Enhance hawq register test cases for normal mode and force mode


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/3bcc5579
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/3bcc5579
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/3bcc5579

Branch: refs/heads/master
Commit: 3bcc557917cf8962d9963f59d634877f9c262d76
Parents: 4af3768
Author: Chunling Wang <wa...@126.com>
Authored: Wed Oct 19 18:35:09 2016 +0800
Committer: Chunling Wang <wa...@126.com>
Committed: Wed Oct 19 18:35:29 2016 +0800

----------------------------------------------------------------------
 .../backup_usage2case1/bucket0_tpl.yml          |  31 ++
 .../contain_error_symbol_tpl.yml                |  31 ++
 .../backup_usage2case1/error_blockszie_tpl.yml  |  31 ++
 .../backup_usage2case1/error_checksum_tpl.yml   |  31 ++
 .../error_compresslevel_tpl.yml                 |  31 ++
 .../error_compresstype_tpl.yml                  |  31 ++
 .../backup_usage2case1/error_encoding_tpl.yml   |  31 ++
 .../backup_usage2case1/error_pagesize_tpl.yml   |  31 ++
 .../error_rowgroupsize_tpl.yml                  |  31 ++
 .../backup_usage2case1/error_schema_tpl.yml     |  33 +++
 .../backup_usage2case1/float_eof_tpl.yml        |  31 ++
 .../backup_usage2case1/larger_eof_tpl.yml       |  31 ++
 .../backup_usage2case1/minus_eof_tpl.yml        |  31 ++
 .../wrong_distributed_policy_tpl.yml            |  31 ++
 .../feature/ManagementTool/test_hawq_register.h |   4 +
 .../test_hawq_register_rollback.cpp             | 111 +++++++
 .../test_hawq_register_usage2_case1.cpp         | 162 ++++++++---
 .../test_hawq_register_usage2_case2.cpp         | 291 +++++++++++++++++++
 .../test_hawq_register_usage2_case3.cpp         |   4 +
 .../ManagementTool/usage2case1/bucket0_tpl.yml  |  36 +--
 .../usage2case1/contain_error_symbol_tpl.yml    |  33 +++
 .../usage2case1/error_blocksize_tpl.yml         |  31 ++
 .../usage2case1/error_checksum_tpl.yml          |  33 +++
 .../usage2case1/error_columnnum_tpl.yml         |  35 +++
 .../usage2case1/error_compresslevel_tpl.yml     |  33 +++
 .../usage2case1/error_compresstype_tpl.yml      |  33 +++
 .../usage2case1/error_encoding_tpl.yml          |  36 ++-
 .../usage2case1/error_format_tpl.yml            |  32 ++
 .../usage2case1/error_pagesize_tpl.yml          |  33 +++
 .../usage2case1/error_rowgroupsize_tpl.yml      |  33 +++
 .../usage2case1/error_schema_tpl.yml            |  33 +++
 .../file_under_table_directory_tpl.yml          |  33 +++
 .../usage2case1/float_eof_tpl.yml               |  33 +++
 .../usage2case1/includedirectory.yml            |   2 +-
 .../usage2case1/larger_eof_tpl.yml              |  36 ++-
 .../usage2case1/minus_eof_tpl.yml               |  33 +++
 .../wrong_distributed_policy_tpl.yml            |  36 ++-
 .../ManagementTool/usage2case1/zero_eof_tpl.yml |  33 +++
 .../ManagementTool/usage2case2/bucket0_tpl.yml  |  45 +++
 .../usage2case2/contain_error_symbol_tpl.yml    |  45 +++
 .../usage2case2/error_blocksize_tpl.yml         |  43 +++
 .../usage2case2/error_checksum_tpl.yml          |  45 +++
 .../usage2case2/error_columnnum_tpl.yml         |  47 +++
 .../usage2case2/error_compresslevel_tpl.yml     |  45 +++
 .../usage2case2/error_compresstype_tpl.yml      |  45 +++
 .../usage2case2/error_encoding_tpl.yml          |  45 +++
 .../usage2case2/error_format_tpl.yml            |  44 +++
 .../usage2case2/error_pagesize_tpl.yml          |  45 +++
 .../usage2case2/error_rowgroupsize_tpl.yml      |  45 +++
 .../usage2case2/file_in_yaml_not_exist_tpl.yml  |  45 +++
 .../file_not_included_in_yaml_config_tpl.yml    |  43 +++
 .../usage2case2/float_eof_tpl.yml               |  45 +++
 .../usage2case2/hash_to_random_tpl.yml          |  35 +++
 .../usage2case2/larger_eof_tpl.yml              |  45 +++
 .../usage2case2/minus_eof_tpl.yml               |  45 +++
 .../usage2case2/normal_yaml_config_tpl.yml      |  45 +++
 .../normal_yaml_no_update_config_tpl.yml        |  33 +++
 .../usage2case2/random_to_hash_tpl.yml          |  35 +++
 .../ManagementTool/usage2case2/t_tpl_1.yml      |   2 +-
 .../ManagementTool/usage2case2/t_tpl_2.yml      |   2 +-
 .../ManagementTool/usage2case2/t_tpl_3.yml      |   2 +-
 .../ManagementTool/usage2case2/t_tpl_4.yml      |   2 +-
 .../ManagementTool/usage2case2/t_tpl_new_1.yml  |   2 +-
 .../ManagementTool/usage2case2/t_tpl_new_2.yml  |   2 +-
 .../ManagementTool/usage2case2/t_tpl_new_3.yml  |   2 +-
 .../ManagementTool/usage2case2/t_tpl_new_4.yml  |   2 +-
 .../usage2case2/table_exist_no_data_tpl.yml     |  33 +++
 .../usage2case2/table_not_exists_tpl.yml        |  33 +++
 .../wrong_distributed_policy_tpl.yml            |  45 +++
 .../ManagementTool/usage2case2/zero_eof_tpl.yml |  45 +++
 .../ManagementTool/usage2case3/t_tpl_old_1.yml  |   2 +-
 .../ManagementTool/usage2case3/t_tpl_old_2.yml  |   2 +-
 .../ManagementTool/usage2case3/t_tpl_old_3.yml  |   2 +-
 .../ManagementTool/usage2case3/t_tpl_old_4.yml  |   2 +-
 74 files changed, 2560 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/bucket0_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/bucket0_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/bucket0_tpl.yml
new file mode 100644
index 0000000..b407317
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/bucket0_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 0
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/contain_error_symbol_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/contain_error_symbol_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/contain_error_symbol_tpl.yml
new file mode 100644
index 0000000..fbec3a3
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/contain_error_symbol_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/*/../1
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_blockszie_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_blockszie_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_blockszie_tpl.yml
new file mode 100644
index 0000000..90c8c61
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_blockszie_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32767
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_checksum_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_checksum_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_checksum_tpl.yml
new file mode 100644
index 0000000..e21c511
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_checksum_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: true
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_compresslevel_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_compresslevel_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_compresslevel_tpl.yml
new file mode 100644
index 0000000..46a8cfb
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_compresslevel_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 1
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_compresstype_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_compresstype_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_compresstype_tpl.yml
new file mode 100644
index 0000000..77400d1
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_compresstype_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: SNAPPY
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_encoding_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_encoding_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_encoding_tpl.yml
new file mode 100644
index 0000000..b98a04c
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_encoding_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: Unicode
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_pagesize_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_pagesize_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_pagesize_tpl.yml
new file mode 100644
index 0000000..4c2da07
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_pagesize_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_rowgroupsize_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_rowgroupsize_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_rowgroupsize_tpl.yml
new file mode 100644
index 0000000..4c2da07
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_rowgroupsize_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/error_schema_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/error_schema_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/error_schema_tpl.yml
new file mode 100644
index 0000000..77f61c9
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/error_schema_tpl.yml
@@ -0,0 +1,33 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+- name: j
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/float_eof_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/float_eof_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/float_eof_tpl.yml
new file mode 100644
index 0000000..193f973
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/float_eof_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216.0
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/larger_eof_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/larger_eof_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/larger_eof_tpl.yml
new file mode 100644
index 0000000..7055310
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/larger_eof_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 2016
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/minus_eof_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/minus_eof_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/minus_eof_tpl.yml
new file mode 100644
index 0000000..32d60f1
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/minus_eof_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: -1
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/backup_usage2case1/wrong_distributed_policy_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/backup_usage2case1/wrong_distributed_policy_tpl.yml b/src/test/feature/ManagementTool/backup_usage2case1/wrong_distributed_policy_tpl.yml
new file mode 100644
index 0000000..55ad2c2
--- /dev/null
+++ b/src/test/feature/ManagementTool/backup_usage2case1/wrong_distributed_policy_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32768
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://localhost:8020
+Distribution_Policy: DISTRIBUTED BY (j)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/test_hawq_register.h
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/test_hawq_register.h b/src/test/feature/ManagementTool/test_hawq_register.h
index dfb041d..4edf2aa 100644
--- a/src/test/feature/ManagementTool/test_hawq_register.h
+++ b/src/test/feature/ManagementTool/test_hawq_register.h
@@ -92,6 +92,10 @@ class TestHawqRegister : public ::testing::Test {
             }
         }
 
+        void runYamlCaseTableNotExists(std::string casename, std::string ymlname, int expectederror, int checknum);
+        void runYamlCaseTableExists(std::string casename, std::string ymlname, int isexpectederror, int checknum);
+        void runYamlCaseForceMode(std::string casename, std::string ymlname, int isexpectederror, int rows, int checknum);
+
     private:
         std::unique_ptr<hawq::test::PSQL> conn;
 };

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/test_hawq_register_rollback.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/test_hawq_register_rollback.cpp b/src/test/feature/ManagementTool/test_hawq_register_rollback.cpp
new file mode 100644
index 0000000..2f842bc
--- /dev/null
+++ b/src/test/feature/ManagementTool/test_hawq_register_rollback.cpp
@@ -0,0 +1,111 @@
+#include <string>
+
+#include "lib/command.h"
+#include "lib/sql_util.h"
+#include "lib/string_util.h"
+#include "lib/hdfs_config.h"
+#include "lib/file_replace.h"
+#include "test_hawq_register.h"
+
+#include "gtest/gtest.h"
+
+using std::string;
+using hawq::test::SQLUtility;
+using hawq::test::Command;
+using hawq::test::HdfsConfig;
+
+TEST_F(TestHawqRegister, TestRollbackErrorSchema) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+    
+    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("insert into t select generate_series(1, 100);");
+    util.query("select * from t;", 100);
+    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 100);
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testrollbackerrorschema.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from t;", 100);
+    util.query("select * from nt;", 100);
+    
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestRollbackErrorHDFSFileSize) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+    
+    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("insert into t select generate_series(1, 100);");
+    util.query("select * from t;", 100);
+    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 100);
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testrollbackerrorhdfsfilesize.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from t;", 100);
+    util.query("select * from nt;", 100);
+    
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestRollBackHDFSFilePathContainErrorSymbol) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+    
+    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("insert into t select generate_series(1, 100);");
+    util.query("select * from t;", 100);
+    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 100);
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/rollback/error_schema.yml", test_root.c_str()));
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testrollbackhdfsfilepathcontainerrorsymbol.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from t;", 100);
+    util.query("select * from nt;", 100);
+    
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/test_hawq_register_usage2_case1.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/test_hawq_register_usage2_case1.cpp b/src/test/feature/ManagementTool/test_hawq_register_usage2_case1.cpp
index 6d44ca0..0b5eabf 100644
--- a/src/test/feature/ManagementTool/test_hawq_register_usage2_case1.cpp
+++ b/src/test/feature/ManagementTool/test_hawq_register_usage2_case1.cpp
@@ -83,65 +83,85 @@ TEST_F(TestHawqRegister, TestUsage2Case1Expected) {
     }
 }
 
-TEST_F(TestHawqRegister, TestUsage2Case1ErrorEncoding) {
+void TestHawqRegister::runYamlCaseTableExists(std::string casename, std::string ymlname, int isexpectederror=1, int checknum=100) {
     SQLUtility util;
     string test_root(util.getTestRootPath());
     util.execute("drop table if exists t;");
     util.execute("drop table if exists nt;");
     
-    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
     util.execute("insert into t select generate_series(1, 100);");
     util.query("select * from t;", 100);
-    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("create table nt(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
     util.execute("insert into nt select generate_series(1, 100);");
     util.query("select * from nt;", 100);
-    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/error_encoding.yml", test_root.c_str()));
-    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/error_encoding_tpl.yml", test_root.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), ymlname.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), ymlname.c_str()));
     hawq::test::FileReplace frep;
     std::unordered_map<std::string, std::string> strs_src_dst;
     strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
     strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    hawq::test::HdfsConfig hc;
+    string hdfs_prefix;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
     frep.replace(t_yml_tpl, t_yml, strs_src_dst);
-    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1errorencoding.nt", HAWQ_DB, t_yml.c_str())));
+    EXPECT_EQ(isexpectederror, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), casename.c_str())));
+    if (isexpectederror > 0) {
+        util.query("select * from t;", 100);
+        util.query("select * from nt;", 100);
+    } else {
+        util.query("select * from nt;", checknum);
+    }
     
     EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
     util.execute("drop table t;");
     util.execute("drop table nt;");
 }
 
-TEST_F(TestHawqRegister, TestUsage2Case1Bucket0) {
+void TestHawqRegister::runYamlCaseTableNotExists(std::string casename, std::string ymlname, int isexpectederror=1, int checknum=100) {
     SQLUtility util;
     string test_root(util.getTestRootPath());
     util.execute("drop table if exists t;");
     util.execute("drop table if exists nt;");
     
-    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
     util.execute("insert into t select generate_series(1, 100);");
     util.query("select * from t;", 100);
-    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
-    util.execute("insert into nt select generate_series(1, 100);");
-    util.query("select * from nt;", 100);
-    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/bucket0.yml", test_root.c_str()));
-    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/bucket0_tpl.yml", test_root.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), ymlname.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), ymlname.c_str()));
     hawq::test::FileReplace frep;
     std::unordered_map<std::string, std::string> strs_src_dst;
     strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
     strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    hawq::test::HdfsConfig hc;
+    string hdfs_prefix;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
     frep.replace(t_yml_tpl, t_yml, strs_src_dst);
-    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1bucket0.nt", HAWQ_DB, t_yml.c_str())));
+    EXPECT_EQ(isexpectederror, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), casename.c_str())));
+    if (isexpectederror > 0) {
+        util.query("select * from t;", 100);
+        util.query("select * from pg_class where relname = 'nt';", 0);
+    } else {
+        util.query("select * from nt;", checknum);
+    }
     
     EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
     util.execute("drop table t;");
-    util.execute("drop table nt;");
+    util.execute("drop table if exists nt;");
 }
 
-TEST_F(TestHawqRegister, TestUsage2Case1IncludeDirectory) {
-    SQLUtility util;
-    string test_root(util.getTestRootPath());
-    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -put -f %s/ManagementTool/usage2case1 %s/", test_root.c_str(), getHdfsLocation().c_str())));
-    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/includedirectory.yml", test_root.c_str()));
-    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1includedirectory.nt", HAWQ_DB, t_yml.c_str())));
-    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -rm -r %s/usage2case1", getHdfsLocation().c_str())));
+TEST_F(TestHawqRegister, TestUsage2Case1ErrorSchema) {
+    runYamlCaseTableNotExists("testusage2case1errorschema", "usage2case1/error_schema");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1ErrorColumnNum) {
+    runYamlCaseTableExists("testusage2case1errorcolumnnum", "usage2case1/error_columnnum");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1HDFSFilePathContainErrorSymbol) {
+    runYamlCaseTableExists("testusage2case1hdfsfilepathcontainerrorsymbol", "usage2case1/contain_error_symbol");
 }
 
 TEST_F(TestHawqRegister, TestUsage2Case1ErrorHashTableRegistry) {
@@ -193,47 +213,121 @@ TEST_F(TestHawqRegister, TestUsage2Case1ErrorHashTableRegistry) {
     util.execute("drop table nt_2;");
 }
 
+TEST_F(TestHawqRegister, TestUsage2Case1ZeroEof) {
+    runYamlCaseTableExists("testusage2case1zeroeof", "usage2case1/zero_eof", 0, 180);
+}
+
 TEST_F(TestHawqRegister, TestUsage2Case1LargerEof) {
+    runYamlCaseTableExists("testusage2case1largereof", "usage2case1/larger_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1FloatEof) {
+    runYamlCaseTableExists("testusage2case1floateof", "usage2case1/float_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1MinusEof) {
+    runYamlCaseTableExists("testusage2case1minuseof", "usage2case1/minus_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1WrongDistributionPolicy) {
+    runYamlCaseTableExists("testusage2case1wrongdistributionpolicy", "usage2case1/wrong_distributed_policy");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1Bucket0) {
+    runYamlCaseTableExists("testusage2case1bucket0", "usage2case1/bucket0");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1ErrorEncoding) {
+    runYamlCaseTableExists("testusage2case1errorencoding", "usage2case1/error_encoding");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorBlockSize) {
     SQLUtility util;
     string test_root(util.getTestRootPath());
     util.execute("drop table if exists t;");
     util.execute("drop table if exists nt;");
     
-    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed by (i);");
     util.execute("insert into t select generate_series(1, 100);");
     util.query("select * from t;", 100);
-    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/larger_eof.yml", test_root.c_str()));
-    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/larger_eof_tpl.yml", test_root.c_str()));
+    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 100);
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/error_blockszie.yml", test_root.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/error_blocksize_tpl.yml", test_root.c_str()));
     hawq::test::FileReplace frep;
     std::unordered_map<std::string, std::string> strs_src_dst;
     strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
     strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
     frep.replace(t_yml_tpl, t_yml, strs_src_dst);
-    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1largereof.nt", HAWQ_DB, t_yml.c_str())));
-
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1errorblocksize.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from t;", 100);
+    util.query("select * from nt;", 100);
+    
     EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
     util.execute("drop table t;");
+    util.execute("drop table nt;");
 }
 
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorCompressType) {
+    runYamlCaseTableExists("testusage2case1errorcompresstype", "usage2case1/error_compresstype");
+}
 
-TEST_F(TestHawqRegister, TestUsage2Case1WrongDistributionPolicy) {
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorCompressLevel) {
+    runYamlCaseTableExists("testusage2case1errorcompresslevel", "usage2case1/error_compresslevel");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorChecksum) {
+    runYamlCaseTableExists("testusage2case1errorchecksum", "usage2case1/error_checksum");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorPageSize) {
+    runYamlCaseTableExists("testusage2case1errorpagesize", "usage2case1/error_pagesize");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case1ErrorRowgroupSize) {
+    runYamlCaseTableExists("testusage2case1errorrowgroupsize", "usage2case1/error_rowgroupsize");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1IncludeDirectory) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -put -f %s/ManagementTool/usage2case1 %s/", test_root.c_str(), getHdfsLocation().c_str())));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/includedirectory.yml", test_root.c_str()));
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1includedirectory.nt", HAWQ_DB, t_yml.c_str())));
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -rm -r %s/usage2case1", getHdfsLocation().c_str())));
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1ErrorFormat) {
+    runYamlCaseTableExists("testusage2case1errorformat", "usage2case1/error_format");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case1FileUnderTableDirectory) {
     SQLUtility util;
     string test_root(util.getTestRootPath());
     util.execute("drop table if exists t;");
-    util.execute("drop table if exists nt;");
     
-    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed randomly;");
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
     util.execute("insert into t select generate_series(1, 100);");
     util.query("select * from t;", 100);
-    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/wrong_distributed_policy.yml", test_root.c_str()));
-    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/wrong_distributed_policy_tpl.yml", test_root.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case1/file_under_table_directory.yml", test_root.c_str()));
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case1/file_under_table_directory_tpl.yml", test_root.c_str()));
     hawq::test::FileReplace frep;
     std::unordered_map<std::string, std::string> strs_src_dst;
     strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
     strs_src_dst["@TABLE_OID@"]= getTableOid("t");
+    hawq::test::HdfsConfig hc;
+    string hdfs_prefix;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
     frep.replace(t_yml_tpl, t_yml, strs_src_dst);
-    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1wrongdistributionpolicy.nt", HAWQ_DB, t_yml.c_str())));
-
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case1fileUndertabledirectory.t", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from t;", 100);
+    
     EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
     util.execute("drop table t;");
 }

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/test_hawq_register_usage2_case2.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/test_hawq_register_usage2_case2.cpp b/src/test/feature/ManagementTool/test_hawq_register_usage2_case2.cpp
index 1545315..4cce61f 100644
--- a/src/test/feature/ManagementTool/test_hawq_register_usage2_case2.cpp
+++ b/src/test/feature/ManagementTool/test_hawq_register_usage2_case2.cpp
@@ -45,6 +45,10 @@ TEST_F(TestHawqRegister, TestUsage2Case2Expected) {
                 std::unordered_map<std::string, std::string> strs_src_dst;
                 strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
                 strs_src_dst["@TABLE_OID@"]= getTableOid(t);
+                string hdfs_prefix;
+                hawq::test::HdfsConfig hc;
+                hc.getNamenodeHost(hdfs_prefix);
+                strs_src_dst["@PORT@"]= hdfs_prefix;
                 frep.replace(t_yml_tpl, t_yml, strs_src_dst);
                 EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register -d %s -c %s testhawqregister_testusage2case2expected.%s", HAWQ_DB, t_yml.c_str(), nt.c_str())));
                 util.query(hawq::test::stringFormat("select * from %s;", nt.c_str()), 200);
@@ -57,6 +61,7 @@ TEST_F(TestHawqRegister, TestUsage2Case2Expected) {
                 strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
                 strs_src_dst["@TABLE_OID_OLD@"]= getTableOid(nt);
                 strs_src_dst["@TABLE_OID_NEW@"]= getTableOid(t);
+                strs_src_dst["@PORT@"]= hdfs_prefix;
                 frep.replace(t_yml_tpl_new, t_yml_new, strs_src_dst);
                 EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register %s -d %s -c %s testhawqregister_testusage2case2expected.%s", opt.c_str(), HAWQ_DB, t_yml_new.c_str(), nt.c_str())));
                 util.query(hawq::test::stringFormat("select * from %s;", nt.c_str()), 150);
@@ -75,3 +80,289 @@ TEST_F(TestHawqRegister, TestUsage2Case2Expected) {
     }
 }
 
+void TestHawqRegister::runYamlCaseForceMode(std::string casename, std::string ymlname, int isexpectederror = 1, int rows = 50, int checknum = 200) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), ymlname.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), ymlname.c_str()));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    util.execute("create table nt(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 200);
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(rows).c_str()));
+    util.query("select * from t;", rows);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_OLD@"]= getTableOid("nt");
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    //printf("%s\n", hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), casename.c_str()).c_str());
+    //sleep(60);
+    EXPECT_EQ(isexpectederror, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), casename.c_str())));
+    util.query("select * from nt;", checknum);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2Hash2Random) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), "usage2case2/hash_to_random"));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), "usage2case2/hash_to_random"));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    util.execute("create table nt(i int) with (appendonly=true, orientation=parquet) distributed randomly;");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 200);
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(50).c_str()));
+    util.query("select * from t;", 50);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_OLD@"]= getTableOid("nt");
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), "testusage2case2hash2random")));
+    util.query("select * from nt;", 150);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2Random2Hash) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), "usage2case2/random_to_hash"));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), "usage2case2/random_to_hash"));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    util.execute("create table nt(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 200);
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed randomly;");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(50).c_str()));
+    util.query("select * from t;", 50);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_OLD@"]= getTableOid("nt");
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), "testusage2case2random2hash")));
+    util.query("select * from nt;", 200);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2TableNotExist) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case2/table_not_exists_tpl.yml", test_root.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case2/talbe_not_exists.yml", test_root.c_str()));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(50).c_str()));
+    util.query("select * from t;", 50);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_testusage2case2tablenotexist.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from nt;", 50);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2TableExistNoData) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/usage2case2/table_exist_no_data_tpl.yml", test_root.c_str()));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case2/table_exist_no_data.yml", test_root.c_str()));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(50).c_str()));
+    util.query("select * from t;", 50);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    util.execute("create table nt(i int) with (appendonly=true, orientation=parquet) distributed by (i);");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_testusage2case2tableexistnodata.nt", HAWQ_DB, t_yml.c_str())));
+    util.query("select * from nt;", 50);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2NormalYamlConfig) {
+    runYamlCaseForceMode("testusage2case2normalyamlconfig", "usage2case2/normal_yaml_config", 0, 50, 150);
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2NormalYamlNoUpdateConfig) {
+    runYamlCaseForceMode("testusage2case2normalyamlnoupdateconfig", "usage2case2/normal_yaml_no_update_config", 0, 50, 150);
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2FileNotIncludedInYamlConfig) {
+    runYamlCaseForceMode("testusage2case2filenotincludedinyamlconfig", "usage2case2/file_not_included_in_yaml_config");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2FileInYamlNotExist) {
+    runYamlCaseForceMode("testusage2case2fileinyamlnotexist", "usage2case2/file_in_yaml_not_exist");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2ErrorColumnNum) {
+    runYamlCaseForceMode("testusage2case2errorcolumnnum", "usage2case2/error_columnnum");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2HDFSFilePathContainErrorSymbol) {
+    runYamlCaseForceMode("testusage2case2hdfsfilepathcontainerrorsymbol", "usage2case2/contain_error_symbol");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ZeroEof) {
+    runYamlCaseForceMode("testusage2case2zeroeof", "usage2case2/zero_eof", 0, 50, 150);
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2LargerEof) {
+    runYamlCaseForceMode("testusage2case2largereof", "usage2case2/larger_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2FloatEof) {
+    runYamlCaseForceMode("testusage2case2floateof", "usage2case2/float_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2MinusEof) {
+    runYamlCaseForceMode("testusage2case2minuseof", "usage2case2/minus_eof");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2WrongDistributionPolicy) {
+    runYamlCaseForceMode("testusage2case2wrongdistributionpolicy", "usage2case2/wrong_distributed_policy");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2Bucket0) {
+    runYamlCaseForceMode("testusage2case2bucket0", "usage2case2/bucket0");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2ErrorEncoding) {
+    runYamlCaseForceMode("testusage2case2errorencoding", "usage2case2/error_encoding");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorBlockSize) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    string t_yml_tpl(hawq::test::stringFormat("%s/ManagementTool/%s_tpl.yml", test_root.c_str(), "usage2case2/error_blocksize"));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/%s.yml", test_root.c_str(), "usage2case2/error_blocksize"));
+    util.execute("drop table if exists t;");
+    util.execute("drop table if exists nt;");
+
+    util.execute("create table nt(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.execute("insert into nt select generate_series(1, 100);");
+    util.query("select * from nt;", 200);
+
+    // hawq register --force/-F -d hawq_feature_test -c t_new_#.yml nt_usage2_case2_#
+    util.execute("create table t(i int) with (appendonly=true, orientation=row) distributed by (i);");
+    util.execute(hawq::test::stringFormat("insert into t select generate_series(1, %s);", std::to_string(50).c_str()));
+    util.query("select * from t;", 50);
+    hawq::test::FileReplace frep;
+    std::unordered_map<std::string, std::string> strs_src_dst;
+    strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
+    strs_src_dst["@TABLE_OID_OLD@"]= getTableOid("nt");
+    strs_src_dst["@TABLE_OID_NEW@"]= getTableOid("t");
+    string hdfs_prefix;
+    hawq::test::HdfsConfig hc;
+    hc.getNamenodeHost(hdfs_prefix);
+    strs_src_dst["@PORT@"]= hdfs_prefix;
+    frep.replace(t_yml_tpl, t_yml, strs_src_dst);
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_%s.nt", HAWQ_DB, t_yml.c_str(), "testusage2case2errorblocksize")));
+    util.query("select * from nt;", 150);
+
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("rm -rf %s", t_yml.c_str())));
+    util.execute("drop table t;");
+    util.execute("drop table nt;");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorCompressType) {
+    runYamlCaseForceMode("testusage2case2errorcompresstype", "usage2case2/error_compresstype");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorCompressLevel) {
+    runYamlCaseForceMode("testusage2case2errorcompresslevel", "usage2case2/error_compresslevel");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorChecksum) {
+    runYamlCaseForceMode("testusage2case2errorchecksum", "usage2case2/error_checksum");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorPageSize) {
+    runYamlCaseForceMode("testusage2case2errorpagesize", "usage2case2/error_pagesize");
+}
+
+TEST_F(TestHawqRegister, DISABLED_TestUsage2Case2ErrorRowgroupSize) {
+    runYamlCaseForceMode("testusage2case2errorrowgroupsize", "usage2case2/error_rowgroupsize");
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2IncludeDirectory) {
+    SQLUtility util;
+    string test_root(util.getTestRootPath());
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -put -f %s/ManagementTool/usage2case2 %s/", test_root.c_str(), getHdfsLocation().c_str())));
+    string t_yml(hawq::test::stringFormat("%s/ManagementTool/usage2case2/includedirectory.yml", test_root.c_str()));
+    EXPECT_EQ(1, Command::getCommandStatus(hawq::test::stringFormat("hawq register --force -d %s -c %s testhawqregister_testusage2case2includedirectory.nt", HAWQ_DB, t_yml.c_str())));
+    EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hdfs dfs -rm -r %s/usage2case2", getHdfsLocation().c_str())));
+}
+
+TEST_F(TestHawqRegister, TestUsage2Case2ErrorFormat) {
+    runYamlCaseForceMode("testusage2case2errorformat", "usage2case2/error_format");
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/test_hawq_register_usage2_case3.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/test_hawq_register_usage2_case3.cpp b/src/test/feature/ManagementTool/test_hawq_register_usage2_case3.cpp
index 8e8fb6d..2b4d07b 100644
--- a/src/test/feature/ManagementTool/test_hawq_register_usage2_case3.cpp
+++ b/src/test/feature/ManagementTool/test_hawq_register_usage2_case3.cpp
@@ -57,6 +57,10 @@ TEST_F(TestHawqRegister, DISABLED_TestUsage2Case3Expected) {
                 std::unordered_map<std::string, std::string> strs_src_dst;
                 strs_src_dst["@DATABASE_OID@"]= getDatabaseOid();
                 strs_src_dst["@TABLE_OID@"]= getTableOid(nt);
+                string hdfs_prefix;
+                hawq::test::HdfsConfig hc;
+                hc.getNamenodeHost(hdfs_prefix);
+                strs_src_dst["@PORT@"]= hdfs_prefix;
                 frep.replace(t_yml_tpl_old, t_yml_old, strs_src_dst);
                 EXPECT_EQ(0, Command::getCommandStatus(hawq::test::stringFormat("hawq register %s -d %s -c %s testhawqregister_testusage2case3expected.%s", opt.c_str(), HAWQ_DB, t_yml_old.c_str(), nt.c_str())));
                 util.query(hawq::test::stringFormat("select * from %s;", nt.c_str()), 100);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/bucket0_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/bucket0_tpl.yml b/src/test/feature/ManagementTool/usage2case1/bucket0_tpl.yml
index b407317..22f46e3 100644
--- a/src/test/feature/ManagementTool/usage2case1/bucket0_tpl.yml
+++ b/src/test/feature/ManagementTool/usage2case1/bucket0_tpl.yml
@@ -1,31 +1,33 @@
-AO_FileLocations:
-  Blocksize: 32768
+Bucketnum: 0
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
   Checksum: false
   CompressionLevel: 0
   CompressionType: null
+  EnableDictionary: false
   Files:
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
-    size: 176
+    size: 254
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
-    size: 168
+    size: 250
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
-    size: 192
+    size: 258
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
-    size: 168
+    size: 250
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
-    size: 192
+    size: 258
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
-    size: 216
-AO_Schema:
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
 - name: i
   type: int4
-Bucketnum: 0
-DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
-  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
-  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
-DFS_URL: hdfs://localhost:8020
-Distribution_Policy: DISTRIBUTED BY (i)
-Encoding: UTF8
-FileFormat: AO
 TableName: public.t
 Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/contain_error_symbol_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/contain_error_symbol_tpl.yml b/src/test/feature/ManagementTool/usage2case1/contain_error_symbol_tpl.yml
new file mode 100644
index 0000000..4998ed7
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/contain_error_symbol_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/../*/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_blocksize_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_blocksize_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_blocksize_tpl.yml
new file mode 100644
index 0000000..5eb11d6
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_blocksize_tpl.yml
@@ -0,0 +1,31 @@
+AO_FileLocations:
+  Blocksize: 32767
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 176
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 168
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 192
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 216
+AO_Schema:
+- name: i
+  type: int4
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: AO
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_checksum_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_checksum_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_checksum_tpl.yml
new file mode 100644
index 0000000..1326f78
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_checksum_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: true
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_columnnum_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_columnnum_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_columnnum_tpl.yml
new file mode 100644
index 0000000..e7c56f3
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_columnnum_tpl.yml
@@ -0,0 +1,35 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+- name: j
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_compresslevel_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_compresslevel_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_compresslevel_tpl.yml
new file mode 100644
index 0000000..48eab61
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_compresslevel_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 1
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_compresstype_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_compresstype_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_compresstype_tpl.yml
new file mode 100644
index 0000000..4c2557d
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_compresstype_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: SNAPPY
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_encoding_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_encoding_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_encoding_tpl.yml
index 52756e1..04296dd 100644
--- a/src/test/feature/ManagementTool/usage2case1/error_encoding_tpl.yml
+++ b/src/test/feature/ManagementTool/usage2case1/error_encoding_tpl.yml
@@ -1,21 +1,33 @@
-AO_FileLocations:
-  Blocksize: 32768
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: Unicode
+FileFormat: Parquet
+Parquet_FileLocations:
   Checksum: false
   CompressionLevel: 0
   CompressionType: null
+  EnableDictionary: false
   Files:
   - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
-    size: 1016
-AO_Schema:
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
 - name: i
   type: int4
-Bucketnum: 6
-DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
-  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
-  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
-DFS_URL: hdfs://localhost:8020
-Distribution_Policy: DISTRIBUTED RANDOMLY
-Encoding: Unicode
-FileFormat: AO
 TableName: public.t
 Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_format_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_format_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_format_tpl.yml
new file mode 100644
index 0000000..d01d377
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_format_tpl.yml
@@ -0,0 +1,32 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_pagesize_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_pagesize_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_pagesize_tpl.yml
new file mode 100644
index 0000000..cfd4a70
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_pagesize_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 104857
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_rowgroupsize_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_rowgroupsize_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_rowgroupsize_tpl.yml
new file mode 100644
index 0000000..5fa73bf
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_rowgroupsize_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 838860
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/error_schema_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/error_schema_tpl.yml b/src/test/feature/ManagementTool/usage2case1/error_schema_tpl.yml
new file mode 100644
index 0000000..a3cac3d
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/error_schema_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: in4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/file_under_table_directory_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/file_under_table_directory_tpl.yml b/src/test/feature/ManagementTool/usage2case1/file_under_table_directory_tpl.yml
new file mode 100644
index 0000000..2b41255
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/file_under_table_directory_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3bcc5579/src/test/feature/ManagementTool/usage2case1/float_eof_tpl.yml
----------------------------------------------------------------------
diff --git a/src/test/feature/ManagementTool/usage2case1/float_eof_tpl.yml b/src/test/feature/ManagementTool/usage2case1/float_eof_tpl.yml
new file mode 100644
index 0000000..c0a9e12
--- /dev/null
+++ b/src/test/feature/ManagementTool/usage2case1/float_eof_tpl.yml
@@ -0,0 +1,33 @@
+Bucketnum: 6
+DBVersion: PostgreSQL 8.2.15 (Greenplum Database 4.2.0 build 1) (HAWQ 2.0.1.0 build
+  dev) on x86_64-apple-darwin14.5.0, compiled by GCC Apple LLVM version 6.1.0 (clang-602.0.53)
+  (based on LLVM 3.6.0svn) compiled on Jul  6 2016 10:22:33
+DFS_URL: hdfs://@PORT@
+Distribution_Policy: DISTRIBUTED BY (i)
+Encoding: UTF8
+FileFormat: Parquet
+Parquet_FileLocations:
+  Checksum: false
+  CompressionLevel: 0
+  CompressionType: null
+  EnableDictionary: false
+  Files:
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/1
+    size: 254
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/2
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/3
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/4
+    size: 250
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/5
+    size: 258
+  - path: /hawq_default/16385/@DATABASE_OID@/@TABLE_OID@/6
+    size: 270.0
+  PageSize: 1048576
+  RowGroupSize: 8388608
+Parquet_Schema:
+- name: i
+  type: int4
+TableName: public.t
+Version: 1.0.0