Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-20307

Improve the documentation about the temporal table join syntax

    XMLWordPrintableJSON

Details

    Description

      A query like:

      SELECT p.name, p.qty * r.rate AS price, p.`tstamp` FROM Products p JOIN versioned_rates r FOR SYSTEM_TIME AS OF p.`tstamp` ON p.currency = r.currency;
      

      fails with:

      [ERROR] Could not execute SQL statement. Reason:
      org.apache.flink.sql.parser.impl.ParseException: Encountered "FOR" at line 1, column 108.
      Was expecting one of:
          <EOF> 
          "EXCEPT" ...
          "FETCH" ...
          "GROUP" ...
          "HAVING" ...
          "INTERSECT" ...
          "LIMIT" ...
          "OFFSET" ...
          "ON" ...
          "ORDER" ...
          "MINUS" ...
          "TABLESAMPLE" ...
          "UNION" ...
          "USING" ...
          "WHERE" ...
          "WINDOW" ...
          "(" ...
          "NATURAL" ...
          "JOIN" ...
          "INNER" ...
          "LEFT" ...
          "RIGHT" ...
          "FULL" ...
          "CROSS" ...
          "," ...
          "OUTER" ...
      

      When I do not alias the versioned_rates table everything works as expected. Therefore query like just runs:

      SELECT p.name, p.qty * versioned_rates.rate AS price, p.`tstamp` FROM Products p JOIN versioned_rates FOR SYSTEM_TIME AS OF p.`tstamp` ON p.currency = versioned_rates.currency;
      

      Attachments

        Issue Links

          Activity

            People

              danny0405 Danny Chen
              dwysakowicz Dawid Wysakowicz
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: