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

Drill fails to query views created before DRILL-6492 when impersonation is enabled

    Details

      Description

      Drill 1.14 changes schemas to be case-insensitive (DRILL-6492). If an existing view was created before (DRILL-6492) was committed, and this view references a file that includes a schema which has upper case letters, the view needs to be rebuilt. There may be variations on this issue that I have not seen.

      To reproduce this problem, create a dfs workspace like this:

          "drillTestDirP1": {
            "location": "/drill/testdata/p1tests",
            "writable": true,
            "defaultInputFormat": "parquet",
            "allowAccessOutsideWorkspace": false
          },
      

      Use Drill commit ddb35ce71837376c7caef28c25327ba556bb32f2 and execute this command:

      create or replace view `dfs.drillTestDirP1`.student_parquet_v as select * from `dfs.drillTestDirP1`.student;
      

      Then use Drill commit ddb35ce71837376c7caef28c25327ba556bb32f2 and execute this query:

      select * from student_test_v;
      

      Drill will return an exception:

      Error: VALIDATION ERROR: Failure while attempting to expand view. Requested schema drillTestDirP1 not available in schema dfs.
      
      View Context dfs, drillTestDirP1
      View SQL SELECT *
      FROM `dfs.drillTestDirP1`.`student`
      
      [Error Id: 3f4594ee-b503-40db-8845-474b0ecb5feb on qa-node211.qa.lab:31010] (state=,code=0)
      

      I have attached the student parquet file I used.

      This is what the .view.drill file looks like:

      {
        "name" : "student_test_v",
        "sql" : "SELECT *\nFROM `dfs.drillTestDirP1`.`student`",
        "fields" : [ {
          "name" : "**",
          "type" : "DYNAMIC_STAR",
          "isNullable" : true
        } ],
        "workspaceSchemaPath" : [ "dfs", "drillTestDirP1" ]
      }
      

      This means that users may not be able to access views that they have created using previous versions of Drill. We should maintain backwards compatibiliity where possible.

      As work-around, these views can be re-created. It would be helpful to users if the error message explains that these views need to be re-created.

        Attachments

        1. student
          63 kB
          Robert Hou

          Issue Links

            Activity

              People

              • Assignee:
                arina Arina Ielchiieva
                Reporter:
                rhou Robert Hou
                Reviewer:
                Volodymyr Vysotskyi
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: