An error occurred fetching the project authors.
  1. 26 Jan, 2005 1 commit
  2. 19 Jan, 2005 2 commits
    • unknown's avatar
      Fix for bug #7637: "Test failure: 'user_limits' on QNX and 64-bit systems" · 1f6070a4
      unknown authored
      Made user_limits.test scheduling independant (this solves failure on QNX).
      
      Made sys_var_max_user_conn variable int sized. Changed 
      max_user_connections from ulong to uint to be able to use it in 
      sys_var_max_user_conn::value_ptr() (solves failures on 64-bit platforms).
      
      
      mysql-test/r/user_limits.result:
        Made test scheduling independant.
      mysql-test/t/user_limits.test:
        Made test scheduling independant.
      sql/mysql_priv.h:
        Made max_user_connections to be the same size as
        USER_RESOURCES::user_conn (to be able to use them in
        sys_var_max_user_conn::value_ptr()).
      sql/mysqld.cc:
        Made max_user_connections to be the same size as
        USER_RESOURCES::user_conn (to be able to use them in
        sys_var_max_user_conn::value_ptr()).
      sql/set_var.cc:
        sys_var::item():
          Added support for int system variables.
      sql/set_var.h:
        Made sys_var_max_user_conn to be int sized variable.
      1f6070a4
    • unknown's avatar
      Final patch for BUG#4285. · 8e1e1e73
      unknown authored
      This patch collects all previous patches into one.
      
      The main problem was due to that there is are two variables -
      dflt_key_cache and sql_key_cache with have more or less duplicate
      function. The reson for the bug was that the default value in the key
      cache hash was set to dflt_key_cache, then sql_key_cache was set to a
      new key cache object, and then dflt_key_cache was set to sql_key_cache
      which was different from the dflt_key_cache_var. After sending SIGHUP,
      the server was using the original default value for the key cache hash,
      which was different from the actual key cache object used for the
      default key cache.
      
      
      include/keycache.h:
        Import patch 4285.diff
      mysys/mf_keycache.c:
        Import patch 4285.diff
      sql/mysql_priv.h:
        Import patch 4285.diff
      sql/mysqld.cc:
        Import patch 4285.diff
      sql/set_var.cc:
        Import patch 4285.diff
      sql/sql_parse.cc:
        Import patch 4285.diff
      sql/sql_show.cc:
        Import patch 4285.diff
      8e1e1e73
  3. 13 Jan, 2005 1 commit
    • unknown's avatar
      Fix bug in INSERT DELAYED with prepared statements · 177e99f3
      unknown authored
      The bug was that if you have two TL_WRITE_DELAYED at the same time,
      mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      
      
      sql/mysql_priv.h:
        Fix bug in insert delayed with prepared statements
      sql/sql_base.cc:
        Fix bug in insert delayed with prepared statements
      sql/sql_prepare.cc:
        Fix bug in insert delayed with prepared statements
        The bug was that if you have two TL_WRITE_DELAYED at the same time,
        mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      177e99f3
  4. 06 Jan, 2005 1 commit
    • unknown's avatar
      First stage of table definition cache · acf76e3b
      unknown authored
      Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
      Created Field::make_field() and made Field_num::make_field() to call this
      Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
      Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
      Renamed TABLE_SHARE->real_name to table_name
      Renamed TABLE->table_name to alias
      Renamed TABLE_LIST->real_name to table_name
      
      
      include/myisam.h:
        Added const before names
      mysql-test/r/group_min_max.result:
        Make results repeatable
      mysql-test/t/group_min_max.test:
        Make results repeatable
      sql/field.cc:
        Created Field::make_field() and made Field_num::make_field() to call this
        Use TABLE_SHARE
        Use sql_strmake() instead of sql_memdup() to simplify code
      sql/field.h:
        Changed table_name to be pointer to table_name. This allows us to change alias for all fields by just changing one pointer.
        Use TABLE_SHARE
      sql/field_conv.cc:
        Use TABLE_SHARE
      sql/filesort.cc:
        Use TABLE_SHARE
      sql/ha_berkeley.cc:
        Use TABLE_SHARE
      sql/ha_heap.cc:
        Use TABLE_SHARE
      sql/ha_innodb.cc:
        Use TABLE_SHARE
      sql/ha_myisam.cc:
        Use TABLE_SHARE
      sql/ha_myisammrg.cc:
        Use TABLE_SHARE
        Change some pointer handling to use const char*
      sql/ha_ndbcluster.cc:
        Use TABLE_SHARE
      sql/handler.cc:
        Use TABLE_SHARE
      sql/item.cc:
        Use TABLE_SHARE
      sql/item_func.cc:
        Use TABLE_SHARE
      sql/item_subselect.cc:
        Use TABLE_SHARE
      sql/item_sum.cc:
        Use TABLE_SHARE
      sql/key.cc:
        Use TABLE_SHARE
      sql/lock.cc:
        Use TABLE_SHARE
      sql/log_event.cc:
        real_name -> table_name
      sql/mysql_priv.h:
        Use TABLE_SHARE
      sql/opt_range.cc:
        Use TABLE_SHARE
      sql/opt_sum.cc:
        Use TABLE_SHARE
      sql/records.cc:
        Use TABLE_SHARE
      sql/repl_failsafe.cc:
        real_name -> table_name
      sql/slave.cc:
        Use TABLE_SHARE
      sql/sp.cc:
        Use TABLE_SHARE
      sql/sp_head.cc:
        real_name -> table_name
      sql/sql_acl.cc:
        Use TABLE_SHARE
        removed unnecessary assert
        fixed indentation
        changed some char * -> const char*
      sql/sql_acl.h:
        changed some char* -> const char*
      sql/sql_base.cc:
        Use TABLE_SHARE
      sql/sql_cache.cc:
        Use TABLE_SHARE
      sql/sql_class.cc:
        Use TABLE_SHARE
      sql/sql_db.cc:
        real_name -> table_name
      sql/sql_delete.cc:
        Use TABLE_SHARE
      sql/sql_derived.cc:
        Use TABLE_SHARE
      sql/sql_handler.cc:
        Use TABLE_SHARE
      sql/sql_help.cc:
        Use TABLE_SHARE
      sql/sql_insert.cc:
        Use TABLE_SHARE
      sql/sql_load.cc:
        Use TABLE_SHARE
      sql/sql_parse.cc:
        Use TABLE_SHARE
      sql/sql_rename.cc:
        real_name -> table_name
      sql/sql_select.cc:
        Use TABLE_SHARE
        table->blob_fields now points to field offsets, not fields
        tmp_table->table_name now points to alias name
      sql/sql_show.cc:
        Use TABLE_SHARE
      sql/sql_table.cc:
        Use TABLE_SHARE
      sql/sql_test.cc:
        Use TABLE_SHARE
      sql/sql_trigger.cc:
        Use TABLE_SHARE
      sql/sql_udf.cc:
        Use TABLE_SHARE
      sql/sql_union.cc:
        real_name -> table_name
      sql/sql_update.cc:
        Use TABLE_SHARE
      sql/sql_view.cc:
        Use TABLE_SHARE
      sql/table.cc:
        Split TABLE to TABLE and TABLE_SHARE
        Changed blob_field to be field offsets instead of pointer to fields
        Only initialize table->s->default_values with default record (not all table->record[#])
        Some indentation changes
      sql/table.h:
        Split TABLE to TABLE and TABLE_SHARE
      sql/tztime.cc:
        real_name -> table_name
      sql/unireg.cc:
        Use TABLE_SHARE
      sql/unireg.h:
        Use TABLE_SHARE
      acf76e3b
  5. 03 Jan, 2005 1 commit
    • unknown's avatar
      Better handling of ensuring that setup_tables() are not called twice · 2bcaed34
      unknown authored
      This fixed a bug in prepared statements when used with outher joins
      Fixed a bug in SUM(DISTINCT) when used with prepared statements.
      Some safety fixes in test scripts to ensure that previous test failures shouldn't affect other tests
      
      
      mysql-test/r/mysqldump.result:
        Safety fix if a previous test would fail
      mysql-test/r/show_check.result:
        Safety fix if a previous test would fail
      mysql-test/r/sp.result:
        Fix for --ps-protocol
      mysql-test/r/synchronization.result:
        Safety fix if a previous test would fail
      mysql-test/r/system_mysql_db.result:
        Safety fix if a previous test would fail
      mysql-test/t/mysqldump.test:
        Safety fix if a previous test would fail
      mysql-test/t/select.test:
        Safety fix if a previous test would fail
      mysql-test/t/show_check.test:
        Safety fix if a previous test would fail
      mysql-test/t/sp.test:
        fix for --ps-protocol
      mysql-test/t/strict.test:
        Fix for --ps-protocol
      mysql-test/t/synchronization.test:
        Safety fix if a previous test would fail
      mysql-test/t/system_mysql_db.test:
        Safety fix if a previous test would fail
      sql/item_sum.cc:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/item_sum.h:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/mysql_priv.h:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_base.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_insert.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_parse.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_prepare.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_select.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_union.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_update.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/table.h:
        Better handling of ensuring that setup_tables() are not called twice
      2bcaed34
  6. 31 Dec, 2004 1 commit
    • unknown's avatar
      Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag · 2419fa26
      unknown authored
      This allows use to use INSERT IGNORE ... ON DUPLICATE ...
      
      
      mysql-test/r/drop.result:
        safety fix
      mysql-test/t/drop.test:
        safety fix
      mysql-test/t/multi_update.test:
        ensure we cover all possible errors
      sql/log_event.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/log_event.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/mysql_priv.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_class.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_delete.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_insert.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_load.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_parse.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_select.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_table.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_union.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_update.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_yacc.yy:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      2419fa26
  7. 30 Dec, 2004 2 commits
    • unknown's avatar
      After merge fixes · 2e8d13c7
      unknown authored
      config/ac-macros/character_sets.m4:
        Added latin1_spanish_ci
      dbug/dbug_analyze.c:
        Remove compiler warnings
      include/my_handler.h:
        Reorder structure arguments to be more optimal
      innobase/dict/dict0load.c:
        Fixed wrong define tag (for MySQL 5.0)
      innobase/fil/fil0fil.c:
        Fixed compiler warning
      innobase/os/os0file.c:
        Fixed compiler warning
      myisam/ft_boolean_search.c:
        Fixed compiler warning
      myisam/ft_static.c:
        Update to use new HA_KEYSEG structure
      myisam/mi_open.c:
        Simple optimization
      myisammrg/myrg_static.c:
        Removed compiler warning
      mysql-test/r/grant.result:
        Update results after merge
      mysql-test/r/index_merge.result:
        Update results after merge
      mysql-test/r/information_schema_inno.result:
        Add missing drop table
      mysql-test/r/lowercase_table.result:
        safety fix
      mysql-test/r/multi_update.result:
        safety fix
      mysql-test/r/ps_1general.result:
        safety fix
      mysql-test/r/ps_2myisam.result:
        Update results after merge
        (set is not anymore of binary type)
      mysql-test/r/ps_3innodb.result:
        Update results after merge
      mysql-test/r/ps_4heap.result:
        Update results after merge
      mysql-test/r/ps_5merge.result:
        Update results after merge
      mysql-test/r/ps_6bdb.result:
        Update results after merge
      mysql-test/r/show_check.result:
        Update results after merge
      mysql-test/r/subselect.result:
        Update results after merge
        (added missing quotes)
      mysql-test/r/timezone2.result:
        Update results after merge
      mysql-test/r/view.result:
        Update results after merge
        (note that INSERT IGNORE will work again after next merge from 4.1)
      mysql-test/t/derived.test:
        Removed empty line
      mysql-test/t/grant.test:
        Update results after merge
      mysql-test/t/information_schema_inno.test:
        added missing drop table
      mysql-test/t/lowercase_table.test:
        safety fix
      mysql-test/t/multi_update.test:
        safety fix
      mysql-test/t/ps_1general.test:
        safety fix
      mysql-test/t/view.test:
        update error codes after merge
      ndb/src/mgmsrv/main.cpp:
        after merge fix
      ndb/tools/ndb_test_platform.cpp:
        removed compiler warnings
      regex/main.c:
        remove compiler warnings
      sql/field.cc:
        Remove compiler warning
      sql/gen_lex_hash.cc:
        Added DBUG support
      sql/ha_myisam.cc:
        Removed warning from valgrind
      sql/ha_ndbcluster.cc:
        Remove compiler warning
      sql/item_cmpfunc.cc:
        Better to use val_int() instead of val_real() as we don't want Item_func_nop_all to return different value than the original ref element
      sql/mysqld.cc:
        Remove compiler warning
      sql/sql_acl.cc:
        More debugging
      sql/sql_lex.cc:
        Remove unnecessary 'else'
      sql/sql_parse.cc:
        After merge fixes
        Simplify reset of thd->server_status for SQLCOM_CALL
      sql/sql_prepare.cc:
        After merge fixes
        Removed possible core dump in mysql_stmt_fetch()
      sql/sql_update.cc:
        After merge fixes (together with Sanja)
      strings/ctype-czech.c:
        Remove compiler warning
      strings/ctype-ucs2.c:
        Remove compiler warning
      strings/ctype-win1250ch.c:
        Remove compiler warning
      strings/xml.c:
        Remove compiler warning
      tests/client_test.c:
        Fix test to work with 5.0
      vio/test-sslserver.c:
        Portability fix
      2e8d13c7
    • unknown's avatar
      wl#1629 SHOW with WHERE(final part, after review) · 525242d3
      unknown authored
        added syntax:
        'show variables where', 'show status where', 'show open tables where'
      
      
      mysql-test/r/grant_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/information_schema.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/query_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/temp_table.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/union.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/information_schema.test:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/query_cache.test:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/item.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/mysql_priv.h:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_parse.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_select.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_show.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_yacc.yy:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/table.h:
        wl#1629 SHOW with WHERE(final part,after review)
      525242d3
  8. 29 Dec, 2004 1 commit
    • unknown's avatar
      WL#1339 "Add per account max_user_connections limit (maximum number · 05b709fc
      unknown authored
      of concurrent connections for the same account)"
      
      Added support of account specific max_user_connections limit. Made all
      user limits to be counted per account instead of the old behavior,
      which was per user/host accounting. Added option which enables the old
      behavior. Added testing of these to the test suite.
      
      (After review version).
      
      
      client/mysqltest.c:
        Extended mysqltest to be able to handle connect() statements for which
        error is expected.
        
        - Added replace_dynstr_append() utility function.
        - added connect_n_handle_errors() function which connects with server
          without retries and handles errors as if "connect" was usual
          statement.
        - do_connect(): added ability to handle connects which are expected
          to return an error.
        - run_query_normal(): Moved all expected-error-handling code to separate
          normal_handle_error()/normal_handle_no_error() functions to be able
          to reuse them in connect_n_handle_errors().
      mysql-test/r/grant.result:
        Fixed test results since one more column to mysql.user was added.
      mysql-test/r/system_mysql_db.result:
        Fixed test results since one more column to mysql.user was added.
      scripts/mysql_create_system_tables.sh:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      scripts/mysql_fix_privilege_tables.sql:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      sql/lex.h:
        Added MAX_USER_CONNECTIONS symbol used for specifying
        maximum number of concurrent connections per account.
      sql/mysql_priv.h:
        Added declaration of opt_old_style_user_limits variable which is defined
        in sql/mysqld.cc used in sql/sql_parse.cc.
      sql/mysqld.cc:
        Added "old-style-user-limits" option which forces user limits to behave
        in old way i.e. to be counted per user/host pair instead of per account.
        Added comment describing mqh_used variable.
      sql/set_var.cc:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/set_var.h:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/sql_acl.cc:
        Added support for account-specific MAX_USER_CONNECTIONS limit.
        Tweaked USER_RESOURCES and their handling for better clarity.
      sql/sql_parse.cc:
        Added support for account-specific MAX_USER_CONNECTIONS (maximum number
        of concurrent connections per account) limit. Changed default behavior
        of all user limits to be per account instead of per user+host.
        '--old-style-user-limits' option was added to enable the old behavior.
        Made maximum number of connections per hour to be independant on the
        value of global max_user_connections variable.
      sql/sql_yacc.yy:
        Added support of new MAX_USER_CONNECTIONS limit to grammar.
        Renamed USER_RESOURCES::connections member to conn_per_hour and bits
        member to specified_limits. Also enum is used instead of naked numbers
        when we are working with specified_limits.
      sql/structs.h:
        USER_RESOURCES struct:
         - Added user_conn member to store the maximum number of concurrent 
           connections for an account. Renamed connections member to 
           conn_per_hour for less ambiguity.
         - Renamed member 'bits' to 'specified_limits' for the sake of clarity.
           The member was used as a flag indicating which limits were mentioned
           in GRANT clause.
         - Added comments.
        USER_CONN struct:
         - Removed unused user_len member.
         - Added comments.
      05b709fc
  9. 27 Dec, 2004 1 commit
  10. 24 Dec, 2004 1 commit
    • unknown's avatar
      logging_ok: · 40d7e74e
      unknown authored
        Logging to logging@openlogging.org accepted
      sql_yacc.yy, sql_parse.cc, sql_lex.h, lex.h:
        Implements the SHOW MUTEX STATUS command
      set_var.cc, mysqld.cc, mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      ha_innodb.h:
        New function innodb_mutex_show_status
      ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      innodb.test, innodb.result:
        Added new row_lock_waits status variables tests.
      variables.test, variables.result:
        test new variable timed_mutexes
      ut0ut.c:
        New function ut_usectime.
      sync0sync.c:
        Mutex counting.
      sync0rw.c:
        New mutex parameters initialization.
      srv0srv.c:
        Counting row lock waits
      row0sel.c, row0mysql.c:
        Setting row_lock or table_lock state to thd.
      que0que.c:
        Added default no_lock_state to thd.
      univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      sync0sync.ic:
        Count mutex using.
      sync0sync.h:
        Added new parameters to mutex structure for counting.
      sync0rw.h:
        Added new parameters to rw_create_func.
      srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      que0que.h:
        Added thread lock states.
      
      
      innobase/include/que0que.h:
        Added thread lock states.
      innobase/include/srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      innobase/include/sync0rw.h:
        Added new parameters to rw_create_func.
      innobase/include/sync0sync.h:
        Added new parameters to mutex structure for counting.
      innobase/include/sync0sync.ic:
        Count mutex using.
      innobase/include/univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      innobase/que/que0que.c:
        Added default no_lock_state to thd.
      innobase/row/row0mysql.c:
        Setting row_lock or table_lock state to thd.
      innobase/row/row0sel.c:
        Setting row_lock or table_lock state to thd.
      innobase/srv/srv0srv.c:
        Counting row lock waits
      innobase/sync/sync0rw.c:
        New mutex parameters initialization.
      innobase/sync/sync0sync.c:
        Mutex counting.
      innobase/ut/ut0ut.c:
        New function ut_usectime.
      mysql-test/r/variables.result:
        test new variable timed_mutexes
      mysql-test/r/innodb.result:
        Added new row_lock_waits status variables tests.
      mysql-test/t/variables.test:
        test new variable timed_mutexes
      mysql-test/t/innodb.test:
        Added new row_lock_waits status variables tests.
      sql/ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      sql/ha_innodb.h:
        New function innodb_mutex_show_status
      sql/lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      sql/mysqld.cc:
        Added new GLOBAL variable timed_mutexes
      sql/set_var.cc:
        Added new GLOBAL variable timed_mutexes
      sql/sql_lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/sql_parse.cc:
        Implements the SHOW MUTEX STATUS command
      sql/sql_yacc.yy:
        Implements the SHOW MUTEX STATUS command
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      40d7e74e
  11. 23 Dec, 2004 1 commit
    • unknown's avatar
      WL#925 - Privileges for stored routines · 09ce0b33
      unknown authored
        Implement fine-grained control over access to stored procedures
        Privileges are cached (same way as existing table/column privs)
        
      
      
      mysql-test/include/system_db_struct.inc:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/connect.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/grant.result:
        WL#925 - Privileges for stored routines
          user table has additional privilege attributes
          SHOW PRIVILEGES amended
      mysql-test/r/grant2.result:
        Fix result
      mysql-test/r/information_schema.result:
        WL#925 - Privileges for stored routines
          New system table procs_priv
          New user privileges
      mysql-test/r/show_check.result:
        Fix result
      mysql-test/r/sp-security.result:
        WL#925 - Privileges for stored routines
          Fix existing tests to work with new privileges
          New tests for new privileges
      mysql-test/r/sp.result:
        WL#925 - Privileges for stored routines
          Fix SHOW PRIVILEGES results
      mysql-test/r/system_mysql_db.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
          user and db tables have new privilege attributes
      mysql-test/t/grant2.test:
        Fix test
      mysql-test/t/show_check.test:
        Fix test
      mysql-test/t/sp-security.test:
        WL#925 - Privileges for stored routines
          Allow existing tests to run with new privilege checks
          New tests for privileges
      mysql-test/t/system_mysql_db_fix.test:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      scripts/mysql_create_system_tables.sh:
        WL#925 - Privileges for stored routines
          db and user has new privilege attributes
          new system table: procs_priv
      scripts/mysql_fix_privilege_tables.sql:
        WL#925 - Privileges for stored routines
          new system table: procs_priv
      scripts/mysql_install_db.sh:
        WL#925 - Privileges for stored routines
          Amend comment
      sql/item_func.cc:
        WL#925 - Privileges for stored routines
          Privilege check for stored FUNCTION routine
      sql/lex.h:
        WL#925 - Privileges for stored routines
          new token ROUTINE
      sql/mysql_priv.h:
        WL#925 - Privileges for stored routines
          New function: check_procedure_access()
      sql/mysqld.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/set_var.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/share/errmsg.txt:
        WL#925 - Privileges for stored routines
          rename errormessage to conform:
            ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
          New error messages
            ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
      sql/sp.cc:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sp.h:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sql_acl.cc:
        WL#925 - Privileges for stored routines
          Implementation for SP privileges.
          Privileges are cached in memory hash.
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_revoke_privileges()
            sp_grant_privileges()
      sql/sql_acl.h:
        WL#925 - Privileges for stored routines
          New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
          Alter confusing bit-segments to be shifted
          New macros: fix_rights_for_procedure() get_rights_for_procedure()
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_grant_privileges()
            sp_revoke_privileges()
      sql/sql_lex.h:
        WL#925 - Privileges for stored routines
          new all_privileges attribute in LEX
      sql/sql_parse.cc:
        WL#925 - Privileges for stored routines
          Remove function: check_sp_definer_access()
          Add handling for SP grants/revokes
          Add privilege checks for stored procedure invocation
      sql/sql_show.cc:
        WL#925 - Privileges for stored routines
          update result for SHOW PRIVILEGES
      sql/sql_yacc.yy:
        WL#925 - Privileges for stored routines
          New token ROUTINE
          rename some rules
          handle CREATE ROUTINE / ALTER ROUTINE privileges
      09ce0b33
  12. 21 Dec, 2004 1 commit
  13. 16 Dec, 2004 1 commit
    • unknown's avatar
      Data truncation reporting implementation (libmysql) + post review · 7845f99a
      unknown authored
      fixes. Still to do: 
      -  deploy my_strtoll10 in limbysql.c
      - add mysql_options option to switch MYSQL_DATA_TRUNCATED on and off.
      
      
      include/my_time.h:
        More calls are shared between client and server (libmysql now performs
        more intelligent date->number and number->date conversions).
        TODO: rename those which are not starting with 'my_'
      include/mysql.h:
        MYSQL_BIND:
        - more elaborated comment
        - some of the ex-private members were given public names - 
          it's sometimes convenient to set bind->error to &bind->error_value.
          However Monty questions the idea, so it should be given
          more thought in future.
        - added new members to support data truncation.
        Added new return value of mysql_stmt_fetch, MYSQL_DATA_TRUNCATED.
      libmysql/libmysql.c:
        - added support for data truncation during fetch
        - implementation for is_binary_compatible: now conversion functions
          are used less frequently
        - we now use number_to_datetime and TIME_to_ulonglong for date->number and
          number->date conversions
      sql-common/my_time.c:
        - added implementation of date->number and number->date calls shared 
          between client and server (moved from time.cc).
      sql/field.cc:
        - implemented Field_time::store_time() to better support date->time
          conversions in prepared mode. After-review fixes.
      sql/field.h:
        - Field::store_time now returns int
      sql/mysql_priv.h:
        - removed date->number and number->date conversion functions headers
          (moved to my_time.h)
      sql/time.cc:
        - removed implementation of date->number and number->date conversion
          functions (moved to my_time.c)
      tests/client_test.c:
        - added a test case for data truncation; other test cases adjusted.
        - fixed my_process_stmt_result to set STMT_ATTR_UPDATE_MAX_LENGTH (tables
          are now printed out prettier).
      7845f99a
  14. 14 Dec, 2004 1 commit
  15. 13 Dec, 2004 1 commit
    • unknown's avatar
      WL#2274 - INSERT..SELECT..UPDATE · 46364ddb
      unknown authored
        UPDATE clause conflicts with SELECT for use of item_list field.
        Alter UPDATE clause to use new lex field update_list
        Tests included
      
      
      mysql-test/r/insert_update.result:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      mysql-test/t/insert_update.test:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      sql/mysql_priv.h:
        Remove function - insert_select_precheck()
      sql/sql_class.h:
        WL#2274
          New constructor for class select_insert
      sql/sql_insert.cc:
        WL#2274
          Move code into mysql_prepare_insert
          Add checks as param values may be NULL
      sql/sql_lex.cc:
        WL#2274
          initialize lex->update_list
      sql/sql_lex.h:
        WL#2274
          New field in LEX: update_list
      sql/sql_parse.cc:
        WL#2274
          INSERT..UPDATE clause now populates lex->update_list
          Remove redundant function: insert_select_precheck()
      sql/sql_prepare.cc:
        WL#2274
          invoke insert_precheck() instead of insert_select_precheck()
      sql/sql_yacc.yy:
        WL#2274
          Enable INSERT..SELECT..UPDATE syntax
          New rule - insert_update_list, to populate lex->update_list
      46364ddb
  16. 11 Dec, 2004 1 commit
    • unknown's avatar
      First commit to mysql-5.0 tree to include MySQL Federated Storage Handler.... · 7d2e580c
      unknown authored
      First commit to mysql-5.0 tree to include MySQL Federated Storage Handler. This includes both the source and header files, test (results, test, require), and modifications to server and handler base files, and autoconf modifications to properly build federated handler.
      
      
      configure.in:
        inclusion of federated handler autoheader macro
      mysql-test/mysql-test-run.sh:
        allow usage of replication tests for federated handler
      sql/Makefile.am:
        inclusion of federated header and source file
      sql/field.h:
        overloaded method val_str() to work with fields in 'old_data' in 'update_row()'
      sql/handler.cc:
        added code to include federated handler
      sql/handler.h:
        add db type for federated
      sql/mysql_priv.h:
        added code for federated handler
      sql/mysqld.cc:
        added code for federated handler
      sql/set_var.cc:
        added code for federated handler
      7d2e580c
  17. 09 Dec, 2004 2 commits
    • unknown's avatar
      Fix for bug #6765 "Implicit access to time zone description · 9ad51c63
      unknown authored
      tables requires privileges for them if some table or column level grants
      present" (with after-review fixes).
      
      We should set SELECT_ACL for implicitly opened tables in 
      my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
      checking in check_grant(). Also we should exclude those tables from
      privilege checking in multi-update.
      
      
      mysql-test/r/timezone2.result:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      mysql-test/t/timezone2.test:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      sql/item_geofunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/item_strfunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/log.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/mysql_priv.h:
        Now we have to include sql_acl.h before tztime.h, since 
        my_tz_check_n_skip_implicit_tables() defined there requires
        SELECT_ACL constant defined in sql_acl.h.
      sql/mysqld.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/repl_failsafe.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/set_var.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_acl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_base.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_cache.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_class.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_db.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_derived.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_do.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_insert.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_parse.cc:
        check_one_table_access(): Tweaked comments.
        multi_update_precheck(): Added skipping of implicitly opened tables
          during privilege checking.
      sql/sql_prepare.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_repl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_show.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_update.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_yacc.yy:
        sql_acl.h is now included via mysql_priv.h
      sql/tztime.h:
        my_tz_check_n_skip_implicit_tables():
          We should set SELECT_ACL for implictly opened tables to be able to
          bypass privilege checking in check_grant().
      9ad51c63
    • unknown's avatar
      Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets · 0f99fe72
      unknown authored
      transactional table locks to tables mentioned in the query. These locks
      are released at the end of the transaction automatically.
      This is fix for bugs #5655, #5998 and issue #3762.
      
      
      
      
      innobase/include/lock0lock.h:
        Added a new lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/include/trx0trx.h:
        Added a varible to store the number of transactional table locks
        reserved by the transaction and stored in the trx_locks list.
      innobase/lock/lock0lock.c:
        Added a lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/row/row0mysql.c:
        Added support for a transactional table lock.
      innobase/trx/trx0roll.c:
        Make compiler happy and format function.
      innobase/trx/trx0trx.c:
        Added information about number of explicit and transactional table locks in
        the innodb monitor.
      sql/ha_innodb.cc:
        Added support for a LOCK_TABLE_TRANSACTIONAL table lock (SQLCOM_LOCK_TABLES_TRANSACTIONAL).
        Transactional table locks are taken in the function ::transactional_table_lock().
      sql/ha_innodb.h:
        Added prototype for a function trandactional_table_lock().
      sql/handler.h:
        Added prototype for a virtual function transactional_table_lock().
        Handler does not need to implement this function.
      sql/lock.cc:
        Added a function transactional_lock_tables() to lock all tables in the list
        with transactional table lock. These locks can cause a deadlock and
        this error should be reported back to user.
      sql/mysql_priv.h:
        Added prototype for a function transactional_lock_tables().
      sql/sql_lex.h:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_parse.cc:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_yacc.yy:
        Added parsing rules for a LOCK TABLES...WHERE ENGINE = x;
      0f99fe72
  18. 06 Dec, 2004 1 commit
  19. 02 Dec, 2004 4 commits
    • unknown's avatar
      Making FLUSH TABLES WITH READ LOCK killable while it's waiting for running... · 75fa4c00
      unknown authored
      Making FLUSH TABLES WITH READ LOCK killable while it's waiting for running commits to finish. Normally this step is not long but it's still nice to be killable
      (especially in case of bug like BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever").
      
      
      sql/lock.cc:
        making FLUSH TABLES WITH READ LOCK killable while it's waiting for running commits to finish
      sql/mysql_priv.h:
        prototype change
      sql/sql_parse.cc:
        now it's possible that make_global_read_lock_block_commit fails (killed)
      75fa4c00
    • unknown's avatar
      merge (new code fixed the ALTER TABLE problem) · 374252c6
      unknown authored
      374252c6
    • unknown's avatar
      Cleanups during review stage · 93cf297f
      unknown authored
      Added auto-correct of field length for enum/set tables for ALTER TABLE
      This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      
      
      mysql-test/r/rpl_start_stop_slave.result:
        Fixed wrong test
      mysql-test/r/type_enum.result:
        Added test for wrong enum/set length after alter table
      mysql-test/t/ps.test:
        removed empty line
      mysql-test/t/type_enum.test:
        Added test for wrong enum/set length after alter table
      sql/field.cc:
        Added auto-correct of field length for enum/set tables.
        This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      sql/item_cmpfunc.cc:
        Simple optimization
      sql/mysql_priv.h:
        Made local function global
      sql/set_var.cc:
        Simple cleanup
      sql/sql_table.cc:
        Simple cleanups & optimizations
      93cf297f
    • unknown's avatar
      Bug #6379: ENUM values are incorrectly converted · 5167b5f0
      unknown authored
      - add_field_to_list() now uses <List>String
      instead of TYPELIB to be able to distinguish
      literals 'aaa' and hex literals 0xaabbcc.
      - move some code from add_field_to_list() where
        we don't know column charset yet, to 
        mysql_prepare_table(), where we do.
      
      
      5167b5f0
  20. 27 Nov, 2004 2 commits
  21. 25 Nov, 2004 1 commit
    • unknown's avatar
      post-merge fix · f88d0193
      unknown authored
      mysql-test/r/view.result:
        changes in error number, and key in view processing
      mysql-test/t/view.test:
        changes in error number, and key in view processing
      sql/mysql_priv.h:
        changes functions
      sql/sp.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
      sql/sql_base.cc:
        fixed finding table, taking in account join view, which can have not TABLE pointer
        now we report to setup_tables(), are we setuping SELECT...INSERT and ennumerete insert table separately
      sql/sql_delete.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
      sql/sql_help.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
      sql/sql_insert.cc:
        fixed returning value of functions
      sql/sql_load.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
        removed second setup_tables call (merge)
      sql/sql_olap.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
      sql/sql_parse.cc:
        UPDATE->MULTIUPDATE switching fixed
      sql/sql_prepare.cc:
        UPDATE->MULTIUPDATE switching fixed
      sql/sql_select.cc:
        now we report to setup_tables(), are we setuping SELECT...INSERT
      sql/sql_update.cc:
        UPDATE->MULTIUPDATE switching fixed
      sql/sql_view.cc:
        returning value fixed
      sql/sql_view.h:
        returning value fixed
      f88d0193
  22. 24 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug #5888 "Triggers with nonexistent columns cause packets · c3da2d12
      unknown authored
      out of order". (final version)
      
      Now instead of binding Item_trigger_field to TABLE objects during
      trigger definition parsing at table open, we perform pass through
      special list of all such objects in trigger. This allows easily check
      all references to fields in old/new version of row in trigger during
      execution of CREATE TRIGGER statement (this is more courtesy for users
      since we can't check everything anyway).
      We also report that such reference is bad by returning error from
      Item_trigger_field::fix_fields() method (instead of setup_field())
      This means that if trigger is broken we will bark during trigger
      execution instead of trigger definition parsing at table open.
      (i.e. now we allow to open tables with broken triggers).
      
      
      mysql-test/r/trigger.result:
        Added test which attempts to create trigger for table referencing to
        field which does not exist in this table.
      mysql-test/t/trigger.test:
        Added test which attempts to create trigger for table referencing to
        field which does not exist in this table.
      sql/item.cc:
        Item_trigger_field::setup_field() now returns void. If any error
        will occur we will report it at fix_fields() stage.
      sql/item.h:
        Item_trigger_field:
        - Added next_trg_field member for linking all such objects in trigger
          in one list.
        - Also setup_field() now returns void. If any error will occur we will
          report it at fix_fields() stage.
      sql/mysql_priv.h:
        Added SQL_LIST::push_back() method which allows to add another SQL_LIST
        to the end of this SQL_LIST.
      sql/sp_head.cc:
        sp_head::init()/reset_lex()/restore_lex():
         In order to fill global LEX::trg_table_fields (list of all 
         Item_trigger_field objects for trigger) we should init the same list
         in LEX of substatement before its parsing and merge it to global list
         after parsing.
      sql/sp_head.h:
        sp_instr_trigger_field:
          Made trigger_field member public to be able to add it more easily to
          global list of all Item_trigger_field objects in trigger.
      sql/sql_lex.cc:
        LEX::trg_table was removed.
      sql/sql_lex.h:
        Now we are binding Item_trigger_field's to TABLE object by passing
        through specially constructed list of all such objects in this trigger
        instead of doing this during trigger definition parsing at table open.
        So we no longer need LEX::trg_table, we use LEX::trg_table_fields list
        instead.
      sql/sql_parse.cc:
        mysql_execute_command():
          Since now we use trigger body for some checks in
          mysql_create_or_drop_trigger() we should destroy it only
          after calling this function.
      sql/sql_trigger.cc:
        Now instead of binding Item_trigger_field to TABLE objects during
        trigger definition parsing at table open, we perform pass through
        special list of all such objects in trigger. This allows easily check
        all references to fields in old/new version of row in trigger during
        execution of CREATE TRIGGER statement (this is more courtesy for users
        since we can't check everything anyway).
        We also report that such reference is bad by returning error from
        Item_trigger_field::fix_fields() method (instead of setup_field())
        This means that if trigger is broken we will bark during trigger
        execution instead of trigger definition parsing at table open.
        (i.e. now we allow to open tables with broken triggers).
        
        Table_triggers_list::prepare_old_row_accessors() method was added to be
        able to reuse code creating Field objects referencing TABLE::record[1]
        buffer instead of TABLE::record[0].
      sql/sql_trigger.h:
        Added Table_triggers_list::prepare_old_row_accessors() method to be
        able to reuse code creating Field objects referencing to TABLE::record[1]
        instead of record[0].
      sql/sql_yacc.yy:
        Now instead of performing binding of Item_trigger_field objects
        to TABLE object during trigger definition parsing at table open,
        we perform this binding by passing through specially constructed
        list of all such items in trigger.
        We also check value returned from memory allocation functions.
      c3da2d12
  23. 21 Nov, 2004 1 commit
  24. 18 Nov, 2004 2 commits
    • unknown's avatar
      WL 2059 Engine-specific status variables framework and WL 1922 · 4dac69eb
      unknown authored
      InnoDB status variables
      
      
      innobase/buf/buf0buf.c:
        Added function to get the number of latched pages
      innobase/buf/buf0flu.c:
        Added support for dblwr_pages_written, dblwr_writes and
        buffer_pool_pages_flushed status variables
      innobase/buf/buf0lru.c:
        Added support for _buffer_pool_wait_free status variable
      innobase/buf/buf0rea.c:
        Added support for buffer_pool_read_ahead_rnd, buffer_pool_read_ahead_seq
        and srv_buf_pool_reads status variables
      innobase/fil/fil0fil.c:
        Added support for os_log_fsyncs, data_read, and data_written
      innobase/include/buf0buf.h:
        Functions and variables needed for new status variables declared
      innobase/include/buf0flu.ic:
        Added support for buffer_pool_write_requests status variable
      innobase/include/fil0fil.h:
        Variable declared
      innobase/include/os0file.h:
        Declared several variabled
      innobase/include/srv0srv.h:
        Declared all new variables needed for InnoDB status variables
      innobase/log/log0log.c:
        Added support for various log-related status variables
      innobase/os/os0file.c:
        Added support for pending_writes, pending_reads status variables
      innobase/srv/srv0srv.c:
        Added internal counters and function to accumulate information for
        InnoDB status variables
      mysql-test/r/innodb.result:
        result fot the test
      mysql-test/t/innodb.test:
        We have tests only for few variables, as we cannot predict value for
        most of the added variables. It depends on the system load, OS, HDD
        e.t.c Thus, we cannot test them with mysql-test.
      sql/ha_innodb.cc:
        Added an array for InnoDB status variables. This is part of the
        WL2059 Engine-specific status variables framework
      sql/ha_innodb.h:
        Declared status variables array and the function to refresh statistics
      sql/handler.cc:
        Added function to get statistics
      sql/handler.h:
        Declared function to update handlers statistics
      sql/mysql_priv.h:
        declared opt_innodb to see it from handlers
      sql/mysqld.cc:
        Don't include Innodb_*  status variables into "show status" if we
        are compiling without InnoDB
      sql/sql_show.cc:
        mysqld_show modified and split into two parts to support enclosed
        arrays in the show_var_st structure. This is a part of
        WL2059 Engine-specific status variables framework.
      sql/structs.h:
        Added new value to mark enclosed array in the status variables array
      4dac69eb
    • unknown's avatar
      remove unused parts of code · cd2edd17
      unknown authored
      fix for 'show create schema_table'
      fix for usage schema tables in subselect
      'wrong schema table charset' fix
      
      
      mysql-test/r/information_schema.result:
        'wrong schema table charset' fix
      mysql-test/t/information_schema.test:
        'wrong schema table charset' fix
      sql/mysql_priv.h:
        fix for 'show create schema_table'
      sql/sql_class.cc:
        'wrong schema table charset' fix
      sql/sql_class.h:
        'wrong schema table charset' fix
      sql/sql_parse.cc:
        fix for 'show create schema_table'
      sql/sql_select.cc:
        'wrong schema table charset' fix
      sql/sql_show.cc:
        remove unused parts of code
        fix for 'show create schema_table'
        fix for usage schema tables in subselect
      sql/table.h:
        remove unused parts of coed
      tests/client_test.c:
        'wrong schema table charset' fix
      cd2edd17
  25. 17 Nov, 2004 1 commit
    • unknown's avatar
      WL#638 - Fix precedence for parsing NOT ... LIKE expression s · 191fa299
      unknown authored
        Rework parser expression rules
        Rework handling for "||" concat/or
        Eliminate some shift/reduce conflicts
        Add support for "xxx IS [ NOT ] truth_value"
      
      
      mysql-test/r/ansi.result:
        Fix test for new BROKEN_NOT mode bit
      mysql-test/r/bool.result:
        WL#638
          New test for BROKEN_NOT mode
          New test for "expr IS [NOT] truth_value" syntax
      mysql-test/r/sql_mode.result:
        Fix test for new BROKEN_NOT mode bit
      mysql-test/t/bool.test:
        WL#638
          New test for BROKEN_NOT mode
          New test for "expr IS [NOT] truth_value" syntax
      sql/lex.h:
        WL#638
          "&&" and "AND" return different tokens,
          NOT token changed to NOT_SYM
          OR_OR_CONCAT token changed to OR_OR_SYM
          New token "UNKNOWN"
      sql/mysql_priv.h:
        WL#638
          New mode: BROKEN_NOT
      sql/mysqld.cc:
        WL#638
          New mode: BROKEN_NOT
      sql/set_var.cc:
        WL#638
          New mode: BROKEN_NOT
          BROKEN_NOT is set in MYSQL323 and MYSQL40 modes
      sql/sql_lex.cc:
        Bug#638
          Alter tokens returned by lexer depending upon sql_mode:
          Return NOT2_SYM token instead of NOT_SYM when in BROKEN_NOT mode
          Return OR2_SYM token instead of OR_OR_SYM when not in PIPES_AS_CONCAT mode
      sql/sql_yacc.yy:
        WL#638
          Change grammar to respect proper SQL syntax for NOT
          Clean up grammar, eliminate >100 shift/reduce conflicts
          New support for "expr IS [NOT] truth_value" SQL syntax
          Remove or_or_concat() support func. New support func is_truth_value()
      191fa299
  26. 13 Nov, 2004 2 commits
    • unknown's avatar
      posmerge fixes · d18a91a9
      unknown authored
      mysql-test/r/view.result:
        erorr reported
      sql/item.cc:
        removed starnge code
      sql/mysql_priv.h:
        now error represented by Bool value
      sql/sql_parse.cc:
        removed old send_error calls
      sql/sql_select.cc:
        removed starnge code
      sql/sql_show.cc:
        show functions fixed
      sql/table.h:
        now error represented by Bool value
      d18a91a9
    • unknown's avatar
      WL#1629: SHOW with WHERE(partially) & · 7281d2e3
      unknown authored
      WL#173:  Create Data Dictionary Tables for SHOW Commands
      
      
      7281d2e3
  27. 12 Nov, 2004 3 commits
    • unknown's avatar
      Portability fix for gcc 2.95.3 · 7c6738fb
      unknown authored
      After merge fixes
      
      
      mysql-test/r/mix_innodb_myisam_binlog.result:
        After merge fixes
      mysys/default.c:
        After merge fixes
      sql/mysql_priv.h:
        Portability fix for gcc 2.95.3
      sql/sql_base.cc:
        Portability fix for gcc 2.95.3
      7c6738fb
    • unknown's avatar
      post-review fixes · 9e921615
      unknown authored
      mysql-test/r/rpl_rotate_logs.result:
        removed host dependence in error messages
      mysql-test/t/rpl_rotate_logs.test:
        removed host dependence in error messages
      mysys/my_error.c:
        comment about using my_error family functions
      sql/filesort.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/ha_innodb.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/handler.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_cmpfunc.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_func.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_strfunc.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_subselect.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/item_sum.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/lock.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/log.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/mysql_priv.h:
        error check moved to fill_record
      sql/mysqld.cc:
        fixed error messages
      sql/parse_file.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/protocol.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/protocol_cursor.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/repl_failsafe.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/set_var.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/slave.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp_head.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sp_rcontext.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_acl.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_analyse.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_base.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_class.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_class.h:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_db.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_delete.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_handler.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_help.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_insert.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
        error check moved to fill_record
      sql/sql_lex.cc:
        layout fixed
      sql/sql_load.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_map.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_parse.cc:
        error check moved to fill_record
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_prepare.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_rename.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_repl.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_select.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_show.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_table.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_trigger.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_udf.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_union.cc:
        error check moved to fill_record
      sql/sql_update.cc:
        error check moved to fill_record
      sql/sql_view.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/sql_yacc.yy:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/table.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      sql/unireg.cc:
        changing my_error on my_message and my_printf_error where if they are prefered
      9e921615
    • unknown's avatar
      Various build fixes. · eed282d6
      unknown authored
      sql/mysql_priv.h:
        Fix build problems (causing link errors with the Sun compiler).
      sql/net_serv.cc:
        Corrected macro definition.
      sql/sql_base.cc:
        Fixed build problems (for broken HP compiler).
      sql/sql_show.cc:
        64-bit build fix.
      eed282d6
  28. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · 435b20aa
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      435b20aa
  29. 05 Nov, 2004 1 commit
    • unknown's avatar
      new lock for multiupdate: · 8b0ece5e
      unknown authored
      - open and create derived tables
      - detect which tables should be locked for write
      - lock and fill derived tables
      some unitialized variables fixed
      
      
      mysql-test/r/lock_multi.result:
        correct results returned
      mysql-test/r/multi_update.result:
        correct results returned
      mysql-test/r/view.result:
        correct results returned
      mysql-test/t/multi_update.test:
        correct results returned
      mysql-test/t/view.test:
        correct results returned
      sql/mysql_priv.h:
        derived tables processing splited on table creation and table filling
      sql/sql_base.cc:
        derived tables processing splited on table creation and table filling
      sql/sql_class.h:
        function to detect when we need fill derived tables
      sql/sql_derived.cc:
        derived tables processing splited on table creation and table filling
      sql/sql_lex.cc:
        fixed uninitialized value
      sql/sql_load.cc:
        fixed uninitialized value
      sql/sql_parse.cc:
        initialization muved (will be done for all queries)
      sql/sql_prepare.cc:
        preparation of multiupdate changed a bit because new locking procedure
      sql/sql_update.cc:
        new lock for multiupdate:
        - open and create derived tables
        - detect which tables should be locked for write
        - lock and fill derived tables
      sql/table.h:
        place to store select_result between creation and filling tables
      8b0ece5e