• unknown's avatar
    Bug#15126 character_set_database is not replicated (LOAD DATA INFILE need it) · c3a3aff5
    unknown authored
    This patch fixes problem that LOAD DATA could use different
    character sets when loading files on master and on slave sides:
    - Adding replication of thd->variables.collation_database
    - Adding optional character set clause into LOAD DATA
    
    Note, the second way, with explicit CHARACTER SET clause
    should be the recommended way to load data using an alternative
    character set.
    The old way, using "SET @@character_set_database=xxx" should be
    gradually depricated.
    
    
    mysql-test/r/mysqlbinlog.result:
      Adding test case
    mysql-test/t/mysqlbinlog.test:
      Adding test case
    sql/log_event.cc:
      Adding logging of thd->variables.collation_database
    sql/log_event.h:
      Adding declarations
    sql/sql_class.cc:
      Exchange character set is null by default
    sql/sql_class.h:
      Adding character set into sql_exchange
    sql/sql_load.cc:
      - Using exchange character set (if it was specified in LOAD DATA syntax)
      - Using thd->variables.collation_database by default
    sql/sql_yacc.yy:
      Adding optional character set clause into LOAD DATA syntax
    mysql-test/r/rpl_loaddata2.result:
      New BitKeeper file ``mysql-test/r/rpl_loaddata2.result''
    mysql-test/std_data/loaddata6.dat:
      New BitKeeper file ``mysql-test/std_data/loaddata6.dat''
    mysql-test/t/rpl_loaddata2.test:
      New BitKeeper file ``mysql-test/t/rpl_loaddata2.test''
    c3a3aff5
sql_class.cc 57.6 KB