mariadb/sql
tnurnberg@mysql.com/sin.azundris.com 34122240cf Bug#24660: "enum" field type definition problem
ENUMs weren't allowed to have character 0xff, a perfectly good character in many locales.
This was circumvented by mapping 0xff in ENUMs to ',', thereby prevent actual commas from
being used (because they too would get converted to 0xff on load). Now if 0xff makes an
appearance, we find a character not used in the enum and use that as a separator. If no
such character exists, we throw an error.

Any solution would have broken some sort of existing behaviour. This solution should
serve both fractions (those with 0xff and those with ',' in their enums), but
WILL REQUIRE A DUMP/RESTORE CYCLE FROM THOSE WITH 0xff IN THEIR ENUMS. :-/
That is, mysqldump with their current server, and restore when upgrading to one with
this patch.

(port of the original 4.1 patch. incorporates some suggestions by kaamos.)
2007-01-09 20:23:12 +01:00
..
examples Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
share Merge siva.hindu.god:/usr/home/tim/m/bk/g51 2006-12-26 16:49:10 -07:00
.cvsignore
add_errmsg
authors.h Many files: 2006-12-31 02:29:11 +01:00
client_settings.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
CMakeLists.txt Many files: 2006-12-31 02:29:11 +01:00
contributors.h Many files: 2006-12-31 02:29:11 +01:00
custom_conf.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
derror.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
des_key_file.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
discover.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
event_data_objects.cc Many files: 2006-12-27 02:23:51 +01:00
event_data_objects.h Many files: 2006-12-27 02:23:51 +01:00
event_db_repository.cc Many files: 2006-12-27 02:23:51 +01:00
event_db_repository.h Many files: 2006-12-27 02:23:51 +01:00
event_queue.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
event_queue.h Many files: 2006-12-27 02:23:51 +01:00
event_scheduler.cc Many files: 2006-12-27 02:23:51 +01:00
event_scheduler.h Many files: 2006-12-27 02:23:51 +01:00
events.cc Many files: 2006-12-27 02:23:51 +01:00
events.h Many files: 2006-12-27 02:23:51 +01:00
field.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
field.h Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
field_conv.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
filesort.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
frm_crypt.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
gen_lex_hash.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
gstream.cc Many files: 2006-12-23 20:17:15 +01:00
gstream.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
ha_ndbcluster.cc ndb: remove compiler warnings 2006-12-27 14:16:34 +01:00
ha_ndbcluster.h Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-27 11:01:54 +01:00
ha_ndbcluster_binlog.cc Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-31 01:04:59 +01:00
ha_ndbcluster_binlog.h Many files: 2006-12-27 02:23:51 +01:00
ha_ndbcluster_tables.h Many files: 2006-12-27 02:23:51 +01:00
ha_partition.cc Many files: 2006-12-27 02:23:51 +01:00
ha_partition.h Many files: 2006-12-27 02:23:51 +01:00
handler.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
handler.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
hash_filo.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hash_filo.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hostname.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
init.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_buff.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_cmpfunc.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_cmpfunc.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_create.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_create.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_func.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_func.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_geofunc.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_geofunc.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_row.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_row.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_strfunc.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_strfunc.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_subselect.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_subselect.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_sum.cc Merge siva.hindu.god:/usr/home/tim/m/bk/g51 2006-12-26 16:49:10 -07:00
item_sum.h Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
item_timefunc.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
item_timefunc.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_uniq.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
item_uniq.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_xmlfunc.cc Many files: 2006-12-31 02:29:11 +01:00
item_xmlfunc.h Many files: 2006-12-27 02:23:51 +01:00
key.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
lex.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
lex_symbol.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
lock.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
log.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
log.h Many files: 2006-12-27 02:23:51 +01:00
log_event.cc Merge siva.hindu.god:/usr/home/tim/m/bk/g51 2006-12-26 16:49:10 -07:00
log_event.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
Makefile.am Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
matherr.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
message.mc make dist changes for Cmake build 2006-09-01 10:32:12 +02:00
mf_iocache.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_decimal.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
my_decimal.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
my_lock.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
mysql_priv.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
mysqld.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint 2006-12-29 16:37:05 -05:00
mysqld.cc.rej Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel 2006-11-16 14:38:45 +02:00
mysqld_suffix.h Many files: 2006-12-23 20:17:15 +01:00
net_serv.cc Merge siva.hindu.god:/usr/home/tim/m/bk/g51 2006-12-26 16:49:10 -07:00
nt_servc.cc
nt_servc.h
opt_range.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
opt_range.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
opt_sum.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
parse_file.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
parse_file.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
partition_element.h Many files: 2006-12-31 02:29:11 +01:00
partition_info.cc Many files: 2006-12-27 02:23:51 +01:00
partition_info.h Many files: 2006-12-31 02:29:11 +01:00
password.c Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
procedure.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
procedure.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
protocol.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
protocol.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
records.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
repl_failsafe.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
repl_failsafe.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
rpl_filter.cc Many files: 2006-12-27 02:23:51 +01:00
rpl_filter.h Many files: 2006-12-27 02:23:51 +01:00
rpl_injector.cc Many files: 2006-12-31 02:29:11 +01:00
rpl_injector.h Many files: 2006-12-31 02:29:11 +01:00
rpl_mi.cc Many files: 2006-12-27 02:23:51 +01:00
rpl_mi.h Many files: 2006-12-27 02:23:51 +01:00
rpl_rli.cc Many files: 2006-12-27 02:23:51 +01:00
rpl_rli.h Many files: 2006-12-27 02:23:51 +01:00
rpl_tblmap.cc Many files: 2006-12-27 02:23:51 +01:00
rpl_tblmap.h Many files: 2006-12-27 02:23:51 +01:00
rpl_utility.cc Many files: 2006-12-31 02:29:11 +01:00
rpl_utility.h Many files: 2006-12-31 02:29:11 +01:00
set_var.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
set_var.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
slave.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
slave.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sp.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sp.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sp_cache.cc Many files: 2006-12-23 20:17:15 +01:00
sp_cache.h Many files: 2006-12-23 20:17:15 +01:00
sp_head.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sp_head.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sp_pcontext.cc Many files: 2006-12-23 20:17:15 +01:00
sp_pcontext.h Many files: 2006-12-23 20:17:15 +01:00
sp_rcontext.cc Many files: 2006-12-23 20:17:15 +01:00
sp_rcontext.h Many files: 2006-12-23 20:17:15 +01:00
spatial.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
spatial.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_acl.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_acl.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_analyse.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_analyse.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_array.h Many files: 2006-12-23 20:17:15 +01:00
sql_base.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_binlog.cc Many files: 2006-12-31 02:29:11 +01:00
sql_bitmap.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_builtin.cc.in Many files: 2006-12-31 02:29:11 +01:00
sql_cache.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_cache.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_class.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_class.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_client.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_crypt.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_crypt.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_cursor.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_cursor.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_db.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_delete.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_derived.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_do.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_error.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_error.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_handler.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_help.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_insert.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_lex.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_lex.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_list.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_list.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_load.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_locale.cc Many files: 2006-12-23 20:17:15 +01:00
sql_manager.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_map.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_map.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_olap.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_parse.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.1 2007-01-07 09:31:49 -05:00
sql_parse.cc.rej Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-10-17 19:54:44 +03:00
sql_partition.cc Many files: 2006-12-27 02:23:51 +01:00
sql_partition.h Many files: 2006-12-27 02:23:51 +01:00
sql_plugin.cc Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-31 01:04:59 +01:00
sql_plugin.h Many files: 2006-12-27 02:23:51 +01:00
sql_prepare.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_rename.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_repl.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_repl.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_select.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_select.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_servers.cc Many files: 2006-12-27 02:23:51 +01:00
sql_servers.h Many files: 2006-12-31 02:29:11 +01:00
sql_show.cc Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-27 11:01:54 +01:00
sql_show.h Many files: 2006-12-31 02:29:11 +01:00
sql_sort.h Many files: 2006-12-23 20:17:15 +01:00
sql_state.c Many files: 2006-12-23 20:17:15 +01:00
sql_string.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_string.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_table.cc Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-27 11:01:54 +01:00
sql_tablespace.cc Many files: 2006-12-27 02:23:51 +01:00
sql_test.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_trigger.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_trigger.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_udf.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_udf.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_union.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_update.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
sql_view.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_view.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
sql_yacc.yy Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-12-27 11:01:54 +01:00
sql_yacc.yy.bak Many files: 2006-12-27 02:23:51 +01:00
stacktrace.c Many files: 2006-12-23 20:17:15 +01:00
stacktrace.h Many files: 2006-12-23 20:17:15 +01:00
strfunc.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
structs.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
table.cc Bug#24660: "enum" field type definition problem 2007-01-09 20:23:12 +01:00
table.cc.rej Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1 2006-10-17 19:54:44 +03:00
table.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
thr_malloc.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
time.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00
tzfile.h Many files: 2006-12-23 20:17:15 +01:00
tztime.cc Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
tztime.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-23 20:20:40 +01:00
udf_example.c Many files: 2006-12-23 20:17:15 +01:00
udf_example.def Add the two new functions to udf_example.def so they will be exported by dll's 2006-11-16 16:19:29 +01:00
uniques.cc Many files: 2006-12-23 20:17:15 +01:00
unireg.cc Bug#24660: "enum" field type definition problem 2007-01-09 20:23:12 +01:00
unireg.h Merge mysql.com:/home/kent/bk/main/mysql-5.0 2006-12-31 01:32:21 +01:00