An error occurred fetching the project authors.
  1. 29 Dec, 2004 1 commit
    • unknown's avatar
      WL#1339 "Add per account max_user_connections limit (maximum number · db11338e
      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.
      db11338e
  2. 27 Dec, 2004 1 commit
  3. 23 Dec, 2004 1 commit
    • unknown's avatar
      WL#925 - Privileges for stored routines · 9c9573a4
      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
      9c9573a4
  4. 16 Dec, 2004 1 commit
    • unknown's avatar
      Data truncation reporting implementation (libmysql) + post review · d2d33183
      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).
      d2d33183
  5. 14 Dec, 2004 1 commit
  6. 11 Dec, 2004 1 commit
    • unknown's avatar
      First commit to mysql-5.0 tree to include MySQL Federated Storage Handler.... · dceb7d01
      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
      dceb7d01
  7. 09 Dec, 2004 1 commit
    • unknown's avatar
      Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets · b892e1f6
      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;
      b892e1f6
  8. 02 Dec, 2004 4 commits
    • unknown's avatar
      Making FLUSH TABLES WITH READ LOCK killable while it's waiting for running... · f3308504
      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)
      f3308504
    • unknown's avatar
      merge (new code fixed the ALTER TABLE problem) · fb995cb8
      unknown authored
      fb995cb8
    • unknown's avatar
      Cleanups during review stage · 9589175a
      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
      9589175a
    • unknown's avatar
      Bug #6379: ENUM values are incorrectly converted · 842f56bf
      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.
      
      842f56bf
  9. 27 Nov, 2004 2 commits
  10. 25 Nov, 2004 1 commit
    • unknown's avatar
      post-merge fix · 04b6bf2c
      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
      04b6bf2c
  11. 24 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug #5888 "Triggers with nonexistent columns cause packets · 245fa6cb
      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.
      245fa6cb
  12. 21 Nov, 2004 1 commit
  13. 18 Nov, 2004 2 commits
    • unknown's avatar
      WL 2059 Engine-specific status variables framework and WL 1922 · 87432c7c
      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
      87432c7c
    • unknown's avatar
      remove unused parts of code · 5110b048
      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
      5110b048
  14. 17 Nov, 2004 1 commit
    • unknown's avatar
      WL#638 - Fix precedence for parsing NOT ... LIKE expression s · e1bb2916
      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()
      e1bb2916
  15. 13 Nov, 2004 2 commits
    • unknown's avatar
      posmerge fixes · 9a837b13
      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
      9a837b13
    • unknown's avatar
      WL#1629: SHOW with WHERE(partially) & · 4e06d372
      unknown authored
      WL#173:  Create Data Dictionary Tables for SHOW Commands
      
      4e06d372
  16. 12 Nov, 2004 3 commits
    • unknown's avatar
      Portability fix for gcc 2.95.3 · 83015bb6
      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
      83015bb6
    • unknown's avatar
      post-review fixes · a31c2d3d
      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
      a31c2d3d
    • unknown's avatar
      Various build fixes. · 433bebfb
      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.
      433bebfb
  17. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · dda7a6a9
      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'
      dda7a6a9
  18. 05 Nov, 2004 1 commit
    • unknown's avatar
      new lock for multiupdate: · ccad3ab0
      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
      ccad3ab0
  19. 03 Nov, 2004 1 commit
    • unknown's avatar
      Fixes after merge with 4.1 · 786d7938
      unknown authored
      FOUND is not a reserved keyword anymore
      Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
      Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
      
      
      BUILD/SETUP.sh:
        Portability fix
      client/mysqltest.c:
        Portability fix
      mysql-test/r/drop.result:
        updated results
      mysql-test/r/func_str.result:
        New warnings (after merge)
      mysql-test/r/insert.result:
        Updated tests
      mysql-test/r/join_nested.result:
        Updated results (because of new column types in 5.0)
      mysql-test/r/lock_multi.result:
        Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
      mysql-test/r/multi_update.result:
        Temporary fix until Sanja fixes multi-update locking
      mysql-test/r/ps_1general.result:
        Update of results after merge
      mysql-test/r/ps_2myisam.result:
        Update of results after merge
      mysql-test/r/ps_3innodb.result:
        Update of results after merge
      mysql-test/r/ps_4heap.result:
        Update of results after merge
      mysql-test/r/ps_5merge.result:
        Update of results after merge
      mysql-test/r/ps_6bdb.result:
        Update of results after merge
      mysql-test/r/query_cache.result:
        Update of results after merge
      mysql-test/r/range.result:
        New results for new tests
      mysql-test/r/rpl_auto_increment.result:
        Update with new 4.0 information
      mysql-test/r/rpl_charset.result:
        After merge fixes
      mysql-test/r/subselect.result:
        After merge fixes
      mysql-test/r/view.result:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/drop.test:
        Safety fix
      mysql-test/t/multi_update.test:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/rpl_charset.test:
        More comments
      mysql-test/t/sp-error.test:
        Updated comments
      mysql-test/t/view.test:
        Temporary fix until multi-update-locking is fixed
      scripts/mysql_fix_privilege_tables.sh:
        Better error message
      sql-common/client.c:
        More debugging
      sql/ha_ndbcluster.cc:
        After merge fixes
      sql/handler.cc:
        After merge fixes
      sql/item.cc:
        Simple optimization of creating item
        After merge fixed
        Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
        The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
      sql/item.h:
        Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
      sql/item_cmpfunc.cc:
        Mark fields compared as binary to not be substituted.
      sql/item_func.cc:
        After merge fix
      sql/log_event.cc:
        After merge fix
      sql/mysql_priv.h:
        After merge fix
      sql/opt_range.cc:
        After merge fix
      sql/protocol.cc:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol.h:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol_cursor.cc:
        Made flags uint instead of int (as it's used as a bit mask)
        Indentation cleanups
      sql/sp.cc:
        After merge fixes
        Removed compiler warnings
      sql/sp_head.cc:
        After merge fixes
      sql/sql_base.cc:
        After merge fixes
        Removed 'send_error' from 'insert_fields()' as the error is sent higher up
      sql/sql_class.cc:
        Give assert if set_n_backup_item_arena is used twice
      sql/sql_class.h:
        Give assert if set_n_backup_item_arena is used twice
        After merge fixes
        Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_parse.cc:
        After merge fixes
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
        Moved 'build_equal_items' to optimize_cond() (logical place)
      sql/sql_table.cc:
        After merge fixes
      sql/sql_trigger.cc:
        After merge fixes
      sql/sql_update.cc:
        After merge fixes
        (This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
      sql/sql_view.cc:
        After merge fixes
      sql/sql_yacc.yy:
        After merge fixes
        Don't have FOUND as a reserved keyword
      786d7938
  20. 02 Nov, 2004 2 commits
    • unknown's avatar
      WL#1972 "Evaluate HAVING before SELECT select-list" · c3877cc5
      unknown authored
      - Changed name resolution for GROUP BY so that derived columns do not shadow table columns
        from the FROM clause. As a result GROUP BY now is handled as a true ANSI extentsion.
      - Issue a warning when HAVING is resolved into ambiguous columns, and prefer the columns from
        the GROUP BY clause over SELECT columns.
      
      
      mysql-test/r/having.result:
        Correct result for updated GROUP BY name resolution.
      sql/item.cc:
        - prefer GROUP columns, but if none is found use SELECT list
        - issue a waring when a field may be resolved ambiguously
        - more/fixed comments
      sql/mysql_priv.h:
        More flexible find_field_in_tables().
      sql/sp.cc:
        More flexible find_field_in_tables().
      sql/sql_base.cc:
        More flexible find_field_in_tables().
      sql/sql_help.cc:
        More flexible find_field_in_tables().
      sql/sql_select.cc:
        - name resolution of GROUP/ORDER BY column references is differentiated:
          - GROUP BY is resolved in SELECT and FROM clauses
          - ORDER BY is resolved only in SELECT (as before)
        - more informative variable names
        - more comments
      c3877cc5
    • unknown's avatar
      WL#1437 :don't create new users with GRANT · 70865abd
      unknown authored
      70865abd
  21. 26 Oct, 2004 1 commit
  22. 25 Oct, 2004 1 commit
  23. 22 Oct, 2004 1 commit
    • unknown's avatar
      postreview fixes · 84f921b7
      unknown authored
      sql/mysql_priv.h:
        constant definition
      sql/sql_base.cc:
        difine used instead of constant
      sql/sql_cache.cc:
        difine used instead of constant
        typo fixed
      84f921b7
  24. 21 Oct, 2004 1 commit
    • unknown's avatar
      added support of view and CHECK OPTION of view to LOAD DATA (BUG#5996) · d83b8d32
      unknown authored
      mysql-test/r/view.result:
        LOAD DATA with view and CHECK OPTION
      mysql-test/t/view.test:
        LOAD DATA with view and CHECK OPTION
      sql/log_event.cc:
        new parameter for load data
      sql/mysql_priv.h:
        new parameter for load data
      sql/sql_lex.cc:
        LOAD DATA supported by view
      sql/sql_load.cc:
        added support of view and CHECK OPTION of view to LOAD DATA
      sql/sql_parse.cc:
        new parameter for CHECK OPTION
      d83b8d32
  25. 20 Oct, 2004 2 commits
    • unknown's avatar
      Fix for bug #6173 "One can circumvent missing UPDATE privilege if · 4dbb8830
      unknown authored
      he has SELECT and INSERT privileges for table with primary key"
      
      Now we set lex->duplicates= DUP_UPDATE right in parser if INSERT has
      ON DUPLICATE KEY UPDATE clause, this simplifies insert_precheck()
      function (this also fixes a bug) and some other code.
      
      
      mysql-test/r/grant2.result:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      mysql-test/t/grant2.test:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      sql/mysql_priv.h:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause.
      sql/sql_parse.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_prepare.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_yacc.yy:
        It is better to set Lex->duplicates= DUP_UPDATE right in parser if we
        have INSERT with ON DUPLICATE KEY UPDATE clause, rather doing this later.
      4dbb8830
    • unknown's avatar
      errors without code removed · 9d3fe09b
      unknown authored
      net_printf/send_error calls replaced by my_error family functions
      -1/1 (sent/unsent) error reporting removed
      (WL#2133)
      
      
      include/mysqld_error.h:
        new errors added.
      mysql-test/r/rpl_charset.result:
        new error
      mysql-test/r/rpl_timezone.result:
        new error
      mysql-test/r/sp-security.result:
        more clean error message
      mysql-test/r/sp.result:
        now error state intercepted correctly
      mysql-test/t/connect.test:
        new error message
      mysql-test/t/rpl_charset.test:
        new error message
      mysql-test/t/rpl_timezone.test:
        new error
      mysql-test/t/sp-security.test:
        more correct error handling
      mysql-test/t/sp.test:
        now error state intercepted correctly
      sql/ha_innodb.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/ha_innodb.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item.cc:
        only boolean values should be returned by fix_fields()
      sql/item_cmpfunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_func.cc:
        only boolean values should be returned by fix_fields()
        net_printf/send_error calls replaced by my_error family functions
      sql/item_row.cc:
        only boolean values should be returned by fix_fields()
      sql/item_subselect.cc:
        only boolean values should be returned by fix_fields()
        -1/1 (sent/unsent) error reporting removed
      sql/item_subselect.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item_sum.cc:
        only boolean values should be returned by fix_fields()
      sql/item_timefunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_uniq.h:
        only boolean values should be returned by fix_fields()
      sql/mysql_priv.h:
        -1/1 (sent/unsent) error reporting removed
      sql/mysqld.cc:
        net_printf/send_error calls replaced by my_error family functions
        changes in my_message_sql to support error handling correctly
      sql/protocol.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/protocol_cursor.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/repl_failsafe.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/repl_failsafe.h:
        -1/1 (sent/unsent) error reporting removed
      sql/set_var.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/share/czech/errmsg.txt:
        new error messages
      sql/share/danish/errmsg.txt:
        new error messages
      sql/share/dutch/errmsg.txt:
        new error messages
      sql/share/english/errmsg.txt:
        new error messages
      sql/share/estonian/errmsg.txt:
        new error messages
      sql/share/french/errmsg.txt:
        new error messages
      sql/share/german/errmsg.txt:
        new error messages
      sql/share/greek/errmsg.txt:
        new error messages
      sql/share/hungarian/errmsg.txt:
        new error messages
      sql/share/italian/errmsg.txt:
        new error messages
      sql/share/japanese/errmsg.txt:
        new error messages
      sql/share/korean/errmsg.txt:
        new error messages
      sql/share/norwegian-ny/errmsg.txt:
        new error messages
      sql/share/norwegian/errmsg.txt:
        new error messages
      sql/share/polish/errmsg.txt:
        new error messages
      sql/share/portuguese/errmsg.txt:
        new error messages
      sql/share/romanian/errmsg.txt:
        new error messages
      sql/share/russian/errmsg.txt:
        new error messages
      sql/share/serbian/errmsg.txt:
        new error messages
      sql/share/slovak/errmsg.txt:
        new error messages
      sql/share/spanish/errmsg.txt:
        new error messages
      sql/share/swedish/errmsg.txt:
        new error messages
      sql/share/ukrainian/errmsg.txt:
        new error messages
      sql/slave.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/slave.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sp.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_head.cc:
        new eror handling support
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_rcontext.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_acl.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_acl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_base.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.h:
        my_messhage_sql now set/reset query_error flag
      sql/sql_db.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_delete.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_do.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_error.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_handler.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_help.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_insert.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_lex.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_load.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_map.cc:
        errors without code removed
      sql/sql_parse.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed from mysql_execute_command
      sql/sql_prepare.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.cc:
        error messages fixed
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_show.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_table.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_trigger.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_udf.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_union.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_update.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_view.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_view.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_yacc.yy:
        net_printf/send_error calls replaced by my_error family functions
      9d3fe09b
  26. 19 Oct, 2004 1 commit
    • unknown's avatar
      Review of all code pushed since last review · da02110d
      unknown authored
      Simple optimzations and cleanups
      Removed compiler warnings and fixed portability issues
      Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
      Fixes for purify
      
      
      client/mysqlimport.c:
        Remove not used variable
      client/mysqltest.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
        Simplified code
        Remove usage of sprintf("%llu") as this is not portable
      include/mysql.h:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      innobase/srv/srv0start.c:
        Don't use memcmp() when using purify (to avoid false warnings)
      libmysql/libmysql.c:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      libmysql/libmysql.def:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      myisam/myisam_ftdump.c:
        Remove compiler warning
      myisam/myisamchk.c:
        Remove compiler warning
      myisam/rt_test.c:
        #ifdef not used code
      mysys/hash.c:
        Remove compiler warning (from last push)
      mysys/my_gethwaddr.c:
        Remove compiler warning
      ndb/src/ndbapi/ndberror.c:
        #ifdef not used code
      regex/regcomp.c:
        Remove not used code
      regex/regcomp.ih:
        Remove not used code (to remove compiler warnings)
      sql-common/client.c:
        Remove compiler warnings
      sql/field.cc:
        Simple optimization
      sql/ha_innodb.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/item.cc:
        Fix comments
        Move variables first on block
        Remove else after return
        Simple optimizations
        (no logic changes)
      sql/item_cmpfunc.cc:
        Added comment
      sql/mysql_priv.h:
        Rename mysql_embedded -> mysqld_embedded
      sql/mysqld.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/sql_acl.cc:
        Added comments
        simple optimization
        Fixed 'very unlikely' bug when doing REVOKE ALL PRIVILEGES
      sql/sql_select.cc:
        More comments
        Simple optimization
      sql/sql_show.cc:
        Simple changes to make similar code similar
        More comments
      sql/sql_string.cc:
        Trivial optimization and better code layout
      strings/Makefile.am:
        Change xml.c to use bcmp to avoid warnings from purify
      strings/xml.c:
        Change xml.c to use bcmp to avoid warnings from purify
      tests/client_test.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
      da02110d
  27. 15 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6049 "Loss of sign when using prepared · 50129a20
      unknown authored
      statements and negative time/date values". 
      The bug was in wrong sprintf format used in the client library.
      The fix moves TIME -> string conversion functions to sql-common and
      utilized them in the client library.
      
      
      include/my_time.h:
        Declarations for new functions shared between the client and server.
      libmysql/libmysql.c:
        Fix for Bug#6049 "Loss of sign when using prepared statements and negative
        time/date values": use the same function as the server to convert
        date/time/datetime values to strings.
      sql-common/my_time.c:
        Implementation of my_{time,datetime,date,TIME}_to_str: it's
        needed by the client library, so it should be shared.
      sql/field.cc:
        Don't create String object if it's not needed.
      sql/item.cc:
        Don't create String object if it's not needed: TIME_to_string was
        moved to my_TIME_to_str, with different arguments.
      sql/item_timefunc.cc:
        Don't create String object if it's not needed.
      sql/mysql_priv.h:
        TIME_to_string and MAX_DATE_REP_LENGTH moved to the client library.
        MAX_DATE_REP_LENGTH was renamed to MAX_DATE_STRING_REP_LENGTH to not 
        conflict with the same name in libmysql.c
      sql/protocol.cc:
        Don't create String object if it's not needed.
      sql/time.cc:
        Implementation of my_{time,date,datetime,TIME}_to_str moved to my_time.c
        shared between the client and the server.
      tests/client_test.c:
        A test case for Bug#6049.
      50129a20
  28. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · e7a0d543
      unknown authored
      crashes server." The fix makes Item_func_rand prepared-statements
      aware plus it fixes the case when RAND is used in prepared
      statements and replication is on (as well as several similar issues).
      Until now we did not reset THD before every execution of a prepared
      statement, so if some execution had set thd->time_zone_used
      or thd->rand_used they would not be reset until next mysql_parse.
      Some of post-review fixes done.
      
      
      mysql-test/r/ps.result:
        A test case for Bug#5985: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
        server."
      sql/item_func.cc:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/item_func.h:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/mysql_priv.h:
        We need a separate call to reset THD state before every execute of
        a prepared statement. Otherwise things like THD->user_var_events
        are never cleaned up and bloat binary log (as the list of events
        grows from execution to execution).
      sql/sql_class.cc:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_class.h:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_lex.cc:
        Move the part responsible for initializing LEX from mysql_init_query
        to lex_start.
      sql/sql_lex.h:
        All lex-related initialization is now in lex_start.
        Move thd->select_number to lex->select_number to be able to use it
        easily in lex_start.
      sql/sql_parse.cc:
        Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
        which is used in PS and conventional execution, and lex_start, used only
        when we want to parse something.
        Fix init_connect to use initialized THD.
      sql/sql_prepare.cc:
        Deploy mysql_reset_thd_for_next_query to reset THD state before
        execution of a prepared statement.
        Normally this should have been added to just one place, but
        we have to reset thd before assigning placeholders from variables,
        thus we can't do that in execute_stmt (yuck).
      e7a0d543
  29. 10 Oct, 2004 2 commits
    • unknown's avatar
      showing table type now is controled by new parameter 'FULL' of SHOW TABLES... · 819a23d4
      unknown authored
      showing table type now is controled by new parameter 'FULL' of SHOW TABLES command (SHOW FULL TABLES) (as it was decided on last dev conf)
      
      
      mysql-test/r/connect.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/ctype_recoding.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/drop.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/lowercase_table.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/rename.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/rpl000009.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/rpl_error_ignored_table.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/select.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/sp.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/system_mysql_db.result:
        returned SHOW TABLES default behaviour
      mysql-test/r/view.result:
        test of new parameter od SHOW TABLES and default behaviour without parameter
      mysql-test/t/view.test:
        test of new parameter od SHOW TABLES and default behaviour without parameter
      sql/mysql_priv.h:
        parameter added to mysqld_show_tables
      sql/sql_parse.cc:
        parameter added to mysqld_show_tables
      sql/sql_show.cc:
        showing table type now is controled by new parameter 'FULL' of SHOW TABLES command (SHOW FULL TABLES)
      sql/sql_yacc.yy:
        showing table type now is controled by new parameter 'FULL' of SHOW TABLES command (SHOW FULL TABLES)
      819a23d4
    • unknown's avatar
      Blob support for the group_concat() function. · 5acf251b
      unknown authored
      (Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
       Bug #5564: Strange behaviour with group_concat and distinct
       Bug #5970: group_concat doesn't print warnings)
      
      5acf251b