Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-4209

In RelBuilder, add an option to not simplify LIMIT 0 to an empty relation

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.26.0
    • Component/s: None

      Description

      When you call relBuilder.limit(0, 0) it triggers a call to RelBuilder.empty here.

      This is fine as the default behavior, but for cases where we intend to convert the relational algebra to SQL and display it somewhere, it would be preferable to turn this behavior off, either as an extra flag to this method or a configuration parameter. The call to empty() often results in a VALUES or a select list of literal NULLs, which looks ugly and can confuse a user.

      Moreover, there are certain databases (like BigQuery) that can cheaply handle a LIMIT 0 query as a form of validation, and if we munge the query with 'empty()' we lose the ability to validate its correctness by going to the DB.

        Attachments

          Activity

            People

            • Assignee:
              julianhyde Julian Hyde
              Reporter:
              swtalbot Steven Talbot

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 40m
                40m

                  Issue deployment