• unknown's avatar
    BUG#11338 (logging of prepared statement w/ blob type) · a29b1d71
    unknown authored
    In cp932, '\' character can be the second byte in a 
    multi-byte character stream. This makes it difficult to use
    mysql_escape_string. Added flag to indicate which languages allow
    '\' as second byte of multibyte sequence so that when putting a prepared
    statement into the binlog we can decide at runtime whether hex encoding
    is really needed.
    
    
    include/m_ctype.h:
      Added bool to indicate character sets which allow '\' as the second
      byte of a multibyte character set (currently only cp932). For these
      character sets, escaping with '\' is dangerous and leads to corruption
      in replication.
    include/my_sys.h:
      Add function to enocde a string as hex with no prefix (bare)
    mysys/charset.c:
      Add function to encode string as hex with no prefix (bare).
    sql/item.cc:
      Check the connection character set to see if escape_string_for_mysql
      is safe, or if character set requires unambiguous (hex) encoding
    sql/item.h:
      Pass thd to query_val_str for access to charset()
    sql/sql_prepare.cc:
      Pass thd to query_val_str.
    strings/ctype-big5.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-bin.c:
      Add escape_with_backslash_is_dangerous flag
    strings/ctype-cp932.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-czech.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-euc_kr.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-extra.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-gb2312.c:
      Add escape_with_backslash_is_dangerous flag.
    strings/ctype-gbk.c:
      Added escape_with_backslash_is_dangerous flag.
    strings/ctype-latin1.c:
      Added escape_with_backslash_is_dangerous flag.
    strings/ctype-sjis.c:
      Added escape_with_backslash_is_dangerous flag.
    strings/ctype-tis620.c:
      Added esacpe_with_backslash_character_is_dangerous flag.
    strings/ctype-uca.c:
      Added escape_with_backslash_is_dangerous flag.
    strings/ctype-ucs2.c:
      Added escape_with_backslash_is_dangerous.
    strings/ctype-ujis.c:
      Added escape_with_backslash_is_dangerous flag.
    strings/ctype-utf8.c:
      Added escape_with_backslash_is_dangerous.
    strings/ctype-win1250ch.c:
      Added escape_with_backslash_is_dangerous.
    a29b1d71
item.h 44.1 KB