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
3f6a00d1
Commit
3f6a00d1
authored
Mar 18, 2003
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CONVERT class was removed
parent
3ccd93c7
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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -20,7 +20,6 @@
#define PACKET_BUFFET_EXTRA_ALLOC 1024
class
CONVERT
;
class
i_string
;
class
THD
;
#ifdef EMBEDDED_LIBRARY
...
...
@@ -37,15 +36,12 @@ protected:
#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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -406,23 +406,6 @@ public:
};
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 @@ public:
union
{
CHARSET_INFO
*
charset
;
CONVERT
*
convert
;
ulong
ulong_value
;
}
save_result
;
...
...
sql/sql_cache.cc
View file @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -172,32 +172,6 @@ public:
/* 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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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 @
3f6a00d1
...
...
@@ -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