You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2021/07/06 18:42:26 UTC

[hive] branch master updated: HIVE-25213: Implement List getTables() for existing connectors (Dantong Dong reviewed Naveen Gangam)
This is an automated email from the ASF dual-hosted git repository.

ngangam pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 2639508  HIVE-25213: Implement List<Table> getTables() for existing connectors (Dantong Dong reviewed Naveen Gangam)
2639508 is described below

commit 26395083bfd3516678719eeea25ba82647d71e01
Author: Dantong Dong <da...@cloudera.com>
AuthorDate: Tue Jun 8 18:33:44 2021 -0700

    HIVE-25213: Implement List<Table> getTables() for existing connectors (Dantong Dong reviewed Naveen Gangam)
---
 .../README_DO_NOT_TOUCH_FILES.txt                  |   9 ++
 .../log/README_DO_NOT_TOUCH_FILES.txt              |   8 ++
 .../db_for_connectortest.db/log/log.ctrl           | Bin 0 -> 48 bytes
 .../db_for_connectortest.db/log/log1.dat           | Bin 0 -> 1048576 bytes
 .../db_for_connectortest.db/log/log2.dat           | Bin 0 -> 1048576 bytes
 .../db_for_connectortest.db/log/logmirror.ctrl     | Bin 0 -> 48 bytes
 .../seg0/README_DO_NOT_TOUCH_FILES.txt             |   8 ++
 .../db_for_connectortest.db/seg0/c10.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c101.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c111.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c121.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c130.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c141.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c150.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c161.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c171.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c180.dat          | Bin 0 -> 36864 bytes
 .../db_for_connectortest.db/seg0/c191.dat          | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c1a1.dat          | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c1b1.dat          | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c1c0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c1d1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c1e0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c1f1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c20.dat           | Bin 0 -> 28672 bytes
 .../db_for_connectortest.db/seg0/c200.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c211.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c221.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c230.dat          | Bin 0 -> 147456 bytes
 .../db_for_connectortest.db/seg0/c241.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c251.dat          | Bin 0 -> 20480 bytes
 .../db_for_connectortest.db/seg0/c260.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c271.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c281.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c290.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2a1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2b1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2c1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2d0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2e1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c2f0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c300.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c31.dat           | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c311.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c321.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c331.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c340.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c351.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c361.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c371.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c380.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c391.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3a1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3b1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3c0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3d1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3e1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c3f1.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c400.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c41.dat           | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c411.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c421.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c430.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c441.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c451.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c461.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c470.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c481.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c490.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c4a0.dat          | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c51.dat           | Bin 0 -> 16384 bytes
 .../db_for_connectortest.db/seg0/c60.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c71.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c81.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/c90.dat           | Bin 0 -> 24576 bytes
 .../db_for_connectortest.db/seg0/ca1.dat           | Bin 0 -> 28672 bytes
 .../db_for_connectortest.db/seg0/cb1.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/cc0.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/cd1.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/ce1.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/seg0/cf0.dat           | Bin 0 -> 8192 bytes
 .../db_for_connectortest.db/service.properties     |  23 +++
 itests/pom.xml                                     |  15 ++
 ql/src/test/queries/clientpositive/dataconnector.q |   3 +-
 .../clientpositive/llap/dataconnector.q.out        |   6 +-
 .../apache/hadoop/hive/metastore/HMSHandler.java   |  37 +++++
 .../jdbc/AbstractJDBCConnectorProvider.java        | 160 +++++++++++++--------
 .../jdbc/DerbySQLConnectorProvider.java            |  11 --
 .../dataconnector/jdbc/MySQLConnectorProvider.java |  11 --
 .../jdbc/PostgreSQLConnectorProvider.java          |  10 --
 90 files changed, 203 insertions(+), 98 deletions(-)

diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/README_DO_NOT_TOUCH_FILES.txt b/data/files/dataconnector_derbydb/db_for_connectortest.db/README_DO_NOT_TOUCH_FILES.txt
new file mode 100644
index 0000000..a4bc145
--- /dev/null
+++ b/data/files/dataconnector_derbydb/db_for_connectortest.db/README_DO_NOT_TOUCH_FILES.txt
@@ -0,0 +1,9 @@
+
+# *************************************************************************
+# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
+# *** FILES IN THIS DIRECTORY AND SUBDIRECTORIES CONSTITUTE A DERBY     ***
+# *** DATABASE, WHICH INCLUDES THE DATA (USER AND SYSTEM) AND THE       ***
+# *** FILES NECESSARY FOR DATABASE RECOVERY.                            ***
+# *** EDITING, ADDING, OR DELETING ANY OF THESE FILES MAY CAUSE DATA    ***
+# *** CORRUPTION AND LEAVE THE DATABASE IN A NON-RECOVERABLE STATE.     ***
+# *************************************************************************
\ No newline at end of file
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/log/README_DO_NOT_TOUCH_FILES.txt b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/README_DO_NOT_TOUCH_FILES.txt
new file mode 100644
index 0000000..56df292
--- /dev/null
+++ b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/README_DO_NOT_TOUCH_FILES.txt
@@ -0,0 +1,8 @@
+
+# *************************************************************************
+# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
+# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE RECOVERY   ***
+# *** SYSTEM. EDITING, ADDING, OR DELETING FILES IN THIS DIRECTORY      ***
+# *** WILL CAUSE THE DERBY RECOVERY SYSTEM TO FAIL, LEADING TO          ***
+# *** NON-RECOVERABLE CORRUPT DATABASES.                                ***
+# *************************************************************************
\ No newline at end of file
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log.ctrl b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log.ctrl
new file mode 100644
index 0000000..7297085
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log.ctrl differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log1.dat
new file mode 100644
index 0000000..90e9f35
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log2.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log2.dat
new file mode 100644
index 0000000..5b71eab
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/log2.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/log/logmirror.ctrl b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/logmirror.ctrl
new file mode 100644
index 0000000..7297085
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/log/logmirror.ctrl differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/README_DO_NOT_TOUCH_FILES.txt b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/README_DO_NOT_TOUCH_FILES.txt
new file mode 100644
index 0000000..2bdad06
--- /dev/null
+++ b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/README_DO_NOT_TOUCH_FILES.txt
@@ -0,0 +1,8 @@
+
+# *************************************************************************
+# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
+# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE TO STORE   *** 
+# *** USER AND SYSTEM DATA. EDITING, ADDING, OR DELETING FILES IN THIS  ***
+# *** DIRECTORY WILL CORRUPT THE ASSOCIATED DERBY DATABASE AND MAKE     ***
+# *** IT NON-RECOVERABLE.                                               ***
+# *************************************************************************
\ No newline at end of file
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c10.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c10.dat
new file mode 100644
index 0000000..58fdae2
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c10.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c101.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c101.dat
new file mode 100644
index 0000000..1118178
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c101.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c111.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c111.dat
new file mode 100644
index 0000000..71b1f8d
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c111.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c121.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c121.dat
new file mode 100644
index 0000000..fbf18b9
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c121.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c130.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c130.dat
new file mode 100644
index 0000000..7b2a654
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c130.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c141.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c141.dat
new file mode 100644
index 0000000..3d983c2
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c141.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c150.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c150.dat
new file mode 100644
index 0000000..e2ea576
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c150.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c161.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c161.dat
new file mode 100644
index 0000000..90960e6
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c161.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c171.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c171.dat
new file mode 100644
index 0000000..55d4095
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c171.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c180.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c180.dat
new file mode 100644
index 0000000..53bd1eb
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c180.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c191.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c191.dat
new file mode 100644
index 0000000..aa25052
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c191.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1a1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1a1.dat
new file mode 100644
index 0000000..9d14471
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1a1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1b1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1b1.dat
new file mode 100644
index 0000000..ae562fb
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1b1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1c0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1c0.dat
new file mode 100644
index 0000000..c5b91e2
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1c0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1d1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1d1.dat
new file mode 100644
index 0000000..451f02f
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1d1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1e0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1e0.dat
new file mode 100644
index 0000000..761408d
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1e0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1f1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1f1.dat
new file mode 100644
index 0000000..78d701f
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c1f1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c20.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c20.dat
new file mode 100644
index 0000000..ae1bbe94
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c20.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c200.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c200.dat
new file mode 100644
index 0000000..c3a7808
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c200.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c211.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c211.dat
new file mode 100644
index 0000000..54e1586
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c211.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c221.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c221.dat
new file mode 100644
index 0000000..59900bc
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c221.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c230.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c230.dat
new file mode 100644
index 0000000..16b2db8
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c230.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c241.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c241.dat
new file mode 100644
index 0000000..3d5e31d
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c241.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c251.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c251.dat
new file mode 100644
index 0000000..4b963f1
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c251.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c260.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c260.dat
new file mode 100644
index 0000000..25f81fd
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c260.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c271.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c271.dat
new file mode 100644
index 0000000..51cde57
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c271.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c281.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c281.dat
new file mode 100644
index 0000000..cfed875
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c281.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c290.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c290.dat
new file mode 100644
index 0000000..4d10db4
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c290.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2a1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2a1.dat
new file mode 100644
index 0000000..8e2ed6a
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2a1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2b1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2b1.dat
new file mode 100644
index 0000000..2a29692
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2b1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2c1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2c1.dat
new file mode 100644
index 0000000..5511575
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2c1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2d0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2d0.dat
new file mode 100644
index 0000000..4adc6e4
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2d0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2e1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2e1.dat
new file mode 100644
index 0000000..b37b9b2
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2e1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2f0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2f0.dat
new file mode 100644
index 0000000..d854b4b
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c2f0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c300.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c300.dat
new file mode 100644
index 0000000..2053e01
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c300.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c31.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c31.dat
new file mode 100644
index 0000000..f8c4ecf
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c31.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c311.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c311.dat
new file mode 100644
index 0000000..f60c260
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c311.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c321.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c321.dat
new file mode 100644
index 0000000..a9d7453
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c321.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c331.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c331.dat
new file mode 100644
index 0000000..85ee72b
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c331.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c340.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c340.dat
new file mode 100644
index 0000000..d99b11a
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c340.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c351.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c351.dat
new file mode 100644
index 0000000..f822f4c
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c351.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c361.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c361.dat
new file mode 100644
index 0000000..b5c8f25
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c361.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c371.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c371.dat
new file mode 100644
index 0000000..ad11f01
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c371.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c380.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c380.dat
new file mode 100644
index 0000000..3f593e1
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c380.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c391.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c391.dat
new file mode 100644
index 0000000..dee460e
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c391.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3a1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3a1.dat
new file mode 100644
index 0000000..3790bd8
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3a1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3b1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3b1.dat
new file mode 100644
index 0000000..2ce6c70
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3b1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3c0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3c0.dat
new file mode 100644
index 0000000..4d061cf
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3c0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3d1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3d1.dat
new file mode 100644
index 0000000..45c9fa2
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3d1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3e1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3e1.dat
new file mode 100644
index 0000000..48f53e6
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3e1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3f1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3f1.dat
new file mode 100644
index 0000000..08acdce
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c3f1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c400.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c400.dat
new file mode 100644
index 0000000..1e8976f
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c400.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c41.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c41.dat
new file mode 100644
index 0000000..e1d102a
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c41.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c411.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c411.dat
new file mode 100644
index 0000000..8aba2fb
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c411.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c421.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c421.dat
new file mode 100644
index 0000000..65775ee
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c421.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c430.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c430.dat
new file mode 100644
index 0000000..55c948d
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c430.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c441.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c441.dat
new file mode 100644
index 0000000..3948b2a
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c441.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c451.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c451.dat
new file mode 100644
index 0000000..fe1ab73
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c451.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c461.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c461.dat
new file mode 100644
index 0000000..e6d9854
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c461.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c470.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c470.dat
new file mode 100644
index 0000000..c9f2eb1
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c470.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c481.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c481.dat
new file mode 100644
index 0000000..397b291
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c481.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c490.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c490.dat
new file mode 100644
index 0000000..6b1f5d8
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c490.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c4a0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c4a0.dat
new file mode 100644
index 0000000..6b1f5d8
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c4a0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c51.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c51.dat
new file mode 100644
index 0000000..0c8c56c
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c51.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c60.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c60.dat
new file mode 100644
index 0000000..7efed3a
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c60.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c71.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c71.dat
new file mode 100644
index 0000000..c0b1303
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c71.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c81.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c81.dat
new file mode 100644
index 0000000..799f896
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c81.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c90.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c90.dat
new file mode 100644
index 0000000..a49c8a0
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/c90.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ca1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ca1.dat
new file mode 100644
index 0000000..07f4c4c
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ca1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cb1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cb1.dat
new file mode 100644
index 0000000..e26dcac
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cb1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cc0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cc0.dat
new file mode 100644
index 0000000..2268720
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cc0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cd1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cd1.dat
new file mode 100644
index 0000000..d919a1b
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cd1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ce1.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ce1.dat
new file mode 100644
index 0000000..299e0c4
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/ce1.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cf0.dat b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cf0.dat
new file mode 100644
index 0000000..fb40ee4
Binary files /dev/null and b/data/files/dataconnector_derbydb/db_for_connectortest.db/seg0/cf0.dat differ
diff --git a/data/files/dataconnector_derbydb/db_for_connectortest.db/service.properties b/data/files/dataconnector_derbydb/db_for_connectortest.db/service.properties
new file mode 100644
index 0000000..16ecc5e
--- /dev/null
+++ b/data/files/dataconnector_derbydb/db_for_connectortest.db/service.properties
@@ -0,0 +1,23 @@
+#/private/tmp/db_for_connectortest.db
+# ********************************************************************
+# ***                Please do NOT edit this file.                 ***
+# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. ***
+# ********************************************************************
+#Tue Jun 08 12:05:32 PDT 2021
+SysschemasIndex2Identifier=225
+SyscolumnsIdentifier=144
+SysconglomeratesIndex1Identifier=49
+SysconglomeratesIdentifier=32
+SyscolumnsIndex2Identifier=177
+SysschemasIndex1Identifier=209
+SysconglomeratesIndex3Identifier=81
+SystablesIndex2Identifier=129
+SyscolumnsIndex1Identifier=161
+derby.serviceProtocol=org.apache.derby.database.Database
+SysschemasIdentifier=192
+derby.storage.propertiesId=16
+SysconglomeratesIndex2Identifier=65
+derby.serviceLocale=en_US
+SystablesIdentifier=96
+SystablesIndex1Identifier=113
+#--- last line, don't put anything after this line ---
diff --git a/itests/pom.xml b/itests/pom.xml
index 8dad7a3..6d4584a 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -511,6 +511,7 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
         <executions>
