Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-3463

Unit test of project pushdown in TestUnionAll should put more precisely plan attribute in plan verification.

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      As part of fix for DRILL-2802, it was discovered that several unit test cases for project pushdown in TestUnionAll did not put the desired plan attributes in to the expected plan result.

      To verify project pushdown is working properly, one simple way is to verify that the the column list in the Scan operator contains the desired columns. This should be the part of plan verification. However, the unit test cases in TestUnionAll did not do that. In stead, it tries to match a pattern of "Project – Scan", which seems not serving the purpose it desired.

      For instance,

          final String[] expectedPlan = {"UnionAll.*\n." +
              "*Project.*\n" +
                  ".*Scan.*\n" +
      

      should be replaced by

           final String[] expectedPlan = {"UnionAll.*\n." +
               "*Project.*\n" +
                  ".*Scan.*columns=\\[`n_comment`, `n_nationkey`, `n_name`\\].*\n" 
      

      if we want to verify the column 'n_comment', 'n_nationkey', 'n_name' are pushed into Scan operator.

      To fix this, modify the expected plan result, such that it contains the plan attributes that should be able to verify whether the project pushdown is working or not.

      This will help catch project pushdown failure, and avoid causing more false alarm in plan verification.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            jni Jinfeng Ni
            jni Jinfeng Ni
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment