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

Spider engine does not load in ORACLE mode

Details

    Description

      Spider does not load if the server is running with sql_mode=ORACLE.

      It is true both when the server is started in ORACLE mode and plugin-load-add=ha_spider or when they are set/loaded at runtime.

      I didn't check, but it must have started around the same time as other similar issues, with MDEV-27095 and further fixes.

      bb-10.10-release 04d9a46c41b36b61057741abddf7840962e76893

      [ERROR] SPIDER plugin initialization failed at 'if @win_plugin = 0 then  begin not atomic    declare exit handler for 1041, 1123      replace into mysql.func values        ('spider_direct_sql', 2, 'ha_spider.so', 'function'),        ('spider_bg_direct_sql', 2, 'ha_spider.so', 'aggregate'),        ('spider_ping_table', 2, 'ha_spider.so', 'function'),        ('spider_copy_tables', 2, 'ha_spider.so', 'function'),        ('spider_flush_table_mon_cache', 2, 'ha_spider.so', 'function');    create function if not exists spider_direct_sql returns int      soname 'ha_spider.so';    create aggregate function if not exists spider_bg_direct_sql returns int      soname 'ha_spider.so';    create function if not exists spider_ping_table returns int      soname 'ha_spider.so';    create function if not exists spider_copy_tables returns int      soname 'ha_spider.so';    create function if not exists spider_flush_table_mon_cache returns int      soname 'ha_spider.so';  end;else  begin not atomic    declare exit handler for 1041, 1123      replace into mysql.func values        ('spider_direct_sql', 2, 'ha_spider.dll', 'function'),        ('spider_bg_direct_sql', 2, 'ha_spider.dll', 'aggregate'),        ('spider_ping_table', 2, 'ha_spider.dll', 'function'),        ('spider_copy_tables', 2, 'ha_spider.dll', 'function'),        ('spider_flush_table_mon_cache', 2, 'ha_spider.dll', 'function');    create function if not exists spider_direct_sql returns int      soname 'ha_spider.dll';    create aggregate function if not exists spider_bg_direct_sql returns int      soname 'ha_spider.dll';    create function if not exists spider_ping_table returns int      soname 'ha_spider.dll';    create function if not exists spider_copy_tables returns int      soname 'ha_spider.dll';    create function if not exists spider_flush_table_mon_cache returns int      soname 'ha_spider.dll';  end;end if;' by 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'create function if not exists spider_direct_sql returns int      soname 'ha_s...' at line 1'
      

      Attachments

        Issue Links

          Activity

            ycp Yuchen Pei added a comment - - edited

            Hi holyfoot, ptal thanks:

            bb-10.10-mdev-32753 8b871cd6e11e7ac7df2ea2b8292c1f6528ead346
            MDEV-32753 Make spider init queries compatible with oracle sql mode
             
            When sql_mode contains oracle, declare should be before begin, and
            'not atomic' is not needed.
            

            ycp Yuchen Pei added a comment - - edited Hi holyfoot , ptal thanks: bb-10.10-mdev-32753 8b871cd6e11e7ac7df2ea2b8292c1f6528ead346 MDEV-32753 Make spider init queries compatible with oracle sql mode   When sql_mode contains oracle, declare should be before begin, and 'not atomic' is not needed.
            serg Sergei Golubchik added a comment - - edited

            wouldn't it be simpler to reset MODE_ORACLE bit before executing your init queries?

            serg Sergei Golubchik added a comment - - edited wouldn't it be simpler to reset MODE_ORACLE bit before executing your init queries?
            ycp Yuchen Pei added a comment -

            Good point serg. I updated my patch, holyfoot ptal thanks

            upstream/bb-10.10-mdev-32753 555b7aed68ddb3f0a4cb0d4eb553162a17b7e561
            MDEV-32753 Make spider init queries compatible with oracle sql mode
             
            Remove ORACLE from the (session) sql_mode in connections made with sql
            service to run init queries
             
            The connection is new and the global variable value takes effect
            rather than the session value from the caller of spider_db_init.

            ycp Yuchen Pei added a comment - Good point serg . I updated my patch, holyfoot ptal thanks upstream/bb-10.10-mdev-32753 555b7aed68ddb3f0a4cb0d4eb553162a17b7e561 MDEV-32753 Make spider init queries compatible with oracle sql mode   Remove ORACLE from the (session) sql_mode in connections made with sql service to run init queries   The connection is new and the global variable value takes effect rather than the session value from the caller of spider_db_init.

            ok to push.

            holyfoot Alexey Botchkov added a comment - ok to push.
            ycp Yuchen Pei added a comment -

            Pushed 45fadb64c1c4ad7c71fea874d51c83b1d11b4e63 to 10.11

            ycp Yuchen Pei added a comment - Pushed 45fadb64c1c4ad7c71fea874d51c83b1d11b4e63 to 10.11

            People

              ycp Yuchen Pei
              elenst Elena Stepanova
              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.