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]

Reply via email to