+
           <execution>
             <id>validate testconfiguration.properties</id>
             <phase>generate-sources</phase>
@@ -526,6 +527,20 @@
               </target>
             </configuration>
           </execution>
+          <execution>
+            <id>copy-database</id>
+            <phase>install</phase>
+            <configuration>
+              <tasks>
+                <copy todir="${hive.path.to.root}/itests/qtest/target/db_for_connectortest.db">
+                  <fileset dir="${hive.path.to.root}/data/files/dataconnector_derbydb/db_for_connectortest.db" />
+                </copy>
+              </tasks>
+            </configuration>
+            <goals>
+              <goal>run</goal>
+            </goals>
+          </execution>
         </executions>
       </plugin>
     </plugins>
diff --git a/ql/src/test/queries/clientpositive/dataconnector.q b/ql/src/test/queries/clientpositive/dataconnector.q
index a89c7db..9a23cf4 100644
--- a/ql/src/test/queries/clientpositive/dataconnector.q
+++ b/ql/src/test/queries/clientpositive/dataconnector.q
@@ -24,7 +24,7 @@ SHOW CONNECTORS;
 -- CREATE IF NOT EXISTS already
 CREATE CONNECTOR IF NOT EXISTS derby_test
 TYPE 'derby'
-URL 'jdbc:derby:./target/tmp/junit_metastore_db;create=true'
+URL 'jdbc:derby:./target/db_for_connectortest.db;create=true'
 COMMENT 'test derby connector'
 WITH DCPROPERTIES (
 "hive.sql.dbcp.username"="APP",
@@ -65,6 +65,7 @@ DESCRIBE CONNECTOR extended mysql_test;
 alter connector mysql_test set OWNER USER newuser;
 DESCRIBE CONNECTOR extended mysql_test;
 
+-- drop remote database and connector
 DROP DATABASE db_derby;
 SHOW DATABASES;
 DROP CONNECTOR mysql_test;
diff --git a/ql/src/test/results/clientpositive/llap/dataconnector.q.out b/ql/src/test/results/clientpositive/llap/dataconnector.q.out
index 8b678c2..f37935d 100644
--- a/ql/src/test/results/clientpositive/llap/dataconnector.q.out
+++ b/ql/src/test/results/clientpositive/llap/dataconnector.q.out
@@ -50,7 +50,7 @@ POSTHOOK: type: SHOWDATACONNECTORS
 mysql_test
 PREHOOK: query: CREATE CONNECTOR IF NOT EXISTS derby_test
 TYPE 'derby'
-#### A masked pattern was here ####
+URL 'jdbc:derby:./target/db_for_connectortest.db;create=true'
 COMMENT 'test derby connector'
 WITH DCPROPERTIES (
 "hive.sql.dbcp.username"="APP",
@@ -59,7 +59,7 @@ PREHOOK: type: CREATEDATACONNECTOR
 PREHOOK: Output: connector:derby_test
 POSTHOOK: query: CREATE CONNECTOR IF NOT EXISTS derby_test
 TYPE 'derby'
-#### A masked pattern was here ####
+URL 'jdbc:derby:./target/db_for_connectortest.db;create=true'
 COMMENT 'test derby connector'
 WITH DCPROPERTIES (
 "hive.sql.dbcp.username"="APP",
@@ -138,6 +138,8 @@ PREHOOK: Input: database:db_derby
 POSTHOOK: query: SHOW TABLES
 POSTHOOK: type: SHOWTABLES
 POSTHOOK: Input: database:db_derby
+TESTTABLE1
+TESTTABLE2
 PREHOOK: query: alter connector mysql_test set URL 'jdbc:mysql://nightly1.apache.org:3306/hive2'
 PREHOOK: type: ALTERDATACONNECTOR_
 PREHOOK: Output: connector:mysql_test
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
index 88d34e5..81e6e9e 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
@@ -3719,10 +3719,47 @@ public class HMSHandler extends FacebookBase implements IHMSHandler {
   @Override
   public GetTablesResult get_table_objects_by_name_req(GetTablesRequest req) throws TException {
     String catName = req.isSetCatName() ? req.getCatName() : getDefaultCatalog(conf);
+    if (isDatabaseRemote(req.getDbName())) {
+      return new GetTablesResult(getRemoteTableObjectsInternal(req.getDbName(), req.getTblNames(), req.getTablesPattern()));
+    }
     return new GetTablesResult(getTableObjectsInternal(catName, req.getDbName(),
         req.getTblNames(), req.getCapabilities(), req.getProjectionSpec(), req.getTablesPattern()));
   }
 
+  private List<Table> filterTablesByName(List<Table> tables, List<String> tableNames) {
+    List<Table> filteredTables = new ArrayList<>();
+    for (Table table : tables) {
+      if (tableNames.contains(table.getTableName())) {
+        filteredTables.add(table);
+      }
+    }
+    return filteredTables;
+  }
+
+  private List<Table> getRemoteTableObjectsInternal(String dbname, List<String> tableNames, String pattern) throws MetaException {
+    String[] parsedDbName = parseDbName(dbname, conf);
+    try {
+      // retrieve tables from remote database
+      Database db = get_database_core(parsedDbName[CAT_NAME], parsedDbName[DB_NAME]);
+      List<Table> tables = DataConnectorProviderFactory.getDataConnectorProvider(db).getTables(null);
+
+      // filtered out undesired tables
+      if (tableNames != null) {
+        tables = filterTablesByName(tables, tableNames);
+      }
+
+      // set remote tables' local hive database reference
+      for (Table table : tables) {
+        table.setDbName(dbname);
+      }
+
+      return FilterUtils.filterTablesIfEnabled(isServerFilterEnabled, filterHook, tables);
+    } catch (Exception e) {
+      LOG.warn("Unexpected exception while getting table(s) in remote database " + dbname , e);
+      return new ArrayList<Table>();
+    }
+  }
+
   private List<Table> getTableObjectsInternal(String catName, String dbName,
                                               List<String> tableNames,
                                               ClientCapabilities capabilities,
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java
index 35fda41..c06365e 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java
@@ -53,7 +53,6 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
   private static final String JDBC_OUTPUTFORMAT_CLASS = "org.apache.hive.storage.jdbc.JdbcOutputFormat".intern();
 
   String type = null; // MYSQL, POSTGRES, ORACLE, DERBY, MSSQL, DB2 etc.
-  String driverClassName = null;
   String jdbcUrl = null;
   String username = null;
   String password = null; // TODO convert to byte array
@@ -129,7 +128,32 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
    * @throws MetaException To indicate any failures with executing this API
    * @param regex
    */
-  @Override public abstract List<Table> getTables(String regex) throws MetaException;
+  @Override public List<Table> getTables(String regex) throws MetaException {
+    ResultSet rs = null;
+    try {
+      rs = fetchTablesViaDBMetaData(regex);
+      if (rs != null) {
+        List<Table> tables = new ArrayList<Table>();
+        while(rs.next()) {
+          try {
+            tables.add(getTable(rs.getString(3)));
+          } catch (MetaException e) { /* IGNORE */ }
+        }
+        return tables;
+      }
+    } catch (SQLException sqle) {
+      LOG.warn("Could not retrieve tables from remote datasource, cause:" + sqle.getMessage());
+      throw new MetaException("Error retrieving remote table:" + sqle);
+    } finally {
+      try {
+        if (rs != null) {
+          rs.close();
+          rs = null;
+        }
+      } catch(Exception e) { /* ignore */}
+    }
+    return null;
+  }
 
   /**
    * Returns a list of all table names from the remote database.
@@ -139,7 +163,7 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
   @Override public List<String> getTableNames() throws MetaException {
     ResultSet rs = null;
     try {
-      rs = getConnection().getMetaData().getTables(scoped_db, null, null, new String[] { "TABLE" });
+      rs = fetchTablesViaDBMetaData(null);
       if (rs != null) {
         List<String> tables = new ArrayList<String>();
         while(rs.next()) {
@@ -175,8 +199,7 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
     ResultSet rs = null;
     Table table = null;
     try {
-      // rs = fetchTableMetadata(tableName);
-      rs = fetchTableViaDBMetaData(tableName);
+      rs = fetchColumnsViaDBMetaData(tableName);
       List<FieldSchema> cols = new ArrayList<>();
       while (rs.next()) {
         FieldSchema fs = new FieldSchema();
@@ -219,12 +242,23 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
     }
   }
 
-  private ResultSet fetchTableViaDBMetaData(String tableName) throws SQLException {
+  private ResultSet fetchTablesViaDBMetaData(String regex) throws SQLException {
+    ResultSet rs = null;
+    try {
+      rs = getConnection().getMetaData().getTables(scoped_db, null, regex, new String[] { "TABLE" });
+    } catch (SQLException sqle) {
+      LOG.warn("Could not retrieve tables from JDBC table, cause:" + sqle.getMessage());
+      throw sqle;
+    }
+    return rs;
+  }
+
+  private ResultSet fetchColumnsViaDBMetaData(String tableName) throws SQLException {
     ResultSet rs = null;
     try {
       rs = getConnection().getMetaData().getColumns(scoped_db, null, tableName, null);
     } catch (SQLException sqle) {
-      LOG.warn("Could not retrieve column names from JDBC table, cause:" + sqle.getMessage());
+      LOG.warn("Could not retrieve columns from JDBC table, cause:" + sqle.getMessage());
       throw sqle;
     }
     return rs;
@@ -238,62 +272,62 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto
   protected String getDataType(String mySqlType, int size) {
     switch(mySqlType.toLowerCase())
     {
-    case "char":
-      return ColumnType.CHAR_TYPE_NAME + wrapSize(size);
-    case "varchar":
-    case "tinytext":
-      return ColumnType.VARCHAR_TYPE_NAME + wrapSize(size);
-    case "text":
-    case "mediumtext":
-    case "enum":
-    case "set":
-    case "tsvector":
-    case "tsquery":
-    case "uuid":
-    case "json":
-      return ColumnType.STRING_TYPE_NAME;
-    case "blob":
-    case "mediumblob":
-    case "longblob":
-    case "bytea":
-      return ColumnType.BINARY_TYPE_NAME;
-    case "tinyint":
-      return ColumnType.TINYINT_TYPE_NAME;
-    case "smallint":
-    case "smallserial":
-      return ColumnType.SMALLINT_TYPE_NAME;
-    case "mediumint":
-    case "int":
-    case "serial":
-      return ColumnType.INT_TYPE_NAME;
-    case "bigint":
-    case "bigserial":
-    case "money":
-      return ColumnType.BIGINT_TYPE_NAME;
-    case "float":
-    case "real":
-      return ColumnType.FLOAT_TYPE_NAME;
-    case "double":
-    case "double precision":
-      return ColumnType.DOUBLE_TYPE_NAME;
-    case "decimal":
-    case "numeric":
-      return ColumnType.DECIMAL_TYPE_NAME;
-    case "date":
-      return ColumnType.DATE_TYPE_NAME;
-    case "datetime":
-      return ColumnType.DATETIME_TYPE_NAME;
-    case "timestamp":
-    case "time":
-    case "interval":
-      return ColumnType.TIMESTAMP_TYPE_NAME;
-    case "timestampz":
-    case "timez":
-      return ColumnType.TIMESTAMPTZ_TYPE_NAME;
-    case "boolean":
-      return ColumnType.BOOLEAN_TYPE_NAME;
-    default:
-      return ColumnType.VOID_TYPE_NAME;
+      case "char":
+        return ColumnType.CHAR_TYPE_NAME + wrapSize(size);
+      case "varchar":
+      case "tinytext":
+        return ColumnType.VARCHAR_TYPE_NAME + wrapSize(size);
+      case "text":
+      case "mediumtext":
+      case "enum":
+      case "set":
+      case "tsvector":
+      case "tsquery":
+      case "uuid":
+      case "json":
+        return ColumnType.STRING_TYPE_NAME;
+      case "blob":
+      case "mediumblob":
+      case "longblob":
+      case "bytea":
+        return ColumnType.BINARY_TYPE_NAME;
+      case "tinyint":
+        return ColumnType.TINYINT_TYPE_NAME;
+      case "smallint":
+      case "smallserial":
+        return ColumnType.SMALLINT_TYPE_NAME;
+      case "mediumint":
+      case "int":
+      case "serial":
+        return ColumnType.INT_TYPE_NAME;
+      case "bigint":
+      case "bigserial":
+      case "money":
+        return ColumnType.BIGINT_TYPE_NAME;
+      case "float":
+      case "real":
+        return ColumnType.FLOAT_TYPE_NAME;
+      case "double":
+      case "double precision":
+        return ColumnType.DOUBLE_TYPE_NAME;
+      case "decimal":
+      case "numeric":
+        return ColumnType.DECIMAL_TYPE_NAME;
+      case "date":
+        return ColumnType.DATE_TYPE_NAME;
+      case "datetime":
+        return ColumnType.DATETIME_TYPE_NAME;
+      case "timestamp":
+      case "time":
+      case "interval":
+        return ColumnType.TIMESTAMP_TYPE_NAME;
+      case "timestampz":
+      case "timez":
+        return ColumnType.TIMESTAMPTZ_TYPE_NAME;
+      case "boolean":
+        return ColumnType.BOOLEAN_TYPE_NAME;
+      default:
+        return ColumnType.VOID_TYPE_NAME;
     }
   }
 
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java
index 21c2887..c44bd89 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java
@@ -50,17 +50,6 @@ public class DerbySQLConnectorProvider extends AbstractJDBCConnectorProvider {
      return null;
   }
 
-  /**
-   * Returns Hive Table objects from the remote database for tables that match a name pattern.
-   * @return List A collection of objects that match the name pattern, null otherwise.
-   * @throws MetaException To indicate any failures with executing this API
-   * @param regex
-   */
-  @Override
-  public List<Table> getTables(String regex) throws MetaException {
-    return null;
-  }
-
   protected String getDataType(String dbDataType, int size) {
     String mappedType = super.getDataType(dbDataType, size);
     if (!mappedType.equalsIgnoreCase(ColumnType.VOID_TYPE_NAME)) {
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java
index da89116..15516b8 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java
@@ -38,17 +38,6 @@ public class MySQLConnectorProvider extends AbstractJDBCConnectorProvider {
   }
 
   /**
-   * Returns Hive Table objects from the remote database for tables that match a name pattern.
-   * @return List A collection of objects that match the name pattern, null otherwise.
-   * @throws MetaException To indicate any failures with executing this API
-   * @param regex
-   */
-  @Override public  List<Table> getTables(String regex) throws MetaException {
-    LOG.info("getTables() not implemented yet");
-    return null;
-  }
-
-  /**
    * Fetch a single table with the given name, returns a Hive Table object from the remote database
    * @return Table A Table object for the matching table, null otherwise.
    * @throws MetaException To indicate any failures with executing this API
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java
index 736de46..033ca55 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java
@@ -19,16 +19,6 @@ public class PostgreSQLConnectorProvider extends AbstractJDBCConnectorProvider {
     super(dbName, dataConn, DRIVER_CLASS);
   }
 
-  /**
-   * Returns Hive Table objects from the remote database for tables that match a name pattern.
-   * @return List A collection of objects that match the name pattern, null otherwise.
-   * @throws MetaException To indicate any failures with executing this API
-   * @param regex
-   */
-  @Override public List<Table> getTables(String regex) throws MetaException {
-    return null;
-  }
-
   @Override protected ResultSet fetchTableMetadata(String tableName) throws MetaException {
     ResultSet rs = null;
     try {