mariadb/myisam
unknown 093d62922b Support for character set conversion in binary protocol: another go
after Monty's review.
- Item_param was rewritten.
- it turns out that we can't convert string data to character set of
  connection on the fly, because they first should be written to the binary
  log.
  To support efficient conversion we need to rewrite prepared statements
  binlogging code first.


include/my_global.h:
  Macro swap(a, b, c) was renamed to resolve name conflict with
  String::swap() method.
include/my_sys.h:
  Added declaration of escape_string_for_mysql()
include/mysql_com.h:
  Removed and moved back: a macro which is visible to libmysql user but
  has sence only in prepared statement protocol implementation.
isam/_search.c:
  swap -> swap_variables
isam/test2.c:
  swap -> swap_variables
libmysql/libmysql.c:
  - sub_escape_string moved to mysys/charset.c to be visible in sql/
  - few cleanups
myisam/mi_test2.c:
  swap -> swap_variables
mysys/charset.c:
  sub_escape_string was moved from libmysql.c to be able to use it in sql/
  code.
mysys/my_chsize.c:
  rename: swap -> swap_variables
mysys/my_compress.c:
  swap -> swap_variables
mysys/my_handler.c:
  swap -> swap_variables
sql/field.cc:
  Field::store_time refactored to use TIME_to_string function from time.cc
sql/item.cc:
  New implementation of Item_param class:
  added support for character sets conversion.
sql/item.h:
  Item_param:
  - 'state' member introduced instead of many boolean variables.
  - put ltime, int_value and real_value into union to save space.
  - remove unimplemented members
  - set_value renamed to set_str
sql/item_timefunc.cc:
  Refactored to use functions from time.cc
sql/lock.cc:
  rename: swap -> swap_variables
sql/mysql_priv.h:
  - added declarations for TIME_to_ulonglong_*, TIME_to_string functions
  - const specifiers for make_date, make_time, make_datetime arguments
sql/opt_range.cc:
  rename: swap -> swap_variables
sql/protocol.cc:
  - added character set conversion support to binary protocol.
  - Protocol::convert changed to point at shared buffer in THD.
    This lets us use one convert buffer for binary and simple protocol.
    The same buffer is used for client->server conversions in prepared
    statements code.
  - string conversion code refactored to Protocol::store_string_aux function.
  - few more comments
sql/protocol.h:
  - Protocol::convert now points at THD::convert_buffer: we want to share one
    buffer between all protocol implementations.
sql/sql_class.cc:
  - implementation of THD::convert_string using THD::convert_buffer
    (conversion of strings allocated in the system heap).
sql/sql_class.h:
  - THD::convert_buffer is shared between THD and network Protocols and
    used for character set conversion of strings.
  - new function to convert String object from one charset to another using
    THD::convert_buffer
sql/sql_insert.cc:
  A little fix in a comment.
sql/sql_parse.cc:
  Shrink convert buffer in the end of each statement.
sql/sql_prepare.cc:
    Many changes:
  - static specifier for set_param_* family of functions.
  - FIELD_TYPE -> MYSQL_TYPE
  - added set_param_binary as handler for BLOB types.
  - added character set support
  - added support for param typecode in mysql_stmt_get_longdata
    (mysql_stmt_send_long_data handler)
  - changes in Item_param deployed
  - few cleanups
sql/sql_select.cc:
  rename: swap -> swap_variables
sql/sql_string.cc:
  - String::append rewritten to support character set conversion for
  single-byte encodings.
  - added String::swap method to efficiently exchange two string objects.
sql/sql_string.h:
  Declraration for String::swap().
sql/time.cc:
  - function TIME_to_string to convert TIME to String in default MySQL format
  - family of functions TIME_to_ulonglong_*
tests/client_test.c:
  Test for support for character set conversions in prepared statements
  (binary and text data).
