Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-19328

sql_mode=ORACLE: Package function in VIEW

Details

    Description

      There is an error when executing query with view, which uses package function.

      delimiter $$
      set sql_mode=ORACLE;
      $$
      CREATE or replace PACKAGE test1
      AS
      	function f_test return number;
      END test1;
      $$
      CREATE or replace PACKAGE body test1
      AS
        function f_test return number
        is
        begin
      	return 1;  
        end;
      END test1;
      $$
      create or replace view v_test
      as
      select 1 where 1=test1.f_test();
      $$
      select * from v_test;
      $$
      

      Produces error:

      SQL Error [1356] [HY000]: (conn:20) View 'test.v_test' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
      

      And there is no error when using standalone function, not package function:

      delimiter $$
      create or replace function f_test return number
      is
      begin
        return 1;  
      end;
      $$
      create or replace view v_test
      as
      select 1 where 1=f_test();
      $$
      select * from v_test;
      $$
      

      produces no error.

      Attachments

        Issue Links

          Activity

            alice Alice Sherepa added a comment -

            Thanks for the report! Repeatable with 10.3,10.4

            MariaDB [test]> SELECT test1.f_test() FROM DUAL;
            +----------------+
            | test1.f_test() |
            +----------------+
            |              1 |
            +----------------+
            1 row in set (0.005 sec)
             
            MariaDB [test]> create view v1 as SELECT test1.f_test() FROM DUAL;
            Query OK, 0 rows affected (0.009 sec)
             
            MariaDB [test]> select * from v1;
            ERROR 1356 (HY000): View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
            Error (Code 1305): FUNCTION test.test1.f_test does not exist
            Error (Code 1356): View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
            

            query=select `test`.`test1.f_test`() AS `test1.f_test()`
            

            alice Alice Sherepa added a comment - Thanks for the report! Repeatable with 10.3,10.4 MariaDB [test]> SELECT test1.f_test() FROM DUAL; +----------------+ | test1.f_test() | +----------------+ | 1 | +----------------+ 1 row in set (0.005 sec)   MariaDB [test]> create view v1 as SELECT test1.f_test() FROM DUAL; Query OK, 0 rows affected (0.009 sec)   MariaDB [test]> select * from v1; ERROR 1356 (HY000): View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them Error (Code 1305): FUNCTION test.test1.f_test does not exist Error (Code 1356): View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them query=select `test`.`test1.f_test`() AS `test1.f_test()`
            piccoloj Alessandro added a comment -

            "bug"
            "major"
            "confirmed"
            "unresolved"

            Last update 2021...

            piccoloj Alessandro added a comment - "bug" "major" "confirmed" "unresolved" Last update 2021...

            People

              bar Alexander Barkov
              ward3r Yuriy Kuleshov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.