You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by jf...@apache.org on 2018/11/16 19:24:54 UTC
[incubator-pinot] 01/01: Fix NPE on configs with per-profile table
types
This is an automated email from the ASF dual-hosted git repository.
jfim pushed a commit to branch fix-npe-on-tables-with-per-profile-table-types
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit 15397a22b1402391f23c483ee1df665470ecbcd2
Author: Jean-Francois Im <je...@gmail.com>
AuthorDate: Thu Nov 15 12:11:23 2018 -0800
Fix NPE on configs with per-profile table types
Fix NPEs on configurations that have per-profile table types, leading to
a merged output that has table-type specific keys for profiles that have
only one table type when other profiles have two table types.
---
.../pinot/common/config/AdjustTableNameChildKeyTransformer.java | 4 +++-
.../common/config/CombinedConfigSeparatorChildKeyTransformer.java | 8 ++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/pinot-common/src/main/java/com/linkedin/pinot/common/config/AdjustTableNameChildKeyTransformer.java b/pinot-common/src/main/java/com/linkedin/pinot/common/config/AdjustTableNameChildKeyTransformer.java
index 7194caa..76a3fbd 100644
--- a/pinot-common/src/main/java/com/linkedin/pinot/common/config/AdjustTableNameChildKeyTransformer.java
+++ b/pinot-common/src/main/java/com/linkedin/pinot/common/config/AdjustTableNameChildKeyTransformer.java
@@ -43,7 +43,9 @@ public class AdjustTableNameChildKeyTransformer implements ChildKeyTransformer {
.getOrElse(List.empty())
.map(Object::toString);
- String tableName = childKeys.get("table.name").map(Object::toString).getOrNull();
+ String tableName = childKeys.get("table.name").map(Object::toString).getOrElse(
+ () -> childKeys.get("table.name.realtime").map(Object::toString).getOrElse(
+ () -> childKeys.get("table.name.offline").map(Object::toString).getOrNull()));
Map<String, Object> remappedConfig = (Map<String, Object>) childKeys;
diff --git a/pinot-common/src/main/java/com/linkedin/pinot/common/config/CombinedConfigSeparatorChildKeyTransformer.java b/pinot-common/src/main/java/com/linkedin/pinot/common/config/CombinedConfigSeparatorChildKeyTransformer.java
index db029e2..f8fef31 100644
--- a/pinot-common/src/main/java/com/linkedin/pinot/common/config/CombinedConfigSeparatorChildKeyTransformer.java
+++ b/pinot-common/src/main/java/com/linkedin/pinot/common/config/CombinedConfigSeparatorChildKeyTransformer.java
@@ -45,6 +45,14 @@ public class CombinedConfigSeparatorChildKeyTransformer implements ChildKeyTrans
// Move keys around so that they match with the combined config
Map<String, Object> remappedConfig = config.flatMap((k, v) -> {
if(k.startsWith("table.schema.")) {
+ // Remove realtime/offline suffixes
+ if (k.endsWith(".realtime")) {
+ k = k.substring(0, k.length() - ".realtime".length());
+ }
+ if (k.endsWith(".offline")) {
+ k = k.substring(0, k.length() - ".offline".length());
+ }
+
// table.schema.foo -> schema.foo
return List.of(Tuple.of(k.replaceFirst("table.schema", "schema"), v));
} else if (k.endsWith(".realtime") && hasRealtime) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org