1. 10 May, 2006 2 commits
  2. 06 May, 2006 3 commits
    • unknown's avatar
      Partial fix for BUG#14106: IM: im_life_cycle and im_utils · f4d209b0
      unknown authored
      tests fail on FreeBSD.
      
      The patch contains of the following:
        - make Instance Manager, running in the daemon mode, dump
          the pid of angel-process in the special file;
        - default value of angel-pid-file-name is 'mysqlmanager.angel.pid';
        - if ordinary (IM) pid-file-name is specified in the configuration,
          angel-pid-file-name is updated according to the following
          rule: extension of the basename of pid-file-name is replaced by
          '.angel.pid.
          For example:
          - pid-file-name: /tmp/im.pid
            => angel-pid-file-name: /tmp/im.angel.pid
          - pid-file-name: /tmp/im.txt
            => angel-pid-file-name: /tmp/im.angel.pid
          - pid-file-name: /tmp/5.0/im
            => angel-pid-file-name: /tmp/5.0/im.angel.pid
        - add support for configuration option to customize angel
          pid file name;
        - fix test suite to use angel pid to kill Instance Manager
          by all means if something went wrong.
      
      Background
      ----------
      
      The problem is that on some OSes (FreeBSD for one) Instance
      Manager does not get SIGTERM, so can not shutdown gracefully.
      Test suite wasn't able to cope with it, so this leads to the
      mess in test results.
      
      The problem should be split into two:
        - fix signal handling;
        - fix test suite.
      
      This patch fixes test suite so that it will be able to kill
      uncooperative Instance Manager. In order to achieve this,
      test suite needs to know PID of IM Angel process.
      
      
      mysql-test/lib/mtr_process.pl:
        Added a function to send a signal to a process.
      mysql-test/mysql-test-run.pl:
        Changed procedure of stopping Instance Manager.
        1. Try to stop IM normally (by sending SIGTERM);
        2. If one of IM-related processes is still alive,
        kill them all by SIGKILL and complain in the log.
      server-tools/instance-manager/manager.cc:
        Made create_pid_file() available for the whole project.
      server-tools/instance-manager/manager.h:
        Made create_pid_file() available for the whole project.
      server-tools/instance-manager/mysqlmanager.cc:
        Dump PID of angel process into file.
      server-tools/instance-manager/options.cc:
        Added an option to allow to customize angel pid file name.
      server-tools/instance-manager/options.h:
        Added an option to allow to customize angel pid file name.
      f4d209b0
    • unknown's avatar
      Fix for bug #17260 "Multiple invocations of triggers or stored functions · 59ff5274
      unknown authored
      hog memory".
      
      During each invocation of stored function or trigger some objects which
      lifetime is one function call (e.g. sp_rcontext) were allocated on
      arena/memroot of calling statement. This led to consumption of fixed amount
      of memory for each function/trigger invocation and so statements which
      involve lot of them were hogging memory. This in its return led to OOM
      crashes or freezes.
      
      This fix introduces new memroot and arena for objects which lifetime is
      whole duration of function call. So all memory consumed by such objects
      is freed at the end of function call.
      
      
      sql/sp_head.cc:
        sp_head::execute_function():
          Introduced new memroot and arena for objects which lifetime is whole
          duration of function call (e.g. sp_rcontext, sp_cursor). We can't
          use caller's arena/memroot for those objects because in this case 
          some fixed amount of memory will be consumed for each function/trigger
          invocation and so statements which involve lot of them will hog memory.
          Got rid of param_values array to avoid excessive juggling with arenas.
      59ff5274
    • unknown's avatar
      Fix race condition of concurrent RENAME and SHOW TABLES which caused · 9f606932
      unknown authored
      random test failures.
      
      
      mysql-test/t/rename.test:
        Fix race condition and add cleanup code.
      9f606932
  3. 04 May, 2006 2 commits
  4. 03 May, 2006 1 commit
    • unknown's avatar
      Bug#15463: EXPLAIN SELECT..INTO hangs the client (QB, command line) · bf8dac3b
      unknown authored
      There were two distict bugs: parse error was returned for valid
      statement and that error wasn't reported to the client.
      
      The fix ensures that EXPLAIN SELECT..INTO is accepted by parser and any
      other parse error will be reported to the client.
      
      
      mysql-test/r/explain.result:
        Add result for bug#15463.
      mysql-test/t/explain.test:
        Add test case for bug#15463.
      sql/sql_parse.cc:
        Assert that if parsing error has occured then apropriate error message
        has been pushed into error stack.
      sql/sql_yacc.yy:
        If there is no lex->result in select_var_ident rule, then we have
        to be in DESCRIBE mode.
      bf8dac3b
  5. 02 May, 2006 6 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 853f5413
      unknown authored
      into  mysql.com:/home/dlenev/mysql-5.0-bg11081
      
      
      853f5413
    • unknown's avatar
      Fix a bunch of non-Linux compile failures. · 33417297
      unknown authored
      
      VC++Files/mysql.sln:
        mysql_client_test depends on mysys.
      VC++Files/mysys/mysys.vcproj:
        Add new file missing in previous push.
      mysys/my_memmem.c:
        Fix illegal pointer arithmetics on void *.
      tests/Makefile.am:
        -L must go before -l
      tests/mysql_client_test.c:
        No declarations after statement in C code.
      33417297
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0 · a8295654
      unknown authored
      into mysql.com:/home/hf/work/mysql-5.0.clean
      
      
      a8295654
    • unknown's avatar
      Win build fix · 521d6b3d
      unknown authored
      521d6b3d
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 4d1cd02e
      unknown authored
      into  zippy.(none):/home/cmiller/work/mysql/mysql-5.0__bug17667
      
      
      mysys/Makefile.am:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      4d1cd02e
    • unknown's avatar
      SECURITY FIX · 3010890e
      unknown authored
      Bug#17667: An attacker has the opportunity to bypass query logging.
      
      This adds a new, local-only printf format specifier to our *printf functions
      that allows us to print known-size buffers that must not be interpreted as 
      NUL-terminated "strings."
      
      It uses this format-specifier to print to the log, thus fixing this 
      problem.
      
      
      include/my_sys.h:
        Add prototype for my_memmem() .
      mysys/Makefile.am:
        Add reference to new file, my_memmem.c
      mysys/mf_iocache2.c:
        Add a "%.1234b" and "%.*b" percent-code.  It takes a width, just like "%s", 
        but unlike the string-indicator, it requires the width and doesn't stop printing
        at NUL characters.
        
        Also, simplify the code a bit.
        
        TODO:  This code should be unified with the strings/my_vnsprintf.c code in 
        the future.
      sql/sql_parse.cc:
        The query is not a C-string, but is a sized buffer, containing any character 
        at all, which may include NUL characters.
      strings/my_vsnprintf.c:
        Add a "%.1234b" and "%.*b" percent-code.  It takes a width, just like "%s", 
        but unlike the string-indicator, it requires the width and doesn't stop printing
        at NUL characters.
      tests/Makefile.am:
        We may need some of our local functions.
      tests/mysql_client_test.c:
        Add a "%.1234b" and "%.*b" percent-code.  It takes a width, just like "%s", 
        but unlike the string-indicator, it requires the width and doesn't stop printing
        at NUL characters.
      mysql-test/t/mysql_client_test.opt:
        New BitKeeper file ``mysql-test/t/mysql_client_test.opt''
        
        Add '--log' server parameter.
      mysys/my_memmem.c:
        New BitKeeper file ``mysys/my_memmem.c''
        
        Implement memmem, a black-box work-alike of the GNU memmem(), which functions
        like strstr() but for arbitrary blocks of memory.
      3010890e
  6. 01 May, 2006 9 commits
  7. 29 Apr, 2006 3 commits
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · 180cecdc
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      180cecdc
    • unknown's avatar
      config-win.h: · 59a73f17
      unknown authored
        Fix strange "double" define for popen.
        Avoid warnings about sprintf() etc. being unsafe.
        Corrected typo "#endfif"
      
      
      include/config-win.h:
        Fix strange "double" define for popen.
        Avoid warnings about sprintf() etc. being unsafe.
        Corrected typo "#endfif"
      59a73f17
    • unknown's avatar
      configure.in: · 4fadc751
      unknown authored
        Changed version to 4.1.20
      
      
      configure.in:
        Changed version to 4.1.20
      4fadc751
  8. 28 Apr, 2006 14 commits
    • unknown's avatar
      mysql.spec.sh: · 9cffcab4
      unknown authored
        Backport of changes in 5.0 (bug#18294)
      
      
      support-files/mysql.spec.sh:
        Backport of changes in 5.0 (bug#18294)
      9cffcab4
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · fb7a6143
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      fb7a6143
    • unknown's avatar
      BUG#19145: mysqld crashes if you set the default value of an enum field to NULL · dd68976a
      unknown authored
      Now test for NULLness the pointers returned from objects created from the
      default value. Pushing patch on behalf of cmiller.
      
      
      mysql-test/r/null.result:
        Add test case
      mysql-test/t/null.test:
        Add test case
      sql/sql_table.cc:
        No longer blindly dereference pointer of the string representation of the
        values, where "NULL" is NUL. Raise INVALID DEFAULT error messages where
        appropriate.
        
        Note that the -O1 optimization flag made debugging this extremely tricky, with
        misleading results, and that removing it from the Makefile during debugging can
        be invaluable.
      dd68976a
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.0 · 53a4e3ee
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-5.0
      
      
      53a4e3ee
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0 · e196351d
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-5.0-new
      
      
      e196351d
    • unknown's avatar
      mysql.spec.sh: · 5fd32db8
      unknown authored
        Include and run mysql_upgrade if needed (bug#19353)
      
      
      support-files/mysql.spec.sh:
        Include and run mysql_upgrade if needed (bug#19353)
      5fd32db8
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · a59807d8
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      a59807d8
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.0 · 74566d84
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-5.0
      
      
      74566d84
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · e92e1dac
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      e92e1dac
    • unknown's avatar
      Bug#18818 configure: No longer finds OpenSSL on Mac OS X · 9b69052c
      unknown authored
       - Eval shrext_cmds variable before using it
       - Moved from acinclude.m4 to openssl.m4 and zlib.m4 when merging 4.1 -> 5.0
      
      
      config/ac-macros/openssl.m4:
        Move from acinclude.m4
      config/ac-macros/zlib.m4:
        Move from acinclude.m4
      9b69052c
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1 · 728ad6dd
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
        Changes to acinclude.m4 will go into openssl.m4 and zlib.m4
      728ad6dd
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · 62e09b3e
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      62e09b3e
    • unknown's avatar
      Merge lsmy3.wdf.sap.corp:/data/users/gkodinov/mysql-4.1-B18492 · ef7ec424
      unknown authored
      into  lsmy3.wdf.sap.corp:/data/users/gkodinov/mysql-5.0-B18492
      
      
      mysql-test/r/subselect.result:
        merged
      sql/item.cc:
        merged
      sql/item.h:
        merged
      sql/item_subselect.cc:
        merged
      ef7ec424
    • unknown's avatar
      BUG#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol · 3a0d0b4c
      unknown authored
      In the code that converts IN predicates to EXISTS predicates it is changing
      the select list elements to constant 1. Example :
      SELECT ... FROM ...  WHERE a IN (SELECT c FROM ...)
      is transformed to :
      SELECT ... FROM ... WHERE EXISTS (SELECT 1 FROM ...  HAVING a = c)
      However there can be no FROM clause in the IN subquery and it may not be
      a simple select : SELECT ... FROM ... WHERE a IN (SELECT f(..) AS
      c UNION SELECT ...) This query is transformed to : SELECT ... FROM ...
      WHERE EXISTS (SELECT 1 FROM (SELECT f(..) AS c UNION SELECT ...)
      x HAVING a = c) In the above query c in the HAVING clause is made to be
      an Item_null_helper (a subclass of Item_ref) pointing to the real
      Item_field (which is not referenced anywhere else in the query anymore).
      This is done because Item_ref_null_helper collects information whether
      there are NULL values in the result.  This is OK for directly executed
      statements, because the Item_field pointed by the Item_null_helper is
      already fixed when the transformation is done.  But when executed as
      a prepared statement all the Item instances are "un-fixed" before the
      recompilation of the prepared statement. So when the Item_null_helper
      gets fixed it discovers that the Item_field it points to is not fixed
      and issues an error.  The remedy is to keep the original select list
      references when there are no tables in the FROM clause. So the above
      becomes : SELECT ... FROM ...  WHERE EXISTS (SELECT c FROM (SELECT f(..)
      AS c UNION SELECT ...) x HAVING a = c) In this way c is referenced
      directly in the select list as well as by reference in the HAVING
      clause. So it gets correctly fixed even with prepared statements.  And
      since the Item_null_helper subclass of Item_ref_null_helper is not used
      anywhere else it's taken out.
      
      
      mysql-test/r/ps_11bugs.result:
        Test case for the bug
      mysql-test/r/subselect.result:
        Explain updated because of the tranformation
      mysql-test/t/ps_11bugs.test:
        Testcase for the bug
      sql/item.cc:
        Taking out Item_null_helper as it's no longer needed
      sql/item.h:
        Taking out Item_null_helper as it's no longer needed
      sql/item_subselect.cc:
        The described change to the IN->EXISTS transformation
      3a0d0b4c