This is an automated email from the ASF dual-hosted git repository.
abhishekrb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 6d7d2ffa63a Add interface method for returning canonical lookup name
(#16557)
6d7d2ffa63a is described below
commit 6d7d2ffa63a9e90931192dd639603a6cb8ec1c7c
Author: Akshat Jain <[email protected]>
AuthorDate: Thu Jun 6 03:03:18 2024 +0530
Add interface method for returning canonical lookup name (#16557)
* Add interface method for returning canonical lookup name
* Address review comment
* Add test in LookupReferencesManagerTest for coverage check
* Add test in LookupSerdeModuleTest for coverage check
---
.../java/org/apache/druid/benchmark/JoinAndLookupBenchmark.java | 6 ++++++
.../query/lookup/LookupExtractorFactoryContainerProvider.java | 5 +++++
.../org/apache/druid/query/expression/LookupExprMacroTest.java | 6 ++++++
.../org/apache/druid/query/lookup/LookupReferencesManager.java | 6 ++++++
.../java/org/apache/druid/query/lookup/LookupSerdeModule.java | 6 ++++++
.../druid/query/expression/LookupEnabledTestExprMacroTable.java | 6 ++++++
.../apache/druid/query/lookup/LookupReferencesManagerTest.java | 7 +++++++
.../java/org/apache/druid/query/lookup/LookupSerdeModuleTest.java | 8 ++++++++
.../java/org/apache/druid/segment/LookupSegmentWranglerTest.java | 6 ++++++
.../org/apache/druid/segment/join/LookupJoinableFactoryTest.java | 6 ++++++
.../apache/druid/server/SpecificSegmentsQuerySegmentWalker.java | 6 ++++++
.../org/apache/druid/server/AsyncQueryForwardingServletTest.java | 6 ++++++
.../calcite/expression/builtin/QueryLookupOperatorConversion.java | 2 +-
.../org/apache/druid/sql/calcite/util/TestLookupProvider.java | 6 ++++++
14 files changed, 81 insertions(+), 1 deletion(-)
diff --git
a/benchmarks/src/test/java/org/apache/druid/benchmark/JoinAndLookupBenchmark.java
b/benchmarks/src/test/java/org/apache/druid/benchmark/JoinAndLookupBenchmark.java
index 7ac9931da48..ba07091fe5a 100644
---
a/benchmarks/src/test/java/org/apache/druid/benchmark/JoinAndLookupBenchmark.java
+++
b/benchmarks/src/test/java/org/apache/druid/benchmark/JoinAndLookupBenchmark.java
@@ -305,6 +305,12 @@ public class JoinAndLookupBenchmark
return Optional.empty();
}
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
)
)
diff --git
a/processing/src/main/java/org/apache/druid/query/lookup/LookupExtractorFactoryContainerProvider.java
b/processing/src/main/java/org/apache/druid/query/lookup/LookupExtractorFactoryContainerProvider.java
index 1a61520903b..35036ec9dbc 100644
---
a/processing/src/main/java/org/apache/druid/query/lookup/LookupExtractorFactoryContainerProvider.java
+++
b/processing/src/main/java/org/apache/druid/query/lookup/LookupExtractorFactoryContainerProvider.java
@@ -40,4 +40,9 @@ public interface LookupExtractorFactoryContainerProvider
* Returns a lookup container for the provided lookupName, if it exists.
*/
Optional<LookupExtractorFactoryContainer> get(String lookupName);
+
+ /**
+ * Returns the canonical lookup name from a given lookup name, if special
syntax exists.
+ */
+ String getCanonicalLookupName(String lookupName);
}
diff --git
a/processing/src/test/java/org/apache/druid/query/expression/LookupExprMacroTest.java
b/processing/src/test/java/org/apache/druid/query/expression/LookupExprMacroTest.java
index 4db01921046..cef936729e7 100644
---
a/processing/src/test/java/org/apache/druid/query/expression/LookupExprMacroTest.java
+++
b/processing/src/test/java/org/apache/druid/query/expression/LookupExprMacroTest.java
@@ -53,6 +53,12 @@ public class LookupExprMacroTest extends MacroTestBase
{
return Optional.empty();
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
})
);
}
diff --git
a/server/src/main/java/org/apache/druid/query/lookup/LookupReferencesManager.java
b/server/src/main/java/org/apache/druid/query/lookup/LookupReferencesManager.java
index 32b7589dbba..23e6ec48b8f 100644
---
a/server/src/main/java/org/apache/druid/query/lookup/LookupReferencesManager.java
+++
b/server/src/main/java/org/apache/druid/query/lookup/LookupReferencesManager.java
@@ -332,6 +332,12 @@ public class LookupReferencesManager implements
LookupExtractorFactoryContainerP
return stateRef.get().lookupMap.keySet();
}
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
+
// Note that this should ensure that "toLoad" and "toDrop" are disjoint.
LookupsState<LookupExtractorFactoryContainer> getAllLookupsState()
{
diff --git
a/server/src/main/java/org/apache/druid/query/lookup/LookupSerdeModule.java
b/server/src/main/java/org/apache/druid/query/lookup/LookupSerdeModule.java
index d8a981b8db4..e0d9278e4b1 100644
--- a/server/src/main/java/org/apache/druid/query/lookup/LookupSerdeModule.java
+++ b/server/src/main/java/org/apache/druid/query/lookup/LookupSerdeModule.java
@@ -79,5 +79,11 @@ public class LookupSerdeModule implements DruidModule
{
return Optional.empty();
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
}
diff --git
a/server/src/test/java/org/apache/druid/query/expression/LookupEnabledTestExprMacroTable.java
b/server/src/test/java/org/apache/druid/query/expression/LookupEnabledTestExprMacroTable.java
index fe40b9c5b73..24885e2daf5 100644
---
a/server/src/test/java/org/apache/druid/query/expression/LookupEnabledTestExprMacroTable.java
+++
b/server/src/test/java/org/apache/druid/query/expression/LookupEnabledTestExprMacroTable.java
@@ -95,6 +95,12 @@ public class LookupEnabledTestExprMacroTable extends
ExprMacroTable
return Optional.empty();
}
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
};
}
diff --git
a/server/src/test/java/org/apache/druid/query/lookup/LookupReferencesManagerTest.java
b/server/src/test/java/org/apache/druid/query/lookup/LookupReferencesManagerTest.java
index 442a2b478f5..992c8202209 100644
---
a/server/src/test/java/org/apache/druid/query/lookup/LookupReferencesManagerTest.java
+++
b/server/src/test/java/org/apache/druid/query/lookup/LookupReferencesManagerTest.java
@@ -579,6 +579,13 @@ public class LookupReferencesManagerTest
);
}
+ @Test
+ public void testGetCanonicalLookupName()
+ {
+ String lookupName = "lookupName1";
+ Assert.assertEquals(lookupName,
lookupReferencesManager.getCanonicalLookupName(lookupName));
+ }
+
@Test
public void testGetAllLookupsState() throws Exception
{
diff --git
a/server/src/test/java/org/apache/druid/query/lookup/LookupSerdeModuleTest.java
b/server/src/test/java/org/apache/druid/query/lookup/LookupSerdeModuleTest.java
index dfa98534fed..297870af373 100644
---
a/server/src/test/java/org/apache/druid/query/lookup/LookupSerdeModuleTest.java
+++
b/server/src/test/java/org/apache/druid/query/lookup/LookupSerdeModuleTest.java
@@ -117,4 +117,12 @@ public class LookupSerdeModuleTest
objectMapper.readValue(objectMapper.writeValueAsBytes(transform),
ExpressionTransform.class)
);
}
+
+ @Test
+ public void testGetCanonicalLookupName()
+ {
+ LookupExtractorFactoryContainerProvider instance =
injector.getInstance(LookupExtractorFactoryContainerProvider.class);
+ String lookupName = "lookupName1";
+ Assert.assertEquals(lookupName,
instance.getCanonicalLookupName(lookupName));
+ }
}
diff --git
a/server/src/test/java/org/apache/druid/segment/LookupSegmentWranglerTest.java
b/server/src/test/java/org/apache/druid/segment/LookupSegmentWranglerTest.java
index 228b17c4b67..9d8e2653cef 100644
---
a/server/src/test/java/org/apache/druid/segment/LookupSegmentWranglerTest.java
+++
b/server/src/test/java/org/apache/druid/segment/LookupSegmentWranglerTest.java
@@ -67,6 +67,12 @@ public class LookupSegmentWranglerTest
return Optional.empty();
}
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
);
diff --git
a/server/src/test/java/org/apache/druid/segment/join/LookupJoinableFactoryTest.java
b/server/src/test/java/org/apache/druid/segment/join/LookupJoinableFactoryTest.java
index 6e0e737db9e..160cf74f965 100644
---
a/server/src/test/java/org/apache/druid/segment/join/LookupJoinableFactoryTest.java
+++
b/server/src/test/java/org/apache/druid/segment/join/LookupJoinableFactoryTest.java
@@ -79,6 +79,12 @@ public class LookupJoinableFactoryTest
return Optional.empty();
}
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
);
}
diff --git
a/server/src/test/java/org/apache/druid/server/SpecificSegmentsQuerySegmentWalker.java
b/server/src/test/java/org/apache/druid/server/SpecificSegmentsQuerySegmentWalker.java
index 4f70f01cf54..d9301f28cc0 100644
---
a/server/src/test/java/org/apache/druid/server/SpecificSegmentsQuerySegmentWalker.java
+++
b/server/src/test/java/org/apache/druid/server/SpecificSegmentsQuerySegmentWalker.java
@@ -89,6 +89,12 @@ public class SpecificSegmentsQuerySegmentWalker implements
QuerySegmentWalker, C
{
return Optional.empty();
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
};
public static SpecificSegmentsQuerySegmentWalker createWalker(
diff --git
a/services/src/test/java/org/apache/druid/server/AsyncQueryForwardingServletTest.java
b/services/src/test/java/org/apache/druid/server/AsyncQueryForwardingServletTest.java
index 29831f3c430..11d734bec29 100644
---
a/services/src/test/java/org/apache/druid/server/AsyncQueryForwardingServletTest.java
+++
b/services/src/test/java/org/apache/druid/server/AsyncQueryForwardingServletTest.java
@@ -481,6 +481,12 @@ public class AsyncQueryForwardingServletTest extends
BaseJettyTest
{
return Optional.empty();
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
final TimeseriesQuery query =
diff --git
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/QueryLookupOperatorConversion.java
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/QueryLookupOperatorConversion.java
index 8947bd60a01..af4ecd9426d 100644
---
a/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/QueryLookupOperatorConversion.java
+++
b/sql/src/main/java/org/apache/druid/sql/calcite/expression/builtin/QueryLookupOperatorConversion.java
@@ -84,7 +84,7 @@ public class QueryLookupOperatorConversion implements
SqlOperatorConversion
final String lookupName = (String) lookupNameExpr.getLiteralValue();
// Add the lookup name to the set of lookups to selectively load.
- plannerContext.addLookupToLoad(lookupName);
+
plannerContext.addLookupToLoad(lookupExtractorFactoryContainerProvider.getCanonicalLookupName(lookupName));
if (arg.isSimpleExtraction() && lookupNameExpr.isLiteral()) {
return arg.getSimpleExtraction().cascade(
diff --git
a/sql/src/test/java/org/apache/druid/sql/calcite/util/TestLookupProvider.java
b/sql/src/test/java/org/apache/druid/sql/calcite/util/TestLookupProvider.java
index f4f8bd14560..2fbfad5d82e 100644
---
a/sql/src/test/java/org/apache/druid/sql/calcite/util/TestLookupProvider.java
+++
b/sql/src/test/java/org/apache/druid/sql/calcite/util/TestLookupProvider.java
@@ -55,4 +55,10 @@ public class TestLookupProvider implements
LookupExtractorFactoryContainerProvid
return Optional.empty();
}
}
+
+ @Override
+ public String getCanonicalLookupName(String lookupName)
+ {
+ return lookupName;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]