1. 19 Jun, 2006 2 commits
    • unknown's avatar
      Small fix for test suite: · 799c5935
      unknown authored
        - fix for IM stopping routine;
        - polishing.
      
      
      mysql-test/lib/mtr_process.pl:
        Polishing: make mtr_kill_process() more verbose in debug mode.
      mysql-test/mysql-test-run.pl:
        1. Fix stopping of IM running as a daemon -- after death of the main IM
        process, we should wait for the IM angel to die.
        2. Polishing -- be more verbose in debug mode.
      799c5935
    • unknown's avatar
      Fix of test suite in scope of fixing BUG#18023: IM: instance · 0ff8d486
      unknown authored
      can be started several times; monitor interval must be > 2sec
      
      
      mysql-test/r/im_daemon_life_cycle.result:
        Updated result file.
      mysql-test/r/im_life_cycle.result:
        Updated result file.
      mysql-test/r/im_utils.result:
        Updated result file.
      mysql-test/t/im_daemon_life_cycle-im.opt:
        Set monitoring interval to 1 second in order to:
          - be consistent with 5.1;
          - speed up tests;
      mysql-test/t/im_daemon_life_cycle.imtest:
        1. Use wait_for_start.sh script to minimize chance of race condition.
        2. Polishing.
      mysql-test/t/im_life_cycle.imtest:
        1. Use wait_for_start.sh and wait_for_stop.sh scripts to
           minimize chance of race condition;
        2. Remove some statements, because there is no way now to
           stabilize their output.
        3. Polishing;
      mysql-test/t/im_utils.imtest:
        1. Use wait_for_start.sh script to minimize chance of race condition.
        2. Polishing.
      mysql-test/t/kill_n_check.sh:
        1. Make timeout configurable by command-line argument;
        2. Change algorithm of waiting for process to restart to be
           more robust.
      mysql-test/t/im_life_cycle-im.opt:
        Set monitoring interval to 1 second in order to:
          - be consistent with 5.1;
          - speed up tests;
      mysql-test/t/im_utils-im.opt:
        Set monitoring interval to 1 second in order to:
          - be consistent with 5.1;
          - speed up tests;
      mysql-test/t/wait_for_process.sh:
        A new helper script, intended to be used instead of dummy "sleep"
        when waiting for some process to start or stop.
      0ff8d486
  2. 16 Jun, 2006 1 commit
    • unknown's avatar
      Fix for bug#13479 "REPLACE activates UPDATE trigger, not the DELETE and · e08a2b32
      unknown authored
      INSERT triggers".
      
      In cases when REPLACE was internally executed via update and table had
      on update (on delete) triggers defined we exposed the fact that such
      optimization used by callng on update (not calling on delete) triggers.
      Such behavior contradicts our documentation which describes REPLACE as
      INSERT with optional DELETE.
      
      This fix just disables this optimization for tables with on delete triggers.
      The optimization is still applied for tables which have on update but have
      no on delete triggers, we just don't invoke on update triggers in this case
      and thus don't expose information about optimization to user.
      
      Also added test coverage for values returned by ROW_COUNT() function (and
      thus for values returned by mysql_affected_rows()) for various forms of
      INSERT.
      
      
      mysql-test/r/insert.result:
        Added test for values returned by ROW_COUNT() function (and thus for values
        returned by mysql_affected_rows()) for various forms of INSERT. We didn't
        have coverage for this before and since this fix touches related code it is
        better to add it now.
      mysql-test/r/trigger.result:
        Adjusted test after fixing bug#13479 "REPLACE activates UPDATE trigger, not
        the DELETE and INSERT triggers".
      mysql-test/t/insert.test:
        Added test for values returned by ROW_COUNT() function (and thus for values
        returned by mysql_affected_rows()) for various forms of INSERT. We didn't
        have coverage for this before and since this fix touches related code it is
        better to add it now.
      mysql-test/t/trigger.test:
        Adjusted test after fixing bug#13479 "REPLACE activates UPDATE trigger, not
        the DELETE and INSERT triggers".
      sql/sql_insert.cc:
        write_record():
          We should not expose that internally we sometimes execute REPLACE
          via UPDATE instead of documented INSERT + DELETE pair. So we should not
          use this optimization for tables with on delete triggers. OTOH it is ok
          to use it for tables which have on update but have no on delete triggers,
          we just should not invoke on update triggers in this case.
      e08a2b32
  3. 01 Jun, 2006 15 commits
    • unknown's avatar
      Post-merge fixes · 9b871930
      unknown authored
      9b871930
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0 · f153c5af
      unknown authored
      into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
      
      
      f153c5af
    • unknown's avatar
      Merge zippy.(none):/home/cmiller/work/mysql/mysql-5.0-maint · 726351f5
      unknown authored
      into  zippy.(none):/home/cmiller/work/mysql/mysql-5.0
      
      
      726351f5
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · ecb3b94d
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0
      
      
      ecb3b94d
    • unknown's avatar
      Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0 · c8d37af3
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
      
      
      c8d37af3
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/mysql-5.0 · 90847cc4
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
      
      
      90847cc4
    • unknown's avatar
      Add define YASSL_PREFIX when compiling yassl · df41805c
      unknown authored
      df41805c
    • unknown's avatar
      Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0 · 674a33f5
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
      
      
      674a33f5
    • unknown's avatar
      Merge perch.ndb.mysql.com:/home/jonas/src/50-work · dbbc4c76
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
      
      
      dbbc4c76
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · c542ad66
      unknown authored
      into  mysql.com:/home/marty/MySQL/mysql-5.0
      
      
      c542ad66
    • unknown's avatar
      Merge perch.ndb.mysql.com:/home/jonas/src/41-work · dd47289b
      unknown authored
      into  perch.ndb.mysql.com:/home/jonas/src/50-work
      
      
      ndb/src/kernel/blocks/ERROR_codes.txt:
        Auto merged
      ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Auto merged
      ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
        Auto merged
      ndb/test/ndbapi/testNodeRestart.cpp:
        Auto merged
      ndb/test/run-test/daily-basic-tests.txt:
        Auto merged
      dd47289b
    • unknown's avatar
      ndb - bug#20185 · 49a4c85b
      unknown authored
        Dont be too aggressive in Dbtc::nodeFailCheckTransaction
        let it timeout by 1, so that it does not assert that it has waited too long
        old impl. set timeotu value to 0, making timeout = (ctcTimer - 0) which could be quite big.
      
      
      ndb/src/kernel/blocks/ERROR_codes.txt:
        error codes
      ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        2 new error inserts
        7030 - delay in GCP_PREPARE until checkLocalNodefailComplete is true
        7031 - delay in GCP_PREPARE and die
      ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
        Dont set api con timer to 0, as this might trigger asserion in timeoutfound lab if state == PREPARE_TO_COMMIT
      ndb/test/ndbapi/testNodeRestart.cpp:
        testcase
      ndb/test/run-test/daily-basic-tests.txt:
        autotest
      49a4c85b
    • unknown's avatar
      Post-merge fixes · 76343a5d
      unknown authored
      76343a5d
    • unknown's avatar
      Manual merge · 34c6f402
      unknown authored
      34c6f402
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/tmp_merge · eb51f9e0
      unknown authored
      into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
      
      
      BitKeeper/deleted/.del-errmsg.txt~31abf77f9e7b9211:
        Auto merged
      BitKeeper/deleted/.del-sql_state.h~4307ea5f1fe99019:
        Auto merged
      mysql-test/r/explain.result:
        Auto merged
      mysql-test/r/key_cache.result:
        Auto merged
      mysql-test/r/preload.result:
        Auto merged
      mysql-test/t/explain.test:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      scripts/make_win_src_distribution.sh:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      BitKeeper/deleted/.del-errmsg.txt~11edc4db89248c16:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~184eb1f09242dc72:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~2cdeb8d6f80eba72:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~4617575065d612b9:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~587903f9311db2d1:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~606dfaeb9e81aa4e:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~6bbd9eac7f0e6b89:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~7397c423c52c6d2c:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~898865062c970766:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~8ed1999cbd481dc4:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~94a93cc742fca24d:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~9dab24f7fb11b1e1:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~b44a85a177954da0:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~b6181e29d8282b06:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~ba132dc9bc936c8a:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~e2609fdf7870795:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~e3183b99fbba0a9c:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~eeb2c47537ed9c23:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~ef28b592c7591b7:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~ef53c33ac0ff8a84:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~f19bfd5d4c918964:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
        Manual merge
      BitKeeper/deleted/.del-errmsg.txt~ffe4a0c9e3206150:
        Manual merge
      BitKeeper/deleted/.del-mysqld_error.h~9dac75782467aab7:
        Manual merge
      eb51f9e0
  4. 31 May, 2006 14 commits
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.0 · 168cad46
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-5.0
      
      
      168cad46
    • unknown's avatar
      Import patch from yaSSL · f6e87e8d
      unknown authored
       - avoid allocating memory for each call to 'EVP_md5' and 
         'EVP_des_ede3_cbc' which were not released until server was stopped
       - Those functions are used from the SQL function 'des_encrypt' and
         'des_decrypt'.
      
      
      extra/yassl/include/openssl/ssl.h:
        Import patch yassl.diff
      extra/yassl/include/yassl_int.hpp:
        Import patch yassl.diff
      extra/yassl/src/ssl.cpp:
        Import patch yassl.diff
      extra/yassl/src/template_instnt.cpp:
        Import patch yassl.diff
      extra/yassl/src/yassl_int.cpp:
        Import patch yassl.diff
      f6e87e8d
    • unknown's avatar
      Add define YASLSL_PREFIX · afd1a8e4
      unknown authored
      
      extra/yassl/src/Makefile.am:
        Add defined YASSL_PREFIX when building yassl/src
      extra/yassl/testsuite/Makefile.am:
        Add defined YASSL_PREFIX when building yassl/testsuite
      afd1a8e4
    • unknown's avatar
    • unknown's avatar
      Import from yaSSL · 58393914
      unknown authored
      
      extra/yassl/include/openssl/crypto.h:
        Import patch yassl.diff
      extra/yassl/include/openssl/ssl.h:
        Import patch yassl.diff
      58393914
    • unknown's avatar
      Bug#14157: utf8 encoding in binlog without set character_set_client · 4aef3b22
      unknown authored
      adapting to pushbuild's custom to switch from default pathes. The name for
      var directory must be set with MYSQLTEST_VARDIR.
      
      
      mysql-test/t/mysqlbinlog.test:
        correction of log path since pushbuild uses non-default options.
      4aef3b22
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/bug19575/my50-bug19575 · 0444d22f
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0
      
      
      extra/yassl/include/openssl/ssl.h:
        Auto merged
      0444d22f
    • unknown's avatar
      Bug#20022 mysql-test-run can't be run with secure connections turned on for all testcases · 3ebe4455
      unknown authored
       - Part 1, fixes rpl- and federated-tests where connection is made to 127.0.0.1
      
      
      client/mysqltest.c:
        Turn on ssl_verify_server_cert only if host is "localhost"
      3ebe4455
    • unknown's avatar
      Bug#19575 MySQL-shared-5.0.21-0.glibc23 causes segfault in SSL_library_init · e03f4785
      unknown authored
       - Include prefix files that renames all public functions in yaSSLs
         OpenSSL API to ya<function_name>. They will otherwise conflict
         with OpenSSL functions if loaded by an application that uses OpenSSL
         as well as libmysqlclient with yaSSL support.
      
      
      client/Makefile.am:
        Remove $yassl_includes
        ...and one "suspicious line"
      config/ac-macros/yassl.m4:
        Remove yassl_includes as they are the same as "normal" include
      extra/yassl/include/openssl/crypto.h:
        Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_*
      extra/yassl/include/openssl/ssl.h:
        Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_*
      libmysql/Makefile.am:
        Remove yassl_includes
      libmysql_r/Makefile.am:
        Remove yassl_includes
      libmysqld/Makefile.am:
        Remove yassl_includes
        And one suspicious line
      libmysqld/examples/Makefile.am:
        Remove yassl_includes
      server-tools/instance-manager/Makefile.am:
        Remove yassl_includes
      sql/Makefile.am:
        Remove yassl_includes
      tools/Makefile.am:
        Add link with yaSSL libs
      vio/Makefile.am:
        Remove yassl_includes
      extra/yassl/include/openssl/generate_prefix_files.pl:
        Add utility script to parse the header files to generate the prefix_* files that renames yaSSL SSL_* functions
      extra/yassl/include/openssl/prefix_crypto.h:
        Add prefix file for crypto.h
      extra/yassl/include/openssl/prefix_ssl.h:
        Add prefix file for ssl.h
      e03f4785
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · 2d0ec44b
      unknown authored
      into  mysql.com:/home/marty/MySQL/mysql-5.0
      
      
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      2d0ec44b
    • unknown's avatar
      Bug#18235: assertion/crash when windows mysqld is ended with ctrl-c · b5000fba
      unknown authored
      Two threads both try a shutdown sequence which creates a race to the
      de-init/free of certain resources.
      
      This exists in similar form in the client as 17926: "mysql.exe crashes
      when ctrl-c is pressed in windows."
      
      
      sql/mysqld.cc:
        We have three potential ways of hitting the iceberg:
        - unireg_end()   has basic de-init
        - unireg_abort() has extended de-init
        - main() has a de-init sequence similar to unireg_abort()
        
        In the Windows version of the server, Control-C is handled
        in a different thread from the one main() is in.  The main
        loop is told to end, then unireg_abort() is called.  Its
        de-init and that of main() will then race each other for
        mutex- and cond-var-destroys, free(), and finally exit().
        
        This patch introduces a special case for Windows that will eliminate
        the race by ending the signal-handler via unireg_end() instead if
        SIGINT is signalled.  This seems the least intrusive fix that still
        fixes user-visible behaviour.
      b5000fba
    • unknown's avatar
      BUG#14157: utf8 encoding in binlog without set character_set_client · 1b701050
      unknown authored
      missed table to drop after merge from 4.1 
      
      
      mysql-test/r/mysqlbinlog.result:
        result changed
      mysql-test/t/mysqlbinlog.test:
        manual merge post-fix
      1b701050
    • unknown's avatar
      Merge dl145k.mysql.com:/tmp/andrei/MERGE/mysql-4.1 · 8c7209e5
      unknown authored
      into  dl145k.mysql.com:/tmp/andrei/MERGE/5.0
      
      
      BitKeeper/deleted/.del-config.guess~fd94a91a69a8ce8:
        Auto merged
      BitKeeper/deleted/.del-config.sub~d18f703b655db258:
        Auto merged
      BitKeeper/deleted/.del-ltmain.sh~9b8b907df176f96e:
        Auto merged
      mysql-test/t/mysqlbinlog.test:
        manual merge, accepting 4.1 mods
      sql/sql_class.cc:
        use local, Ramil explained it's a backport
      8c7209e5
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · a9e1cf72
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0
      
      
      a9e1cf72
  5. 30 May, 2006 8 commits
    • unknown's avatar
      Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0 · f90f2c58
      unknown authored
      into  mysql.com:/space/pekka/ndb/version/my50
      
      
      f90f2c58
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint · e066cb33
      unknown authored
      into  mysql.com:/mnt/storeage/mysql-5.0-maint_bug18669
      
      
      sql/sql_parse.cc:
        Auto merged
      e066cb33
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 8a5ca696
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-5.0
      
      
      8a5ca696
    • unknown's avatar
      Merge mysql.com:/home/alik/MySQL/devel/5.0-rt · 24240329
      unknown authored
      into  mysql.com:/home/alik/MySQL/devel/5.0-tree
      
      
      24240329
    • unknown's avatar
      Merge mysql.com:/usr/home/ram/work/mysql-4.1 · cce062f4
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-5.0
      
      
      client/mysqlbinlog.cc:
        merge
      cce062f4
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1 · f27a0eed
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-4.1
      
      
      f27a0eed
    • unknown's avatar
      Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX · a2993441
      unknown authored
      refers to a column name.
      
      
      mysql-test/r/select.result:
        Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
        refers to a column name.
        Added a new test case.
      mysql-test/t/select.test:
        Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
        refers to a column name.
        Added a new test case.
      sql/share/czech/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/danish/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/dutch/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/english/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/estonian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/french/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/german/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/greek/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.\
      sql/share/hungarian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/italian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/japanese-sjis/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.\
      sql/share/japanese/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/korean/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/norwegian-ny/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/norwegian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/polish/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/portuguese/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/romanian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/russian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/serbian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/slovak/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/spanish/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/swedish/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      sql/share/ukrainian/errmsg.txt:
        Removed error message ER_INDEX_DOES_NOT_EXIST,
        used ER_KEY_DOES_NOT_EXITS instead.
      a2993441
    • unknown's avatar
      Bug#17204 "second CALL to procedure crashes Server" · 128c3942
      unknown authored
      Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
      This bug caused crashes or resulted in wrong data being returned
      when one tried to obtain information from I_S tables about views
      using stored functions.
      
      It was caused by the fact that we were using LEX representing
      statement which were doing select from I_S tables as active LEX
      when contents of I_S table were built. So state of this LEX both
      affected and was affected by open_tables() calls which happened
      during this process. This resulted in wrong behavior and in
      violations of some of invariants which caused crashes.
      
      This fix tries to solve this problem by properly saving/resetting
      and restoring part of LEX which affects and is affected by the
      process of opening tables and views in get_all_tables() routine.
      To simplify things we separated this part of LEX in a new class
      and made LEX its descendant.
      
      
      mysql-test/r/information_schema_db.result:
        test case
      mysql-test/t/information_schema_db.test:
        test case
      sql/sql_lex.cc:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_lex.h:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_show.cc:
        Now in get_all_tables() routine we properly save/reset and
        restore part of LEX (statement table list and information
        about routines used) which affects and is affected by the
        process of opening tables and views.
      sql/sql_table.cc:
        Now we clean-up LEX after opening table (view) in two stages.
        In the first stage we call LEX::cleanup_after_one_table_open()
        to clean-up selects lists and derived tables state. In the
        second stage which happens after close_thread_tables() is
        invoked we call Query_tables_list::reset_query_tables_list(FALSE)
        to rollback changes in Query_tables_list.
      128c3942