2004-05-25 02:03:49 +04:00
..
ftbench ftbench fixes 2003-10-23 23:33:06 +02:00
.cvsignore This ChangeSet adds RTREE support into myisam library. 2002-02-20 14:11:21 +04:00
ChangeLog New thr_alarm struct for better integration with OS2 2000-11-28 04:47:47 +02:00
ft_boolean_search.c backport from 4.1: 2004-05-10 12:39:01 +02:00
ft_eval.c Big code cleanup/review before 4.0.2 release. 2002-06-11 11:20:31 +03:00
ft_eval.h MI_KEYSEG -> HA_KEYSEG 2002-04-25 15:10:29 +05:00
ft_nlq_search.c Portability fixes 2004-05-19 05:09:10 +03:00
ft_parser.c backport from 4.1: 2004-05-10 12:39:01 +02:00
ft_static.c ft_boolean_syntax made changeable 2004-02-16 18:53:00 +01:00
ft_stem.c Update copyright 2001-12-06 14:10:51 +02:00
ft_stopwords.c BTREE-indexes in HEAP tables can now be used to optimize ORDER BY 2004-03-25 15:05:01 +02:00
ft_test1.c Merge with 4.0.3 2002-08-30 12:40:40 +03:00
ft_test1.h Update copyright 2001-12-06 14:10:51 +02:00
ft_update.c BTREE-indexes in HEAP tables can now be used to optimize ORDER BY 2004-03-25 15:05:01 +02:00
ftdefs.h backport from 4.1: 2004-05-10 12:39:01 +02:00
fulltext.h ft1->ft2 auto-conversion on INSERT (WL#725) 2003-10-02 20:22:29 +02:00
make-ccc Import changeset 2000-07-31 21:29:14 +02:00
Makefile.am Merge with 4.0.18 2004-02-11 00:06:46 +01:00
mi_cache.c enadling out-of-cache reads for shared IO_CACHE 2003-01-26 14:20:43 +01:00
mi_changed.c Update copyright 2001-12-06 14:10:51 +02:00
mi_check.c bug in repair_by_sort of fulltext indexes that contained identical 2004-05-23 14:01:52 +02:00
mi_checksum.c CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS 2003-11-18 13:47:27 +02:00
mi_close.c Merge key cache structures to one 2003-11-20 22:06:25 +02:00
mi_create.c myisam_data_pointer_size 2004-05-01 15:41:59 +02:00
mi_dbug.c Merge with 4.0.17 2003-12-17 17:35:34 +02:00
mi_delete.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_delete_all.c Merge key cache structures to one 2003-11-20 22:06:25 +02:00
mi_delete_table.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_dynrec.c Merge with 4.0.20 2004-05-17 01:52:13 +03:00
mi_extra.c WL#1648 - Start/Stop Inserting Duplicates Into a Table 2004-03-18 16:47:16 +01:00
mi_info.c myisam_data_pointer_size 2004-05-01 15:41:59 +02:00
mi_key.c Merge with 4.0.17 2003-12-17 17:35:34 +02:00
mi_keycache.c mi_keycache.c: 2003-11-25 22:20:31 -08:00
mi_locking.c Fixed many compiler warnings 2004-04-05 13:56:05 +03:00
mi_log.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_open.c WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again). 2004-05-06 15:53:01 +02:00
mi_packrec.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
mi_page.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_panic.c Merge key cache structures to one 2003-11-20 22:06:25 +02:00
mi_preload.c Added missing SSL library (Should be in source distribution) 2003-11-28 12:18:13 +02:00
mi_range.c key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
mi_rename.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_rfirst.c Update copyright 2001-12-06 14:10:51 +02:00
mi_rkey.c After merge fixes 2003-05-21 21:39:58 +03:00
mi_rlast.c Update copyright 2001-12-06 14:10:51 +02:00
mi_rnext.c Fixed many compiler warnings 2004-04-05 13:56:05 +03:00
mi_rnext_same.c Removed some warnings reported by valgrind 2003-11-04 14:09:03 +02:00
mi_rprev.c Fixed many compiler warnings 2004-04-05 13:56:05 +03:00
mi_rrnd.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
mi_rsame.c Update copyright 2001-12-06 14:10:51 +02:00
mi_rsamepos.c Update copyright 2001-12-06 14:10:51 +02:00
mi_scan.c Update copyright 2001-12-06 14:10:51 +02:00
mi_search.c Cleanups & safety fixes 2004-03-25 22:11:22 +02:00
mi_static.c myisam_data_pointer_size 2004-05-01 15:41:59 +02:00
mi_statrec.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
mi_test1.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
mi_test2.c Support for character set conversion in binary protocol: another go 2004-05-25 02:03:49 +04:00
mi_test3.c Merge key cache structures to one 2003-11-20 22:06:25 +02:00
mi_test_all.res Cleaned up SSL documentation 2001-10-02 05:53:00 +03:00
mi_test_all.sh Add detection of in_addr_t 2003-08-28 06:08:17 +03:00
mi_unique.c BTREE-indexes in HEAP tables can now be used to optimize ORDER BY 2004-03-25 15:05:01 +02:00
mi_update.c Code cleanup 2004-01-19 23:51:17 +01:00
mi_write.c Fixed warnings from valgrind (not a bug) 2004-04-06 12:13:43 +03:00
myisam_ftdump.c Windows fixes for VC++ compiler compability 2004-05-05 02:59:17 -03:00
myisamchk.c after merge fixes 2004-05-05 21:24:21 +03:00
myisamdef.h WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again). 2004-05-06 15:53:01 +02:00
myisamlog.c Max open files handling moved to my_set_max_open_files() 2004-02-19 19:33:09 +02:00
myisampack.c just tried to find all 'skipp' and replace it with 'skip'. 2004-02-02 20:25:39 +04:00
NEWS Import changeset 2000-07-31 21:29:14 +02:00
rt_index.c fix for r-tree code (memory overlap reported by valgrind) 2003-11-04 17:58:18 +04:00
rt_index.h This ChangeSet adds RTREE support into myisam library. 2002-02-20 14:11:21 +04:00
rt_key.c set_var.cc, mysqld.cc, handler.cc, set_var.h, handler.h: 2003-08-09 11:12:22 -07:00
rt_key.h This ChangeSet adds RTREE support into myisam library. 2002-02-20 14:11:21 +04:00
rt_mbr.c Windows build fix 2003-01-18 14:04:34 -08:00
rt_mbr.h MI_KEYSEG -> HA_KEYSEG 2002-04-25 15:10:29 +05:00
rt_split.c Fix for memory overlap in rt_split.c (reported by valgrind) 2003-11-04 18:59:49 +04:00
rt_test.c Portability fixes 2004-05-19 05:09:10 +03:00
sort.c make a clear distinction between max_word_length in *characters* and in *bytes* 2003-12-04 21:58:28 +01:00
sp_defs.h This ChangeSet adds RTREE support into myisam library. 2002-02-20 14:11:21 +04:00
sp_key.c R-tree bug fixes. 2003-03-20 20:55:53 +04:00
sp_test.c key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
test_pack Import changeset 2000-07-31 21:29:14 +02:00
TODO Import changeset 2000-07-31 21:29:14 +02:00