1. 21 Sep, 2007 1 commit
    • unknown's avatar
      Bug #15327: configure: --with-tcp-port option being partially ignored · 0896ee9f
      unknown authored
        
      make sure that if builder configured with a non-standard (!= 3306)
      default TCP port that value actually gets used throughout.
      
      
      win/configure.js:
        Bug #15327: configure: --with-tcp-port option being partially ignored
            
        If MYSQL_TCP_PORT defaulted in configure (factory default 3306
        at the time of this writing), set MYSQL_TCP_PORT to factory
        default, then clear factory default after. That way, we lose no
        information, and we can distinguish between "defaulted" and the
        pathological case "builder specifically configured a port that
        coincides with factory default." This can in theory happen if
        builder configures and builds several servers from a script
        (--with-tcp-port=3306, --with-tcp-port=3316, --with-tcp-port=3326).
        Not all that probable, but much preferable to having more "magic"
        happen in the server when we can solve this without any guesswork.
      0896ee9f
  2. 13 Sep, 2007 1 commit
    • unknown's avatar
      Bug #15327: configure: --with-tcp-port option being partially ignored · 78653bdf
      unknown authored
      make sure that if builder configured with a non-standard (!= 3306)
      default TCP port that value actually gets used throughout. if they
      didn't configure a value, assume "use a sensible default", which
      will be read from /etc/services or, failing that, from the factory
      default. That makes the order of preference
      - command-line option
      - my.cnf, where applicable
      - $MYSQL_TCP_PORT environment variable
      - /etc/services (unless configured --with-tcp-port)
      - default port (--with-tcp-port=... or factory default)
      
      
      client/mysql.cc:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysql_upgrade.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqladmin.cc:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqlbinlog.cc:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqlcheck.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqldump.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqlimport.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqlmanagerc.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      configure.in:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        If MYSQL_TCP_PORT defaulted in configure (factory default 3306
        at the time of this writing), set MYSQL_TCP_PORT to factory
        default, then clear factory default after. That way, we lose no
        information, and we can distinguish between "defaulted" and the
        pathological case "builder specifically configured a port that
        coincides with factory default." This can in theory happen if
        builder configures and builds several servers from a script
        (--with-tcp-port=3306, --with-tcp-port=3316, --with-tcp-port=3326).
        Not all that probable, but much preferable to having more "magic"
        happen in the server when we can solve this without any guesswork.
      client/mysqlshow.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      client/mysqltest.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      include/mysql_version.h.in:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make factory default for TCP port available as MYSQL_PORT_DEFAULT
        if build-time configured with a different default.  (0 if unchanged)
      libmysql/libmysql.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        initialize default tcp port for client, like so:
        - if user configured --with-tcp-port, use that value as default
        - otherwise assume "use a good default": search mysqld/tcp in
          /etc/services; if that doesn't exist, use factory default (3306)
        - environment variable MYSQL_TCP_PORT overrides this default
        - command-line option overrides all of the above
      mysql-test/Makefile.am:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make factory default for TCP port available as MYSQL_TCP_PORT_DEFAULT
        if build-time configured with a different default.  (0 if unchanged)
      mysql-test/mysql-test-run-shell.sh:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        set up MYSQL_TCP_PORT if not already set in environment:
        - if user configured --with-tcp-port, use that value as default
        - otherwise assume "use a good default": search mysqld/tcp in
          /etc/services; if that doesn't exist, use factory default (3306)
      netware/mysql_test_run.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        account for non-standard default port-no. configured at build-time
      netware/mysqld_safe.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        account for non-standard default port-no. configured at build-time
      scripts/Makefile.am:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make factory default for TCP port available as MYSQL_TCP_PORT_DEFAULT
        if build-time configured with a different default.  (0 if unchanged)
      scripts/mysql_config.sh:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        set up MYSQL_TCP_PORT if not already set in environment:
        - if user configured --with-tcp-port, use that value as default
        - otherwise assume "use a good default": search mysqld/tcp in
          /etc/services; if that doesn't exist, use factory default (3306)
      scripts/mysql_fix_privilege_tables.sh:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        clarifying notice only
      scripts/mysqld_safe-watch.sh:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        account for non-standard default port-no. configured at build-time
      server-tools/instance-manager/priv.h:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        account for non-standard default port-no. configured at build-time
      sql/mysqld.cc:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        if builder specifically requested a default port, use that
        (even if it coincides with our factory default).
        only if they didn't do we check /etc/services (and, failing
        on that, fall back to the factory default of 3306).
        either default can be overridden by the environment variable
        MYSQL_TCP_PORT, which in turn can be overridden with command
        line options.
      tests/mysql_client_test.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      tests/ssl_test.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        account for non-standard default port-no. configured at build-time
      tests/thread_test.c:
        Bug #15327: configure: --with-tcp-port option being partially ignored
        
        make help on --port a little more clear
      78653bdf
  3. 20 Jul, 2007 1 commit
  4. 19 Jul, 2007 3 commits
  5. 18 Jul, 2007 1 commit
    • unknown's avatar
      Bug#26909: Specified key was too long; max key length is 255 bytes \ · d5b1eb42
      unknown authored
      	when creating table
      
      Federated tables had an artificially low maximum of key length, 
      because the handler failed to implement a method to return it and 
      the default value is taked from the prototype handler.
      
      Now, implement that method and return the maximum possible key
      length, which is that of InnoDB.
      
      
      mysql-test/r/federated.result:
        Verify that unique keys may be longer than 255 characters.
      mysql-test/t/federated.test:
        Verify that unique keys may be longer than 255 characters.
      sql/ha_federated.h:
        Implement the virtual method that tells the max size of parts to 
        make a key.
        
        Backport the length defined in 5.1.
      d5b1eb42
  6. 17 Jul, 2007 5 commits
  7. 16 Jul, 2007 5 commits
  8. 15 Jul, 2007 1 commit
    • unknown's avatar
      Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in · 1ddd9c17
      unknown authored
      Linux Debug build (possible deadlock)"
      
      The bug is not repeatable any more.
      
      
      mysql-test/r/innodb_mysql.result:
        Update test results (Bug#27296)
      mysql-test/t/innodb_mysql.test:
        Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in 
        Linux Debug build (possible deadlock)"
      1ddd9c17
  9. 14 Jul, 2007 4 commits
  10. 13 Jul, 2007 7 commits
    • unknown's avatar
      Bug#27198: Error returns from time() are ignored · 200550db
      unknown authored
      gettimeofday() can fail and presumably, so can time().
      Keep an eye on it.
      
      Since we have no data on this at all so far, we just
      retry on failure (and log the event), assuming that
      this is just an intermittant failure. This might of
      course hang the threat until we succeed. Once we know
      more about these failures, an appropriate more clever
      scheme may be picked (only try so many times per thread,
      etc., if that fails, return last "good" time() we got or
      some such).  Using sql_print_information() to log as this
      probably only occurs in high load scenarios where the debug-
      trace likely is disabled (or might interfere with testing
      the effect).  No test-case as this is a non-deterministic
      issue.
      
      
      sql/mysql_priv.h:
        Bug#27198: Error returns from time() are ignored
        
        move declarations for log.cc to before inclusion of
        sql_class.h as we now use sql_print_information() in
        there.
      sql/sql_class.h:
        Bug#27198: Error returns from time() are ignored
        
        gettimeofday() can fail and presumably, so can time().
        Keep an eye on it.
      200550db
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb · e39cd698
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-maint
      
      
      sql/set_var.cc:
        Auto merged
      e39cd698
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb-bj · ce62de00
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
      
      ce62de00
    • unknown's avatar
      When opening a new connecgtion, changed mysqltest to prefer a brand new... · cfbf0428
      unknown authored
      When opening a new connecgtion, changed mysqltest to prefer a brand new connection slot over an existing, closed slot. Fixes a problem with reused slots that can cause tests to fail. bug#29579
      
      
      client/mysqltest.c:
        When opening a new connecgtion, changed mysqltest to prefer a brand new connection slot over an existing, closed slot. Fixes a problem with reused slots that can cause tests to fail.
      cfbf0428
    • unknown's avatar
      Minor fixes for test failures and compiler warnings for Bug #29579. · 86fe6ad7
      unknown authored
      
      BitKeeper/deleted/.del-ssl_big.test:
        Delete: mysql-test/t/ssl_big.test
      extra/yassl/include/yassl_int.hpp:
        added comment
      extra/yassl/src/yassl_int.cpp:
        Changed init order to fix a compiler warning.
      mysql-test/r/mysqltest.result:
        There is no limit to connections anymore.
      mysql-test/t/mysqltest.test:
        There is no limit to connections anymore.
      86fe6ad7
    • unknown's avatar
      Merge damien-katzs-computer.local:/Users/dkatz/mysql50 · efcb1f95
      unknown authored
      into  damien-katzs-computer.local:/Users/dkatz/50
      
      efcb1f95
    • unknown's avatar
      Bug #29579 Clients using SSL can hang the server · 6cdd7d6c
      unknown authored
      Added an option to yassl to allow "quiet shutdown" like openssl does. This option causes the SSL libs to NOT perform the close_notify handshake during shutdown. This fixes a hang we experience because we hold a lock during socket shutdown.
      
      
      mysql-test/t/ssl_big.test:
        BitKeeper file /Users/dkatz/50/mysql-test/t/ssl_big.test
      mysql-test/r/ssl-big.result:
        BitKeeper file /Users/dkatz/50/mysql-test/r/ssl-big.result
      client/mysqltest.c:
        Added new command to mysqltest to send a quit command to the server, but to not close the actual socket on our end.
        
        Also changed code to reuse connection slots, so that the tests can open and close sockets in a loop.
      extra/yassl/include/openssl/ssl.h:
        Added C accessors to the quietShutdown option.
      extra/yassl/include/yassl_int.hpp:
        Added quietShutdown_ member and accessor methods to the SSL class.
      extra/yassl/src/ssl.cpp:
        Added accessors to get/set the quietShutdown option and to not perform the shutdown handshake if quietShutdown is set.
      extra/yassl/src/yassl_int.cpp:
        Added quietShutdown_ member and accessor methods to the SSL class.
      vio/viossl.c:
        Added line to set the quiet_shutdown option before shutting down the socket.
      mysql-test/t/ssl-big.test:
        Added a test that causes an unpatched server to hang during SSL socket shutdown.
      6cdd7d6c
  11. 12 Jul, 2007 7 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 2fad81ad
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      sql/sql_prepare.cc:
        Auto merged
      2fad81ad
    • unknown's avatar
      Apply community contributed fix for Bug#13326 SQLPS statement logging is · a217e997
      unknown authored
      incomplete in 5.0 (and review fixes).
      
      When in 5.0.13 I introduced class Prepared_statement and methods
      ::prepare and ::execute, general logging was left out of this class.
      This was good for stored procedures, since in stored procedures
      we do not log sub-statements, but introduced a regression in case of SQL
      syntax for prepared statements, as previously we would log the actual
      statements to the log, and after the change we would log only
      COM_QUERY text.
      
      Restore the old behavior, but still suppress logging if inside a stored 
      procedure.
      
      Based on a community contributed patch from Vladimir Shebordaev.
      
      No test case since we do not have a mechanism to test output
      of the general log.
      
      
      sql/sql_prepare.cc:
        Apply community contributed fix for Bug#13326 SQLPS statement logging is 
        incomplete in 5.0 (and review fixes).
      a217e997
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · f68c4164
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-26141-final
      
      
      sql/sql_yacc.yy:
        Auto merged
      f68c4164
    • unknown's avatar
      A fix and a test case for Bug#26141 mixing table types in trigger · cfa185e0
      unknown authored
      causes full table lock on innodb table.
      Also fixes Bug#28502 Triggers that update another innodb table 
      will block on X lock unnecessarily (duplciate).
      Code review fixes.
      
      Both bugs' synopses are misleading: InnoDB table is
      not X locked. The statements, however, cannot proceed concurrently, 
      but this happens due to lock conflicts for tables used in triggers,
      not for the InnoDB table. 
      
      If a user had an InnoDB table, and two triggers, AFTER UPDATE and 
      AFTER INSERT, competing for different resources (e.g. two distinct
      MyISAM tables), then these two triggers would not be able to execute
      concurrently. Moreover, INSERTS/UPDATES of the InnoDB table would
      not be able to run concurrently. 
      The problem had other side-effects (see respective bug reports).
      
      This behavior was a consequence of a shortcoming of the pre-locking
      algorithm, which would not distinguish between different DML operations
      (e.g. INSERT and DELETE) and pre-lock all the tables
      that are used by any trigger defined on the subject table.
      
      The idea of the fix is to extend the pre-locking algorithm to keep track,
      for each table, what DML operation it is used for and not
      load triggers that are known to never be fired.
      
      
      mysql-test/r/trigger-trans.result:
        Update results (Bug#26141)
      mysql-test/r/trigger.result:
        Update results (Bug#28502)
      mysql-test/t/trigger-trans.test:
        Add a test case for Bug#26141 mixing table types in trigger causes 
        full table lock on innodb table.
      mysql-test/t/trigger.test:
        Add a test case for Bug#28502 Triggers that update another innodb 
        table will block echo on X lock unnecessarily. Add more test 
        coverage for triggers.
      sql/item.h:
        enum trg_event_type is needed in table.h
      sql/sp.cc:
        Take into account table_list->trg_event_map when determining
        what tables to pre-lock. 
        
        After this change, if we attempt to fire a 
        trigger for which we had not pre-locked any tables, error
        'Table was not locked with LOCK TABLES' will be printed.
        This, however, should never happen, provided the pre-locking
        algorithm has no programming bugs.
        
        Previously a trigger key in the sroutines hash was based on the name 
        of the table the trigger belongs to. This was possible because we would
        always add to the pre-locking list all the triggers defined for a table when
        handling this table.
        Now the key is based on the name of the trigger, owing
        to the fact that a trigger name must be unique in the database it
        belongs to.
      sql/sp_head.cc:
        Generate sroutines hash key in init_spname(). This is a convenient
        place since there we have all the necessary information and can
        avoid an extra alloc.
        
        Maintain and merge trg_event_map when adding and merging elements
        of the pre-locking list.
      sql/sp_head.h:
        Add ,m_sroutines_key member, used when inserting the sphead for a
        trigger into the cache of routines used by a statement.
        Previously the key was based on the table name the trigger belonged
        to, since for a given table we would add to the sroutines list
        all the triggers defined on it.
      sql/sql_lex.cc:
        Introduce a new lex step: set_trg_event_type_for_tables().
        It is called when we have finished parsing but before opening
        and locking tables. Now this step is used to evaluate for each
        TABLE_LIST instance which INSERT/UPDATE/DELETE operation, if any,
        it is used in.
        In future this method could be extended to aggregate other information
        that is hard to aggregate during parsing.
      sql/sql_lex.h:
        Add declaration for set_trg_event_type_for_tables().
      sql/sql_parse.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse(). Remove tabs.
      sql/sql_prepare.cc:
        Call set_trg_event_type_for_tables() after  MYSQLparse().
      sql/sql_trigger.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse().
      sql/sql_trigger.h:
        Remove an obsolete member.
      sql/sql_view.cc:
        Call set_trg_event_type_for_tables() after MYSQLparse().
      sql/sql_yacc.yy:
        Move assignment of sp_head::m_type before calling sp_head::init_spname(), 
        one is now used inside another.
      sql/table.cc:
        Implement TABLE_LIST::set_trg_event_map() - a method that calculates
        wh triggers may be fired on this table when executing a statement.
      sql/table.h:
        Add missing declarations.
        Move declaration of trg_event_type from item.h (it will be needed for 
        trg_event_map bitmap when we start using Bitmap template instead
        of uint8).
      cfa185e0
    • unknown's avatar
      Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 92ceba28
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      
      92ceba28
    • unknown's avatar
      Merge adventure.(none):/home/thek/Development/cpp/bug28249/my50-bug28249 · b03336cc
      unknown authored
      into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
      
      
      mysql-test/t/query_cache.test:
        Auto merged
      sql/ha_myisam.cc:
        Auto merged
      sql/handler.h:
        Auto merged
      mysql-test/r/query_cache.result:
        SCCS merged
      b03336cc
    • unknown's avatar
      Bug#28249 Query Cache returns wrong result with concurrent insert / certain lock · 9a7f0fe2
      unknown authored
      A race condition in the integration between MyISAM and the query cache code 
      caused the query cache to fail to invalidate itself on concurrently inserted
      data.
      
      This patch fix this problem by using the existing handler interface which, upon
      each statement cache attempt, compare the size of the table as viewed from the 
      cache writing thread and with any snap shot of the global table state. If the
      two sizes are different the global table size is unknown and the current
      statement can't be cached.
      
      
      mysql-test/r/query_cache.result:
        Added test case
      mysql-test/t/query_cache.test:
        Added test case
      sql/ha_myisam.cc:
        - Implemented handler interface for ha_myisam class to dermine if the table
         belonging to the currently processed statement can be cached or not.
      sql/ha_myisam.h:
        - Implemented handler interface for ha_myisam class to dermine if the table
         belonging to the currently processed statement can be cached or not.
      sql/handler.h:
        - Documented register_query_cache_table method in the handler interface.
      9a7f0fe2
  12. 11 Jul, 2007 3 commits
  13. 10 Jul, 2007 1 commit