From 84884fbf7b3ac4daf4197201fbd64f70f04393c0 Mon Sep 17 00:00:00 2001 From: dongwook-chan Date: Tue, 7 Sep 2021 23:19:49 +0900 Subject: [PATCH] Update SQL modes in the comments in statements_event.h Although a list of appropriate references is provided, existing comments may still leave room for confusion. Some sytem variables is reserved with outdated value. The comment is updated to prevent any misunderstanding. --- libbinlogevents/include/statement_events.h | 56 +++++++++++++--------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/libbinlogevents/include/statement_events.h b/libbinlogevents/include/statement_events.h index e4e0888fe0c2..e1220e88760d 100644 --- a/libbinlogevents/include/statement_events.h +++ b/libbinlogevents/include/statement_events.h @@ -191,29 +191,41 @@ const uint64_t INVALID_XID = 0xffffffffffffffffULL; 8 byte bitfield The @c sql_mode variable. See the section "SQL Modes" in the MySQL manual, and see sql_class.h for a list of the possible - flags. Currently (2007-10-04), the following flags are available: + flags. Currently (2021-09-07), the following flags are available:
-    MODE_REAL_AS_FLOAT==0x1
-    MODE_PIPES_AS_CONCAT==0x2
-    MODE_ANSI_QUOTES==0x4
-    MODE_IGNORE_SPACE==0x8
-    MODE_NOT_USED==0x10
-    MODE_ONLY_FULL_GROUP_BY==0x20
-    MODE_NO_UNSIGNED_SUBTRACTION==0x40
-    MODE_NO_DIR_IN_CREATE==0x80
-    MODE_ANSI==0x80000
-    MODE_NO_AUTO_VALUE_ON_ZERO==0x100000
-    MODE_NO_BACKSLASH_ESCAPES==0x200000
-    MODE_STRICT_TRANS_TABLES==0x400000
-    MODE_STRICT_ALL_TABLES==0x800000
-    MODE_NO_ZERO_IN_DATE==0x1000000
-    MODE_NO_ZERO_DATE==0x2000000
-    MODE_INVALID_DATES==0x4000000
-    MODE_ERROR_FOR_DIVISION_BY_ZERO==0x8000000
-    MODE_TRADITIONAL==0x10000000
-    MODE_HIGH_NOT_PRECEDENCE==0x40000000
-    MODE_PAD_CHAR_TO_FULL_LENGTH==0x80000000
-    MODE_TIME_TRUNCATE_FRACTIONAL==0x100000000
+    MODE_REAL_AS_FLOAT=0x00000001
+    MODE_PIPES_AS_CONCAT=0x00000002
+    MODE_ANSI_QUOTES=0x00000004
+    MODE_IGNORE_SPACE=0x00000008
+    MODE_NOT_USED=0x00000010
+    MODE_ONLY_FULL_GROUP_BY=0x00000020
+    MODE_NO_UNSIGNED_SUBTRACTION=0x00000040
+    MODE_NO_DIR_IN_CREATE=0x00000080
+    MODE_POSTGRESQL=0x00000100
+    MODE_ORACLE=0x00000200
+    MODE_MSSQL=0x00000400
+    MODE_DB2=0x00000800
+    MODE_MAXDB=0x00001000
+    MODE_NO_KEY_OPTIONS=0x00002000
+    MODE_NO_TABLE_OPTIONS=0x00004000
+    MODE_NO_FIELD_OPTIONS=0x00008000
+    MODE_MYSQL323=0x00010000
+    MODE_MYSQL40=0x00020000
+    MODE_ANSI=0x00040000
+    MODE_NO_AUTO_VALUE_ON_ZERO=0x00080000
+    MODE_NO_BACKSLASH_ESCAPES=0x00100000
+    MODE_STRICT_TRANS_TABLES=0x00200000
+    MODE_STRICT_ALL_TABLES=0x00400000
+    MODE_NO_ZERO_IN_DATE=0x00800000
+    MODE_NO_ZERO_DATE=0x01000000
+    MODE_INVALID_DATES=0x02000000
+    MODE_ERROR_FOR_DIVISION_BY_ZERO=0x04000000
+    MODE_TRADITIONAL=0x08000000
+    MODE_NO_AUTO_CREATE_USER=0x10000000
+    MODE_HIGH_NOT_PRECEDENCE=0x20000000
+    MODE_NO_ENGINE_SUBSTITUTION=0x40000000
+    MODE_PAD_CHAR_TO_FULL_LENGTH=0x80000000
+    MODE_TIME_TRUNCATE_FRACTIONAL=0x100000000
    
All these flags are replicated from the server. However, all flags except @c MODE_NO_DIR_IN_CREATE are honored by the slave;