Repository: incubator-hawq
Updated Branches:
  refs/heads/master 9c9d26241 -> eab1908b4


HAWQ-1139. Fix TestCreateTableInherits bug in the feature test


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

Branch: refs/heads/master
Commit: eab1908b4866ce9feedbeb04f802f55b2552c0b7
Parents: 9c9d262
Author: ivan <[email protected]>
Authored: Wed Nov 2 15:15:09 2016 +0800
Committer: ivan <[email protected]>
Committed: Thu Nov 3 10:04:42 2016 +0800

----------------------------------------------------------------------
 src/test/feature/catalog/test_create_table.cpp | 82 +++++++++++++--------
 src/test/feature/lib/sql_util.cpp              |  4 +
 src/test/feature/lib/sql_util.h                |  6 +-
 3 files changed, 59 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/eab1908b/src/test/feature/catalog/test_create_table.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/catalog/test_create_table.cpp 
b/src/test/feature/catalog/test_create_table.cpp
index fe12703..bac1ec4 100644
--- a/src/test/feature/catalog/test_create_table.cpp
+++ b/src/test/feature/catalog/test_create_table.cpp
@@ -7,6 +7,7 @@
 #include <errno.h>
 #include <iostream>
 #include <string>
+#include <algorithm>
 
 #include "lib/sql_util.h"
 
@@ -16,8 +17,17 @@ class TestCreateTable : public ::testing::Test {
  public:
   TestCreateTable() {}
   ~TestCreateTable() {}
+  std::string getNsOid(hawq::test::SQLUtility &util);
 };
 
+std::string TestCreateTable::getNsOid(hawq::test::SQLUtility &util) {
+  std::string schema = util.getSchemaName();
+  std::transform(schema.begin(), schema.end(), schema.begin(), ::tolower);
+  const hawq::test::PSQLQueryResult& result = util.executeQuery("SELECT oid 
FROM pg_namespace WHERE nspname='"+schema+"'");
+  EXPECT_EQ(result.rowCount(), 1);
+  std::string nsOid = result.getRows()[0][0];
+  return nsOid; 
+}
 
 TEST_F(TestCreateTable, TestCreateTable1) {
   hawq::test::SQLUtility util;
@@ -188,18 +198,20 @@ TEST_F(TestCreateTable, TestCreateTableInherits) {
       "CREATE TABLE t1_1_6(c2 int) INHERITS (t1) WITH (bucketnum = 7) 
DISTRIBUTED RANDOMLY",
       "ERROR:  distribution policy for \"t1_1_6\" must be the same as that for 
\"t1\"");
 
+  std::string nsOid = getNsOid(util);
+
   util.execute("CREATE TABLE t1_1_w(c2 int) INHERITS(t1) WITH (bucketnum=6)");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1_w')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1_w' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_1_3' AND relnamespace="+nsOid+")",
                     "6||\n");
 
   util.execute("DROP TABLE t1_1_3, t1_1_w, t1_1, t1");
@@ -221,23 +233,25 @@ TEST_F(TestCreateTable, TestCreateTableDistribution1) {
   util.execute("CREATE TABLE t1_2_3(LIKE t1) WITH (bucketnum = 4) DISTRIBUTED 
BY (c1)");
   util.execute("CREATE TABLE t1_2_4(LIKE t1) WITH (bucketnum = 4) DISTRIBUTED 
RANDOMLY");
 
+  std::string nsOid = getNsOid(util);
+  
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_w')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_w' AND relnamespace="+nsOid+")",
                     "4||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_1' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_3' AND relnamespace="+nsOid+")",
                     "4|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_4')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2_4' AND relnamespace="+nsOid+")",
                     "4||\n");
 
   util.execute("CREATE TABLE t1_3 AS (SELECT * FROM t1)");
@@ -248,22 +262,22 @@ TEST_F(TestCreateTable, TestCreateTableDistribution1) {
   util.execute("CREATE TABLE t1_3_4 WITH (bucketnum = 7) AS (SELECT * FROM  
t1) DISTRIBUTED RANDOMLY");
 
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_w')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_w' AND relnamespace="+nsOid+")",
                     "4||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_1' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_3' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_4')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE 
relname='t1_3_4' AND relnamespace="+nsOid+")",
                     "7||\n");
 
   // cleanup
@@ -303,8 +317,10 @@ TEST_F(TestCreateTable, TestCreateTableDistribution2) {
       "CREATE TABLE t2_1_6(c2 int) INHERITS (t2) WITH (bucketnum = 7) 
DISTRIBUTED RANDOMLY",
       "ERROR:  distribution policy for \"t2_1_6\" must be the same as that for 
\"t2\"");
 
