polardbxengine/plugin/x/protocol/doc/mysqlx-protocol-xplugin.dox

315 lines
16 KiB
Plaintext

/*
* 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.
*/