summaryrefslogtreecommitdiff
path: root/sql/sql_priv.h
diff options
context:
space:
mode:
authorEugene Kosov <claprix@yandex.ru>2019-06-14 12:18:49 +0300
committerEugene Kosov <claprix@yandex.ru>2019-06-22 14:09:12 +0300
commit854c219a7f0e1878517d5a821992f650342380dd (patch)
tree440110d59938760ecf3fe47f9298967c1805e873 /sql/sql_priv.h
parent72d3676fe5608d29c1200386de8a2ef4ecfe15b3 (diff)
downloadmariadb-git-854c219a7f0e1878517d5a821992f650342380dd.tar.gz
MDEV-17301 Change of COLLATE unnecessarily requires ALGORITHM=COPY
Patch is about two cases: 1) On some collate changes it's possible to rebuild only secondary indexes 2) For non-indexed columns collate can be changed INSTANTly Implemented mostly in Field_{string,varstring,blob}::is_equal(). Make this method return how exactly collationa differs. This information is later used by fill_alter_inplace_info() to pass correct info to engine.
Diffstat (limited to 'sql/sql_priv.h')
-rw-r--r--sql/sql_priv.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_priv.h b/sql/sql_priv.h
index 0d1c9881c17..0b06985f431 100644
--- a/sql/sql_priv.h
+++ b/sql/sql_priv.h
@@ -354,6 +354,14 @@
data dictionary without changing table rows
*/
#define IS_EQUAL_PACK_LENGTH 2
+/**
+ charsets are the same or compatible, collates are the same, the rest is equal
+*/
+#define IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET 3
+/**
+ charsets are the same or compatible, collates are different, the rest is equal
+*/
+#define IS_EQUAL_WITH_REINTERPRET_COMPATIBLE_CHARSET_BUT_COLLATE 4
enum enum_parsing_place
{