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
8103c4c5
Commit
8103c4c5
authored
Mar 18, 2003
by
bar@bar.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CONVERT class was removed
parent
031ac2a7
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
68 additions
and
157 deletions
+68
-157
libmysqld/lib_sql.cc
libmysqld/lib_sql.cc
+2
-0
mysql-test/r/query_cache.result
mysql-test/r/query_cache.result
+1
-1
mysql-test/r/variables.result
mysql-test/r/variables.result
+10
-10
mysql-test/t/variables.test
mysql-test/t/variables.test
+6
-6
sql/convert.cc
sql/convert.cc
+3
-0
sql/log.cc
sql/log.cc
+2
-0
sql/log_event.cc
sql/log_event.cc
+2
-2
sql/protocol.cc
sql/protocol.cc
+0
-15
sql/protocol.h
sql/protocol.h
+0
-4
sql/set_var.cc
sql/set_var.cc
+27
-47
sql/set_var.h
sql/set_var.h
+0
-18
sql/sql_cache.cc
sql/sql_cache.cc
+4
-10
sql/sql_class.h
sql/sql_class.h
+0
-27
sql/sql_db.cc
sql/sql_db.cc
+0
-1
sql/sql_lex.cc
sql/sql_lex.cc
+1
-11
sql/sql_lex.h
sql/sql_lex.h
+0
-1
sql/sql_show.cc
sql/sql_show.cc
+2
-2
sql/sql_yacc.yy
sql/sql_yacc.yy
+8
-2
No files found.
libmysqld/lib_sql.cc
View file @
8103c4c5
...
...
@@ -504,6 +504,7 @@ bool Protocol::net_store_data(const char *from, uint length)
return
false
;
}
#if 0
/* The same as Protocol::net_store_data but does the converstion
*/
bool Protocol::convert_str(const char *from, uint length)
...
...
@@ -519,3 +520,4 @@ bool Protocol::convert_str(const char *from, uint length)
return false;
}
#endif
mysql-test/r/query_cache.result
View file @
8103c4c5
...
...
@@ -377,7 +377,7 @@ a
set CHARACTER SET cp1251_koi8;
select * from t1;
a
?
set CHARACTER SET DEFAULT;
show status like "Qcache_queries_in_cache";
Variable_name Value
...
...
mysql-test/r/variables.result
View file @
8103c4c5
...
...
@@ -156,17 +156,17 @@ show variables like 'net_buffer_length';
Variable_name Value
net_buffer_length 1048576
set GLOBAL character set cp1251_koi8;
show global variables like "c
onvert_character_set
";
show global variables like "c
lient_collation
";
Variable_name Value
c
onvert_character_set cp1251_koi8
c
lient_collation cp1251
set character set cp1251_koi8;
show variables like "c
onvert_character_set
";
show variables like "c
lient_collation
";
Variable_name Value
c
onvert_character_set cp1251_koi8
c
lient_collation cp1251
set global character set default, session character set default;
show variables like "c
onvert_character_set
";
show variables like "c
lient_collation
";
Variable_name Value
c
onvert_character_set cp1251_koi8
c
lient_collation latin1
select @@timestamp>0;
@@timestamp>0
1
...
...
@@ -193,12 +193,12 @@ set SESSION query_cache_size=10000;
Variable 'query_cache_size' is a GLOBAL variable and should be set with SET GLOBAL
set GLOBAL table_type=DEFAULT;
Variable 'table_type' doesn't have a default value
set c
onvert_character_set
=UNKNOWN_CHARACTER_SET;
set c
lient_collation
=UNKNOWN_CHARACTER_SET;
Unknown character set: 'UNKNOWN_CHARACTER_SET'
set character set unknown;
Unknown character set: 'unknown'
set character set 0;
Wrong argument type to variable 'c
onvert_character_set
'
Wrong argument type to variable 'c
lient_collation
'
set global autocommit=1;
Variable 'autocommit' is a LOCAL variable and can't be used with SET GLOBAL
select @@global.timestamp;
...
...
@@ -218,8 +218,8 @@ select @@autocommit, @@big_tables;
1 1
set global binlog_cache_size=100;
set bulk_insert_buffer_size=100;
set c
onvert_character_set=
cp1251_koi8;
set c
onvert_character_set=
default;
set c
haracter set
cp1251_koi8;
set c
haracter set
default;
set @@global.concurrent_insert=1;
set global connect_timeout=100;
select @@delay_key_write;
...
...
mysql-test/t/variables.test
View file @
8103c4c5
...
...
@@ -92,11 +92,11 @@ set net_buffer_length=2000000000;
show
variables
like
'net_buffer_length'
;
set
GLOBAL
character
set
cp1251_koi8
;
show
global
variables
like
"c
onvert_character_set
"
;
show
global
variables
like
"c
lient_collation
"
;
set
character
set
cp1251_koi8
;
show
variables
like
"c
onvert_character_set
"
;
show
variables
like
"c
lient_collation
"
;
set
global
character
set
default
,
session
character
set
default
;
show
variables
like
"c
onvert_character_set
"
;
show
variables
like
"c
lient_collation
"
;
select
@@
timestamp
>
0
;
set
@@
rand_seed1
=
10000000
,
@@
rand_seed2
=
1000000
;
...
...
@@ -123,7 +123,7 @@ set SESSION query_cache_size=10000;
--
error
1230
set
GLOBAL
table_type
=
DEFAULT
;
--
error
1115
set
c
onvert_character_set
=
UNKNOWN_CHARACTER_SET
;
set
c
lient_collation
=
UNKNOWN_CHARACTER_SET
;
--
error
1115
set
character
set
unknown
;
--
error
1232
...
...
@@ -148,8 +148,8 @@ set big_tables=1;
select
@@
autocommit
,
@@
big_tables
;
set
global
binlog_cache_size
=
100
;
set
bulk_insert_buffer_size
=
100
;
set
c
onvert_character_set
=
cp1251_koi8
;
set
c
onvert_character_set
=
default
;
set
c
haracter
set
cp1251_koi8
;
set
c
haracter
set
default
;
set
@@
global
.
concurrent_insert
=
1
;
set
global
connect_timeout
=
100
;
select
@@
delay_key_write
;
...
...
sql/convert.cc
View file @
8103c4c5
...
...
@@ -14,6 +14,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#if 0
/*
** Convert tables between different character sets
...
...
@@ -460,3 +461,5 @@ bool CONVERT::store(String *packet,const char *from,uint length)
packet->length((uint) (store_dest(to, from, length)-packet->ptr()));
return 0;
}
#endif
sql/log.cc
View file @
8103c4c5
...
...
@@ -1194,6 +1194,7 @@ bool MYSQL_LOG::write(Log_event* event_info)
goto
err
;
}
}
#if 0
if (thd->variables.convert_set)
{
char buf[256], *p;
...
...
@@ -1204,6 +1205,7 @@ bool MYSQL_LOG::write(Log_event* event_info)
if (e.write(file))
goto err;
}
#endif
}
event_info
->
set_log_pos
(
this
);
if
(
event_info
->
write
(
file
)
||
...
...
sql/log_event.cc
View file @
8103c4c5
...
...
@@ -943,7 +943,7 @@ int Query_log_event::exec_event(struct st_relay_log_info* rli)
VOID
(
pthread_mutex_lock
(
&
LOCK_thread_count
));
thd
->
db
=
thd
->
query
=
0
;
VOID
(
pthread_mutex_unlock
(
&
LOCK_thread_count
));
thd
->
variables
.
convert_set
=
0
;
//
thd->variables.convert_set = 0;
close_thread_tables
(
thd
);
free_root
(
&
thd
->
mem_root
,
0
);
return
1
;
...
...
@@ -954,7 +954,7 @@ int Query_log_event::exec_event(struct st_relay_log_info* rli)
thd
->
query
=
0
;
// just to be sure
VOID
(
pthread_mutex_unlock
(
&
LOCK_thread_count
));
// assume no convert for next query unless set explictly
thd
->
variables
.
convert_set
=
0
;
//
thd->variables.convert_set = 0;
close_thread_tables
(
thd
);
if
(
thd
->
query_error
||
thd
->
is_fatal_error
)
...
...
sql/protocol.cc
View file @
8103c4c5
...
...
@@ -43,11 +43,6 @@ bool Protocol::net_store_data(const char *from, uint length)
packet
->
length
((
uint
)
(
to
+
length
-
packet
->
ptr
()));
return
0
;
}
inline
bool
Protocol
::
convert_str
(
const
char
*
from
,
uint
length
)
{
return
convert
->
store
(
packet
,
from
,
length
);
}
#endif
...
...
@@ -472,7 +467,6 @@ char *net_store_data(char *to,longlong from)
void
Protocol
::
init
(
THD
*
thd_arg
)
{
thd
=
thd_arg
;
convert
=
thd
->
variables
.
convert_set
;
packet
=
&
thd
->
packet
;
#ifndef DEBUG_OFF
field_types
=
0
;
...
...
@@ -487,15 +481,12 @@ void Protocol::init(THD *thd_arg)
send_fields()
THD Thread data object
list List of items to send to client
convert object used to convertation to another character set
flag Bit mask with the following functions:
1 send number of rows
2 send default values
DESCRIPTION
Sum fields has table name empty and field_name.
Uses send_fields_convert() and send_fields() depending on
if we have an active character set convert or not.
RETURN VALUES
0 ok
...
...
@@ -712,8 +703,6 @@ bool Protocol_simple::store(const char *from, uint length, CHARSET_INFO *cs)
field_types
[
field_pos
]
<=
MYSQL_TYPE_GEOMETRY
));
field_pos
++
;
#endif
if
(
convert
)
return
convert_str
(
from
,
length
);
if
(
cs
!=
this
->
thd
->
charset
())
{
String
tmp
;
...
...
@@ -813,8 +802,6 @@ bool Protocol_simple::store(Field *field)
char
buff
[
MAX_FIELD_WIDTH
];
String
tmp1
(
buff
,
sizeof
(
buff
),
&
my_charset_bin
);
field
->
val_str
(
&
tmp1
,
&
tmp1
);
if
(
convert
)
return
convert_str
(
tmp1
.
ptr
(),
tmp1
.
length
());
if
(
field
->
charset
()
!=
this
->
thd
->
charset
())
{
String
tmp
;
...
...
@@ -929,8 +916,6 @@ bool Protocol_prep::store(const char *from,uint length, CHARSET_INFO *cs)
field_types
[
field_pos
]
<=
MYSQL_TYPE_GEOMETRY
));
#endif
field_pos
++
;
if
(
convert
)
return
convert_str
(
from
,
length
);
return
net_store_data
(
from
,
length
);
}
...
...
sql/protocol.h
View file @
8103c4c5
...
...
@@ -20,7 +20,6 @@
#define PACKET_BUFFET_EXTRA_ALLOC 1024
class
CONVERT
;
class
i_string
;
class
THD
;
#ifdef EMBEDDED_LIBRARY
...
...
@@ -37,15 +36,12 @@ class Protocol
#endif
uint
field_count
;
bool
net_store_data
(
const
char
*
from
,
uint
length
);
bool
convert_str
(
const
char
*
from
,
uint
length
);
#ifdef EMBEDDED_LIBRARY
char
**
next_field
;
MYSQL_FIELD
*
next_mysql_field
;
MEM_ROOT
*
alloc
;
#endif
public:
CONVERT
*
convert
;
Protocol
()
{}
Protocol
(
THD
*
thd
)
{
init
(
thd
);
}
void
init
(
THD
*
thd
);
...
...
sql/set_var.cc
View file @
8103c4c5
...
...
@@ -105,7 +105,6 @@ sys_var_str sys_charset("character_set",
sys_update_charset
,
sys_set_default_charset
);
sys_var_client_collation
sys_client_collation
(
"client_collation"
);
sys_var_thd_conv_charset
sys_convert_charset
(
"convert_character_set"
);
sys_var_bool_ptr
sys_concurrent_insert
(
"concurrent_insert"
,
&
myisam_concurrent_insert
);
sys_var_long_ptr
sys_connect_timeout
(
"connect_timeout"
,
...
...
@@ -337,7 +336,6 @@ sys_var *sys_variables[]=
&
sys_client_collation
,
&
sys_concurrent_insert
,
&
sys_connect_timeout
,
&
sys_convert_charset
,
&
sys_default_week_format
,
&
sys_delay_key_write
,
&
sys_delayed_insert_limit
,
...
...
@@ -445,7 +443,6 @@ struct show_var_st init_vars[]= {
{
sys_client_collation
.
name
,
(
char
*
)
&
sys_client_collation
,
SHOW_SYS
},
{
sys_concurrent_insert
.
name
,(
char
*
)
&
sys_concurrent_insert
,
SHOW_SYS
},
{
sys_connect_timeout
.
name
,
(
char
*
)
&
sys_connect_timeout
,
SHOW_SYS
},
{
sys_convert_charset
.
name
,
(
char
*
)
&
sys_convert_charset
,
SHOW_SYS
},
{
"datadir"
,
mysql_real_data_home
,
SHOW_CHAR
},
{
"default_week_format"
,
(
char
*
)
&
sys_default_week_format
,
SHOW_SYS
},
{
sys_delay_key_write
.
name
,
(
char
*
)
&
sys_delay_key_write
,
SHOW_SYS
},
...
...
@@ -1131,56 +1128,38 @@ byte *sys_var_thd_bit::value_ptr(THD *thd, enum_var_type type)
}
bool
sys_var_thd_conv_charset
::
check
(
THD
*
thd
,
set_var
*
var
)
{
CONVERT
*
tmp
;
char
buff
[
80
];
String
str
(
buff
,
sizeof
(
buff
),
system_charset_info
),
*
res
;
if
(
!
var
->
value
)
// Default value
{
var
->
save_result
.
convert
=
(
var
->
type
!=
OPT_GLOBAL
?
global_system_variables
.
convert_set
:
(
CONVERT
*
)
0
);
return
0
;
}
if
(
!
(
res
=
var
->
value
->
val_str
(
&
str
)))
res
=
&
empty_string
;
if
(
!
(
tmp
=
get_convert_set
(
res
->
c_ptr
())))
{
my_error
(
ER_UNKNOWN_CHARACTER_SET
,
MYF
(
0
),
res
->
c_ptr
());
return
1
;
}
var
->
save_result
.
convert
=
tmp
;
// Save for update
return
0
;
}
typedef
struct
old_names_map_st
{
const
char
*
old_name
;
const
char
*
new_name
;
}
my_old_conv
;
static
my_old_conv
old_conv
[]
=
{
{
"cp1251_koi8"
,
"cp1251"
},
{
"cp1250_latin2"
,
"cp1250"
},
{
"kam_latin2"
,
"keybcs2"
},
{
"mac_latin2"
,
"MacRoman"
},
{
"macce_latin2"
,
"MacCE"
},
{
"pc2_latin2"
,
"pclatin2"
},
{
"vga_latin2"
,
"pclatin1"
},
{
"koi8_cp1251"
,
"koi8r"
},
{
"win1251ukr_koi8_ukr"
,
"win1251ukr"
},
{
"koi8_ukr_win1251ukr"
,
"koi8u"
},
{
NULL
,
NULL
}
};
bool
sys_var_thd_conv_charset
::
update
(
THD
*
thd
,
set_var
*
var
)
static
CHARSET_INFO
*
get_old_charset_by_name
(
const
char
*
name
)
{
if
(
var
->
type
==
OPT_GLOBAL
)
global_system_variables
.
convert_set
=
var
->
save_result
.
convert
;
else
my_old_conv
*
c
;
for
(
c
=
old_conv
;
c
->
old_name
;
c
++
)
{
thd
->
lex
.
convert_set
=
thd
->
variables
.
convert_set
=
var
->
save_result
.
convert
;
thd
->
protocol_simple
.
init
(
thd
);
thd
->
protocol_prep
.
init
(
thd
);
if
(
!
my_strcasecmp
(
&
my_charset_latin1
,
name
,
c
->
old_name
))
return
get_charset_by_name
(
c
->
new_name
,
MYF
(
0
));
}
return
0
;
return
NULL
;
}
byte
*
sys_var_thd_conv_charset
::
value_ptr
(
THD
*
thd
,
enum_var_type
type
)
{
CONVERT
*
conv
=
((
type
==
OPT_GLOBAL
)
?
global_system_variables
.
convert_set
:
thd
->
variables
.
convert_set
);
return
conv
?
(
byte
*
)
conv
->
name
:
(
byte
*
)
""
;
}
bool
sys_var_client_collation
::
check
(
THD
*
thd
,
set_var
*
var
)
{
CHARSET_INFO
*
tmp
;
...
...
@@ -1198,7 +1177,8 @@ bool sys_var_client_collation::check(THD *thd, set_var *var)
if
(
!
(
res
=
var
->
value
->
val_str
(
&
str
)))
res
=
&
empty_string
;
if
(
!
(
tmp
=
get_charset_by_name
(
res
->
c_ptr
(),
MYF
(
0
))))
if
(
!
(
tmp
=
get_charset_by_name
(
res
->
c_ptr
(),
MYF
(
0
)))
&&
!
(
tmp
=
get_old_charset_by_name
(
res
->
c_ptr
())))
{
my_error
(
ER_UNKNOWN_CHARACTER_SET
,
MYF
(
0
),
res
->
c_ptr
());
return
1
;
...
...
sql/set_var.h
View file @
8103c4c5
...
...
@@ -406,23 +406,6 @@ class sys_var_rand_seed2 :public sys_var
};
class
sys_var_thd_conv_charset
:
public
sys_var_thd
{
public:
sys_var_thd_conv_charset
(
const
char
*
name_arg
)
:
sys_var_thd
(
name_arg
)
{}
bool
check
(
THD
*
thd
,
set_var
*
var
);
bool
update
(
THD
*
thd
,
set_var
*
var
);
SHOW_TYPE
type
()
{
return
SHOW_CHAR
;
}
byte
*
value_ptr
(
THD
*
thd
,
enum_var_type
type
);
bool
check_update_type
(
Item_result
type
)
{
return
type
!=
STRING_RESULT
;
/* Only accept strings */
}
bool
check_default
(
enum_var_type
type
)
{
return
0
;
}
};
class
sys_var_client_collation
:
public
sys_var_thd
{
public:
...
...
@@ -490,7 +473,6 @@ class set_var :public set_var_base
union
{
CHARSET_INFO
*
charset
;
CONVERT
*
convert
;
ulong
ulong_value
;
}
save_result
;
...
...
sql/sql_cache.cc
View file @
8103c4c5
...
...
@@ -778,11 +778,8 @@ void Query_cache::store_query(THD *thd, TABLE_LIST *tables_used)
most significant bit - CLIENT_LONG_FLAG,
other - charset number (0 no charset convertion)
*/
if
(
thd
->
variables
.
convert_set
!=
0
)
{
flags
|=
(
byte
)
thd
->
variables
.
convert_set
->
number
();
DBUG_ASSERT
(
thd
->
variables
.
convert_set
->
number
()
<
128
);
}
flags
|=
(
byte
)
thd
->
charset
()
->
number
;
DBUG_ASSERT
(
thd
->
charset
()
->
number
<
128
);
tot_length
=
thd
->
query_length
+
thd
->
db_length
+
2
;
thd
->
query
[
tot_length
-
1
]
=
(
char
)
flags
;
...
...
@@ -935,11 +932,8 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
Other - charset number (0 no charset convertion)
*/
flags
=
(
thd
->
client_capabilities
&
CLIENT_LONG_FLAG
?
0x80
:
0
);
if
(
thd
->
variables
.
convert_set
!=
0
)
{
flags
|=
(
byte
)
thd
->
variables
.
convert_set
->
number
();
DBUG_ASSERT
(
thd
->
variables
.
convert_set
->
number
()
<
128
);
}
flags
|=
(
byte
)
thd
->
charset
()
->
number
;
DBUG_ASSERT
(
thd
->
charset
()
->
number
<
128
);
sql
[
tot_length
-
1
]
=
(
char
)
flags
;
query_block
=
(
Query_cache_block
*
)
hash_search
(
&
queries
,
(
byte
*
)
sql
,
tot_length
);
...
...
sql/sql_class.h
View file @
8103c4c5
...
...
@@ -172,32 +172,6 @@ class MYSQL_LOG {
/* character conversion tables */
class
CONVERT
;
CONVERT
*
get_convert_set
(
const
char
*
name_ptr
);
class
CONVERT
{
const
uchar
*
from_map
,
*
to_map
;
void
convert_array
(
const
uchar
*
mapping
,
uchar
*
buff
,
uint
length
);
public:
const
char
*
name
;
uint
numb
;
CONVERT
(
const
char
*
name_par
,
uchar
*
from_par
,
uchar
*
to_par
,
uint
number
)
:
from_map
(
from_par
),
to_map
(
to_par
),
name
(
name_par
),
numb
(
number
)
{}
friend
CONVERT
*
get_convert_set
(
const
char
*
name_ptr
);
inline
void
convert
(
char
*
a
,
uint
length
)
{
convert_array
(
from_map
,
(
uchar
*
)
a
,
length
);
}
char
*
store_dest
(
char
*
to
,
const
char
*
from
,
uint
length
)
{
for
(
const
char
*
end
=
from
+
length
;
from
!=
end
;
from
++
)
*
to
++=
to_map
[(
uchar
)
*
from
];
return
to
;
}
bool
store
(
String
*
,
const
char
*
,
uint
);
inline
uint
number
()
{
return
numb
;
}
};
typedef
struct
st_copy_info
{
ha_rows
records
;
...
...
@@ -400,7 +374,6 @@ struct system_variables
my_bool
log_warnings
;
my_bool
low_priority_updates
;
CONVERT
*
convert_set
;
CHARSET_INFO
*
thd_charset
;
};
...
...
sql/sql_db.cc
View file @
8103c4c5
...
...
@@ -615,7 +615,6 @@ int mysqld_show_create_db(THD *thd, char *dbname,
uint
db_access
;
bool
found_libchar
;
HA_CREATE_INFO
create
;
CONVERT
*
convert
=
thd
->
variables
.
convert_set
;
uint
create_options
=
create_info
?
create_info
->
options
:
0
;
Protocol
*
protocol
=
thd
->
protocol
;
DBUG_ENTER
(
"mysql_show_create_db"
);
...
...
sql/sql_lex.cc
View file @
8103c4c5
...
...
@@ -107,6 +107,7 @@ void lex_free(void)
LEX
*
lex_start
(
THD
*
thd
,
uchar
*
buf
,
uint
length
)
{
LEX
*
lex
=
&
thd
->
lex
;
lex
->
thd
=
thd
;
lex
->
next_state
=
MY_LEX_START
;
lex
->
end_of_query
=
(
lex
->
ptr
=
buf
)
+
length
;
lex
->
yylineno
=
1
;
...
...
@@ -117,7 +118,6 @@ LEX *lex_start(THD *thd, uchar *buf,uint length)
lex
->
select_lex
.
ftfunc_list_alloc
.
empty
();
lex
->
select_lex
.
ftfunc_list
=
&
lex
->
select_lex
.
ftfunc_list_alloc
;
lex
->
current_select
=
&
lex
->
select_lex
;
lex
->
convert_set
=
(
lex
->
thd
=
thd
)
->
variables
.
convert_set
;
lex
->
thd_charset
=
lex
->
thd
->
variables
.
thd_charset
;
lex
->
yacc_yyss
=
lex
->
yacc_yyvs
=
0
;
lex
->
ignore_space
=
test
(
thd
->
variables
.
sql_mode
&
MODE_IGNORE_SPACE
);
...
...
@@ -520,8 +520,6 @@ int yylex(void *arg, void *yythd)
yySkip
();
// next state does a unget
}
yylval
->
lex_str
=
get_token
(
lex
,
length
);
if
(
lex
->
convert_set
)
lex
->
convert_set
->
convert
((
char
*
)
yylval
->
lex_str
.
str
,
lex
->
yytoklen
);
/*
Note: "SELECT _bla AS 'alias'"
...
...
@@ -621,8 +619,6 @@ int yylex(void *arg, void *yythd)
case
MY_LEX_FOUND_IDENT
:
// Complete ident
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
if
(
lex
->
convert_set
)
lex
->
convert_set
->
convert
((
char
*
)
yylval
->
lex_str
.
str
,
lex
->
yytoklen
);
return
(
IDENT
);
case
MY_LEX_USER_VARIABLE_DELIMITER
:
...
...
@@ -670,8 +666,6 @@ int yylex(void *arg, void *yythd)
else
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
}
if
(
lex
->
convert_set
)
lex
->
convert_set
->
convert
((
char
*
)
yylval
->
lex_str
.
str
,
lex
->
yytoklen
);
if
(
c
==
delim
)
yySkip
();
// Skip end `
return
(
IDENT
);
...
...
@@ -802,8 +796,6 @@ int yylex(void *arg, void *yythd)
break
;
}
yylval
->
lex_str
.
length
=
lex
->
yytoklen
;
if
(
lex
->
convert_set
)
lex
->
convert_set
->
convert
((
char
*
)
yylval
->
lex_str
.
str
,
lex
->
yytoklen
);
return
(
TEXT_STRING
);
case
MY_LEX_COMMENT
:
// Comment
...
...
@@ -940,8 +932,6 @@ int yylex(void *arg, void *yythd)
return
(
tokval
);
// Was keyword
}
yylval
->
lex_str
=
get_token
(
lex
,
length
);
if
(
lex
->
convert_set
)
lex
->
convert_set
->
convert
((
char
*
)
yylval
->
lex_str
.
str
,
lex
->
yytoklen
);
return
(
IDENT
);
}
}
...
...
sql/sql_lex.h
View file @
8103c4c5
...
...
@@ -448,7 +448,6 @@ typedef struct st_lex
TYPELIB
*
interval
;
create_field
*
last_field
;
Item
*
default_value
,
*
comment
;
CONVERT
*
convert_set
;
CHARSET_INFO
*
thd_charset
;
LEX_USER
*
grant_user
;
gptr
yacc_yyss
,
yacc_yyvs
;
...
...
sql/sql_show.cc
View file @
8103c4c5
...
...
@@ -979,8 +979,8 @@ mysqld_dump_create_info(THD *thd, TABLE *table, int fd)
if
(
store_create_info
(
thd
,
table
,
packet
))
DBUG_RETURN
(
-
1
);
if
(
protocol
->
convert
)
protocol
->
convert
->
convert
((
char
*
)
packet
->
ptr
(),
packet
->
length
());
//
if (protocol->convert)
//
protocol->convert->convert((char*) packet->ptr(), packet->length());
if
(
fd
<
0
)
{
if
(
protocol
->
write
())
...
...
sql/sql_yacc.yy
View file @
8103c4c5
...
...
@@ -4306,9 +4306,15 @@ option_value:
}
| charset opt_equal set_expr_or_default
{
LEX *lex=Lex;
THD *thd= YYTHD;
LEX *lex= &thd->lex;
if (!$3)
{
CHARSET_INFO *cl= thd->db_charset;
$3= new Item_string(cl->name, strlen(cl->name), &my_charset_latin1);
}
lex->var_list.push_back(new set_var(lex->option_type,
find_sys_var("c
onvert_character_set
"),
find_sys_var("c
lient_collation
"),
$3));
}
| NAMES_SYM charset_name_or_default opt_collate
...
...
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