/* * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2.0, * as published by the Free Software Foundation. * * This program is also distributed with certain software (including * but not limited to OpenSSL) that is licensed under separate terms, * as designated in a particular file or component or in included license * documentation. The authors of MySQL hereby grant you an additional * permission to link the program and your derivative works with the * separately licensed software that they have included with MySQL. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License, version 2.0, for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** @page mysqlx_protocol_xplugin Implementation of the X %Protocol by the X Plugin Topics in this section: - @ref xplugin_Mysqlx_Sql_StmtExecute - @ref xplugin_Collations The X Plugin implements the X %Protocol for the MySQL Server. Mysqlx.Sql::StmtExecute {#xplugin_Mysqlx_Sql_StmtExecute} ======================= @ref Mysqlx_Sql_StmtExecute "@c StmtExecute " implements several namespaces: @par ``sql`` The SQL interface which expects: - ``.stmt`` to be a string that the MySQL SQL parser understands @note As the SQL parser for non prepared statements doesn't understand wildcards, setting ``.args`` will result in an error. @par ``xplugin`` The ``xplugin``-plugin has internal commands: - ``.stmt`` is the name of the internal command - ``.args`` replaces wild-cards in ``.stmt`` if any exist Collations {#xplugin_Collations} ========== The X Plugin defines a mapping from ``collation_id`` as used in: - @ref Mysqlx_Resultset_ColumnMetaData "@c ColumnMetaData " - @ref Mysqlx_Datatypes_Scalar "@c Scalar " to character sets and collations: | id | character_set_name | collation_name | |-------|--------------------|---------------------------| | 1 | big5 | big5_chinese_ci | | 2 | latin2 | latin2_czech_cs | | 3 | dec8 | dec8_swedish_ci | | 4 | cp850 | cp850_general_ci | | 5 | latin1 | latin1_german1_ci | | 6 | hp8 | hp8_english_ci | | 7 | koi8r | koi8r_general_ci | | 8 | latin1 | latin1_swedish_ci | | 9 | latin2 | latin2_general_ci | | 10 | swe7 | swe7_swedish_ci | | 11 | ascii | ascii_general_ci | | 12 | ujis | ujis_japanese_ci | | 13 | sjis | sjis_japanese_ci | | 14 | cp1251 | cp1251_bulgarian_ci | | 15 | latin1 | latin1_danish_ci | | 16 | hebrew | hebrew_general_ci | | 18 | tis620 | tis620_thai_ci | | 19 | euckr | euckr_korean_ci | | 20 | latin7 | latin7_estonian_cs | | 21 | latin2 | latin2_hungarian_ci | | 22 | koi8u | koi8u_general_ci | | 23 | cp1251 | cp1251_ukrainian_ci | | 24 | gb2312 | gb2312_chinese_ci | | 25 | greek | greek_general_ci | | 26 | cp1250 | cp1250_general_ci | | 27 | latin2 | latin2_croatian_ci | | 28 | gbk | gbk_chinese_ci | | 29 | cp1257 | cp1257_lithuanian_ci | | 30 | latin5 | latin5_turkish_ci | | 31 | latin1 | latin1_german2_ci | | 32 | armscii8 | armscii8_general_ci | | 33 | utf8 | utf8_general_ci | | 34 | cp1250 | cp1250_czech_cs | | 35 | ucs2 | ucs2_general_ci | | 36 | cp866 | cp866_general_ci | | 37 | keybcs2 | keybcs2_general_ci | | 38 | macce | macce_general_ci | | 39 | macroman | macroman_general_ci | | 40 | cp852 | cp852_general_ci | | 41 | latin7 | latin7_general_ci | | 42 | latin7 | latin7_general_cs | | 43 | macce | macce_bin | | 44 | cp1250 | cp1250_croatian_ci | | 45 | utf8mb4 | utf8mb4_general_ci | | 46 | utf8mb4 | utf8mb4_bin | | 47 | latin1 | latin1_bin | | 48 | latin1 | latin1_general_ci | | 49 | latin1 | latin1_general_cs | | 50 | cp1251 | cp1251_bin | | 51 | cp1251 | cp1251_general_ci | | 52 | cp1251 | cp1251_general_cs | | 53 | macroman | macroman_bin | | 54 | utf16 | utf16_general_ci | | 55 | utf16 | utf16_bin | | 56 | utf16le | utf16le_general_ci | | 57 | cp1256 | cp1256_general_ci | | 58 | cp1257 | cp1257_bin | | 59 | cp1257 | cp1257_general_ci | | 60 | utf32 | utf32_general_ci | | 61 | utf32 | utf32_bin | | 62 | utf16le | utf16le_bin | | 63 | binary | binary | | 64 | armscii8 | armscii8_bin | | 65 | ascii | ascii_bin | | 66 | cp1250 | cp1250_bin | | 67 | cp1256 | cp1256_bin | | 68 | cp866 | cp866_bin | | 69 | dec8 | dec8_bin | | 70 | greek | greek_bin | | 71 | hebrew | hebrew_bin | | 72 | hp8 | hp8_bin | | 73 | keybcs2 | keybcs2_bin | | 74 | koi8r | koi8r_bin | | 75 | koi8u | koi8u_bin | | 77 | latin2 | latin2_bin | | 78 | latin5 | latin5_bin | | 79 | latin7 | latin7_bin | | 80 | cp850 | cp850_bin | | 81 | cp852 | cp852_bin | | 82 | swe7 | swe7_bin | | 83 | utf8 | utf8_bin | | 84 | big5 | big5_bin | | 85 | euckr | euckr_bin | | 86 | gb2312 | gb2312_bin | | 87 | gbk | gbk_bin | | 88 | sjis | sjis_bin | | 89 | tis620 | tis620_bin | | 90 | ucs2 | ucs2_bin | | 91 | ujis | ujis_bin | | 92 | geostd8 | geostd8_general_ci | | 93 | geostd8 | geostd8_bin | | 94 | latin1 | latin1_spanish_ci | | 95 | cp932 | cp932_japanese_ci | | 96 | cp932 | cp932_bin | | 97 | eucjpms | eucjpms_japanese_ci | | 98 | eucjpms | eucjpms_bin | | 99 | cp1250 | cp1250_polish_ci | | 101 | utf16 | utf16_unicode_ci | | 102 | utf16 | utf16_icelandic_ci | | 103 | utf16 | utf16_latvian_ci | | 104 | utf16 | utf16_romanian_ci | | 105 | utf16 | utf16_slovenian_ci | | 106 | utf16 | utf16_polish_ci | | 107 | utf16 | utf16_estonian_ci | | 108 | utf16 | utf16_spanish_ci | | 109 | utf16 | utf16_swedish_ci | | 110 | utf16 | utf16_turkish_ci | | 111 | utf16 | utf16_czech_ci | | 112 | utf16 | utf16_danish_ci | | 113 | utf16 | utf16_lithuanian_ci | | 114 | utf16 | utf16_slovak_ci | | 115 | utf16 | utf16_spanish2_ci | | 116 | utf16 | utf16_roman_ci | | 117 | utf16 | utf16_persian_ci | | 118 | utf16 | utf16_esperanto_ci | | 119 | utf16 | utf16_hungarian_ci | | 120 | utf16 | utf16_sinhala_ci | | 121 | utf16 | utf16_german2_ci | | 122 | utf16 | utf16_croatian_ci | | 123 | utf16 | utf16_unicode_520_ci | | 124 | utf16 | utf16_vietnamese_ci | | 128 | ucs2 | ucs2_unicode_ci | | 129 | ucs2 | ucs2_icelandic_ci | | 130 | ucs2 | ucs2_latvian_ci | | 131 | ucs2 | ucs2_romanian_ci | | 132 | ucs2 | ucs2_slovenian_ci | | 133 | ucs2 | ucs2_polish_ci | | 134 | ucs2 | ucs2_estonian_ci | | 135 | ucs2 | ucs2_spanish_ci | | 136 | ucs2 | ucs2_swedish_ci | | 137 | ucs2 | ucs2_turkish_ci | | 138 | ucs2 | ucs2_czech_ci | | 139 | ucs2 | ucs2_danish_ci | | 140 | ucs2 | ucs2_lithuanian_ci | | 141 | ucs2 | ucs2_slovak_ci | | 142 | ucs2 | ucs2_spanish2_ci | | 143 | ucs2 | ucs2_roman_ci | | 144 | ucs2 | ucs2_persian_ci | | 145 | ucs2 | ucs2_esperanto_ci | | 146 | ucs2 | ucs2_hungarian_ci | | 147 | ucs2 | ucs2_sinhala_ci | | 148 | ucs2 | ucs2_german2_ci | | 149 | ucs2 | ucs2_croatian_ci | | 150 | ucs2 | ucs2_unicode_520_ci | | 151 | ucs2 | ucs2_vietnamese_ci | | 159 | ucs2 | ucs2_general_mysql500_ci | | 160 | utf32 | utf32_unicode_ci | | 161 | utf32 | utf32_icelandic_ci | | 162 | utf32 | utf32_latvian_ci | | 163 | utf32 | utf32_romanian_ci | | 164 | utf32 | utf32_slovenian_ci | | 165 | utf32 | utf32_polish_ci | | 166 | utf32 | utf32_estonian_ci | | 167 | utf32 | utf32_spanish_ci | | 168 | utf32 | utf32_swedish_ci | | 169 | utf32 | utf32_turkish_ci | | 170 | utf32 | utf32_czech_ci | | 171 | utf32 | utf32_danish_ci | | 172 | utf32 | utf32_lithuanian_ci | | 173 | utf32 | utf32_slovak_ci | | 174 | utf32 | utf32_spanish2_ci | | 175 | utf32 | utf32_roman_ci | | 176 | utf32 | utf32_persian_ci | | 177 | utf32 | utf32_esperanto_ci | | 178 | utf32 | utf32_hungarian_ci | | 179 | utf32 | utf32_sinhala_ci | | 180 | utf32 | utf32_german2_ci | | 181 | utf32 | utf32_croatian_ci | | 182 | utf32 | utf32_unicode_520_ci | | 183 | utf32 | utf32_vietnamese_ci | | 192 | utf8 | utf8_unicode_ci | | 193 | utf8 | utf8_icelandic_ci | | 194 | utf8 | utf8_latvian_ci | | 195 | utf8 | utf8_romanian_ci | | 196 | utf8 | utf8_slovenian_ci | | 197 | utf8 | utf8_polish_ci | | 198 | utf8 | utf8_estonian_ci | | 199 | utf8 | utf8_spanish_ci | | 200 | utf8 | utf8_swedish_ci | | 201 | utf8 | utf8_turkish_ci | | 202 | utf8 | utf8_czech_ci | | 203 | utf8 | utf8_danish_ci | | 204 | utf8 | utf8_lithuanian_ci | | 205 | utf8 | utf8_slovak_ci | | 206 | utf8 | utf8_spanish2_ci | | 207 | utf8 | utf8_roman_ci | | 208 | utf8 | utf8_persian_ci | | 209 | utf8 | utf8_esperanto_ci | | 210 | utf8 | utf8_hungarian_ci | | 211 | utf8 | utf8_sinhala_ci | | 212 | utf8 | utf8_german2_ci | | 213 | utf8 | utf8_croatian_ci | | 214 | utf8 | utf8_unicode_520_ci | | 215 | utf8 | utf8_vietnamese_ci | | 223 | utf8 | utf8_general_mysql500_ci | | 224 | utf8mb4 | utf8mb4_unicode_ci | | 225 | utf8mb4 | utf8mb4_icelandic_ci | | 226 | utf8mb4 | utf8mb4_latvian_ci | | 227 | utf8mb4 | utf8mb4_romanian_ci | | 228 | utf8mb4 | utf8mb4_slovenian_ci | | 229 | utf8mb4 | utf8mb4_polish_ci | | 230 | utf8mb4 | utf8mb4_estonian_ci | | 231 | utf8mb4 | utf8mb4_spanish_ci | | 232 | utf8mb4 | utf8mb4_swedish_ci | | 233 | utf8mb4 | utf8mb4_turkish_ci | | 234 | utf8mb4 | utf8mb4_czech_ci | | 235 | utf8mb4 | utf8mb4_danish_ci | | 236 | utf8mb4 | utf8mb4_lithuanian_ci | | 237 | utf8mb4 | utf8mb4_slovak_ci | | 238 | utf8mb4 | utf8mb4_spanish2_ci | | 239 | utf8mb4 | utf8mb4_roman_ci | | 240 | utf8mb4 | utf8mb4_persian_ci | | 241 | utf8mb4 | utf8mb4_esperanto_ci | | 242 | utf8mb4 | utf8mb4_hungarian_ci | | 243 | utf8mb4 | utf8mb4_sinhala_ci | | 244 | utf8mb4 | utf8mb4_german2_ci | | 245 | utf8mb4 | utf8mb4_croatian_ci | | 246 | utf8mb4 | utf8mb4_unicode_520_ci | | 247 | utf8mb4 | utf8mb4_vietnamese_ci | | 248 | gb18030 | gb18030_chinese_ci | | 249 | gb18030 | gb18030_bin | | 250 | gb18030 | gb18030_unicode_520_ci | @note This list append-only: - new entries may be added - none of the existing entries may be changed @par @note Even though list currently matches @code{sql} SELECT id, character_set_name, collation_name FROM information_schema.collations ORDER BY id @endcode of MySQL 5.7.8 it may diverge from it in the future if the MySQL Server runtime doesn't follow the "append-only" rule for some reason. */