You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by bl...@apache.org on 2019/05/15 22:37:31 UTC

[flink] branch master updated: [FLINK-12436][hive] Differentiate Flink database properties from Hive database properties

This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
     new 83324ec  [FLINK-12436][hive] Differentiate Flink database properties from Hive database properties
83324ec is described below

commit 83324ec7df34f87dd95309a82da470ea7a35d1da
Author: bowen.li <bo...@gmail.com>
AuthorDate: Wed May 15 11:32:53 2019 -0700

    [FLINK-12436][hive] Differentiate Flink database properties from Hive database properties
    
    This PR adds support to differentiate Flink database properties from Hive database properties by using a Flink specific prefix for each property key, similar to how we differentiate Flink table properties from Hive table properties.
    
    This closes #8456.
---
 .../catalog/hive/GenericHiveMetastoreCatalog.java    |  4 ++--
 .../apache/flink/table/catalog/CatalogTestBase.java  | 20 +++++++++++---------
 .../apache/flink/table/catalog/CatalogTestUtil.java  |  1 +
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/catalog/hive/GenericHiveMetastoreCatalog.java b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/catalog/hive/GenericHiveMetastoreCatalog.java
index b5dfb9c..b906e5c 100644
--- a/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/catalog/hive/GenericHiveMetastoreCatalog.java
+++ b/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/catalog/hive/GenericHiveMetastoreCatalog.java
@@ -90,7 +90,7 @@ public class GenericHiveMetastoreCatalog extends HiveCatalogBase {
 	@Override
 	protected CatalogDatabase createCatalogDatabase(Database hiveDatabase) {
 		return new GenericCatalogDatabase(
-			hiveDatabase.getParameters(),
+			retrieveFlinkProperties(hiveDatabase.getParameters()),
 			hiveDatabase.getDescription()
 		);
 	}
@@ -102,7 +102,7 @@ public class GenericHiveMetastoreCatalog extends HiveCatalogBase {
 			catalogDatabase.getComment(),
 			// HDFS location URI which GenericCatalogDatabase shouldn't care
 			null,
-			catalogDatabase.getProperties());
+			maskFlinkProperties(catalogDatabase.getProperties()));
 	}
 
 	// ------ tables and views------
diff --git a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestBase.java b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestBase.java
index 5cd91ce..780251c 100644
--- a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestBase.java
+++ b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestBase.java
@@ -105,9 +105,13 @@ public abstract class CatalogTestBase {
 
 	@Test
 	public void testCreateDb() throws Exception {
-		catalog.createDatabase(db2, createDb(), false);
+		assertFalse(catalog.databaseExists(db1));
+
+		CatalogDatabase cd = createDb();
+		catalog.createDatabase(db1, cd, false);
 
-		assertEquals(2, catalog.listDatabases().size());
+		assertTrue(catalog.databaseExists(db1));
+		CatalogTestUtil.checkEquals(cd, catalog.getDatabase(db1));
 	}
 
 	@Test
@@ -125,13 +129,13 @@ public abstract class CatalogTestBase {
 		catalog.createDatabase(db1, cd1, false);
 		List<String> dbs = catalog.listDatabases();
 
-		assertTrue(catalog.getDatabase(db1).getProperties().entrySet().containsAll(cd1.getProperties().entrySet()));
+		CatalogTestUtil.checkEquals(cd1, catalog.getDatabase(db1));
 		assertEquals(2, dbs.size());
 		assertEquals(new HashSet<>(Arrays.asList(db1, catalog.getDefaultDatabase())), new HashSet<>(dbs));
 
 		catalog.createDatabase(db1, createAnotherDb(), true);
 
-		assertTrue(catalog.getDatabase(db1).getProperties().entrySet().containsAll(cd1.getProperties().entrySet()));
+		CatalogTestUtil.checkEquals(cd1, catalog.getDatabase(db1));
 		assertEquals(2, dbs.size());
 		assertEquals(new HashSet<>(Arrays.asList(db1, catalog.getDefaultDatabase())), new HashSet<>(dbs));
 	}
@@ -147,11 +151,11 @@ public abstract class CatalogTestBase {
 	public void testDropDb() throws Exception {
 		catalog.createDatabase(db1, createDb(), false);
 
-		assertTrue(catalog.listDatabases().contains(db1));
+		assertTrue(catalog.databaseExists(db1));
 
 		catalog.dropDatabase(db1, false);
 
-		assertFalse(catalog.listDatabases().contains(db1));
+		assertFalse(catalog.databaseExists(db1));
 	}
 
 	@Test
@@ -181,13 +185,11 @@ public abstract class CatalogTestBase {
 		CatalogDatabase db = createDb();
 		catalog.createDatabase(db1, db, false);
 
-		assertTrue(catalog.getDatabase(db1).getProperties().entrySet().containsAll(db.getProperties().entrySet()));
-
 		CatalogDatabase newDb = createAnotherDb();
 		catalog.alterDatabase(db1, newDb, false);
 
 		assertFalse(catalog.getDatabase(db1).getProperties().entrySet().containsAll(db.getProperties().entrySet()));
-		assertTrue(catalog.getDatabase(db1).getProperties().entrySet().containsAll(newDb.getProperties().entrySet()));
+		CatalogTestUtil.checkEquals(newDb, catalog.getDatabase(db1));
 	}
 
 	@Test
diff --git a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestUtil.java b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestUtil.java
index 4a66e3f..f080bdb 100644
--- a/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestUtil.java
+++ b/flink-table/flink-table-common/src/test/java/org/apache/flink/table/catalog/CatalogTestUtil.java
@@ -46,6 +46,7 @@ public class CatalogTestUtil {
 	}
 
 	public static void checkEquals(CatalogDatabase d1, CatalogDatabase d2) {
+		assertEquals(d1.getComment(), d2.getComment());
 		assertEquals(d1.getProperties(), d2.getProperties());
 	}