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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
e552c5c4
Commit
e552c5c4
authored
Dec 14, 2004
by
gluh@gluh.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix for bug #7220: information_schema: errors in "character_sets"
parent
4c4352e5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
15 deletions
+37
-15
mysql-test/r/information_schema.result
mysql-test/r/information_schema.result
+11
-11
sql/sql_show.cc
sql/sql_show.cc
+26
-4
No files found.
mysql-test/r/information_schema.result
View file @
e552c5c4
...
@@ -156,14 +156,14 @@ drop tables testtets.t4, testtets.t1, t2, t3;
...
@@ -156,14 +156,14 @@ drop tables testtets.t4, testtets.t1, t2, t3;
drop database testtets;
drop database testtets;
select * from information_schema.CHARACTER_SETS
select * from information_schema.CHARACTER_SETS
where CHARACTER_SET_NAME like 'latin1%';
where CHARACTER_SET_NAME like 'latin1%';
CHARACTER_SET_NAME DE
SCRIPTION DEFAULT_COLLATE_NAME
MAXLEN
CHARACTER_SET_NAME DE
FAULT_COLLATE_NAME DESCRIPTION
MAXLEN
latin1
ISO 8859-1 West European latin1_swedish_ci
1
latin1
latin1_swedish_ci ISO 8859-1 West European
1
SHOW CHARACTER SET LIKE 'latin1%';
SHOW CHARACTER SET LIKE 'latin1%';
Charset Description Default collation Maxlen
Charset Description Default collation Maxlen
latin1 ISO 8859-1 West European latin1_swedish_ci 1
latin1 ISO 8859-1 West European latin1_swedish_ci 1
SHOW CHARACTER SET * LIKE 'latin1%';
SHOW CHARACTER SET * LIKE 'latin1%';
CHARACTER_SET_NAME DE
SCRIPTION DEFAULT_COLLATE_NAME
MAXLEN
CHARACTER_SET_NAME DE
FAULT_COLLATE_NAME DESCRIPTION
MAXLEN
latin1
ISO 8859-1 West European latin1_swedish_ci
1
latin1
latin1_swedish_ci ISO 8859-1 West European
1
SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%';
Charset Description Default collation Maxlen
Charset Description Default collation Maxlen
latin1 ISO 8859-1 West European latin1_swedish_ci 1
latin1 ISO 8859-1 West European latin1_swedish_ci 1
...
@@ -171,8 +171,8 @@ SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%';
...
@@ -171,8 +171,8 @@ SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%';
CHARACTER_SET_NAME
CHARACTER_SET_NAME
latin1
latin1
SHOW CHARACTER SET * WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET * WHERE CHARACTER_SET_NAME like 'latin1%';
CHARACTER_SET_NAME DE
SCRIPTION DEFAULT_COLLATE_NAME
MAXLEN
CHARACTER_SET_NAME DE
FAULT_COLLATE_NAME DESCRIPTION
MAXLEN
latin1
ISO 8859-1 West European latin1_swedish_ci
1
latin1
latin1_swedish_ci ISO 8859-1 West European
1
select * from information_schema.COLLATIONS
select * from information_schema.COLLATIONS
where COLLATION_NAME like 'latin1%';
where COLLATION_NAME like 'latin1%';
COLLATION_NAME CHARSET ID DEFAULT COMPILED SORTLEN
COLLATION_NAME CHARSET ID DEFAULT COMPILED SORTLEN
...
@@ -471,8 +471,8 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
...
@@ -471,8 +471,8 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
Table Create Table
Table Create Table
character_sets CREATE TEMPORARY TABLE `character_sets` (
character_sets CREATE TEMPORARY TABLE `character_sets` (
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`MAXLEN` bigint(3) NOT NULL default '0'
`MAXLEN` bigint(3) NOT NULL default '0'
) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252
) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252
set names latin2;
set names latin2;
...
@@ -480,23 +480,23 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
...
@@ -480,23 +480,23 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets;
Table Create Table
Table Create Table
character_sets CREATE TEMPORARY TABLE `character_sets` (
character_sets CREATE TEMPORARY TABLE `character_sets` (
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`MAXLEN` bigint(3) NOT NULL default '0'
`MAXLEN` bigint(3) NOT NULL default '0'
) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252
) ENGINE=HEAP DEFAULT CHARSET=utf8 MAX_ROWS=2252
set names latin1;
set names latin1;
create table t1 select * from information_schema.CHARACTER_SETS
create table t1 select * from information_schema.CHARACTER_SETS
where CHARACTER_SET_NAME like "latin1";
where CHARACTER_SET_NAME like "latin1";
select * from t1;
select * from t1;
CHARACTER_SET_NAME DE
SCRIPTION DEFAULT_COLLATE_NAME
MAXLEN
CHARACTER_SET_NAME DE
FAULT_COLLATE_NAME DESCRIPTION
MAXLEN
latin1
ISO 8859-1 West European latin1_swedish_ci
1
latin1
latin1_swedish_ci ISO 8859-1 West European
1
alter table t1 default character set utf8;
alter table t1 default character set utf8;
show create table t1;
show create table t1;
Table Create Table
Table Create Table
t1 CREATE TABLE `t1` (
t1 CREATE TABLE `t1` (
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`CHARACTER_SET_NAME` varchar(30) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DEFAULT_COLLATE_NAME` varchar(60) NOT NULL default '',
`DESCRIPTION` varchar(60) NOT NULL default '',
`MAXLEN` bigint(3) NOT NULL default '0'
`MAXLEN` bigint(3) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
) ENGINE=MyISAM DEFAULT CHARSET=utf8
drop table t1;
drop table t1;
...
...
sql/sql_show.cc
View file @
e552c5c4
...
@@ -2551,10 +2551,10 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond)
...
@@ -2551,10 +2551,10 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond)
{
{
restore_record
(
table
,
default_values
);
restore_record
(
table
,
default_values
);
table
->
field
[
0
]
->
store
(
tmp_cs
->
csname
,
strlen
(
tmp_cs
->
csname
),
scs
);
table
->
field
[
0
]
->
store
(
tmp_cs
->
csname
,
strlen
(
tmp_cs
->
csname
),
scs
);
table
->
field
[
1
]
->
store
(
tmp_cs
->
comment
?
tmp_cs
->
comment
:
""
,
table
->
field
[
1
]
->
store
(
tmp_cs
->
name
,
strlen
(
tmp_cs
->
name
),
scs
);
table
->
field
[
2
]
->
store
(
tmp_cs
->
comment
?
tmp_cs
->
comment
:
""
,
strlen
(
tmp_cs
->
comment
?
tmp_cs
->
comment
:
""
),
strlen
(
tmp_cs
->
comment
?
tmp_cs
->
comment
:
""
),
scs
);
scs
);
table
->
field
[
2
]
->
store
(
tmp_cs
->
name
,
strlen
(
tmp_cs
->
name
),
scs
);
table
->
field
[
3
]
->
store
((
longlong
)
tmp_cs
->
mbmaxlen
);
table
->
field
[
3
]
->
store
((
longlong
)
tmp_cs
->
mbmaxlen
);
table
->
file
->
write_row
(
table
->
record
[
0
]);
table
->
file
->
write_row
(
table
->
record
[
0
]);
}
}
...
@@ -3216,6 +3216,28 @@ int make_columns_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table)
...
@@ -3216,6 +3216,28 @@ int make_columns_old_format(THD *thd, ST_SCHEMA_TABLE *schema_table)
}
}
int
make_character_sets_old_format
(
THD
*
thd
,
ST_SCHEMA_TABLE
*
schema_table
)
{
int
fields_arr
[]
=
{
0
,
2
,
1
,
3
,
-
1
};
int
*
field_num
=
fields_arr
;
ST_FIELD_INFO
*
field_info
;
for
(;
*
field_num
>=
0
;
field_num
++
)
{
field_info
=
&
schema_table
->
fields_info
[
*
field_num
];
Item_field
*
field
=
new
Item_field
(
NullS
,
NullS
,
field_info
->
field_name
);
if
(
field
)
{
field
->
set_name
(
field_info
->
old_name
,
strlen
(
field_info
->
old_name
),
system_charset_info
);
if
(
add_item_to_list
(
thd
,
field
))
return
1
;
}
}
return
0
;
}
int
make_proc_old_format
(
THD
*
thd
,
ST_SCHEMA_TABLE
*
schema_table
)
int
make_proc_old_format
(
THD
*
thd
,
ST_SCHEMA_TABLE
*
schema_table
)
{
{
int
fields_arr
[]
=
{
2
,
3
,
4
,
19
,
16
,
15
,
14
,
18
,
-
1
};
int
fields_arr
[]
=
{
2
,
3
,
4
,
19
,
16
,
15
,
14
,
18
,
-
1
};
...
@@ -3439,8 +3461,8 @@ ST_FIELD_INFO columns_fields_info[]=
...
@@ -3439,8 +3461,8 @@ ST_FIELD_INFO columns_fields_info[]=
ST_FIELD_INFO
charsets_fields_info
[]
=
ST_FIELD_INFO
charsets_fields_info
[]
=
{
{
{
"CHARACTER_SET_NAME"
,
30
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Charset"
},
{
"CHARACTER_SET_NAME"
,
30
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Charset"
},
{
"DESCRIPTION"
,
60
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Description"
},
{
"DEFAULT_COLLATE_NAME"
,
60
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Default collation"
},
{
"DEFAULT_COLLATE_NAME"
,
60
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Default collation"
},
{
"DESCRIPTION"
,
60
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Description"
},
{
"MAXLEN"
,
3
,
MYSQL_TYPE_LONG
,
0
,
0
,
"Maxlen"
},
{
"MAXLEN"
,
3
,
MYSQL_TYPE_LONG
,
0
,
0
,
"Maxlen"
},
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
}
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
}
};
};
...
@@ -3621,7 +3643,7 @@ ST_SCHEMA_TABLE schema_tables[]=
...
@@ -3621,7 +3643,7 @@ ST_SCHEMA_TABLE schema_tables[]=
{
"COLUMNS"
,
columns_fields_info
,
create_schema_table
,
{
"COLUMNS"
,
columns_fields_info
,
create_schema_table
,
get_all_tables
,
make_columns_old_format
,
get_schema_column_record
,
1
,
2
},
get_all_tables
,
make_columns_old_format
,
get_schema_column_record
,
1
,
2
},
{
"CHARACTER_SETS"
,
charsets_fields_info
,
create_schema_table
,
{
"CHARACTER_SETS"
,
charsets_fields_info
,
create_schema_table
,
fill_schema_charsets
,
make_old_format
,
0
,
-
1
,
-
1
},
fill_schema_charsets
,
make_
character_sets_
old_format
,
0
,
-
1
,
-
1
},
{
"COLLATIONS"
,
collation_fields_info
,
create_schema_table
,
{
"COLLATIONS"
,
collation_fields_info
,
create_schema_table
,
fill_schema_collation
,
make_old_format
,
0
,
-
1
,
-
1
},
fill_schema_collation
,
make_old_format
,
0
,
-
1
,
-
1
},
{
"COLLATION_CHARACTER_SET_APPLICABILITY"
,
coll_charset_app_fields_info
,
{
"COLLATION_CHARACTER_SET_APPLICABILITY"
,
coll_charset_app_fields_info
,
...
...
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