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

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

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

        Activity

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

          People

            arina Arina Ielchiieva
            rhou Robert Hou
            Vova Vysotskyi Vova Vysotskyi
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment