diff options
author | Alexander Barkov <bar@mariadb.com> | 2022-03-25 07:05:08 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2022-03-25 10:46:59 +0400 |
commit | 6437b304048d0b42e6b2b8f59631ea04bd3c2891 (patch) | |
tree | 97ddaaaf3c467dc829faa153aab5372e62c24a71 /sql/sql_class.h | |
parent | cd88b0831f7bea7e313af7d0bd96b7050f6c9d60 (diff) | |
download | mariadb-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.h | 13 |
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 { |