Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
e8ab897f
Commit
e8ab897f
authored
Jun 24, 2013
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MDEV-4617 PLUGINS - Show internal Locales in I_S
INFORMATION_SCHEMA.LOCALES plugin. Contribution by Roberto Spadim
parent
850c77b7
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
250 additions
and
1 deletion
+250
-1
mysql-test/suite/plugins/r/locales.result
mysql-test/suite/plugins/r/locales.result
+112
-0
mysql-test/suite/plugins/t/locales.opt
mysql-test/suite/plugins/t/locales.opt
+3
-0
mysql-test/suite/plugins/t/locales.test
mysql-test/suite/plugins/t/locales.test
+7
-0
mysql-test/t/mysqld--help.test
mysql-test/t/mysqld--help.test
+1
-1
plugin/locale_info/CMakeLists.txt
plugin/locale_info/CMakeLists.txt
+5
-0
plugin/locale_info/locale_info.cc
plugin/locale_info/locale_info.cc
+122
-0
No files found.
mysql-test/suite/plugins/r/locales.result
0 → 100644
View file @
e8ab897f
select * from information_schema.locales;
ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOUSAND_SEP ERROR_MESSAGE_LANGUAGE
0 en_US English - United States 9 9 . , english
1 en_GB English - United Kingdom 9 9 . , english
2 ja_JP Japanese - Japan 3 3 . , japanese
3 sv_SE Swedish - Sweden 9 7 , swedish
4 de_DE German - Germany 9 10 , . german
5 fr_FR French - France 9 8 , french
6 ar_AE Arabic - United Arab Emirates 6 8 . , english
7 ar_BH Arabic - Bahrain 6 8 . , english
8 ar_JO Arabic - Jordan 12 8 . , english
9 ar_SA Arabic - Saudi Arabia 12 8 . english
10 ar_SY Arabic - Syria 12 8 . , english
11 be_BY Belarusian - Belarus 10 10 , . english
12 bg_BG Bulgarian - Bulgaria 9 10 , english
13 ca_ES Catalan - Catalan 8 9 , english
14 cs_CZ Czech - Czech Republic 8 7 , czech
15 da_DK Danish - Denmark 9 7 , . danish
16 de_AT German - Austria 9 10 , german
17 es_ES Spanish - Spain 10 9 , spanish
18 et_EE Estonian - Estonia 9 9 , estonian
19 eu_ES Basque - Basque 9 10 , english
20 fi_FI Finnish - Finland 9 11 , english
21 fo_FO Faroese - Faroe Islands 9 12 , . english
22 gl_ES Galician - Galician 8 8 , english
23 gu_IN Gujarati - India 10 8 . , english
24 he_IL Hebrew - Israel 7 5 . , english
25 hi_IN Hindi - India 7 9 . , english
26 hr_HR Croatian - Croatia 8 11 , english
27 hu_HU Hungarian - Hungary 10 9 , . hungarian
28 id_ID Indonesian - Indonesia 9 6 , . english
29 is_IS Icelandic - Iceland 9 12 , . english
30 it_CH Italian - Switzerland 9 9 , ' italian
31 ko_KR Korean - Korea 3 3 . , korean
32 lt_LT Lithuanian - Lithuania 9 14 , . english
33 lv_LV Latvian - Latvia 10 11 , english
34 mk_MK Macedonian - FYROM 9 10 , english
35 mn_MN Mongolia - Mongolian 18 6 , . english
36 ms_MY Malay - Malaysia 9 6 . , english
37 nb_NO Norwegian(Bokml) - Norway 9 7 , . norwegian
38 nl_NL Dutch - The Netherlands 9 9 , dutch
39 pl_PL Polish - Poland 11 12 , polish
40 pt_BR Portugese - Brazil 9 7 , portuguese
41 pt_PT Portugese - Portugal 9 7 , portuguese
42 ro_RO Romanian - Romania 10 8 , . romanian
43 ru_RU Russian - Russia 8 11 , russian
44 ru_UA Russian - Ukraine 8 11 , . russian
45 sk_SK Slovak - Slovakia 9 8 , slovak
46 sl_SI Slovenian - Slovenia 9 10 , english
47 sq_AL Albanian - Albania 7 10 , . english
48 sr_RS Serbian - Serbia 9 10 . serbian
49 ta_IN Tamil - India 10 8 . , english
50 te_IN Telugu - India 10 9 . , english
51 th_TH Thai - Thailand 10 8 . , english
52 tr_TR Turkish - Turkey 7 9 , . english
53 uk_UA Ukrainian - Ukraine 8 9 , . ukrainian
54 ur_PK Urdu - Pakistan 6 6 . , english
55 vi_VN Vietnamese - Vietnam 16 11 , . english
56 zh_CN Chinese - Peoples Republic of China 3 3 . , english
57 zh_TW Chinese - Taiwan 3 2 . , english
58 ar_DZ Arabic - Algeria 6 8 . , english
59 ar_EG Arabic - Egypt 6 8 . , english
60 ar_IN Arabic - Iran 6 8 . , english
61 ar_IQ Arabic - Iraq 6 8 . , english
62 ar_KW Arabic - Kuwait 6 8 . , english
63 ar_LB Arabic - Lebanon 12 8 . , english
64 ar_LY Arabic - Libya 6 8 . , english
65 ar_MA Arabic - Morocco 6 8 . , english
66 ar_OM Arabic - Oman 6 8 . , english
67 ar_QA Arabic - Qatar 6 8 . , english
68 ar_SD Arabic - Sudan 6 8 . , english
69 ar_TN Arabic - Tunisia 6 8 . , english
70 ar_YE Arabic - Yemen 6 8 . , english
71 de_BE German - Belgium 9 10 , . german
72 de_CH German - Switzerland 9 10 . ' german
73 de_LU German - Luxembourg 9 10 , . german
74 en_AU English - Australia 9 9 . , english
75 en_CA English - Canada 9 9 . , english
76 en_IN English - India 9 9 . , english
77 en_NZ English - New Zealand 9 9 . , english
78 en_PH English - Philippines 9 9 . , english
79 en_ZA English - South Africa 9 9 . , english
80 en_ZW English - Zimbabwe 9 9 . , english
81 es_AR Spanish - Argentina 10 9 , . spanish
82 es_BO Spanish - Bolivia 10 9 , spanish
83 es_CL Spanish - Chile 10 9 , spanish
84 es_CO Spanish - Columbia 10 9 , spanish
85 es_CR Spanish - Costa Rica 10 9 . spanish
86 es_DO Spanish - Dominican Republic 10 9 . spanish
87 es_EC Spanish - Ecuador 10 9 , spanish
88 es_GT Spanish - Guatemala 10 9 . spanish
89 es_HN Spanish - Honduras 10 9 . spanish
90 es_MX Spanish - Mexico 10 9 . spanish
91 es_NI Spanish - Nicaragua 10 9 . spanish
92 es_PA Spanish - Panama 10 9 . spanish
93 es_PE Spanish - Peru 10 9 . spanish
94 es_PR Spanish - Puerto Rico 10 9 . spanish
95 es_PY Spanish - Paraguay 10 9 , spanish
96 es_SV Spanish - El Salvador 10 9 . spanish
97 es_US Spanish - United States 10 9 . , spanish
98 es_UY Spanish - Uruguay 10 9 , spanish
99 es_VE Spanish - Venezuela 10 9 , spanish
100 fr_BE French - Belgium 9 8 , . french
101 fr_CA French - Canada 9 8 , french
102 fr_CH French - Switzerland 9 8 , french
103 fr_LU French - Luxembourg 9 8 , french
104 it_IT Italian - Italy 9 9 , italian
105 nl_BE Dutch - Belgium 9 9 , . dutch
106 no_NO Norwegian - Norway 9 7 , . norwegian
107 sv_FI Swedish - Finland 9 7 , swedish
108 zh_HK Chinese - Hong Kong SAR 3 3 . , english
109 el_GR Greek - Greece 11 9 , . greek
mysql-test/suite/plugins/t/locales.opt
0 → 100644
View file @
e8ab897f
--loose-locale
--plugin-load=$LOCALES_SO
mysql-test/suite/plugins/t/locales.test
0 → 100644
View file @
e8ab897f
if
(
`select count(*) = 0 from information_schema.plugins where plugin_name = 'locales' and plugin_status='active'`
)
{
--
skip
LOCALES
plugin
is
not
active
}
select
*
from
information_schema
.
locales
;
mysql-test/t/mysqld--help.test
View file @
e8ab897f
...
...
@@ -28,7 +28,7 @@ perl;
thread
-
concurrency
super
-
large
-
pages
mutex
-
deadlock
-
detector
null
-
audit
aria
pbxt
oqgraph
sphinx
thread
-
handling
test
-
sql
-
discovery
rpl
-
semi
-
sync
query
-
cache
-
info
query
-
response
-
time
/
;
query
-
response
-
time
locales
/
;
# And substitute the content some environment variables with their
# names:
...
...
plugin/locale_info/CMakeLists.txt
0 → 100644
View file @
e8ab897f
INCLUDE_DIRECTORIES
(
${
CMAKE_SOURCE_DIR
}
/sql
${
CMAKE_SOURCE_DIR
}
/regex
${
CMAKE_SOURCE_DIR
}
/extra/yassl/include
)
MYSQL_ADD_PLUGIN
(
LOCALES locale_info.cc
)
plugin/locale_info/locale_info.cc
0 → 100644
View file @
e8ab897f
/*
Copyright (c) 2013, Spaempresarial - Brazil, Roberto Spadim
http://www.spadim.com.br/
roberto@spadim.com.br
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.
* Neither the name of the Roberto Spadim nor the
names of the 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 NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL ROBERTO SPADIM 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.
*/
#include <sql_class.h> // THD
#include <table.h> // ST_SCHEMA_TABLE
#include <mysql/plugin.h>
#include <m_ctype.h>
#include "sql_locale.h"
bool
schema_table_store_record
(
THD
*
thd
,
TABLE
*
table
);
static
MY_LOCALE
**
locale_list
;
/* LOCALES */
static
ST_FIELD_INFO
locale_info_locale_fields_info
[]
=
{
{
"ID"
,
4
,
MYSQL_TYPE_LONGLONG
,
0
,
0
,
0
,
0
},
{
"NAME"
,
255
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
},
{
"DESCRIPTION"
,
255
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
},
{
"MAX_MONTH_NAME_LENGTH"
,
4
,
MYSQL_TYPE_LONGLONG
,
0
,
0
,
0
,
0
},
{
"MAX_DAY_NAME_LENGTH"
,
4
,
MYSQL_TYPE_LONGLONG
,
0
,
0
,
0
,
0
},
{
"DECIMAL_POINT"
,
2
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
},
{
"THOUSAND_SEP"
,
2
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
},
{
"ERROR_MESSAGE_LANGUAGE"
,
64
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
},
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
,
0
}
};
static
int
locale_info_fill_table_locale
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
)
{
TABLE
*
table
=
tables
->
table
;
CHARSET_INFO
*
cs
=
system_charset_info
;
for
(
MY_LOCALE
**
loc
=
locale_list
;
*
loc
;
loc
++
)
{
/* ID */
table
->
field
[
0
]
->
store
((
longlong
)
(
*
loc
)
->
number
,
TRUE
);
/* NAME */
table
->
field
[
1
]
->
store
((
*
loc
)
->
name
,
strlen
((
*
loc
)
->
name
),
cs
);
/* DESCRIPTION */
table
->
field
[
2
]
->
store
((
*
loc
)
->
description
,
strlen
((
*
loc
)
->
description
),
cs
);
/* MAX_MONTH_NAME_LENGTH */
table
->
field
[
3
]
->
store
((
longlong
)
(
*
loc
)
->
max_month_name_length
,
TRUE
);
/* MAX_DAY_NAME_LENGTH */
table
->
field
[
4
]
->
store
((
longlong
)
(
*
loc
)
->
max_day_name_length
,
TRUE
);
/* DECIMAL_POINT */
char
decimal
=
(
*
loc
)
->
decimal_point
;
table
->
field
[
5
]
->
store
(
&
decimal
,
decimal
?
1
:
0
,
cs
);
/* THOUSAND_SEP */
char
thousand
=
(
*
loc
)
->
thousand_sep
;
table
->
field
[
6
]
->
store
(
&
thousand
,
thousand
?
1
:
0
,
cs
);
/* ERROR_MESSAGE_LANGUAGE */
table
->
field
[
7
]
->
store
((
*
loc
)
->
errmsgs
->
language
,
strlen
((
*
loc
)
->
errmsgs
->
language
),
cs
);
if
(
schema_table_store_record
(
thd
,
table
))
return
1
;
}
return
0
;
}
static
int
locale_info_plugin_init_locales
(
void
*
p
)
{
ST_SCHEMA_TABLE
*
schema
=
(
ST_SCHEMA_TABLE
*
)
p
;
schema
->
fields_info
=
locale_info_locale_fields_info
;
schema
->
fill_table
=
locale_info_fill_table_locale
;
#if defined(_WIN64)
locale_list
=
(
MY_LOCALE
**
)
GetProcAddress
(
GetModuleHandle
(
NULL
),
"?my_locales@@3PAPEAVMY_LOCALE@@A"
);
#elif defined(_WIN32)
locale_list
=
(
MY_LOCALE
**
)
GetProcAddress
(
GetModuleHandle
(
NULL
),
"?my_locales@@3PAPAVMY_LOCALE@@A"
);
#else
locale_list
=
my_locales
;
#endif
return
0
;
}
static
struct
st_mysql_information_schema
locale_info_plugin
=
{
MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION
};
/*
Plugin library descriptor
*/
maria_declare_plugin
(
locales
)
{
MYSQL_INFORMATION_SCHEMA_PLUGIN
,
/* the plugin type (see include/mysql/plugin.h) */
&
locale_info_plugin
,
/* pointer to type-specific plugin descriptor */
"LOCALES"
,
/* plugin name */
"Roberto Spadim, Spaempresarial - Brazil"
,
/* plugin author */
"Lists all locales from server."
,
/* the plugin description */
PLUGIN_LICENSE_BSD
,
/* the plugin license (see include/mysql/plugin.h) */
locale_info_plugin_init_locales
,
/* Pointer to plugin initialization function */
0
,
/* Pointer to plugin deinitialization function */
0x0100
,
/* Numeric version 0xAABB means AA.BB veriosn */
NULL
,
/* Status variables */
NULL
,
/* System variables */
"1.0"
,
/* String version representation */
MariaDB_PLUGIN_MATURITY_ALPHA
/* Maturity (see include/mysql/plugin.h)*/
}
maria_declare_plugin_end
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment