MartijnVisser commented on code in PR #29200:
URL: https://github.com/apache/flink/pull/29200#discussion_r4053480063


##########
flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/plan/nodes/physical/common/CommonPhysicalLookupJoin.scala:
##########
@@ -187,14 +187,18 @@ abstract class CommonPhysicalLookupJoin(
       case None =>
         resultFieldNames.mkString(", ")
     }
-    val tableIdentifier: ObjectIdentifier = temporalTable match {
-      case t: TableSourceTable => t.contextResolvedTable.getIdentifier
-      case t: LegacyTableSourceTable[_] => t.tableIdentifier
+    // Two lookup joins on the same table with different push-downs are 
different operators. The
+    // scan gets the spec digests from RelOptTable#getQualifiedName; the 
lookup join has to add them.
+    val tableDigest: String = temporalTable match {
+      case t: TableSourceTable =>
+        val specDigests = 
t.getSpecDigests.asScala.toSeq.filterNot(_.endsWith("=[]"))
+        (t.contextResolvedTable.getIdentifier.asSummaryString +: 
specDigests).mkString(", ")

Review Comment:
   I've reverted it, the empty specs are back in. That's what the scan renders 
too, so the lookup join now shows exactly what `getQualifiedName` gives the 
scan.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to