+  std::string nsOid = getNsOid(util);
+  
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_1_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_1_1' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
 
   util.execute("CREATE TABLE t2_2(LIKE t2)");
@@ -315,22 +331,22 @@ TEST_F(TestCreateTable, TestCreateTableDistribution2) {
   util.execute("CREATE TABLE t2_2_4(LIKE t2) WITH (bucketnum = 6) DISTRIBUTED 
RANDOMLY");
 
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_w')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_w' AND relnamespace="+nsOid+")",
                     "4|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_1' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_3' AND relnamespace="+nsOid+")",
                     "5|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_4')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_2_4' AND relnamespace="+nsOid+")",
                     "6||\n");
 
   util.execute("CREATE TABLE t2_3 AS (SELECT * FROM  t2)");
@@ -341,22 +357,22 @@ TEST_F(TestCreateTable, TestCreateTableDistribution2) {
   util.execute("CREATE TABLE t2_3_4 WITH (bucketnum = 6) AS (SELECT * FROM  
t2) DISTRIBUTED RANDOMLY");
 
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_w')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_w' AND relnamespace="+nsOid+")",
                     "4||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_1' AND relnamespace="+nsOid+")",
                     "6|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_2' AND relnamespace="+nsOid+")",
                     "6||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_3' AND relnamespace="+nsOid+")",
                     "5|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_4')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't2_3_4' AND relnamespace="+nsOid+")",
                     "6||\n");
 
   // cleanup
@@ -375,14 +391,16 @@ TEST_F(TestCreateTable, TestCreateTableDistribution3) {
   util.execute("CREATE TABLE t3_1 (c1 int) WITH (bucketnum = 5) DISTRIBUTED 
BY(c1)");
   util.execute("CREATE TABLE t3_2 (c1 int) WITH (bucketnum = 6) DISTRIBUTED 
RANDOMLY");
 
+  std::string nsOid = getNsOid(util);
+  
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3' AND relnamespace="+nsOid+")",
                     "4||\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3_1')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3_1' AND relnamespace="+nsOid+")",
                     "5|{1}|\n");
   util.query("SELECT bucketnum, attrnums FROM gp_distribution_policy "
-                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3_2')",
+                    "WHERE localoid = (SELECT oid FROM pg_class WHERE relname 
= 't3_2' AND relnamespace="+nsOid+")",
                     "6||\n");
 
   // cleanup

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/eab1908b/src/test/feature/lib/sql_util.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/lib/sql_util.cpp 
b/src/test/feature/lib/sql_util.cpp
index 6eb34eb..a5188ca 100644
--- a/src/test/feature/lib/sql_util.cpp
+++ b/src/test/feature/lib/sql_util.cpp
@@ -67,6 +67,10 @@ std::string SQLUtility::getDbName() {
     return databaseName;
 }
 
+std::string SQLUtility::getSchemaName() {
+    return schemaName;
+}
+
 void SQLUtility::exec(const string &sql) {
   EXPECT_EQ(0, (conn->runSQLCommand(sql)).getLastStatus())
       << conn->getLastResult();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/eab1908b/src/test/feature/lib/sql_util.h
----------------------------------------------------------------------
diff --git a/src/test/feature/lib/sql_util.h b/src/test/feature/lib/sql_util.h
index e6d4768..a49a912 100644
--- a/src/test/feature/lib/sql_util.h
+++ b/src/test/feature/lib/sql_util.h
@@ -38,6 +38,10 @@ class SQLUtility {
   // @return string of the test database name
   std::string getDbName();
 
+  // Get the test schema name
+  // @return string of the test schema name
+  std::string getSchemaName();
+  
   // Execute sql command
   // @param sql The given sql command
   // @param check true(default) if expected correctly executing, false 
otherwise
@@ -99,11 +103,11 @@ class SQLUtility {
   // @return void
   void executeExpectErrorMsgStartWith(const std::string &sql, const 
std::string &errmsg);
 
+  const hawq::test::PSQLQueryResult &executeQuery(const std::string &sql);
 
  private:
   std::unique_ptr<hawq::test::PSQL> getConnection();
   const std::string generateSQLFile(const std::string &sqlFile);
-  const hawq::test::PSQLQueryResult &executeQuery(const std::string &sql);
   FilePath splitFilePath(const std::string &filePath) const;
   void exec(const std::string &sql);
 

Reply via email to