Upload
dreamboy1202
View
235
Download
0
Embed Size (px)
Citation preview
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 1/148
MySQL Globalization
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 2/148
MySQL Globalization
Abstract
This is the MySQL Globalization extract from the MySQL 5.6 Reference Manual.
Document generated on: 2013-02-27 (revision: 34508)
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 3/148
MySQL Globalization
5.2. String Collating Support for Complex Character Sets ........ ......... ........ ........ ........ ........ .... 595.3. Multi-Byte Character Support for Complex Character Sets .............................................. 60
6. Adding a Collation to a Character Set ...................................................................................... 616.1. Collation Implementation Types ........ ........ ........ ......... ........ ........ ........ ......... ........ ........ .. 626.2. Choosing a Collation ID ................................................................................................ 646.3. Adding a Simple Collation to an 8-Bit Character Set ........ ........ ........ ......... ........ ........ ..... 656.4. Adding a UCA Collation to a Unicode Character Set ...................................................... 66
6.4.1. Defining a UCA Collation using LDML Syntax ..................................................... 676.4.2. LDML Syntax Supported in MySQL .................................................................... 686.4.3. Diagnostics During Index.xml Parsing ............................................................. 72
7. MySQL Server Time Zone Support .......................................................................................... 73
7.1. Staying Current with Time Zone Changes ..................................................................... 757.2. Time Zone Leap Second Support ................................................................................. 76
8. MySQL Server Locale Support ................................................................................................ 79A. Licenses for Third-Party Components ...................................................................................... 83
A.1. Ant-Contrib License ...................................................................................................... 86A.2. ANTLR 3.3 License ...................................................................................................... 86A.3. Boost Library License .................................................................................................. 87A.4. c3p0 JDBC Library License .......................................................................................... 87A.5. dtoa.c License .......................................................................................................... 88
A.6. Editline Library (libedit) License ............................................................................... 88A.7. Facebook Fast Checksum Patch License ...................................................................... 91A.8. Facebook Patches License ........................................................................................... 92A.9. FindGTest.cmake License ........................................................................................ 92A.10. Fred Fish's Dbug Library License ................................................................................ 93A.11. getarg License ......................................................................................................... 94A.12. GLib License (for MySQL Proxy) ................................................................................ 94A.13. GNU General Public License Version 2.0, June 1991 ................................................... 95
A.14. GNU General Public License Version 3.0, 29 June 2007 and GCC Runtime LibraryException Version 3.1, 31 March 2009 ............................................................................... 100A.15. GNU Lesser General Public License Version 2.1, February 1999 ................................ 111A.16. GNU Libtool License ................................................................................................ 118A.17. GNU Readline License ............................................................................................. 119A.18. GNU Standard C++ Library (libstdc++) License .......................................................... 119A.19. Google Controlling Master Thread I/O Rate Patch License ......................................... 120A.20. Google Perftools (TCMalloc utility) License ................................................................ 121A.21. Google SMP Patch License ...................................................................................... 121
A.22. jboss-common-jdbc-wrapper.jar License .................................................................... 122A.23. lib_sql.cc License ............................................................................................... 122A.24. Libaio License .......................................................................................................... 122A.25. libevent License ................................................................................................... 123A.26. Libiconv License ...................................................................................................... 124A.27. libintl License ..................................................................................................... 125A 28 Linux-PAM License 125
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 4/148
MySQL Globalization
A.43. Richard A. O'Keefe String Library License ............. ......... ........ ........ ........ ......... ........ .. 136A.44. SHA-1 in C License ................................................................................................. 137
A.45. Simple Logging Facade for Java (SLF4J) License ...................................................... 137A.46. Unicode Data Files ................................................................................................... 137A.47. zlib License ........................................................................................................... 138A.48. ZLIB.NET License .................................................................................................... 138
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 5/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 6/148
Preface and Legal Notices
This is the MySQL Globalization extract from the MySQL 5.6 Reference Manual.
Legal Notices
Copyright © 1997, 2013, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containingrestrictions on use and disclosure and are protected by intellectual property laws. Except as expresslypermitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in anyform, or by any means. Reverse engineering, disassembly, or decompilation of this software, unlessrequired by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it onbehalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation andtechnical data delivered to U.S. Government customers are "commercial computer software" or"commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, andadaptation shall be subject to the restrictions and license terms set forth in the applicable Governmentcontract, and, to the extent applicable by the terms of the Government contract, the additional rights setforth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc.,500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is notdeveloped or intended for use in any inherently dangerous applications, including applications whichmay create a risk of personal injury. If you use this software in dangerous applications, then you shallbe responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure thesafe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damagescaused by use of this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark
of Oracle Corporation and/or its affiliates, and shall not be used without Oracle's express writtenauthorization. Other names may be trademarks of their respective owners.
This software and documentation may provide access to or information on content, products, andservices from third parties. Oracle Corporation and its affiliates are not responsible for and expresslydisclaim all warranties of any kind with respect to third-party content, products, and services. OracleCorporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 7/148
Legal Notices
not publish or distribute this documentation in any form or on any media, except if you distribute thedocumentation in a manner similar to how Oracle disseminates it (that is, electronically for download
on a Web site with the software) or on a CD-ROM or similar medium, provided however that thedocumentation is disseminated together with the software on the same medium. Any other use, suchas any dissemination of printed copies or use of this documentation, in whole or in part, in anotherpublication, requires the prior written consent from an authorized representative of Oracle. Oracle and/ or its affiliates reserve any and all rights to this documentation not expressly granted above.
For more information on the terms of this license, or for details on how the MySQL documentation isbuilt and produced, please visit MySQL Contact & Questions.
For additional licensing information, including licenses for third-party libraries used by MySQL products,see Preface and Legal Notices.
For help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists where youcan discuss your issues with other MySQL users.
For additional documentation on MySQL products, including translations of the documentation intoother languages, and downloadable versions in variety of formats, including HTML and PDF formats,see the MySQL Documentation Library.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 8/148
Chapter 1. Globalization
This chapter covers issues of globalization, which includes internationalization (MySQL's capabilitiesfor adapting to local use) and localization (selecting particular local conventions):
• MySQL support for character sets in SQL statements.
• How to configure the server to support different character sets.
• Selecting the language for error messages.
• How to set the server's time zone and enable per-connection time zone support.
• Selecting the locale for day and month names.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 9/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 10/148
Character Sets and Collations in General
server, database, table, and column level. MySQL supports the use of character sets for the MyISAM,MEMORY, and InnoDB storage engines.
This chapter discusses the following topics:
• What are character sets and collations?
• The multiple-level default system for character set assignment.
• Syntax for specifying character sets and collations.
• Affected functions and operations.
• Unicode support.
• The character sets and collations that are available, with notes.
Character set issues affect not only data storage, but also communication between client programs andthe MySQL server. If you want the client program to communicate with the server using a characterset different from the default, you'll need to indicate which one. For example, to use the utf8 Unicodecharacter set, issue this statement after connecting to the server:
SET NAMES 'utf8';
For more information about configuring character sets for application use and character set-relatedissues in client/server communication, see Section 2.5, “Configuring the Character Set and Collation forApplications”, and Section 2.4, “Connection Character Sets and Collations”.
2.1. Character Sets and Collations in General
A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters
in a character set. Let's make the distinction clear with an example of an imaginary character set.
Suppose that we have an alphabet with four letters: “A”, “B”, “a”, “b”. We give each letter a number: “A”= 0, “B” = 1, “a” = 2, “b” = 3. The letter “A” is a symbol, the number 0 is the encoding for “A”, and thecombination of all four letters and their encodings is a character set.
Suppose that we want to compare two string values, “A” and “B”. The simplest way to do this is to lookat the encodings: 0 for “A” and 1 for “B”. Because 0 is less than 1, we say “A” is less than “B”. Whatwe've just done is apply a collation to our character set. The collation is a set of rules (only one rule in
this case): “compare the encodings.” We call this simplest of all possible collations a binary collation.
But what if we want to say that the lowercase and uppercase letters are equivalent? Then we wouldhave at least two rules: (1) treat the lowercase letters “a” and “b” as equivalent to “A” and “B”; (2) thencompare the encodings. We call this a case-insensitive collation. It is a little more complex than abinary collation.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 11/148
Specifying Character Sets and Collations
Collation Meaning
latin1_bin Binary according to latin1 encoding
latin1_general_ci Multilingual (Western European)
latin1_general_cs Multilingual (ISO Western European), case sensitive
latin1_spanish_ci Modern Spanish
Collations have these general characteristics:
• Two different character sets cannot have the same collation.
• Each character set has one collation that is the default collation . For example, the default collation forlatin1 is latin1_swedish _ci. The output for SHOW CHARACTER SET indicates which collationis the default for each displayed character set.
• There is a convention for collation names: They start with the name of the character set with whichthey are associated, they usually include a language name, and they end with _ci (case insensitive),
_cs (case sensitive), or _bin (binary).
In cases where a character set has multiple collations, it might not be clear which collation is most
suitable for a given application. To avoid choosing the wrong collation, it can be helpful to performsome comparisons with representative data values to make sure that a given collation sorts values theway you expect.
Collation-Charts.Org is a useful site for information that shows how one collation compares to another.
2.3. Specifying Character Sets and Collations
There are default settings for character sets and collations at four levels: server, database, table,and column. The description in the following sections may appear complex, but it has been found inpractice that multiple-level defaulting leads to natural and obvious results.
CHARACTER SET is used in clauses that specify a character set. CHARSET can be used as a synonymfor CHARACTER SET.
Character set issues affect not only data storage, but also communication between client programs andthe MySQL server. If you want the client program to communicate with the server using a characterset different from the default, you'll need to indicate which one. For example, to use the utf8 Unicode
character set, issue this statement after connecting to the server:
SET NAMES 'utf8';
For more information about character set-related issues in client/server communication, seeSection 2.4, “Connection Character Sets and Collations”.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 12/148
Database Character Set and Collation
shell> mysqld --character-set-server=latin1 \
--collation-server=latin1_swedish_ci
One way to change the settings is by recompiling. To change the default server character set andcollation when building from sources, use the DEFAULT_CHARSET and DEFAULT_COLLATIONoptionsfor CMake. For example:
shell> cmake . -DDEFAULT_ CHARSET=latin1
Or:
shell> cmake . -DDEFAULT_CHARSET=latin1 \
-DDEFAULT_COLLATION=latin1_german1_ci
Both mysqld and CMake verify that the character set/collation combination is valid. If not, eachprogram displays an error message and terminates.
The server character set and collation are used as default values if the database character set andcollation are not specified in CREATE DATABASE statements. They have no other purpose.
The current server character set and collation can be determined from the values of thecharacter_set_server and collation_server system variables. These variables can be
changed at runtime.
2.3.2. Database Character Set and Collation
Every database has a database character set and a database collation. The CREATE DATABASE andALTER DATABASE statements have optional clauses for specifying the database character set andcollation:
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name][[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
The keyword SCHEMA can be used instead of DATABASE.
All database options are stored in a text file named db.opt that can be found in the databasedirectory.
The CHARACTER SET and COLLATE clauses make it possible to create databases with differentcharacter sets and collations on the same MySQL server.
Example:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 13/148
Table Character Set and Collation
The character set and collation for the default database can be determined from the values of thecharacter_set_database and collation_database system variables. The server sets thesevariables whenever the default database changes. If there is no default database, the variables havethe same value as the corresponding server-level system variables, character_set_server and
collation_server .
2.3.3. Table Character Set and Collation
Every table has a table character set and a table collation. The CREATE TABLE and ALTER TABLE
statements have optional clauses for specifying the table character set and collation:
CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]]
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
Example:
CREATE TABLE t1 ( ... )
CHARACTER SET latin1 COLLATE latin1_danish_ci;
MySQL chooses the table character set and collation in the following manner:
• If both CHARACTER SET X and COLLATE Y are specified, character set X and collation Y are used.
• If CHARACTER SET X is specified without COLLATE, character set X and its default collation areused. To see the default collation for each character set, use the SHOW COLLATION statement.
• If COLLATE Y is specified without CHARACTER SET, the character set associated with Y and
collation Y are used.
• Otherwise, the database character set and collation are used.
The table character set and collation are used as default values for column definitions if the columncharacter set and collation are not specified in individual column definitions. The table character setand collation are MySQL extensions; there are no such things in standard SQL.
2.3.4. Column Character Set and Collation
Every “character” column (that is, a column of type CHAR, VARCHAR, or TEXT) has a column characterset and a column collation. Column definition syntax for CREATE TABLE and ALTER TABLE hasoptional clauses for specifying the column character set and collation:
col_name {CHAR | VARCHAR | TEXT} (col_length)
[CHARACTER SET charset name]
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 14/148
Character String Literal Character Set and Collation
col1 VARCHAR(5)CHARACTER SET latin1
COLLATE latin1_swedish_ci;
MySQL chooses the column character set and collation in the following manner:
• If both CHARACTER SET X and COLLATE Y are specified, character set X and collation Y are used.
CREATE TABLE t1(
col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci
) CHARACTER SET latin1 COLLATE latin1_bin;
The character set and collation are specified for the column, so they are used. The column hascharacter set utf8 and collation utf8_unicode_ci.
• If CHARACTER SET X is specified without COLLATE, character set X and its default collation areused.
CREATE TABLE t1
(
col1 CHAR(10) CHARACTER SET utf8) CHARACTER SET latin1 COLLATE latin1_bin;
The character set is specified for the column, but the collation is not. The column has character set
utf8 and the default collation for utf8, which is utf8_general_ci. To see the default collation foreach character set, use the SHOW COLLATION statement.
• If COLLATE Y is specified without CHARACTER SET, the character set associated with Y andcollation Y are used.
CREATE TABLE t1(
col1 CHAR(10) COLLATE utf8_polish_ci
) CHARACTER SET latin1 COLLATE latin1_bin;
The collation is specified for the column, but the character set is not. The column has collationutf8_polish_ci and the character set is the one associated with the collation, which is utf8.
• Otherwise, the table character set and collation are used.
CREATE TABLE t1
( col1 CHAR(10)
) CHARACTER SET latin1 COLLATE latin1_bin;
Neither the character set nor collation are specified for the column, so the table defaults are used.The column has character set latin1 and collation latin1_bin.
Th d l t d d SQL
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 15/148
Character String Literal Character Set and Collation
SELECT _latin1'string ';SELECT _latin1'string ' COLLATE latin1_danish_ci;
For the simple statement SELECT 'string ', the string has the character set and collation defined bythe character_set_connection and collation_connection system variables.
The _ charset_name expression is formally called an introducer . It tells the parser, “the string that isabout to follow uses character set X .” Because this has confused people in the past, we emphasizethat an introducer does not change the string to the introducer character set like CONVERT() would do.It does not change the string's value, although padding may occur. The introducer is just a signal. Anintroducer is also legal before standard hex literal and numeric hex literal notation (x'literal' and
0xnnnn), or before bit-field literal notation (b'literal' and 0bnnnn).
Examples:
SELECT _latin1 x'AABBCC';
SELECT _latin1 0xAABBCC;SELECT _latin1 b'1100011';
SELECT _latin1 0b1100011;
MySQL determines a literal's character set and collation in the following manner:
• If both _X and COLLATE Y are specified, character set X and collation Y are used.
• If _X is specified but COLLATE is not specified, character set X and its default collation are used. Tosee the default collation for each character set, use the SHOW COLLATION statement.
• Otherwise, the character set and collation given by the character_set_connection and
collation_connection system variables are used.
Examples:
• A string with latin1 character set and latin1_german1_ci collation:
SELECT _latin1'Müller' COLLATE latin1_german1_ci;
• A string with latin1 character set and its default collation (that is, latin1_swedish_ci):
SELECT _latin1'Müller';
• A string with the connection default character set and collation:
SELECT 'Müller';
Character set introducers and the COLLATE clause are implemented according to standard SQLspecifications.
A i d i di h h f h f ll i i b d h h h
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 16/148
National Character Set
| HEX('à\n') | HEX(_sjis'à\n') |+------------+-----------------+
| E00A | E00A |
+------------+-----------------+1 row in set (0.00 sec)
Here, “à” (hex value E0) is followed by “\n”, the escape sequence for newline. The escape sequenceis interpreted using the character_set_connection value of latin1 to produce a literal newline(hex value 0A). This happens even for the second string. That is, the introducer of _sjis does notaffect the parser's escape processing.
Example 2:
mysql> SET NAMES sjis;
Query OK, 0 rows affected (0.00 sec)mysql> SELECT HEX('à\n'), HEX(_latin1'à\n');
+------------+-------------------+
| HEX('à\n') | HEX(_latin1'à\n') |
+------------+-------------------+| E05C6E | E05C6E |
+------------+-------------------+
1 row in set (0.04 sec)
Here, character_set_connection is sjis, a character set in which the sequence of “à” followedby “\” (hex values 05 and 5C) is a valid multi-byte character. Hence, the first two bytes of the stringare interpreted as a single sjis character, and the “\” is not interpreted as an escape character. Thefollowing “n” (hex value 6E) is not interpreted as part of an escape sequence. This is true even for thesecond string; the introducer of _latin1 does not affect escape processing.
2.3.6. National Character Set
Standard SQL defines NCHAR or NATIONAL CHAR as a way to indicate that a CHAR column should usesome predefined character set. MySQL 5.6 uses utf8 as this predefined character set. For example,these data type declarations are equivalent:
CHAR(10) CHARACTER SET utf8
NATIONAL CHARACTER(10)
NCHAR(10)
As are these:
VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NCHAR VARCHAR(10)NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)
You can use N'literal' (or n'literal') to create a string in the national character set. Thesestatements are equivalent:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 17/148
Compatibility with Other DBMSs
(c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Here we have a column with a latin1 character set and a latin1_german1_ci collation. Thedefinition is explicit, so that is straightforward. Notice that there is no problem with storing a latin1
column in a latin2 table.
Example 2: Table and Column Definition
CREATE TABLE t1
(c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
This time we have a column with a latin1 character set and a default collation. Although itmight seem natural, the default collation is not taken from the table level. Instead, because thedefault collation for latin1 is always latin1_swedish_ci , column c1 has a collation oflatin1_swedish_ci (not latin1_danish_ci).
Example 3: Table and Column Definition
CREATE TABLE t1(
c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
We have a column with a default character set and a default collation. In this circumstance, MySQLchecks the table level to determine the column character set and collation. Consequently, the characterset for column c1 is latin1 and its collation is latin1_danish_ci .
Example 4: Database, Table, and Column Definition
CREATE DATABASE d1
DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;CREATE TABLE t1
(
c1 CHAR(10)
);
We create a column without specifying its character set and collation. We're also not specifying a
character set and a collation at the table level. In this circumstance, MySQL checks the databaselevel to determine the table settings, which thereafter become the column settings.) Consequently, thecharacter set for column c1 is latin2 and its collation is latin2_czech_ci.
2.3.8. Compatibility with Other DBMSs
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 18/148
Connection Character Sets and Collations
Additional character set and collation system variables are involved in handling traffic for theconnection between a client and the server. Every client has connection-related character set andcollation system variables.
A “connection” is what you make when you connect to the server. The client sends SQL statements,such as queries, over the connection to the server. The server sends responses, such as result sets orerror messages, over the connection back to the client. This leads to several questions about characterset and collation handling for client connections, each of which can be answered in terms of systemvariables:
• What character set is the statement in when it leaves the client?
The server takes the character_set_client system variable to be the character set in whichstatements are sent by the client.
• What character set should the server translate a statement to after receiving it?
For this, the server uses the character_set_connection and collation_connection
system variables. It converts statements sent by the client from character_set_client
to character_set_connection (except for string literals that have an introducer such as
_latin1 or _utf8). collation_connection is important for comparisons of literal strings. For
comparisons of strings with column values, collation_connection does not matter becausecolumns have their own collation, which has a higher collation precedence.
• What character set should the server translate to before shipping result sets or error messages backto the client?
The character_set_results system variable indicates the character set in which the serverreturns query results to the client. This includes result data such as column values, and resultmetadata such as column names and error messages.
Clients can fine-tune the settings for these variables, or depend on the defaults (in which case, you canskip the rest of this section). If you do not use the defaults, you must change the character settings for each connection to the server.
Two statements affect the connection-related character set variables as a group:
• SET NAMES 'charset_name' [COLLATE 'collation_name']
SET NAMES indicates what character set the client will use to send SQL statements to the server.Thus, SET NAMES 'cp1251' tells the server, “future incoming messages from this client are incharacter set cp1251.” It also specifies the character set that the server should use for sendingresults back to the client. (For example, it indicates what character set to use for column values if youuse a SELECT statement.)
A SET NAMES 'charset_name' statement is equivalent to these three statements:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 19/148
Connection Character Sets and Collations
SET character_set_client = charset_name;
SET character_set_results = charset_name;
SET collation_connection = @@collation_database;
Setting collation_connection also implicitly sets character_set_connectionto the character set associated with the collation (equivalent to executing SET
character_set_connection = @@character_set_database). It is unnecessary to setcharacter_set_connection explicitly.
Note
ucs2, utf16, utf16le, and utf32 cannot be used as a client character set,which means that they do not work for SET NAMES or SET CHARACTER SET.
The MySQL client programs mysql, mysqladmin, mysqlcheck, mysqlimport, and mysqlshow
determine the default character set to use as follows:
• In the absence of other information, the programs use the compiled-in default character set, usuallylatin1.
• The programs can autodetect which character set to use based on the operating system setting,such as the value of the LANG or LC_ALL locale environment variable on Unix systems or the code
page setting on Windows systems. For systems on which the locale is available from the OS, theclient uses it to set the default character set rather than using the compiled-in default. For example,setting LANG to ru_RU.KOI8-R causes the koi8r character set to be used. Thus, users canconfigure the locale in their environment for use by MySQL clients.
The OS character set is mapped to the closest MySQL character set if there is no exact match. Ifthe client does not support the matching character set, it uses the compiled-in default. For example,
ucs2 is not supported as a connection character set.
C applications can use character set autodetection based on the OS setting by invokingmysql_options() as follows before connecting to the server:
mysql_options(mysql,
MYSQL_SET_CHARSET_NAME,
MYSQL_AUTODETECT_CHARSET_NAME);
• The programs support a --default-character-set option, which enables users to specify thecharacter set explicitly to override whatever default the client otherwise determines.
When a client connects to the server, it sends the name of the character set that it wants to use.The server uses the name to set the character_set_client , character_set_results , andcharacter_set_connection system variables. In effect, the server performs a SET NAMES
operation using the character set name.
With the mysql client, to use a character set different from the default, you could explicitly executeSET NAMES every time you start up. To accomplish the same result more easily, add the --default-
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 20/148
Configuring the Character Set and Collation for Applications
Example: Suppose that column1 is defined as CHAR(5) CHARACTER SET latin2. If you do not saySET NAMES or SET CHARACTER SET, then for SELECT column1 FROM t, the server sends backall the values for column1 using the character set that the client specified when it connected. On the
other hand, if you say SET NAMES 'latin1' or SET CHARACTER SET latin1 before issuing theSELECT statement, the server converts the latin2 values to latin1 just before sending results back.Conversion may be lossy if there are characters that are not in both character sets.
If you want the server to perform no conversion of result sets or error messages, setcharacter_set_results to NULL or binary:
SET character_set_results = NULL;
To see the values of the character set and collation system variables that apply to your connection, usethese statements:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
You must also consider the environment within which your MySQL applications execute. SeeSection 2.5, “Configuring the Character Set and Collation for Applications”.
For more information about character sets and error messages, see Section 2.6, “Character Set for
Error Messages”.
2.5. Configuring the Character Set and Collation for Applications
For applications that store data using the default MySQL character set and collation (latin1,latin1_swedish_ci), no special configuration should be needed. If applications require data storageusing a different character set or collation, you can configure character set information several ways:
• Specify character settings per database. For example, applications that use one database mightrequire utf8, whereas applications that use another database might require sjis.
• Specify character settings at server startup. This causes the server to use the given settings for allapplications that do not make other arrangements.
• Specify character settings at configuration time, if you build MySQL from source. This causes theserver to use the given settings for all applications, without having to specify them at server startup.
When different applications require different character settings, the per-database technique provides
a good deal of flexibility. If most or all applications use the same character set, specifying charactersettings at server startup or configuration time may be most convenient.
For the per-database or server-startup techniques, the settings control the character set fordata storage. Applications must also tell the server which character set to use for client/servercommunications, as described in the following instructions.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 21/148
Collation Issues
The server constructs error messages as follows:
• The message template uses UTF-8.
• Parameters in the message template are replaced with values that apply to a specific erroroccurrence:
• Identifiers such as table or column names use UTF-8 internally so they are copied as is.
• Character (nonbinary) string values are converted from their character set to UTF-8.
• Binary string values are copied as is for bytes in the range 0x20 to 0x7E, and using \x hex
encoding for bytes outside that range. For example, if a duplicate-key error occurs for an attemptto insert 0x41CF9F into a VARBINARY unique column, the resulting error message uses UTF-8with some bytes hex encoded:
Duplicate entry 'A\xC3\x9F' for key 1
To return a message to the client after it has been constructed, the server converts it fromUTF-8 to the character set specified by the character_set_results system variable. If
character_set_results has a value of NULL or binary, no conversion occurs. No conversion
occurs if the variable value is utf8, either, because that matches the original error message characterset.
For characters that cannot be represented in character_set_results , some encoding may occurduring the conversion. The encoding uses Unicode code point values:
• Characters in the Basic Multilingual Plane (BMP) range (0x0000 to 0xFFFF) are written using
\nnnn notation.
• Characters outside the BMP range (0x01000 to 0x10FFFF) are written using \+nnnnnn notation.
Clients can set character_set_results to control the character set in which they receive errormessages. The variable can be set directly, or indirectly by means such as SET NAMES. For moreinformation about character_set_results, see Section 2.4, “Connection Character Sets andCollations”.
The encoding that occurs during the conversion to character_set_results before returning errormessages to clients can result in different message content compared to earlier versions (before
MySQL 5.5). For example, if an error occurs for an attempt to drop a table named ペ (KATAKANALETTER PE) and character_set_results is a character set such as latin1 that does not containthat character, the resulting message sent to the client has an encoded table name:
ERROR 1051 (42S02): Unknown table '\30DA'
Before MySQL 5 5 the name is not encoded:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 22/148
Using COLLATE in SQL Statements
• A name ending in _bin indicates a binary collation. Character comparisons are based on characterbinary code values.
• Unicode collation names may include a version number to indicate the version of the UnicodeCollation Algorithm (UCA) on which the collation is based. UCA-based collations without a versionnumber in the name use the version-4.0.0 UCA weight keys: http://www.unicode.org/Public/ UCA/4.0.0/allkeys-4.0.0.txt. A collation name such as utf8_unicode_520_ci is based on UCA5.2.0 weight keys: http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt.
2.7.2. Using COLLATE in SQL Statements
With the COLLATE clause, you can override whatever the default collation is for a comparison.
COLLATE may be used in various parts of SQL statements. Here are some examples:
• With ORDER BY:
SELECT k
FROM t1
ORDER BY k COLLATE latin1_german2_ci;
• With AS:
SELECT k COLLATE latin1_german2_ci AS k1FROM t1
ORDER BY k1;
• With GROUP BY:
SELECT k
FROM t1
GROUP BY k COLLATE latin1_german2_ci;
• With aggregate functions:
SELECT MAX(k COLLATE latin1_german2_ci)
FROM t1;
• With DISTINCT:
SELECT DISTINCT k COLLATE latin1_german2_ci
FROM t1;
• With WHERE:
SELECT *
FROM t1
WHERE _latin1 'Müller' COLLATE latin1_german2_ci = k;
SELECT *
FROM t1
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 23/148
Collations Must Be for the Right Character Set
2.7.4. Collations Must Be for the Right Character Set
Each character set has one or more collations, but each collation is associated with one and only onecharacter set. Therefore, the following statement causes an error message because the latin2_bin
collation is not legal with the latin1 character set:
mysql> SELECT _latin1 'x' COLLATE latin2_bin;
ERROR 1253 (42000): COLLATION 'latin2_bin' is not valid
for CHARACTER SET 'latin1'
2.7.5. Collation of Expressions
In the great majority of statements, it is obvious what collation MySQL uses to resolve a comparisonoperation. For example, in the following cases, it should be clear that the collation is the collation ofcolumn charset_name:
SELECT x FROM T ORDER BY x;
SELECT x FROM T WHERE x = x;
SELECT DISTINCT x FROM T;
However, with multiple operands, there can be ambiguity. For example:
SELECT x FROM T WHERE x = 'Y';
Should the comparison use the collation of the column x, or of the string literal 'Y'? Both x and 'Y'
have collations, so which collation takes precedence?
Standard SQL resolves such questions using what used to be called “coercibility” rules. MySQLassigns coercibility values as follows:
• An explicitCOLLATE
clause has a coercibility of 0. (Not coercible at all.)
• The concatenation of two strings with different collations has a coercibility of 1.
• The collation of a column or a stored routine parameter or local variable has a coercibility of 2.
• A “system constant” (the string returned by functions such as USER() or VERSION()) has acoercibility of 3.
• The collation of a literal has a coercibility of 4.
• NULL or an expression that is derived from NULL has a coercibility of 5.
MySQL uses coercibility values with the following rules to resolve ambiguities:
• Use the collation with the lowest coercibility value.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 24/148
The _bin and binary Collations
nonbinary and binary strings evaluate the operands as binary strings, except that it is for collationsrather than data types.
Although automatic conversion is not in the SQL standard, the SQL standard document does say thatevery character set is (in terms of supported characters) a “subset” of Unicode. Because it is a well-known principle that “what applies to a superset can apply to a subset,” we believe that a collation forUnicode can apply for comparisons with non-Unicode strings.
Examples:
Comparison Collation Used
column1 = 'A' Use collation of column1column1 = 'A' COLLATE x Use collation of 'A' COLLATE x
column1 COLLATE x = 'A' COLLATE y Error
The COERCIBILITY() function can be used to determine the coercibility of a string expression:
mysql> SELECT COERCIBILITY('A' COLLATE latin1_swedish_ci);
-> 0
mysql> SELECT COERCIBILITY(VERSION());
-> 3mysql> SELECT COERCIBILITY('A');
-> 4
See Information Functions.
For implicit conversion of a numeric or temporal value to a string, such as occurs for the argument 1 inthe expression CONCAT(1, 'abc'), the result is a character (nonbinary) string that has a characterset and collation determined by the character_set_connection and collation_connection
system variables. See Type Conversion in Expression Evaluation.
2.7.6. The _bin and binary Collations
This section describes how _bin collations for nonbinary strings differ from the binary “collation” forbinary strings.
Nonbinary strings (as stored in the CHAR, VARCHAR, and TEXT data types) have a character set andcollation. A given character set can have several collations, each of which defines a particular sorting
and comparison order for the characters in the set. One of these is the binary collation for the characterset, indicated by a _bin suffix in the collation name. For example, latin1 and utf8 have binarycollations named latin1_bin and utf8_bin.
Binary strings (as stored in the BINARY, VARBINARY, and BLOB data types) have no character setor collation in the sense that nonbinary strings do. (Applied to a binary string, the CHARSET() and
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 25/148
The _bin and binary Collations
• When assigning column values from another column that has a different character set:
UPDATE t1 SET utf8_bin_column=latin1_column;
INSERT INTO t1 (latin1_column) SELECT utf8_bin_column FROM t2;
• When assigning column values for INSERT or UPDATE using a string literal:
SET NAMES latin1;
INSERT INTO t1 (utf8_bin_column) VALUES ('string-in-latin1');
• When sending results from the server to a client:
SET NAMES latin1;
SELECT utf8_bin_column FROM t2;
For binary string columns, no conversion occurs. For the preceding cases, the string value is copiedbyte-wise.
Lettercase conversion. Collations provide information about lettercase of characters, so charactersin a nonbinary string can be converted from one lettercase to another, even for _bin collations thatignore lettercase for ordering:
mysql> SET NAMES latin1 COLLATE latin1_bin;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT LOWER('aA'), UPPER('zZ');
+-------------+-------------+| LOWER('aA') | UPPER('zZ') |
+-------------+-------------+
| aa | ZZ |
+-------------+-------------+1 row in set (0.13 sec)
The concept of lettercase does not apply to bytes in a binary string. To perform lettercase conversion,
the string must be converted to a nonbinary string:
mysql> SET NAMES binary;
Query OK, 0 rows affected (0.00 sec)mysql> SELECT LOWER('aA'), LOWER(CONVERT('aA' USING latin1));
+-------------+-----------------------------------+
| LOWER('aA') | LOWER(CONVERT('aA' USING latin1)) |+-------------+-----------------------------------+
| aA | aa |
+-------------+-----------------------------------+
1 row in set (0.00 sec)
Trailing space handling in comparisons. Nonbinary strings have PADSPACE behavior for allcollations, including _bin collations. Trailing spaces are insignificant in comparisons:
mysql> SET NAMES utf8 COLLATE utf8_bin;
Query OK, 0 rows affected (0.00 sec)
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 26/148
The BINARY Operator
1 row in set (0.00 sec)
Trailing space handling for inserts and retrievals. CHAR(N ) columns store nonbinary strings.
Values shorter than N characters are extended with spaces on insertion. For retrieval, trailing spacesare removed.
BINARY(N ) columns store binary strings. Values shorter than N bytes are extended with 0x00 byteson insertion. For retrieval, nothing is removed; a value of the declared length is always returned.
mysql> CREATE TABLE t1 (
-> a CHAR(10) CHARACTER SET utf8 COLLATE utf8_bin,
-> b BINARY(10)
-> );
Query OK, 0 rows affected (0.09 sec)mysql> INSERT INTO t1 VALUES ('a','a');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT HEX(a), HEX(b) FROM t1;
+--------+----------------------+| HEX(a) | HEX(b) |
+--------+----------------------+
| 61 | 61000000000000000000 |
+--------+----------------------+1 row in set (0.04 sec)
2.7.7. The BINARY Operator
The BINARY operator casts the string following it to a binary string. This is an easy way to force acomparison to be done byte by byte rather than character by character. BINARY also causes trailingspaces to be significant.
mysql> SELECT 'a' = 'A';
-> 1
mysql> SELECT BINARY 'a' = 'A';
-> 0mysql> SELECT 'a' = 'a ';
-> 1mysql> SELECT BINARY 'a' = 'a ';
-> 0
BINARY str is shorthand for CAST(str AS BINARY).
The BINARY attribute in character column definitions has a different effect. A character columndefined with the BINARY attribute is assigned the binary collation of the column character set. Every
character set has a binary collation. For example, the binary collation for the latin1 character setis latin1_bin, so if the table default character set is latin1, these two column definitions areequivalent:
CHAR(10) BINARY
CHAR(10) CHARACTER SET latin1 COLLATE latin1_bin
E l f h Eff f C ll i
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 27/148
Examples of the Effect of Collation
TEXT CHARACTER SET binaryBLOB
2.7.8. Examples of the Effect of CollationExample 1: Sorting German Umlauts
Suppose that column X in table T has these latin1 column values:
MufflerMüller
MX Systems
MySQL
Suppose also that the column values are retrieved using the following statement:
SELECT X FROM T ORDER BY X COLLATE collation_name;
The following table shows the resulting order of the values if we use ORDER BY with different collations.
latin1_swedish_ci latin1_german1_ci latin1_german2_ci
Muffler Muffler Müller
MX Systems Müller Muffler
Müller MX Systems MX Systems
MySQL MySQL MySQL
The character that causes the different sort orders in this example is the U with two dots over it (ü),which the Germans call “U-umlaut.”
• The first column shows the result of the SELECT using the Swedish/Finnish collating rule, which saysthat U-umlaut sorts with Y.
• The second column shows the result of the SELECT using the German DIN-1 rule, which says that U-umlaut sorts with U.
• The third column shows the result of the SELECT using the German DIN-2 rule, which says that U-umlaut sorts with UE.
Example 2: Searching for German Umlauts
Suppose that you have three tables that differ only by the character set and collation used:
mysql> SET NAMES utf8;
mysql> CREATE TABLE german1 (
-> c CHAR(10)
-> ) CHARACTER SET latin1 COLLATE latin1_german1_ci;
Collation and INFORMATION SCHEMA Searches
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 28/148
Collation and INFORMATION_SCHEMA Searches
+------+| c |
+------+
| Bar |
| Bär |+------+
mysql> SELECT * FROM german2 WHERE c = 'Bär';
+------+| c |
+------+
| Bär |
+------+mysql> SELECT * FROM germanutf8 WHERE c = 'Bär';
+------+
| c |
+------+| Bar |
| Bär |
+------+
This is not a bug but rather a consequence of the sorting properties of latin1_german1_ciand
utf8_unicode_ci (the sorting shown is done according to the German DIN 5007 standard).
2.7.9. Collation and INFORMATION_SCHEMA Searches
String columns in INFORMATION_SCHEMA tables have a collation of utf8_general_ci, which iscase insensitive. However, searches in INFORMATION_SCHEMA string columns are also affected by filesystem case sensitivity. For values that correspond to objects that are represented in the file system,such as names of databases and tables, searches may be case sensitive if the file system is casesensitive. This section describes how to work around this issue if necessary; see also Bug #34921.
Suppose that a query searches the SCHEMATA.SCHEMA_NAME column for the test database. OnLinux, file systems are case sensitive, so comparisons of SCHEMATA.SCHEMA_NAME with 'test'
match, but comparisons with 'TEST' do not:
mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME = 'test';
+-------------+
| SCHEMA_NAME |
+-------------+| test |
+-------------+
1 row in set (0.01 sec)mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME = 'TEST';
Empty set (0.00 sec)
On Windows or Mac OS X where file systems are not case sensitive, comparisons match both 'test'
and 'TEST':
l SELECT SCHEMA NAME FROM INFORMATION SCHEMA SCHEMATA
String Repertoire
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 29/148
String Repertoire
This behavior occurs because the utf8_general_ci collation is not used forINFORMATION_SCHEMA queries when searching the file system for database objects. It is a result ofoptimizations implemented for INFORMATION_SCHEMA searches in MySQL. For information about
these optimizations, see Optimizing INFORMATION_SCHEMA Queries.
Searches in INFORMATION_SCHEMA string columns for values that refer to INFORMATION_SCHEMA
itself do use the utf8_general_ci collation because INFORMATION_SCHEMA is a “virtual” databaseand is not represented in the file system. For example, comparisons with SCHEMATA.SCHEMA_NAME
match 'information_schema' or 'INFORMATION_SCHEMA' regardless of platform:
mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME = 'information_schema';
+--------------------+
| SCHEMA_NAME |+--------------------+
| information_schema |
+--------------------+1 row in set (0.00 sec)
mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME = 'INFORMATION_SCHEMA';
+--------------------+
| SCHEMA_NAME |
+--------------------+
| information_schema |+--------------------+
1 row in set (0.00 sec)
If the result of a string operation on an INFORMATION_SCHEMA column differs from expectations, aworkaround is to use an explicit COLLATE clause to force a suitable collation (Section 2.7.2, “Using
COLLATE in SQL Statements”). For example, to perform a case-insensitive search, use COLLATE withthe INFORMATION_SCHEMA column name:
mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME COLLATE utf8_general_ci = 'test';
+-------------+
| SCHEMA_NAME |+-------------+
| test |
+-------------+1 row in set (0.00 sec)
mysql> SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
-> WHERE SCHEMA_NAME COLLATE utf8_general_ci = 'TEST';
| SCHEMA_NAME |+-------------+
| test |+-------------+
1 row in set (0.00 sec)
You can also use the UPPER() or LOWER() function:
WHERE UPPER(SCHEMA_NAME) = 'TEST'
WHERE LOWER(SCHEMA NAME) 'test'
String Repertoire
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 30/148
String Repertoire
The repertoire of a character set is the collection of characters in the set.
String expressions have a repertoire attribute, which can have two values:
• ASCII: The expression can contain only characters in the Unicode range U+0000 to U+007F.
• UNICODE: The expression can contain characters in the Unicode range U+0000 to U+FFFF.
The ASCII range is a subset of UNICODE range, so a string with ASCII repertoire can be convertedsafely without loss of information to the character set of any string with UNICODE repertoire or to acharacter set that is a superset of ASCII. (All MySQL character sets are supersets of ASCII with the
exception of swe7, which reuses some punctuation characters for Swedish accented characters.) Theuse of repertoire enables character set conversion in expressions for many cases where MySQL wouldotherwise return an “illegal mix of collations” error.
The following discussion provides examples of expressions and their repertoires, and describes howthe use of repertoire changes string expression evaluation:
• The repertoire for string constants depends on string content:
SET NAMES utf8; SELECT 'abc';
SELECT _utf8'def';SELECT N'MySQL';
Although the character set is utf8 in each of the preceding cases, the strings do not actually containany characters outside the ASCII range, so their repertoire is ASCII rather than UNICODE.
• Columns having the ascii character set have ASCII repertoire because of their character set. Inthe following table, c1 has ASCII repertoire:
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET ascii);
The following example illustrates how repertoire enables a result to be determined in a case wherean error occurs without repertoire:
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1,
c2 CHAR(1) CHARACTER SET ascii
);INSERT INTO t1 VALUES ('a','b');
SELECT CONCAT(c1,c2) FROM t1;
Without repertoire, this error occurs:
ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT)
and (ascii_general_ci,IMPLICIT) for operation 'concat'
Using repertoire subset to superset (ascii to latin1) conversion can occur and a result is
Operations Affected by Character Set Support
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 31/148
Operations Affected by Character Set Support
Use of repertoire changes how MySQL evaluates the following example:
SET NAMES ascii;
CREATE TABLE t1 (a INT, b VARCHAR(10) CHARACTER SET latin1);INSERT INTO t1 VALUES (1,'b');
SELECT CONCAT(FORMAT(a, 4), b) FROM t1;
Without repertoire, this error occurs:
ERROR 1267 (HY000): Illegal mix of collations (ascii_general_ci,COERCIBLE)and (latin1_swedish_ci,IMPLICIT) for operation 'concat'
With repertoire, a result is returned:
+-------------------------+| CONCAT(FORMAT(a, 4), b) |
+-------------------------+
| 1.0000b |
+-------------------------+
• Functions with two or more string arguments use the “widest” argument repertoire for the resultrepertoire (UNICODE is wider than ASCII). Consider the following CONCAT() calls:
CONCAT(_ucs2 0x0041, _ucs2 0x0042)
CONCAT(_ucs2 0x0041, _ucs2 0x00C2)
For the first call, the repertoire is ASCII because both arguments are within the range of the ascii
character set. For the second call, the repertoire is UNICODE because the second argument isoutside the ascii character set range.
• The repertoire for function return values is determined based only on the repertoire of the argumentsthat affect the result's character set and collation.
IF(column1 < column2, 'smaller', 'greater')
The result repertoire is ASCII because the two string arguments (the second argument and the thirdargument) both have ASCII repertoire. The first argument does not matter for the result repertoire,even if the expression uses string values.
2.9. Operations Affected by Character Set Support
This section describes operations that take character set information into account.
2.9.1. Result Strings
MySQL has many operators and functions that return a string. This section answers the question: Whatis the character set and collation of such a string?
For simple functions that take string input and return a string result as output the output's character
CONVERT() and CAST()
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 32/148
() ()
| CHARSET(BINARY 'a') | COLLATION(BINARY 'a') |+---------------------+-----------------------+
| binary | binary |
+---------------------+-----------------------+
For operations that combine multiple string inputs and return a single string output, the “aggregationrules” of standard SQL apply for determining the collation of the result:
• If an explicit COLLATE X occurs, use X .
• If explicit COLLATE X and COLLATE Y occur, raise an error.
• Otherwise, if all collations are X , use X .
• Otherwise, the result has no collation.
For example, with CASE ... WHEN a THEN b WHEN b THEN c COLLATE X END, the resultingcollation is X . The same applies for UNION, ||, CONCAT(), ELT(), GREATEST(), IF(), and
LEAST().
For operations that convert to character data, the character set and collation of the stringsthat result from the operations are defined by the character_set_connection and
collation_connection system variables. This applies only to CAST(), CONV(), FORMAT(),
HEX(), and SPACE().
If you are uncertain about the character set or collation of the result returned by a string function, youcan use the CHARSET() or COLLATION() function to find out:
mysql> SELECT USER(), CHARSET(USER()), COLLATION(USER());
+----------------+-----------------+-------------------+
| USER() | CHARSET(USER()) | COLLATION(USER()) |
+----------------+-----------------+-------------------+| test@localhost | utf8 | utf8_general_ci |
+----------------+-----------------+-------------------+
2.9.2. CONVERT() and CAST()
CONVERT() provides a way to convert data between different character sets. The syntax is:
CONVERT(expr USING transcoding_name)
In MySQL, transcoding names are the same as the corresponding character set names.
Examples:
SELECT CONVERT(_latin1'Müller' USING utf8);
INSERT INTO utf8table (utf8column)SELECT CONVERT(latin1field USING utf8) FROM latin1table;
CONVERT(... USING ...) is implemented according to the standard SQL specification.
SHOW Statements and INFORMATION_SCHEMA
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 33/148
SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;
2.9.3. SHOW Statements and INFORMATION_SCHEMA
Several SHOW statements provide additional character set information. These include SHOW
CHARACTER SET, SHOW COLLATION, SHOW CREATE DATABASE, SHOW CREATE TABLE and SHOW
COLUMNS. These statements are described here briefly. For more information, see SHOW Syntax.
INFORMATION_SCHEMA has several tables that contain information similar to that displayedby the SHOW statements. For example, the CHARACTER_SETS and COLLATIONS tablescontain the information displayed by SHOW CHARACTER SET and SHOW COLLATION. See
INFORMATION_SCHEMA Tables.
The SHOW CHARACTER SET statement shows all available character sets. It takes an optional LIKEclause that indicates which character set names to match. For example:
mysql> SHOW CHARACTER SET LIKE 'latin%';
+---------+-----------------------------+-------------------+--------+| Charset | Description | Default collation | Maxlen |
+---------+-----------------------------+-------------------+--------+
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 || latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
+---------+-----------------------------+-------------------+--------+
The output from SHOW COLLATION includes all available character sets. It takes an optional LIKEclause that indicates which collation names to match. For example:
mysql> SHOW COLLATION LIKE 'latin1%';
+-------------------+---------+----+---------+----------+---------+| Collation | Charset | Id | Default | Compiled | Sortlen |
+-------------------+---------+----+---------+----------+---------+| latin1_german1_ci | latin1 | 5 | | | 0 || latin1_swedish_ci | latin1 | 8 | Yes | Yes | 0 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 0 || latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+-------------------+---------+----+---------+----------+---------+
SHOW CREATE DATABASE displays the CREATE DATABASE statement that creates a given database:
mysql> SHOW CREATE DATABASE test;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
Unicode Support
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 34/148
Collation: NULLNull: NO
Key: PRI
Default: NULL
Extra: auto_incrementPrivileges: select,insert,update,references
Comment:
*************************** 2. row ***************************Field: name
Type: char(60)
Collation: latin1_swedish_ci
Null: NOKey:
Default:
Extra:
Privileges: select,insert,update,referencesComment:
The character set is not part of the display but is implied by the collation name.
2.10. Unicode Support
The initial implementation of Unicode support (in MySQL 4.1) included two character sets for storingUnicode data:
• ucs2, the UCS-2 encoding of the Unicode character set using 16 bits per character.
• utf8, a UTF-8 encoding of the Unicode character set using one to three bytes per character.
These two character sets support the characters from the Basic Multilingual Plane (BMP) of UnicodeVersion 3.0. BMP characters have these characteristics:
• Their code values are between 0 and 65535 (or U+0000 .. U+FFFF).
• They can be encoded with a fixed 16-bit word, as in ucs2.
• They can be encoded with 8, 16, or 24 bits, as in utf8.
• They are sufficient for almost all characters in major languages.
Characters not supported by the aforementioned character sets include supplementary characters thatlie outside the BMP. Characters outside the BMP compare as REPLACEMENT CHARACTER andconvert to '?' when converted to a Unicode character set.
In MySQL 5.6, Unicode support includes supplementary characters, which requires new character setsthat have a broader range and therefore take more space. The following table shows a brief featurecomparison of previous and current Unicode support.
Before MySQL 5.5 MySQL 5.5 and up
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 35/148
Appendix A. Licenses for Third-Party Components
Table of Contents
A.1. Ant-Contrib License .............................................................................................................. 86A.2. ANTLR 3.3 License .............................................................................................................. 86A.3. Boost Library License .......................................................................................................... 87A.4. c3p0 JDBC Library License .................................................................................................. 87A.5. dtoa.c License .................................................................................................................. 88
A.6. Editline Library (libedit) License ....................................................................................... 88A.7. Facebook Fast Checksum Patch License .............................................................................. 91A.8. Facebook Patches License ................................................................................................... 92A.9. FindGTest.cmake License ................................................................................................ 92A.10. Fred Fish's Dbug Library License ....................................................................................... 93A.11. getarg License ................................................................................................................. 94A.12. GLib License (for MySQL Proxy) ........................................................................................ 94A.13. GNU General Public License Version 2.0, June 1991 .......................................................... 95A.14. GNU General Public License Version 3.0, 29 June 2007 and GCC Runtime Library
Exception Version 3.1, 31 March 2009 ....................................................................................... 100A.15. GNU Lesser General Public License Version 2.1, February 1999 ........................................ 111A.16. GNU Libtool License ........................................................................................................ 118A.17. GNU Readline License ..................................................................................................... 119A.18. GNU Standard C++ Library (libstdc++) License ................................................................. 119A.19. Google Controlling Master Thread I/O Rate Patch License ................................................. 120A.20. Google Perftools (TCMalloc utility) License ........................................................................ 121A.21. Google SMP Patch License .............................................................................................. 121A.22. jboss-common-jdbc-wrapper.jar License ............................................................................ 122
A.23. lib_ sql.cc License ....................................................................................................... 122A.24. Libaio License .................................................................................................................. 122A.25. libevent License ........................................................................................................... 123A.26. Libiconv License .............................................................................................................. 124A.27. libintl License ............................................................................................................. 125A.28. Linux-PAM License .......................................................................................................... 125A.29. LPeg Library License ....................................................................................................... 126A.30. Lua (liblua) License .......................................................................................................... 126A.31. LuaFileSystem Library License ..................................................................................... 127A.32. md5 (Message-Digest Algorithm 5) License .... ........ ........ ................................................... 127A.33. memcached License ......................................................................................................... 127A.34. mkpasswd.pl License ..................................................................................................... 128A.35. nt_servc (Windows NT Service class library) License .................................. ....................... 131A.36. OpenPAM License ........................................................................................................... 132A 37 OpenSSL 1 0 License 132
MySQL 5.6
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 36/148
components require that their licensing terms be included in the documentation of products that includethem. Cross references to these licensing terms are given with the applicable items in the list.
• GroupLens Research Project
The MySQL Quality Assurance team would like to acknowledge the use of the MovieLens Data Sets(10 million ratings and 100,000 tags for 10681 movies by 71567 users) to help test MySQL productsand to thank the GroupLens Research Project at the University of Minnesota for making the datasets available.
MySQL 5.6
• Section A.3, “Boost Library License”• Section A.5, “dtoa.c License”
• Section A.6, “Editline Library (libedit) License”
• Section A.7, “Facebook Fast Checksum Patch License”
• Section A.8, “Facebook Patches License”
• Section A.9, “FindGTest.cmake License”
• Section A.10, “Fred Fish's Dbug Library License”
• Section A.11, “getarg License”
• Section A.13, “GNU General Public License Version 2.0, June 1991”
• Section A.14, “GNU General Public License Version 3.0, 29 June 2007 and GCC Runtime LibraryException Version 3.1, 31 March 2009”
• Section A.15, “GNU Lesser General Public License Version 2.1, February 1999”
• Section A.17, “GNU Readline License”
• Section A.18, “GNU Standard C++ Library (libstdc++) License”
• Section A.19, “Google Controlling Master Thread I/O Rate Patch License”
• Section A.20, “Google Perftools (TCMalloc utility) License”
• Section A.21, “Google SMP Patch License”
• Section A.23, “lib_sql.cc License”
• Section A.24, “Libaio License”
• Section A 25 “lib t License”
MySQL Connector/C
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 37/148
• Section A.40, “Red HAT RPM Spec File License”
• Section A.41, “RegEX-Spencer Library License”
• Section A.42, “RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License”
• Section A.43, “Richard A. O'Keefe String Library License”
• Section A.44, “SHA-1 in C License”
• Section A.46, “Unicode Data Files”
• Section A.47, “zlib License”
MySQL Connector/C
• Section A.10, “Fred Fish's Dbug Library License”
• Section A.41, “RegEX-Spencer Library License”
• Section A.42, “RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License”
• Section A.47, “zlib License”
MySQL Connector/C++
• Section A.3, “Boost Library License”
• Section A.37, “OpenSSL v1.0 License”
MySQL Connector/J
• Section A.1, “Ant-Contrib License”
• Section A.4, “c3p0 JDBC Library License”
• Section A.15, “GNU Lesser General Public License Version 2.1, February 1999”
• Section A.22, “jboss-common-jdbc-wrapper.jar License”
• Section A.45, “Simple Logging Facade for Java (SLF4J) License”
MySQL Connector/Net
• Section A.2, “ANTLR 3.3 License”
• Section A.42, “RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License”
Ant-Contrib License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 38/148
• Section A.25, “libevent License”
• Section A.26, “Libiconv License”
• Section A.27, “libintl License”
• Section A.29, “LPeg Library License”
• Section A.30, “Lua (liblua) License”
• Section A.31, “LuaFileSystem Library License”
• Section A.38, “PCRE License”
A.1. Ant-Contrib License
The following software may be included in this product: Ant-Contrib
Ant-ContribCopyright (c) 2001-2003 Ant-Contrib project. All rights reserved.
Licensed under the Apache 1.1 License Agreement, a copy of which is reproduced below.
The Apache Software License, Version 1.1
Copyright (c) 2001-2003 Ant-Contrib project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with thedistribution.
3. The end-user documentation included with the redistribution, if
any, must include the following acknowlegement:
"This product includes software developed by theAnt-Contrib project (http://sourceforge.net/projects/ant-contrib)."
Alternately, this acknowlegement may appear in the software itself,
if and wherever such third-party acknowlegements normally appear.
4. The name Ant-Contrib must not be used to endorse or promote
products derived from this software without prior written
permission. For written permission, please contact
5. Products derived from this software may not be called "Ant-Contrib"
nor may "Ant-Contrib" appear in their names without prior writtenpermission of the Ant-Contrib project.
dtoa.c License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 39/148
If you do not wish to install this library, you may remove the file /src/lib/c3p0-0.9.1-pre6.jar ,but the Oracle program might not operate properly or at all without the library.
This component is licensed under Section A.15, “GNU Lesser General Public License Version 2.1,February 1999”.
A.5. dtoa.c License
The following software may be included in this product:
dtoa.c
The author of this software is David M. Gay.
Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
Permission to use, copy, modify, and distribute this software for
any purpose without fee is hereby granted, provided that this entirenotice is included in all copies of any software which is or includes
a copy or modification of this software and in all copies of the
supporting documentation for such software.
THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT
MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULARPURPOSE.
A.6. Editline Library (libedit) License
The following software may be included in this product:
Editline Library (libedit)
Some files are:
Copyright (c) 1992, 1993
The Regents of the University of California. All rights reserved.
This code is derived from software contributed to
Berkeley by Christos Zoulas of Cornell University.
Redistribution and use in source and binary forms,with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain theabove copyright notice, this list of conditions
and the following disclaimer.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 40/148
Facebook Fast Checksum Patch License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 41/148
distribution.3. All advertising materials mentioning features or use of this
software must display the following acknowledgement:
This product includes software developed by the NetBSD
Foundation, Inc. and its contributors.4. Neither the name of The NetBSD Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENTOF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A.7. Facebook Fast Checksum Patch License
The following software may be included in this product:
Facebook Fast Checksum Patch
Copyright (C) 2009-2010 Facebook, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY FACEBOOK, INC. “AS IS” AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL FACEBOOK, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OROTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Also included:
crc32.c -- compute the CRC-32 of a buf stream
Facebook Patches License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 42/148
Jean-loup Gailly [email protected] Adler [email protected]
A.8. Facebook Patches LicenseThe following software may be included in this product:
Copyright (c) 2012, Facebook, Inc.All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
A.9. FindGTest.cmake License
The following software may be included in this product:
FindGTest.cmake helper script (part of CMake)
Copyright 2009 Kitware, Inc.Copyright 2009 Philip Lowman
Copyright 2009 Daniel Blezek
Distributed under the OSI-approved BSD License (the "License");see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
==========================================================================
(To distributed this file outside of CMake, substitute the fullLicense text for the above reference.)
Thanks to Daniel Blezek for the GTEST_ADD_TESTS code
Text of Copyright.txt mentioned above:
Fred Fish's Dbug Library License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 43/148
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A.10. Fred Fish's Dbug Library LicenseThe following software may be included in this product:
Fred Fish's Dbug Library
N O T I C E
Copyright Abandoned, 1987, Fred Fish
This previously copyrighted work has been placed into the public
domain by the author and may be freely used for any purpose,
private or commercial.
Because of the number of inquiries I was receiving about the use
of this product in commercially developed works I have decided to
simply make it public domain to further its unrestricted use. I
specifically would be most happy to see this material become a
part of the standard Unix distributions by AT&T and the Berkeley
Computer Science Research Group, and a standard part of the GNU
system from the Free Software Foundation.
I would appreciate it, as a courtesy, if this notice is left in
getarg License
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 44/148
A.11. getarg License
The following software may be included in this product:
getarg Function (getarg.h, getarg.c files)
Copyright (c) 1997 – 2000 Kungliga Tekniska Högskolan
(Royal Institute of Technology, Stockholm, Sweden).
All rights reserved.
Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the
following conditions are met:
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.3. Neither the name of the Institute nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
A.12. GLib License (for MySQL Proxy)
The following software may be included in this product:
GLib
You are receiving a copy of the GLib library in both source
and object code in the following [proxy install dir]/lib/ and
[proxy install dir]/licenses/lgpl folders. The terms of theOracle license do NOT apply to the GLib library; it is licensed
under the following license, separately from the Oracle programs
GNU General Public License Version 2.0, June 1991
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 45/148
mysql-proxy-0.8.1-solaris10-x86-64bit/lib/libgmodule-2.0.so.0mysql-proxy-0.8.1-solaris10-x86-64bit/lib/libgmodule-2.0.so.0.1600.6
mysql-proxy-0.8.1-solaris10-x86-64bit/lib/libgthread-2.0.so
mysql-proxy-0.8.1-solaris10-x86-64bit/lib/libgthread-2.0.so.0
mysql-proxy-0.8.1-solaris10-x86-64bit/lib/libgthread-2.0.so.0.1600.6mysql-proxy-0.8.1-solaris10-x86-64bit/licenses/lgpl/glib-2.16.6.tar.gz
This component is licensed under Section A.15, “GNU Lesser General Public License Version 2.1,February 1999”.
A.13. GNU General Public License Version 2.0, June 1991
The following applies to all products licensed under the GNU General
Public License, Version 2.0: You may not use the identified filesexcept in compliance with the GNU General Public License, Version
2.0 (the "License.") You may obtain a copy of the License at
http://www.gnu.org/licenses/gpl-2.0.txt. A copy of the license isalso reproduced below. Unless required by applicable law or agreed
to in writing, software distributed under the License is distributed
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific languagegoverning permissions and limitations under the License.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USAEveryone is permitted to copy and distribute verbatim
copies of this license document, but changing it is not
allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General PublicLicense is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit tousing it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge forthis service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
GNU General Public License Version 2.0, June 1991
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 46/148
original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making theprogram proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSETERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributedunder the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Programis covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriatecopyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all thirdparties under the terms of this License.
GNU General Public License Version 2.0, June 1991
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 47/148
on the Program, the distribution of the whole must be on the terms ofthis License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contestyour rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work underthe scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms ofSections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readablesource code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software
interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to bedistributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offerto distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with suchan offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete sourcecode means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as
a special exception, the source code distributed need not includeanything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalentaccess to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License Any attempt
GNU General Public License Version 2.0, June 1991
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 48/148
original licensor to copy, distribute or modify the Program subject tothese terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under thisLicense and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, thenthe only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting theintegrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of thatsystem; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excludingthose countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time. Such new
versions will be similar in spirit to the present version, but maydiffer in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
GNU General Public License Version 2.0, June 1991
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 49/148
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OFALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THEPROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCHDAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatestpossible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safestto attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it
does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like thiswhen it starts in an interactive mode:
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 50/148
program 'Gnomovision' (which makes passes at compilers) writtenby James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library,you may consider it more useful to permit linking proprietary
applications with the library. If this is what you want to do, use
the GNU Lesser General Public License instead of this License.
A.14. GNU General Public License Version 3.0, 29 June 2007 and
GCC Runtime Library Exception Version 3.1, 31 March 2009GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>Everyone is permitted to copy and distribute verbatim copies of
this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are
designed to take away your freedom to share and change the works.
By contrast, the GNU General Public License is intended to guaranteeyour freedom to share and change all versions of a program--to make
sure it remains free software for all its users. We, the Free
Software Foundation, use the GNU General Public License for most
of our software; it applies also to any other work released thisway by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, notprice. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and
charge for them if you wish), that you receive source code or can
get it if you want it, that you can change the software or usepieces of it in new free programs, and that you know you can do
these things.
To protect your rights, we need to prevent others from denying
you these rights or asking you to surrender the rights. Therefore,you have certain responsibilities if you distribute copies of the
software, or if you modify it: responsibilities to respect the
freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
i i
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 51/148
the aim of protecting users' freedom to change the software. Thesystematic pattern of such abuse occurs in the area of products for
individuals to use, which is precisely where it is most unacceptable.
Therefore, we have designed this version of the GPL to prohibit the
practice for those products. If such problems arise substantiallyin other domains, we stand ready to extend this provision to those
domains in future versions of the GPL, as needed to protect the
freedom of users.
Finally, every program is threatened constantly by software
patents. States should not allow patents to restrict development
and use of software on general-purpose computers, but in those thatdo, we wish to avoid the special danger that patents applied to a
free program could make it effectively proprietary. To prevent
this, the GPL assures that patents cannot be used to render the
program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kindsof works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of thework in a fashion requiring copyright permission, other than the
making of an exact copy. The resulting work is called a "modified
version" of the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, withoutpermission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it
on a computer or modifying a private copy. Propagation includes
copying, distribution (with or without modification), making availableto the public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables otherparties to make or receive copies. Mere interaction with a user
through a computer network, with no transfer of a copy, is not
conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 52/148
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form
of packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with thatMajor Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts
to control those activities. However, it does not include thework's System Libraries, or general-purpose tools or generally
available free programs which are used unmodified in performing
those activities but which are not part of the work. For example,Corresponding Source includes interface definition files associated
with source files for the work, and the source code for shared
libraries and dynamically linked subprograms that the work is
specifically designed to require, such as by intimate data communicationor control flow between those subprograms and other parts of the
work.
The Corresponding Source need not include anything that users canregenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is thatsame work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimitedpermission to run the unmodified Program. The output from running
a covered work is covered by this License only if the output, given
its content, constitutes a covered work. This License acknowledges
your rights of fair use or other equivalent, as provided by copyrightlaw.
You may make, run and propagate covered works that you do not convey,
without conditions so long as your license otherwise remains inforce. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide
you with facilities for running those works, provided that youcomply with the terms of this License in conveying all material for
which you do not control copyright. Those thus making or running
the covered works for you must do so exclusively on your behalf,
under your direction and control, on terms that prohibit them frommaking any copies of your copyrighted material outside their
relationship with you
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
or modification of the work as a means of enforcing against the
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 53/148
or modification of the work as a means of enforcing, against thework's users, your or third parties' legal rights to forbid
circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously andappropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any non-permissive
terms added in accord with section 7 apply to the code; keep intact
all notices of the absence of any warranty; and give all recipientsa copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications
to produce it from the Program, in the form of source code under
the terms of section 4, provided that you also meet all of these
conditions:
a) The work must carry prominent notices stating that you
modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under
section 7. This requirement modifies the requirement in
section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. ThisLicense will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does notinvalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program hasinteractive interfaces that do not display Appropriate Legal
Notices, your work need not make them do so.
A compilation of a covered work with other separate and independentworks, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is calledan "aggregate" if the compilation and its resulting copyright are
not used to limit the access or legal rights of the compilation's
users beyond what the individual works permit. Inclusion of a
covered work in an aggregate does not cause this License to applyto the other parts of the aggregate.
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
either (1) a copy of the Corresponding Source for all the
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 54/148
either (1) a copy of the Corresponding Source for all thesoftware in the product that is covered by this License, on a
durable physical medium customarily used for software
interchange, for a price no more than your reasonable cost
of physically performing this conveying of source, or (2)access to copy the Corresponding Source from a network server
at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, inaccord with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access tothe Corresponding Source in the same way through the same place
at no further charge. You need not require recipients to copy
the Corresponding Source along with the object code. If theplace to copy the object code is a network server, the
Corresponding Source may be on a different server (operated
by you or a third party) that supports equivalent copying
facilities, provided you maintain clear directions next to theobject code saying where to find the Corresponding Source.
Regardless of what server hosts the Corresponding Source, you
remain obligated to ensure that it is available for as long
as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission,
provided you inform other peers where the object code and
Corresponding Source of the work are being offered to thegeneral public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excludedfrom the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which meansany tangible personal property which is normally used for personal,
family, or household purposes, or (2) anything designed or sold for
incorporation into a dwelling. In determining whether a product
is a consumer product, doubtful cases shall be resolved in favorof coverage. For a particular product received by a particular
user, "normally used" refers to a typical or common use of that
class of product, regardless of the status of the particular user
or of the way in which the particular user actually uses, or expectsor is expected to use, the product. A product is a consumer product
regardless of whether the product has substantial commercial,
industrial or non-consumer uses, unless such uses represent theonly significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required toinstall and execute modified versions of a covered work in that
User Product from a modified version of its Corresponding Source
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
updates for a work that has been modified or installed by the
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 55/148
p yrecipient, or for the User Product in which it has been modified
or installed. Access to a network may be denied when the modification
itself materially and adversely affects the operation of the networkor violates the rules and protocols for communication across the
network.
Corresponding Source conveyed, and Installation Information provided,in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms ofthis License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program
shall be treated as though they were included in this License, tothe extent that they are valid under applicable law. If additional
permissions apply only to part of the Program, that part may be
used separately under those permissions, but the entire Program
remains governed by this License without regard to the additionalpermissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any partof it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material
you add to a covered work, you may (if authorized by the copyrightholders of that material) supplement the terms of this License with
terms:
a) Disclaiming warranty or limiting liability differently fromthe terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices
or author attributions in that material or in the AppropriateLegal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material,
or requiring that modified versions of such material be markedin reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensorsor authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
additional terms that apply to those files, or a notice indicating
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 56/148
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated inthe form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate
or modify it is void, and will automatically terminate your rightsunder this License (including any patent licenses granted under the
third paragraph of section 11).
However, if you cease all violation of this License, then yourlicense from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyrightholder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder isreinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from
that copyright holder, and you cure the violation prior to 30 daysafter your receipt of the notice.
Termination of your rights under this section does not terminate
the licenses of parties who have received copies or rights from youunder this License. If your rights have been terminated and not
permanently reinstated, you do not qualify to receive new licenses
for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive orrun a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate ormodify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automaticallyreceives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization or substantially all assets of one or subdividing an
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
11. Patents.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 57/148
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. Thework thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquiredor hereafter acquired, that would be infringed by some manner,
permitted by this License, of making, using, or selling its contributor
version, but do not include claims that would be infringed only as
a consequence of further modification of the contributor version.For purposes of this definition, "control" includes the right to
grant patent sublicenses in a manner consistent with the requirements
of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modifyand propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce apatent (such as an express permission to practice a patent or
covenant not to sue for patent infringement). To "grant" such a
patent license to a party means to make such an agreement or
commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, througha publicly available network server or other readily accessible
means, then you must either (1) cause the Corresponding Source to
be so available, or (2) arrange to deprive yourself of the benefitof the patent license for this particular work, or (3) arrange, in
a manner consistent with the requirements of this License, to extend
the patent license to downstream recipients. "Knowingly relying"
means you have actual knowledge that, but for the patent license,your conveying the covered work in a country, or your recipient's
use of the covered work in a country, would infringe one or more
identifiable patents in that country that you have reason to believe
are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of,
a covered work, and grant a patent license to some of the partiesreceiving the covered work authorizing them to use, propagate,
modify or convey a specific copy of the covered work, then the
patent license you grant is automatically extended to all recipientsof the covered work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is conditionedon the non-exercise of one or more of the rights that are specifically
granted under this License You may not convey a covered work if
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
If conditions are imposed on you (whether by court order, agreementth i ) th t t di t th diti f thi Li th
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 58/148
or otherwise) that contradict the conditions of this License, they
do not excuse you from the conditions of this License. If you
cannot convey a covered work so as to satisfy simultaneously yourobligations under this License and any other pertinent obligations,
then as a consequence you may not convey it at all. For example,
if you agree to terms that obligate you to collect a royalty for
further conveying from those to whom you convey the Program, theonly way you could satisfy both those terms and this License would
be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into asingle combined work, and to convey the resulting work. The terms
of this License will continue to apply to the part which is the
covered work, but the special requirements of the GNU Affero GeneralPublic License, section 13, concerning interaction through a network
will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions
of the GNU General Public License from time to time. Such new
versions will be similar in spirit to the present version, but maydiffer in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU GeneralPublic License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free SoftwareFoundation. If the Program does not specify a version number of
the GNU General Public License, you may choose any version ever
published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes
you to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to followa later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUTWARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
17. Interpretation of Sections 15 and 16.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 59/148
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make
it free software which everyone can redistribute and change underthese terms.
To do so, attach the following notices to the program. It is safestto attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is
found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with this program. If not, see
<http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
This is free software, and you are welcome to redistribute itunder certain conditions; type 'show c' for details.
The hypothetical commands 'show w' and 'show c' should show the
appropriate parts of the General Public License. Of course, yourprogram's commands might be different; for a GUI interface, you
would use an "about box"
GNU General Public License Version 3.0, 29 June 2007 andGCC Runtime Library Exception Version 3.1, 31 March 2009
Version 3.1, 31 March 2009
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 60/148
Copyright © 2009 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of
this license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additionalpermission under section 7 of the GNU General Public License, version
3 ("GPLv3"). It applies to a given file (the "Runtime Library")
that bears a notice placed by the copyright holder of the file
stating that the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of
certain GCC header files and runtime libraries with the compiled
program. The purpose of this Exception is to allow compilation ofnon-GPL (including proprietary) programs to use, in this way, the
header files and runtime libraries covered by this Exception.
0. Definitions.
A file is an "Independent Module" if it either requires the Runtime
Library for execution after a Compilation Process, or makes use ofan interface provided by the Runtime Library, but is not otherwise
based on the Runtime Library.
"GCC" means a version of the GNU Compiler Collection, with or withoutmodifications, governed by version 3 (or a specified later version)
of the GNU General Public License (GPL) with the option of using
any subsequent versions published by the FSF.
"GPL-compatible Software" is software whose conditions of propagation,
modification and use would permit combination with GCC in accord
with the license of GCC.
"Target Code" refers to output from any compiler for a real or
virtual target processor architecture, in executable form or suitable
for input to an assembler, loader, linker and/or execution phase.Notwithstanding that, Target Code does not include data in any
format that is used as a compiler intermediate representation, or
used for producing a compiler intermediate representation.
The "Compilation Process" transforms code entirely represented in
non-intermediate languages designed for human-written code, and/or
in Java Virtual Machine byte code, into Target Code. Thus, for
example, use of source code generators and preprocessors need notbe considered part of the Compilation Process, since the Compilation
Process can be understood as starting with the output of the
generators or preprocessors.
A Compilation Process is "Eligible" if it is done using GCC, alone
or with other GPL-compatible software, or if it is done without
using any work based on GCC. For example, using non-GPL-compatibleSoftware to optimize any GCC intermediate representations would not
qualify as an Eligible Compilation Process
GNU Lesser General Public License Version 2.1, February 1999
A.15. GNU Lesser General Public License Version 2.1, February
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 61/148
y1999
The following applies to all products licensed under the
GNU Lesser General Public License, Version 2.1: You maynot use the identified files except in compliance with
the GNU Lesser General Public License, Version 2.1 (the
"License"). You may obtain a copy of the License athttp://www.gnu.org/licenses/lgpl-2.1.html. A copy of the
license is also reproduced below. Unless required by
applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governingpermissions and limitations under the License.
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also countsas the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away yourfreedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to somespecially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. Youcan use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces ofit in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights These restrictions translate to certain responsibilities for
GNU Lesser General Public License Version 2.1, February 1999
that what they have is not the original version, so that the originalauthor's reputation will not be affected by problems that might be
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 62/148
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist thatany patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by theordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking thoselibraries into non-free programs.
When a program is linked with a library, whether statically or usinga shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser GeneralPublic License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because itdoes Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for manylibraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it
becomes a de-facto standard. To achieve this, non-free programs
must be allowed to use the library. A more frequent case is thata free library does the same job as widely used non-free libraries.
In this case, there is little to gain by limiting the free library
to free software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNUoperating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying distribution and
GNU Lesser General Public License Version 2.1, February 1999
The "Library", below, refers to any such software library or work
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 63/148
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work undercopyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translatedstraightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associatedinterface definition files, plus the scripts used to control
compilation and installation of the library.
Activities other than copying, distribution and modification are notcovered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work basedon the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intactall the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at nocharge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or atable of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function ortable, the facility still operates, and performs whatever part of
its purpose remains meaningful
GNU Lesser General Public License Version 2.1, February 1999
it.
Th it i t th i t t f thi ti t l i i ht t t
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 64/148
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is toexercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Librarywith the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change inthese notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to allsubsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompanyit with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement todistribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of theLibrary, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because itcontains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library the object code for the work may be a
GNU Lesser General Public License Version 2.1, February 1999
6. As an exception to the Sections above, you may also combine orlink a "work that uses the Library" with the Library to produce a
work containing portions of the Library and distribute that work
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 65/148
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permitmodification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that theLibrary is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a referencedirecting the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete correspondingmachine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linkedwith the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understoodthat the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no morethan the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the abovespecified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed forreproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system onwhich the executable runs, unless that component itself accompanies
the executable
GNU Lesser General Public License Version 2.1, February 1999
Sections above.
b) Give prominent notice with the combined library of the fact
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 66/148
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explainingwhere to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Anyattempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licensesterminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify ordistribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on theLibrary), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any furtherrestrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement orotherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence youmay not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be torefrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intendedto apply, and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which isimplemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
GNU Lesser General Public License Version 2.1, February 1999
versions of the Lesser General Public License from time to time.Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 67/148
but ay d e deta to add ess e p ob e s o co ce s.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and"any later version", you have the option of following the terms and
conditions either of that version or of any later version published bythe Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Ourdecision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharingand reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANYKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUMETHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THELIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCHDAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatestpossible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms
of the ordinary General Public License).
To apply these terms attach the following notices to the library
GNU Libtool License
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 68/148
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James
Random Hacker.
<signature of Ty Coon>, 1 April 1990Ty Coon, President of Vice
That's all there is to it!
A.16. GNU Libtool License
The following software may be included in this product:
GNU Libtool (The GNU Portable Library Tool)
If you are receiving a copy of the Oracle software insource code, you are also receiving a copy of two files
(ltmain.sh and ltdl.h) generated by the GNU Libtool in
source code. If you received the Oracle software under
a license other than a commercial (non-GPL) license,then the terms of the Oracle license do NOT apply to
these files from GNU Libtool; they are licensed under
the following licenses, separately from the Oracle
programs you receive.
Oracle elects to use GNU General Public License version
2 (GPL) for any software where a choice of GPL or GNU
Lesser/Library General Public License (LGPL) licenseversions are made available with the language indicating
that GPL/LGPL or any later version may be used, or where
a choice of which version of the GPL/LGPL is applied isunspecified.
From GNU Libtool:
ltmain.sh - Provide generalized library-building supportservices.
NOTE: Changing this file will not affect anything until
you rerun configure.Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
2005, 2006, 2007 Free Software Foundation, Inc.
GNU Readline License
if you distribute this file as part of a program thatcontains a configuration script generated by Autoconf,
you may include it under the same distribution terms that
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 69/148
you use for the rest of that program.
This component is licensed under Section A.13, “GNU General Public License Version 2.0, June 1991”
A.17. GNU Readline License
The following software may be included in this product:
GNU Readline Library
GNU Readline LibraryWith respect to MySQL Server/Cluster software licensed
under GNU General Public License, you are receiving acopy of the GNU Readline Library in source code. The
terms of any Oracle license that might accompany the
Oracle programs do NOT apply to the GNU Readline Library;
it is licensed under the following license, separatelyfrom the Oracle programs you receive. Oracle elects to
use GNU General Public License version 2 (GPL) for any
software where a choice of GPL license versions are
made available with the language indicating that GPLv2
or any later version may be used, or where a choice ofwhich version of the GPL is applied is unspecified.
This component is licensed under Section A.13, “GNU General Public License Version 2.0, June 1991”
A.18. GNU Standard C++ Library (libstdc++) License
The following software may be included in this product: GNU Standard C++ Library (libstdc++)
This component is licensed under Section A.14, “GNU General Public License Version 3.0, 29 June2007 and GCC Runtime Library Exception Version 3.1, 31 March 2009”.
Additional notices:
==Copyright (c) 1994
Hewlett-Packard Company
Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without fee,provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear
in supporting documentation. Hewlett-Packard Company makes norepresentations about the suitability of this software for any
purpose. It is provided "as is" without express or implied
Google Controlling Master Thread I/O Rate Patch License
shared_count.hpp@ Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 70/148
shared_ptr.hppCopyright (C) 1998, 1999 Greg Colvin and Beman Dawes.
Copyright (C) 2001, 2002, 2003 Peter Dimov
weak_ptr.hppCopyright (C) 2001, 2002, 2003 Peter Dimov
enable_shared_from_this.hpp
Copyright (C) 2002 Peter Dimov
Distributed under the Boost Software License, Version 1.0.
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or
organization obtaining a copy of the software and accompanyingdocumentation covered by this license (the "Software") to use,
reproduce, display, distribute, execute, and transmit the Software,
and to prepare derivative works of the Software, and to permit
third-parties to whom the Software is furnished to do so, all subjectto the following:
The copyright notices in the Software and this entire statement,
including the above license grant, this restriction and the followingdisclaimer, must be included in all copies of the Software, in whole
or in part, and all derivative works of the Software, unless such
copies or derivative works are solely in the form of machine-executable
object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE
DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER
LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
==
==
Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
Permission to use, copy, modify, sell, and distribute this softwareis hereby granted without fee, provided that the above copyright
notice appears in all copies, and that both that copyright notice
and this permission notice appear in supporting documentation. Noneof the above authors, nor IBM Haifa Research Laboratories, make any
representation about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty.
==
A 19 G l C t lli M t Th d I/O R t P t h Li
Google Perftools (TCMalloc utility) License
documentation and/or other materials provided with the distribution.* Neither the name of the Google Inc. nor the names of its contributors
may be used to endorse or promote products derived from this software
ith t ifi i itt i i
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 71/148
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESSFOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
A.20. Google Perftools (TCMalloc utility) License
The following software may be included in this product:
Google Perftools (TCMalloc utility)
Copyright (c) 1998-2006, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with orwithout modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
* Redistributions in binary form must reproduce the abovecopyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials providedwith the distribution.
* Neither the name of Google Inc. nor the names of itscontributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
jboss-common-jdbc-wrapper.jar License
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 72/148
* Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.* Neither the name of the Google Inc. nor the names of its contributors
may be used to endorse or promote products derived from this softwarewithout specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
A.22. jboss-common-jdbc-wrapper.jar License
You are receiving a copy of jboss-common-jdbc-wrapper.jar in both source and object codein the following /src/lib/jboss-common-jdbc-wrapper.jar . The terms of the Oracle licensedo NOT apply to jboss-common-jdbc-wrapper.jar ; it is licensed under the following license,separately from the Oracle programs you receive. If you do not wish to install this library, you mayremove the file /src/lib/jboss-common-jdbc-wrapper.jar , but the Oracle program might notoperate properly or at all without the library.
This component is licensed under Section A.15, “GNU Lesser General Public License Version 2.1,February 1999”.
A.23. lib_sql.cc License
The following software may be included in this product:
lib_sql.cc
Copyright (c) 2000
SWsoft company
This material is provided "as is", with absolutely no warranty
expressed or implied. Any use is at your own risk.
Permission to use or copy this software for any purpose is hereby
granted without fee provided the above notices are retained on
libevent License
A.25. libevent License
The following software may be included in this product:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 73/148
The following software may be included in this product:
libevent
Copyright (c) 2000-2007 Niels Provos <[email protected]>All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditionsare met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote productsderived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIESOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OFTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
==
Parts developed by Adam Langley==
==
log.cBased on err.c, which was adapted from OpenBSD libc *err*warncode.
Copyright (c) 2005 Nick Mathewson
Copyright (c) 2000 Dug SongCopyright (c) 1993 The Regents of the University of California.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with thedistribution.
Libiconv License
==min_heap.h
Copyright (c) 2006 Maxim Yegorushkin
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 74/148
py g ( ) gAll rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditionsare met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The name of the author may not be used to endorse or promote
products derived from this software without specific priorwritten permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OROTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
==
==
win32.c
Copyright 2000-2002 Niels Provos
Copyright 2003 Michael A. Davis
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer inthe documentation and/or other materials provided with the
distribution.
3. The name of the author may not be used to endorse or promoteproducts derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESSOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
libintl License
You are receiving a copy of the GNU LIBICONV Library. The terms of the Oraclelicense do NOT apply to the GNU LIBICONV Library; it is licensed under the
following license, separately from the Oracle programs you receive. If you do
not wish to install this program, you may delete [agent install
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 75/148
dir]/lib/libiconv.* and [agent install dir]/licenses/lgpl/iconv files.
This component is licensed under Section A.15, “GNU Lesser General Public License Version 2.1,February 1999”.
A.27. libintl License
The following software may be included in this product:
libintl
Copyright (C) 1994 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUMBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings in
this Software without prior written authorization from the X Consortium. FSF changes to this file are in the public domain.
.
Copyright 1996-2007 Free Software Foundation, Inc. Taken from GNU libtool, 2001
Originally by Gordon Matzigkeit <[email protected]>, 1996
This file is free software; the Free Software Foundation gives unlimitedpermission to copy and/or distribute it, with or without modifications, as long
as this notice is preserved.
.You are receiving a copy of the libintl library. The terms of the Oracle licensedo NOT apply to the libintl library; it is licensed under the following license,
separately from the Oracle programs you receive. If you do not wish to install
this program, you may create an "exclude" file and run tar with the X option.
LPeg Library License
1. Redistributions of source code must retain the above copyright
notice, and the entire permission notice in its entirety,
including the disclaimer of warranties.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 76/148
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer inthe documentation and/or other materials provided with the
distribution.3. The name of the author may not be used to endorse or promote
products derived from this software without specific prior
written permission.
ALTERNATIVELY, this product may be distributed under the terms
of the GNU Public License, in which case the provisions of the
GPL are required INSTEAD OF the above restrictions. (This clause
is necessary due to a potential bad interaction between the GPL
and the restrictions contained in a BSD-style copyright.)
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIEDWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISEDOF THE POSSIBILITY OF SUCH DAMAGE.
A.29. LPeg Library License
The following software may be included in this product:
LPeg
Use of any of this software is governed by the terms of the license below:
Copyright © 2008 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy ofthis software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
LuaFileSystem Library License
to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 77/148
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.
A.31. LuaFileSystem Library License
The following software may be included in this product:
LuaFileSystem
Copyright © 2003 Kepler Project.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and topermit persons to whom the Software is furnished to do so, subject
to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OFCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
A.32. md5 (Message-Digest Algorithm 5) License
The following software may be included in this product:
md5 (Message-Digest Algorithm 5)
This code implements the MD5 message-digest algorithm.The algorithm is due to Ron Rivest. This code was
written by Colin Plumb in 1993, no copyright is claimed.
This code is in the public domain; do with it what you wish.
Equivalent code is available from RSA Data Security, Inc.
mkpasswd.pl License
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 78/148
* Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of the Danga Interactive nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A.34. mkpasswd.pl License
The following software may be included in this product:
mkpasswd.pl Perl module
Copyright (C) 2003-2004 by Chris Grau
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself, either Perl version 5.8.1 or, at your option,
any later version of Perl 5 you may have available.
The Perl 5.8.1 license (from http://www.cpan.org/src/5.0/perl-5.8.1.tar.gz - main readme file):
Perl Kit, Version 5
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998
1999, 2000, 2001, by Larry Wall and others
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of either:
mkpasswd.pl License
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307, USA or visit their web page on the internet at
http://www.gnu.org/copyleft/gpl.html.
For those of you that choose to use the GNU General Public License,
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 79/148
For those of you that choose to use the GNU General Public License,
my interpretation of the GNU General Public License is that no Perlscript falls under the terms of the GPL unless you explicitly put
said script under the terms of the GPL yourself. Furthermore, anyobject code linked with perl does not automatically fall under the
terms of the GPL, provided such object code only adds definitions
of subroutines and variables, and does not otherwise impair the
resulting interpreter from executing any standard Perl script. Iconsider linking in C subroutines in this manner to be the moral
equivalent of defining subroutines in the Perl language itself. You
may sell such an object file as proprietary provided that you provide
or offer to provide the Perl source, as specified by the GNU General
Public License. (This is merely an alternate way of specifying inputto the program.) You may also sell a binary produced by the dumping of
a running Perl script that belongs to you, provided that you provide oroffer to provide the Perl source as specified by the GPL. (The
fact that a Perl interpreter and your code are in the same binary file
is, in this case, a form of mere aggregation.) This is my interpretation
of the GPL. If you still have concerns or difficulties understandingmy intent, feel free to contact me. Of course, the Artistic License
spells all this out for your protection, so you may prefer to use that.
--------------------------------------------------------------------------
Perl is a language that combines some of the features of C, sed, awk
and shell. See the manual page for more hype. There are also many Perl
books available, covering a wide variety of topics, from various publishers.See pod/perlbook.pod for more information.
Please read all the directions below before you proceed any further, andthen follow them carefully.
After you have unpacked your kit, you should have all the files listed
in MANIFEST.
Installation
1) Detailed instructions are in the file "INSTALL", which you shouldread if you are either installing on a system resembling Unix
or porting perl to another platform. For non-Unix platforms, see the
corresponding README.
2) Read the manual entries before running perl.
3) IMPORTANT! Help save the world! Communicate any problems and suggested
patches to [email protected] so we can keep the world in sync.If you have a problem, there's someone else out there who either has had
or will have the same problem. It's usually helpful if you send the
output of the "myconfig" script in the main perl directory.
If you've succeeded in compiling perl the perlbug script in the "utils"
mkpasswd.pl License
The "Artistic License"
Preamble
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 80/148
The intent of this document is to state the conditions under which aPackage may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,while giving the users of the package the right to use and distribute
the Package in a more-or-less customary fashion, plus the right to make
reasonable modifications.
Definitions:
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
"Standard Version" refers to such a Package if it has not beenmodified, or has been modified in accordance with the wishes
of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright orcopyrights for the package.
"You" is you, if you're thinking about copying or distributing
this Package.
"Reasonable copying fee" is whatever you can justify on the
basis of media cost, duplication charges, time of people involved,
and so on. (You will not be required to justify it to theCopyright Holder, but only to the computing community at large
as a market that must bear the fee.)
"Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item.
It also means that recipients of the item may redistribute it
under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of thefollowing:
a) place your modifications in the Public Domain or otherwise make themFreely Available, such as by posting said modifications to Usenet or
an equivalent medium or placing the modifications on a major archive
nt_servc (Windows NT Service class library) License
to get the Standard Version.
b) accompany the distribution with the machine-readable source of
the Package with your modifications.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 81/148
c) give non-standard executables non-standard names, and clearlydocument the differences in manual pages (or equivalent), together
with instructions on where to get the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of thisPackage. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial) software
distribution provided that you do not advertise this Package as aproduct of your own. You may embed this Package's interpreter within
an executable of yours (by linking); this shall be construed as a mereform of aggregation, provided that the complete Standard Version of the
interpreter is so embedded.
6. The scripts and library files supplied as input to or produced asoutput from the programs of this Package do not automatically fall
under the copyright of this Package, but belong to whoever generated
them, and may be sold commercially, and may be aggregated with this
Package. If such scripts or library files are aggregated with this
Package via the so-called "undump" or "unexec" methods of producing abinary executable image, then distribution of such an image shall
neither be construed as a distribution of this Package nor shall it
fall under the restrictions of Paragraphs 3 and 4, provided that you donot represent such an executable image as a Standard Version of this
Package.
7. C subroutines (or comparably compiled subroutines in other
languages) supplied by you and linked into this Package in order to
emulate subroutines and variables of the language defined by this
Package shall not be considered part of this Package, but are the
equivalent of input as in Paragraph 6, provided these subroutines donot change the language in any way that would cause it to fail the
regression tests for the language.
8. Aggregation of this Package with a commercial distribution is always
permitted provided that the use of this Package is embedded; that is,
when no overt attempt is made to make this Package's interfaces visible
to the end user of the commercial distribution. Such use shall not beconstrued as a distribution of this Package.
9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior writtenpermission.
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE
OpenPAM License
A.36. OpenPAM License
The following software may be included in this product:
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 82/148
OpenPAM
Copyright (c) 2002-2003 Networks Associates Technology, Inc.
Copyright (c) 2004-2007 Dag-Erling Smørgrav
All rights reserved.
This software was developed for the FreeBSD Project by
ThinkSec AS and Network Associates Laboratories, the
Security Research Division of Network Associates, Inc.under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"),
as part of the DARPA CHATS research program.
Redistribution and use in source and binary forms,with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the abovecopyright notice, this list of conditions and the
following disclaimer.
2. Redistributions in binary form must reproduce the
above copyright notice, this list of conditions andthe following disclaimer in the documentation and/or
other materials provided with the distribution.
3. The name of the author may not be used to endorse orpromote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVENIF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A.37. OpenSSL v1.0 License
The following software may be included in this product:
NOTE: Does not apply to GPL licensed server (OpenSSL is not shipped with it)
OpenSSL v1.0
OpenSSL v1.0 License
this list of conditions and the following disclaimer.2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.3. All advertising materials mentioning features or use of this software must
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 83/148
display the following acknowledgment: "This product includes softwaredeveloped by the OpenSSL Project for use in the OpenSSL Toolkit. (Link1 /)"
.4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
endorse or promote products derived from this software without prior written
permission. For written permission, please contact [email protected].
5. Products derived from this software may not be called "OpenSSL" nor may
"OpenSSL" appear in their names without prior written permission of the
OpenSSL Project.
6. Redistributions of any form whatsoever must retain the following
acknowledgment: "This product includes software developed by the OpenSSLProject for use in the OpenSSL Toolkit (Link2 /)"
.THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OFTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
====================================================================
This product includes cryptographic software written by Eric Young([email protected]). This product includes software written by Tim Hudson
Original SSLeay License
-----------------------
/ Copyright (C) 1995-1998 Eric Young ([email protected])
All rights reserved.
This package is an SSL implementation written by Eric Young([email protected]). The implementation was written so as to conform with
Netscapes SSL. This library is free for commercial and non-commercial use
as long as the following conditions are aheared to. The following conditionsapply to all code found in this distribution, be it the RC4, RSA, lhash,
DES, etc., code; not just the SSL code. The SSL documentation included with
this distribution is covered by the same copyright terms except that the
holder is Tim Hudson ([email protected]). Copyright remains Eric Young's,and as such any Copyright notices in the code are not to be removed. If this
package is used in a product, Eric Young should be given attribution as the
author of the parts of the library used. This can be in the form of a
textual message at program startup or in documentation (online or textual)provided with the package. Redistribution and use in source and binary
forms, with or without modification, are permitted provided that the
following conditions are met: 1. Redistributions of source code must retainthe copyright notice, this list of conditions and the following disclaimer.
2 Redistributions in binary form must reproduce the above copyright notice
PCRE License
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OFTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The
license and distribution terms for any publically available version or
derivative of this code cannot be changed. i.e. this code cannot simply becopied and put under another distribution license [including the GNU Public
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 84/148
License.]
A.38. PCRE License
The following software may be included in this product:
PCRE (Perl Compatible Regular Expressions) Library
PCRE LICENCE
PCRE is a library of functions to support regular expressions
whose syntax and semantics are as close as possible to thoseof the Perl 5 language.
Release 7 of PCRE is distributed under the terms of the "BSD"
licence, as specified below. The documentation for PCRE,supplied in the "doc" directory, is distributed under the same
terms as the software itself.
The basic library functions are written in C and are
freestanding. Also included in the distribution is a setof C++ wrapper functions.
THE BASIC LIBRARY FUNCTIONS
---------------------------
Written by: Philip Hazel
Email local part: ph10Email domain: cam.ac.uk
University of Cambridge Computing Service,
Cambridge, England. Phone: +44 1223 334714.
Copyright (c) 1997-2006 University of Cambridge
All rights reserved.
THE C++ WRAPPER FUNCTIONS
-------------------------
Contributed by: Google Inc.
Copyright (c) 2006, Google Inc.
All rights reserved.
THE "BSD" LICENCE-----------------
Redistribution and use in source and binary forms,with or without modification, are permitted provided
that the following conditions are met:
Percona Multiple I/O Threads Patch License
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 85/148
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OFTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
End
A.39. Percona Multiple I/O Threads Patch License
The following software may be included in this product:
Percona Multiple I/O threads patch
Copyright (c) 2008, 2009 Percona Inc
All rights reserved.
Redistribution and use of this software in source and binary forms,
with or without modification, are permitted provided that the
following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Percona Inc. nor the names of its contributors
may be used to endorse or promote products derived from this softwarewithout specific prior written permission of Percona Inc.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
A.40. Red HAT RPM Spec File LicenseThe following software may be included in this product:
Red Hat RPM Spec File
RegEX-Spencer Library License
A.41. RegEX-Spencer Library License
The following software may be included in this product: Henry Spencer's Regular-Expression Library(RegEX-Spencer)
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 86/148
Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved.
This software is not subject to any license of the American Telephoneand Telegraph Company or of the Regents of the University of California.
Permission is granted to anyone to use this software for any purpose on
any computer system, and to alter it and redistribute it, subjectto the following restrictions:
1. The author is not responsible for the consequences of use of thissoftware, no matter how awful, even if they arise from flaws in it.
2. The origin of this software must not be misrepresented, either by
explicit claim or by omission. Since few users ever read sources,credits must appear in the documentation.
3. Altered versions must be plainly marked as such, and must not be
misrepresented as being the original software. Since few usersever read sources, credits must appear in the documentation.
4. This notice may not be removed or altered.
A.42. RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License
The following software may be included in this product:
RFC 3174 - US Secure Hash Algorithm 1 (SHA1)
RFC 3174 - US Secure Hash Algorithm 1 (SHA1)
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain itor assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, thisdocument itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures forcopyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
SHA-1 in C License
The Richard O’Keefe String Library is subject to the following notice:
These files are in the public domain. This includes getopt.c, whichis the work of Henry Spencer, University of Toronto Zoology, who
says of it "None of this software is derived from Bell software. I
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 87/148
had no access to the source for Bell's versions at the time I wroteit. This software is hereby explicitly placed in the public domain.It may be used for any purpose on any machine by anyone." I would
greatly prefer it if *my* material received no military use.
The t_ctype.h file is subject to the following notice:
Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved.
Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved.
Permission to use, copy, modify, distribute and sell this software and its
documentation for any purpose is hereby granted without fee, provided that the abovecopyright notice appear in all copies.
Smaphan Raruenrom and Pruet Boonma makes no representations about
the suitability of this software for any purpose. It is provided
"as is" without express or implied warranty.
A.44. SHA-1 in C License
The following software may be included in this product:
SHA-1 in C
SHA-1 in C
By Steve Reid <[email protected]>
100% Public Domain
A.45. Simple Logging Facade for Java (SLF4J) License
The following software may be included in this product:Simple Logging Facade for Java (SLF4J)
Copyright (c) 2004-2008 QOS.ch
All rights reserved.
Permission is hereby granted, free of charge,to any person obtaining a copy of this software
and associated documentation files (the "Software"),
to deal in the Software without restriction, including
without limitation the rights to use, copy, modify,merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom
the Software is furnished to do so, subject to the
following conditions:
zlib License
Unicode Data Files
Copyright 2001-2009 Unicode, Inc.
Disclaimer
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 88/148
This source code is provided as is by Unicode, Inc. No claims are
made as to fitness for any particular purpose. No warranties of any
kind are expressed or implied. The recipient agrees to determineapplicability of information provided. If this file has been
purchased on magnetic or optical media from Unicode, Inc., the
sole remedy for any claim will be exchange of defective mediawithin 90 days of receipt.
Limitations on Rights to Redistribute This Code
Unicode, Inc. hereby grants the right to freely use the informationsupplied in this file in the creation of products supporting the
Unicode Standard, and to make copies of this file in any form
for internal or external distribution as long as this noticeremains attached.
A.47. zlib License
The following software may be included in this product:
zlib
Oracle gratefully acknowledges the contributions of Jean-loup Gailly and Mark Adler in creating the zlibgeneral purpose compression library which is used in this product.
zlib.h -- interface of the 'zlib' general purpose compression library
Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler
zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.3, July 18th, 2005
Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.5, April 19th, 2010
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from theuse of this software. Permission is granted to anyone to use this software
for any purpose,including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would
be appreciated but is not required.
ZLIB.NET License
Redistribution and use in source and binary forms,with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the
above copyright notice this list of conditions and
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 89/148
above copyright notice, this list of conditions andthe following disclaimer.
* Redistributions in binary form must reproduce theabove copyright notice, this list of conditions and
the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of ComponentAce nor the names of itscontributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ANDCONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IFADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 90/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 91/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 92/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 93/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 94/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 95/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 96/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 97/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 98/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 99/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 100/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 101/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 102/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 103/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 104/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 105/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 106/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 107/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 108/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 109/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 110/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 111/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 112/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 113/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 114/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 115/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 116/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 117/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 118/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 119/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 120/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 121/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 122/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 123/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 124/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 125/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 126/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 127/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 128/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 129/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 130/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 131/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 132/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 133/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 134/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 135/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 136/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 137/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 138/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 139/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 140/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 141/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 142/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 143/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 144/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 145/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 146/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 147/148
7/29/2019 Mysql g11n Excerpt 5.6 en.a4
http://slidepdf.com/reader/full/mysql-g11n-excerpt-56-ena4 148/148