summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2022-03-25 07:05:08 +0400
committerAlexander Barkov <bar@mariadb.com>2022-03-25 10:46:59 +0400
commit6437b304048d0b42e6b2b8f59631ea04bd3c2891 (patch)
tree97ddaaaf3c467dc829faa153aab5372e62c24a71 /sql/sql_class.h
parentcd88b0831f7bea7e313af7d0bd96b7050f6c9d60 (diff)
downloadmariadb-git-6437b304048d0b42e6b2b8f59631ea04bd3c2891.tar.gz
MDEV-28166 sql_mode=ORACLE: fully qualified package function calls do not work: db.pkg.func()
Also fixes MDEV-19328 sql_mode=ORACLE: Package function in VIEW
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 311b47aea61..637e16c991b 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -6680,6 +6680,19 @@ public:
}
void copy(MEM_ROOT *mem_root, const LEX_CSTRING &db,
const LEX_CSTRING &name);
+
+ static Database_qualified_name split(const LEX_CSTRING &txt)
+ {
+ DBUG_ASSERT(txt.str[txt.length] == '\0'); // Expect 0-terminated input
+ const char *dot= strchr(txt.str, '.');
+ if (!dot)
+ return Database_qualified_name(NULL, 0, txt.str, txt.length);
+ size_t dblen= dot - txt.str;
+ Lex_cstring db(txt.str, dblen);
+ Lex_cstring name(txt.str + dblen + 1, txt.length - dblen - 1);
+ return Database_qualified_name(db, name);
+ }
+
// Export db and name as a qualified name string: 'db.name'
size_t make_qname(char *dst, size_t dstlen) const
{