xuyang created FLINK-34034:
------------------------------

             Summary: When kv hint and list hint handle duplicate query hints, 
the results are different.
                 Key: FLINK-34034
                 URL: https://issues.apache.org/jira/browse/FLINK-34034
             Project: Flink
          Issue Type: Bug
            Reporter: xuyang


When there are duplicate keys in the kv hint, calcite will overwrite the 
previous value with the later value.
{code:java}
@TestTemplate
def test(): Unit = {
  val sql =
    "SELECT /*+ LOOKUP('table'='D', 'retry-predicate'='lookup_miss', 
'retry-strategy'='fixed_delay', 'fixed-delay'='10s','max-attempts'='3', 
'max-attempts'='4') */ * FROM MyTable AS T JOIN LookupTable " +
      "FOR SYSTEM_TIME AS OF T.proctime AS D ON T.a = D.id"
  util.verifyExecPlan(sql)
} {code}
{code:java}
Calc(select=[a, b, c, PROCTIME_MATERIALIZE(proctime) AS proctime, rowtime, id, 
name, age]) 
  +- LookupJoin(table=[default_catalog.default_database.LookupTable], 
joinType=[InnerJoin], lookup=[id=a], select=[a, b, c, proctime, rowtime, id, 
name, age], retry=[lookup_miss, FIXED_DELAY, 10000ms, 4]) 
    +- DataStreamScan(table=[[default_catalog, default_database, MyTable]], 
fields=[a, b, c, proctime, rowtime])
{code}
But when a list hint is duplicated (such as a join hint), we will choose the 
first one as the effective hint.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to