1. 26 Oct, 2006 1 commit
    • unknown's avatar
      Bug#18888 Trying to overwrite sql/lex_hash.h during build · fe28a74b
      unknown authored
       - As a sideeffect of the patch to generate lex_hash.h only once
      on the machine where the source dist was produced, a problem
      was found when compiling a mysqld without partition support - it 
      would crash when looking up the lex symbols due to mismatch between
      lex.h and the generated lex_hash.h
      
       - Remove the ifdef for partition in lex.h 
       - Fix minor problem with"EXPLAIN PARTITION" when not compiled with
         partition(existed also without the above patch)
       - Add test case that will be run when we don't have partition
         support compiled into mysqld
       - Return error ER_FEATURE_DISABLED if user tries to use PARTITION
         when there is no support for it.
      
      
      sql/lex.h:
        There should be no ifdefs of features in lex.h
      sql/sql_class.cc:
        In line with the comment in sql_yacc.yy that we want the same output
        from "EXPLAIN PARTITIONS.." regardless of wheter we have compiled in
        support for partition  or not, remove the ifdef so the extra field
        is added to output if the DESCRIBE_PARTITIONS bit it set. Without
        this patch we get a crash as the code in select_describe believes the
        field is there.
      sql/sql_select.cc:
        Use "const" for the variable as it's a ssigned once and never changes
      sql/sql_yacc.yy:
        Don't allow PARTITION syntax oif there is no suport for partitioning
      mysql-test/r/not_partition.require:
        New BitKeeper file ``mysql-test/r/not_partition.require''
      mysql-test/r/not_partition.result:
        New BitKeeper file ``mysql-test/r/not_partition.result''
      mysql-test/t/not_partition.test:
        New BitKeeper file ``mysql-test/t/not_partition.test''
      fe28a74b
  2. 12 Sep, 2006 1 commit
    • unknown's avatar
      WL#3337 (Event scheduler new architecture) · 22979ff7
      unknown authored
      Remove SHOW SCHEDULER STATUS command and migrate the
      information output to `mysqladmin debug` (COM_DEBUG)
      
      SHOW SCHEDULER STATUS was introduced in 5.1.11, provided
      some debug information about event scheduler internals and
      was enabled only in debug builds.
      
      
      sql/event_queue.cc:
        Remove SHOW SCHEDULER STATUS. Reporting still will be
        there but through COM_DEBUG (mysqladmin debug)
      sql/event_queue.h:
        dump_internal_status cannot return an error, therefore it
        should be void.
      sql/event_scheduler.cc:
        Remove SHOW SCHEDULER STATUS. Reporting still will be
        there but through COM_DEBUG (mysqladmin debug)
      sql/event_scheduler.h:
        dump_internal_status cannot return an error, therefore it
        should be void.
      sql/events.cc:
        Change from outputting the internal data from
        the wire to the standard output. SHOW SCHEDULER STATUS was
        removed.
      sql/events.h:
        dump_internal_status() cannot return an error, therefore
        it should be void
      sql/lex.h:
        remove SCHEDULER as recognized word. This is part
        of removing SHOW SCHEDULER STATUS
      sql/sp_head.cc:
        SQLCOM_SHOW_SCHEDULER_STATUS has been removed
      sql/sql_lex.h:
        SQLCOM_SHOW_SCHEDULER_STATUS has been removed
      sql/sql_parse.cc:
        SQLCOM_SHOW_SCHEDULER_STATUS has been removed
      sql/sql_test.cc:
        Dump Events' internal information on COM_DEBUG
      sql/sql_yacc.yy:
        SQLCOM_SHOW_SCHEDULER_STATUS has been removed
      22979ff7
  3. 10 Aug, 2006 1 commit
    • unknown's avatar
      This is the second patch for bdb removeal. This takes care of all options and... · af257b09
      unknown authored
      This is the second patch for bdb removeal. This takes care of all options and variables that rely on bdb. 
      
      
      BitKeeper/deleted/.del-ha_berkeley.cc:
        Delete: sql/ha_berkeley.cc
      BitKeeper/deleted/.del-ha_berkeley.h:
        Delete: sql/ha_berkeley.h
      mysql-test/install_test_db.sh:
        Removed skip option
      mysql-test/mysql-test-run.pl:
        Remove bdb option
      mysql-test/mysql-test-run.sh:
        Remove bdb option
      sql/Makefile.am:
        Remove bdb option
      sql/handler.cc:
        Remove references to bdb
      sql/lex.h:
        Removed lex for bdb
      sql/mysql_priv.h:
        Removed bdb privs
      sql/mysqld.cc:
        Removed all options for bdb
      sql/set_var.cc:
        Removed variables for bdb
      sql/sql_yacc.yy:
        Removed yacc for bdb
      af257b09
  4. 22 May, 2006 1 commit
    • unknown's avatar
      fix for bug #17619 Scheduler race conditions · 6b6a9b76
      unknown authored
      - Scheduler is either initialized at server start or never.
        Starting & stopping is now suspending & resuming.
      - The scheduler has clear OO interface
      - Now all calls to the scheduler are synchronous
      - GLOBAL event_scheduler uses thd::sys_var_tmp (see set_var.cc)
      - External API is encapsulated into class Events
      - Includes fixes for all comments of Kostja's review of 19.05.2005
      
      Starting to merge into 5.1-release (5.1.10) and push
      
      
      BitKeeper/etc/ignore:
        Added libmysqld/event_scheduler.cc to the ignore list
      libmysqld/Makefile.am:
        executor -> scheduler
      mysql-test/r/events.result:
        update result
      mysql-test/r/events_bugs.result:
        update result
      mysql-test/r/events_logs_tests.result:
        update result
      mysql-test/r/events_microsec.result:
        update result
      mysql-test/r/events_scheduling.result:
        update result
      mysql-test/r/events_stress.result:
        update result
      mysql-test/t/disabled.def:
        enable these tests
      mysql-test/t/events.test:
        optimize the test a bit for speed, save some seconds runtime
        remove FULL from SHOW EVENTS
        mostly use I_S.EVENTS
      mysql-test/t/events_bugs.test:
        Skip irrelevant for the current design tests - all events are loaded
        on server startup. Change in mysql.event will be visible on next server start.
        Don't use numeric error codes.
      mysql-test/t/events_logs_tests.test:
        optimize the test a bit for speed
      mysql-test/t/events_microsec.test:
         Skip irrelevant for the current design tests - all events are loaded
            on server startup. Change in mysql.event will be visible on next server start.
            Don't use numeric error codes.
      mysql-test/t/events_scheduling.test:
        broader test
      mysql-test/t/events_stress.test:
        Rework the test to the new architecture of suspending/resuming.
        Use less events, no need for thousands, hundreds is still ok.
      sql/Makefile.am:
        executor -> scheduler
      sql/cmakelists.txt:
        executor -> scheduler
      sql/event.cc:
        - remove todo comments
        - remove unneded evex_queue abstraction functions
        - move events_init() and events_shutdown() from event_executor.cc to here
        - export db_create_event
        - remove evex_load_and_compile_event, part of class Event_scheduler
        - integrate the public interface found in event.h and used by sql_parse.cc
          to use the new class Event_scheduler.
      sql/event.h:
        - add COND_finished so if one thread kills a running event it waits on this
        - export callback event_timed_definer_equal, event_timed_identifier_equal(),
          event_timed_name_equal and event_timed_db_equal()
          to be used by Event_scheduler::drop_matching_events()
        - cleanup event.h
        - encapsulated all external interface into class Events
      sql/event_executor.cc:
        make it empty, will delete after that
      sql/event_priv.h:
        - more things in the private header
        - remove event queue abstraction functions. tightly bind to QUEUE
        - export privately db_drop_event, db_find_event, db_create_event()
        - made change_security_context() and restore_security_context() free functions
      sql/event_timed.cc:
        - fix calculation of time when ENDS is set (STARTS is always set)
        - during Event_timed::compile() set the right Security_ctx. Prevents a crash
              during Event_scheduler::load_events_from_db()
        - add Event_timed::kill_thread()
        - implement event_timed_*_equal()
        - made change_security_context() and restore_security_context() free functions.
        - Comments cleanups
      sql/lex.h:
        new word scheduler for SHOW SCHEDULER STATUS (available only debug builds)
      sql/log.cc:
        move these from event_scheduler.cc
      sql/mysql_priv.h:
        refactor kill_one_thread
        export sql_print_message_func and sql_print_message_handlers
      sql/mysqld.cc:
        In close_connections, called by kill_server() skip the main scheduler
        thread and use events_shutdown() for shutting down the scheduler, in the same
        manner it's done for RPL.
        Add a new value to --event-scheduler :
        0 <- No scheduler available
        1 <- Start with scheduler enabled
        2 <- Start with scheduler suspended
      sql/repl_failsafe.cc:
        refactor thd::system_thread to be an enum
      sql/set_var.cc:
        move sys_var_event_executor::update() to set_var.cc
        executor -> scheduler
        use thd::sys_var_tmp
      sql/set_var.h:
        executor -> scheduler
      sql/share/errmsg.txt:
        3 new error messages
      sql/sql_class.cc:
        refactor thd::system_thread to be an enum . more type-safety
      sql/sql_class.h:
        refactor thd::system_thread to be an enum . more type-safety
      sql/sql_db.cc:
        get the error from evex_drop_schema_events
      sql/sql_error.h:
        export warning_level_names
      sql/sql_lex.h:
        new command SHOW SCHEDULER STATUS, available only in debug build and
        for debug purposes.
      sql/sql_parse.cc:
        refactor kill_one_thread() -> does the *dirty* work, and sql_kill
        just the reporting.
        add handler for SQLCOM_SHOW_SCHEDULER_STATUS
      sql/sql_show.cc:
        fix verbosity handling (this will be obsoleted anyway by the fix for 17394).
      sql/sql_yacc.yy:
        remove FULL from SHOW EVENTS
        add SHOW SCHEDULER STATUS in debug builds
      sql/table.cc:
        Fix valgrind warning.
      6b6a9b76
  5. 03 May, 2006 2 commits
    • unknown's avatar
      Added support for key_block_size for key and table level (WL#602) · 0ab1abad
      unknown authored
      Added support for key_block_size to MyISAM.
      Simplify interface to 'new Key' to make it easier to add new key options.
      mysqld option --new is used to define where key options are printed.
      (In 5.3 we should move all key options to after key part definition to avoid problem with reserved names)
      Fixed some compiler warnings and a memory leak in ssl
      
      
      include/my_base.h:
        Added flag to check if block size for key was secified
      include/my_sys.h:
        Added new support function to round up to a power of two
      include/myisam.h:
        Rename block_size -> block_size_index to avoid confusion with 'block_size'
      include/violite.h:
        Added function to free memory after new_VioSSLAcceptorFd
        (Will rename all vio_ssl functions in a future changeset)
      mysql-test/mysql-test-run.pl:
        Don't print port number info when we use --extern
      mysql-test/r/myisam.result:
        Added test for key_block_size
      mysql-test/t/myisam.test:
        Added test for key_block_size
      mysys/mf_keycache.c:
        Simplify code
      mysys/my_bit.c:
        Added new support function to round up to a power of two
      sql/ha_myisam.cc:
        Tell MyISAM to use the specified key_block_size
        MyISAM also updates the global key_block_size from the used values.
      sql/handler.cc:
        Added 'default_key_create_info' to be used as 'dummy' argument to 'new Key'
      sql/handler.h:
        Added KEY_CREATE_INFO, to be used as for general options for KEY's
      sql/item_func.h:
        Removed compiler warning
      sql/lex.h:
        Added new symbol
      sql/mysqld.cc:
        Fixed memory leak in ssl (new_VioSSLAcceptorFd)
      sql/sql_class.h:
        Change 'new Key' to use KEY_CREATE_INFO instead of 'algoritm', parser, key_page_size.
        This makes it easier to add new key options in the future.
      sql/sql_lex.h:
        Added key create options
      sql/sql_parse.cc:
        Use new interface to 'new Key'
      sql/sql_show.cc:
        Added support for key_block_size
        If --new is used, key options are printed after the key part definition.
      sql/sql_table.cc:
        Use new interface to 'new Key'
        Add support for key_block_size
      sql/sql_yacc.yy:
        Add support for key_block_size
        Allow key options before and after key_parts (In future they should be always after the key_part defintion)
        Use new interface to 'new Key'
      sql/structs.h:
        Added block_size to keys
      sql/table.cc:
        Remmeber and read key_block_size for table and key level
      sql/table.h:
        Added default key_block_size for table
      sql/unireg.cc:
        Remember key_block_size for key
      storage/myisam/ft_eval.c:
        Set block_length to 0 to get default key page size
      storage/myisam/ft_test1.c:
        Set block_length to 0 to get default key page size
      storage/myisam/mi_check.c:
        block_size -> block_size_index
      storage/myisam/mi_create.c:
        Added support for block size per key.
        Block size is rounded up to next power of two and enforced between MIN and MAX KEY_BLOCK_LENGTH.
        Align start of key block to start at an even offset of max_key_block_length to ensure key cache works good if all key pages are of same size.
      storage/myisam/mi_open.c:
        block_size -> block_size_index
      storage/myisam/mi_page.c:
        block_size -> block_size_index
      storage/myisam/mi_test1.c:
        Set block_length to 0 to get default key page size
      storage/myisam/mi_test2.c:
        Set block_length to 0 to get default key page size
      storage/myisam/mi_test3.c:
        Set block_length to 0 to get default key page size
      storage/myisam/myisamdef.h:
        block_size -> block_size_index to avoid confusion with 'block_size' in MySQL
        Added block_size as argument to MI_BLOCK_SIZE
        Added missing prototypes to get rid of compiler warnings
      storage/myisam/myisampack.c:
        Removed compiler warning
        block_size -> block_size_index
      vio/viosslfactories.c:
        Fixed memory leak in ssl (new_VioSSLAcceptorFd)
      mysql-test/r/myisam-system.result:
        New BitKeeper file ``mysql-test/r/myisam-system.result''
      mysql-test/t/myisam-system.test:
        New BitKeeper file ``mysql-test/t/myisam-system.test''
      0ab1abad
    • unknown's avatar
      Added new show contributors command. · aeb39dd3
      unknown authored
      sql/lex.h:
        Additions for show contributors
      sql/mysql_priv.h:
        Show contributors addition
      sql/sp_head.cc:
        Added for show contributors
      sql/sql_lex.h:
        Adding contributors addition
      sql/sql_parse.cc:
        Execute for add contributors
      sql/sql_show.cc:
        Adding show contributors
      sql/sql_yacc.yy:
        Show contributors additio
      mysql-test/r/contributors.result:
        New BitKeeper file ``mysql-test/r/contributors.result''
      mysql-test/t/contributors.test:
        New BitKeeper file ``mysql-test/t/contributors.test''
      sql/contributors.h:
        New BitKeeper file ``sql/contributors.h''
      aeb39dd3
  6. 18 Apr, 2006 1 commit
    • unknown's avatar
      Fixed BUG#18949: Test case sp-goto is disabled · a6ae67c4
      unknown authored
        Removed sp-goto.test, sp-goto.result and all (disabled) GOTO code.
        Also removed some related code that's not needed any more (no possible
        unresolved label references any more, so no need to check for them).
        NB: Keeping the ER_SP_GOTO_IN_HNDLR in errmsg.txt; it might become useful
            in the future, and removing it (and thus re-enumerating error codes)
            might upset things. (Anything referring to explicit error codes.)
      
      
      BitKeeper/deleted/.del-sp-goto.result~f343103c63f64b7a:
        Delete: mysql-test/r/sp-goto.result
      BitKeeper/deleted/.del-sp-goto.test~5054d3f729692d3d:
        Delete: mysql-test/t/sp-goto.test
      mysql-test/t/disabled.def:
        sp-goto.test no longer exists.
      sql/lex.h:
        Removed (disabled) GOTO definitions.
      sql/sp_head.cc:
        Removed sp_head::check_backpatch() and simplified sp_head::backpatch().
        Without GOTO, unresolved label references are not possible, so no need
        to check for them.
      sql/sp_head.h:
        Removed sp_head::check_backpatch(). (Not needed with no GOTO)
      sql/sp_pcontext.cc:
        SP_LAB_GOTO was renamed to SP_LAB_IMPL
      sql/sp_pcontext.h:
        Removed SP_LAB_REF (no longer needed) and renamed SP_LAB_GOTO
        to SP_LAB_IMPL, since it's only used for implicit labels now.
      sql/sql_yacc.yy:
        Removed GOTO symbols and (disabled) code, and the no longer needed
        sp_head::check_backpatch() calls.
      a6ae67c4
  7. 10 Apr, 2006 1 commit
    • unknown's avatar
      BUG#15561: Possible to strange things with partitions defined although no... · 649f8c98
      unknown authored
      BUG#15561: Possible to strange things with partitions defined although no partition support compiled in
      Added an #ifdef to ensure we get syntax error when using partitioned synytax and no partition support is compiled in.
      
      
      sql/lex.h:
        Added an #ifdef to ensure we get syntax error when using partitioned synytax and no partition support is compiled in.
      649f8c98
  8. 06 Apr, 2006 1 commit
  9. 20 Mar, 2006 1 commit
    • unknown's avatar
      BUG#17754 · 653468b7
      unknown authored
      Added new syntax ALTER TABLE t1 REMOVE PARTITIONING,
      changed semantics of ALTER TABLE t1 ENGINE=X; to not remove partitioning
      Fix a number of mix engine bugs in partitioning
      
      
      mysql-test/r/ndb_partition_key.result:
        Added a number of new test cases
      mysql-test/r/partition.result:
        Added a number of new test cases
      mysql-test/t/ndb_partition_key.test:
        Added a number of new test cases
      mysql-test/t/partition.test:
        Added a number of new test cases
      sql/lex.h:
        REMOVE and PARTITIONING added as keywords in parser
      sql/sql_lex.h:
        Added flag to alter_info flag
      sql/sql_partition.cc:
        Fixes for the new syntax, changes of the current semantics of the syntax.
        Fixes for errors in handling mixes of table handlers in partitioning syntax
        for ALTER TABLE
      sql/sql_table.cc:
        Bug fix
      sql/sql_yacc.yy:
        New syntax for REMOVE PARTITIONING
      653468b7
  10. 17 Feb, 2006 1 commit
    • unknown's avatar
      WL#2645 (CHECK TABLE FOR UPGRADE) · 437afc71
      unknown authored
      necessary implementation in the server
      mysql_upgrade script added
      
      
      client/mysqlcheck.c:
        --check-upgrade option added
      include/my_base.h:
        errcode added
      include/myisam.h:
        option added
      scripts/Makefile.am:
        mysql_upgrade script added
      sql/handler.cc:
        checks for old types/bugs added
      sql/handler.h:
        declarations regarding checks for upgrade
      sql/lex.h:
        sym added
      sql/share/errmsg.txt:
        error message added
      sql/slave.cc:
        now ha_repair is for public use
      sql/sql_table.cc:
        upgrade in ha_repair implemented
      sql/sql_yacc.yy:
        CHECK ... FOR UPGRADE added to syntax
      437afc71
  11. 12 Feb, 2006 1 commit
    • unknown's avatar
      This patch is to further remove the RAID code. We removed support for people... · 14b4acc9
      unknown authored
      This patch is to further remove the RAID code. We removed support for people creating tables with RAID. This patch remove most of the source for this. 
      
      
      sql/ha_myisam.cc:
        Remove RAID code
      sql/ha_partition.cc:
        Remove RAID code.
      sql/handler.h:
        Remove RAID code
      sql/lex.h:
        Remove RAID code.
      sql/mysqld.cc:
        Remove RAID code.
      sql/set_var.cc:
        Remove RAID code.
      sql/sql_show.cc:
        Remove RAID code
      sql/sql_yacc.yy:
        Remove more of the RAID code
      sql/table.cc:
        Remove RAID code.
      14b4acc9
  12. 24 Jan, 2006 1 commit
    • unknown's avatar
      fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE) · b17aa8f3
      unknown authored
      WL#1034 (Internal CRON)
      
      
      mysql-test/r/events.result:
        fix results file
      mysql-test/t/events.test:
        change test for the fix of bug#16404
      sql/lex.h:
        enabled/disabled were only for events, going back to enable/disable
        fix for bug#16404
      sql/sql_yacc.yy:
        ENABLED -> ENABLE
        DISABLED -> DISABLE
        fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE)
      b17aa8f3
  13. 17 Jan, 2006 1 commit
    • unknown's avatar
      WL #2604: Partition Management · b770b9bf
      unknown authored
      Optimised version of ADD/DROP/REORGANIZE partitions for
      non-NDB storage engines.
      New syntax to handle REBUILD/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
      Quite a few bug fixes
      
      
      include/thr_lock.h:
        New method to downgrade locks from TL_WRITE_ONLY
        Possibility to upgrade lock while aborting locks
      mysql-test/r/ndb_autodiscover.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_bitfield.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_gis.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_partition_key.result:
        New test case
      mysql-test/r/partition.result:
        New test case
      mysql-test/r/partition_error.result:
        New test case
      mysql-test/r/partition_mgm_err.result:
        Fix of test case results
      mysql-test/t/disabled.def:
        partition_03ndb still has bug
      mysql-test/t/ndb_partition_key.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition_error.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition_mgm_err.test:
        New test cases for new functionality and bugs
      mysys/thr_lock.c:
        New method to downgrade TL_WRITE_ONLY locks
        Possibility to specify if locks are to be upgraded at abort locks
      sql/ha_archive.cc:
        New handlerton methods
      sql/ha_berkeley.cc:
        New handlerton methods
      sql/ha_blackhole.cc:
        New handlerton methods
      sql/ha_federated.cc:
        New handlerton methods
      sql/ha_heap.cc:
        New handlerton methods
      sql/ha_innodb.cc:
        New handlerton methods
      sql/ha_myisam.cc:
        New handlerton methods
      sql/ha_myisammrg.cc:
        New handlerton methods
      sql/ha_ndbcluster.cc:
        New handlerton methods
        Moved out packfrm and unpackfrm methods
        Adapted many parts to use table_share instead of table->s
        Ensured that .ndb file uses filename and not tablename
        according to new encoding of names (WL 1324)
        All NDB tables are partitioned and set up partition info
        Fixed such that tablenames use tablenames and not filenames in NDB
        NDB uses auto partitioning for ENGINE=NDB tables
        Warning for very large tables
        Set RANGE data
        Set LIST data
        New method to set-up partition info
        Set Default number of partitions flag
        Set linear hash flag
        Set node group array
        Set number of fragments
        Set max rows
        Set tablespace names
        New method to get number of partitions of table to use at open table
      sql/ha_ndbcluster.h:
        Removed partition_flags and alter_table_flags from handler class
        A couple of new and changed method headers
      sql/ha_ndbcluster_binlog.cc:
        Use new method headers
      sql/ha_partition.cc:
        New handlerton methods
        Lots of new function headers
        Use #P# as separator between table name and partition name and
        #SP# as separator between partition name and subpartition name
        Use filename encoding for files both of table name part and of
        partition name parts
        New method to drop partitions based on partition state
        New method to rename partitions based on partition state
        New methods to optimize, analyze, check and repair partitions
        New methods to optimize, analyze, check and repair table
        Helper method to create new partition, open it and external lock
        it, not needed to lock it internally since no one else knows about
        it yet.
        Cleanup method at error for new partitions
        New methods to perform bulk of work at ADD/REORGANIZE partitions
        (change_partitions, copy_partitions)
      sql/ha_partition.h:
        New methods and variables
        A few dropped ones and a few changed ones
      sql/handler.cc:
        Handlerton interface changes
        New flag to open_table_from_share
      sql/handler.h:
        New alter_table_flags
        New partition flags
        New partition states
        More states for default handling
        Lots of new, dropped and changed interfaces
      sql/lex.h:
        Added REBUILD and changed name of REORGANISE to REORGANIZE
      sql/lock.cc:
        Method to downgrade locks
        Able to specify if locks upgraded on abort locks
      sql/log.cc:
        New handlerton methods
      sql/mysql_priv.h:
        Lots of new interfaces
      sql/share/errmsg.txt:
        Lots of new, dropped and changed error messages
      sql/sql_base.cc:
        Adapted to new method headers
        New method to abort and upgrade lock
        New method to close open tables and downgrade lock
        New method to wait for completed table
      sql/sql_lex.h:
        New flags
      sql/sql_partition.cc:
        Return int instead of bool in get_partition_id
        More defaults handling
        Make use of new mem_alloc_error method
        More work on function headers
        Changes to generate partition syntax to cater for intermediate
        partition states
        Lots of new code with large comments describing new features for
        Partition Management:
        ADD/DROP/REORGANIZE/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
      sql/sql_show.cc:
        Minors
      sql/sql_table.cc:
        Moved a couple of methods
        New methods to copy create lists and key lists
        for use with mysql_prepare_table
        New method to write frm file
        New handling of handlers with auto partitioning
        Fix CREATE TABLE LIKE
        Moved code for ADD/DROP/REORGANIZE partitions
        Use handlerton method for alter_table_flags
      sql/sql_yacc.yy:
        More memory alloc error checks
        New syntax for REBUILD, ANALYZE, CHECK, OPTIMIZE, REPAIR partitions
      sql/table.cc:
        Fix length of extra part to be 4 bytes
        Partition state introduced in frm file
      sql/table.h:
        Partition state introduced
      sql/unireg.cc:
        Partition state introduced
        Default partition
      storage/csv/ha_tina.cc:
        New handlerton methods
      storage/example/ha_example.cc:
        New handlerton methods
      storage/ndb/include/kernel/ndb_limits.h:
        RANGE DATA
      storage/ndb/include/kernel/signaldata/AlterTable.hpp:
        New interfaces in ALTER TABLE towards NDB kernel
      storage/ndb/include/kernel/signaldata/DiAddTab.hpp:
        New section
      storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Lots of new parts of table description
      storage/ndb/include/kernel/signaldata/LqhFrag.hpp:
        tablespace id specified in LQHFRAGREQ
      storage/ndb/include/ndbapi/NdbDictionary.hpp:
        Lots of new methods in NDB dictionary
      storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        New error insertion
      storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
        a few extra jam's
      storage/ndb/src/ndbapi/NdbBlob.cpp:
        Changes to definition of blob tables
      storage/ndb/src/ndbapi/NdbDictionary.cpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/test/ndbapi/test_event.cpp:
        removed use of methods no longer in existence
      storage/ndb/tools/restore/Restore.cpp:
        Renamed variable
      b770b9bf
  14. 11 Jan, 2006 1 commit
    • unknown's avatar
      wl2723 - ndb opt. nr · 7bdcf080
      unknown authored
      mysql-test/t/rpl_multi_engine.test:
        merge fix
      libmysqld/sql_tablespace.cc:
        New BitKeeper file ``libmysqld/sql_tablespace.cc''
      mysql-test/r/ndb_basic_disk.result:
        New BitKeeper file ``mysql-test/r/ndb_basic_disk.result''
      mysql-test/t/ndb_basic_disk.test:
        New BitKeeper file ``mysql-test/t/ndb_basic_disk.test''
      sql/sql_tablespace.cc:
        New BitKeeper file ``sql/sql_tablespace.cc''
      storage/ndb/src/kernel/blocks/OptNR.txt:
        New BitKeeper file ``storage/ndb/src/kernel/blocks/OptNR.txt''
      storage/ndb/src/kernel/vm/mem.txt:
        New BitKeeper file ``storage/ndb/src/kernel/vm/mem.txt''
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
        New BitKeeper file ``storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp''
      storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp:
        New BitKeeper file ``storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp''
      storage/ndb/tools/ndb_error_reporter:
        New BitKeeper file ``storage/ndb/tools/ndb_error_reporter''
      7bdcf080
  15. 28 Dec, 2005 1 commit
    • unknown's avatar
      WL #1034 update · 183ab590
      unknown authored
      - enable/disable -> enabled/disabled
      - fixed error message
      
      
      sql/lex.h:
        change ENABLE to ENABLED and DISABLE to DISABLED in 
        create/alter event
      sql/share/errmsg.txt:
        fix error msg
      sql/sql_yacc.yy:
        ENABLE -> ENABLED
        DISABLE -> DISABLED
      183ab590
  16. 21 Dec, 2005 1 commit
    • unknown's avatar
      Adding XPath support: ExtractValue and UpdateXML functions. · dca59833
      unknown authored
      libmysqld/Makefile.am:
      sql/Makefile.am:
        Adding new source files.
        Adding new file into build process.
      include/my_xml.h:
      strings/xml.c:
        Adding new XML parse flags to skip text normalization and 
        to use relative tag names. Adding enum for XML token types.
      sql/lex.h:
        Making parser aware of new SQL functions.
      sqll/item_create.h, sql/item_create.cc:
        Adding creators for ExtractValue and UpdateXML.
      sql/item.h:
        Adding new Item types: nodeset and nodeset comparator.
      sql/item_xmlfunc.h
      sql/item_xmlfunc.cc
        Adding new classes implementing XPath functions.
      mysql-test/t/xml.test, mysql-test/r/xml.result:
        New files: adding test case
      
      
      include/my_xml.h:
        Adding ExtractValue and UpdateXML functions.
        Adding XML parser flags and enum for XML token types.
      sql/Makefile.am:
        Adding new source files.
      sql/item.h:
        Adding new Item types: nodeset and nodeset comparator.
      sql/item_create.cc:
        Adding creators for ExtractValue and UpdateXML.
      sql/item_create.h:
        Adding creators for ExtractValue and UpdateXML.
      sql/lex.h:
        Make parse aware of new SQL functions.
      strings/xml.c:
        Adding new flags to skip text normalization and 
        to use relative tag names.
      libmysqld/Makefile.am:
        Adding new file into build process.
      dca59833
  17. 02 Dec, 2005 1 commit
  18. 17 Nov, 2005 1 commit
    • unknown's avatar
      Background: · df0cf434
      unknown authored
      Since long, the compiled code of stored routines has been printed in the trace file
      when starting mysqld with the "--debug" flag. (At creation time only, and only in
      debug builds of course.) This has been helpful when debugging stored procedure
      execution, but it's a bit awkward to use. Also, the printing of some of the
      instructions is a bit terse, in particular for sp_instr_stmt where only the command
      code was printed.
      
      This improves the printout of several of the instructions, and adds the debugging-
      only commands "show procedure code <name>" and "show function code <name>".
      (In non-debug builds they are not available.)
      
      
      sql/lex.h:
        New symbol for debug-only command (e.g. show procedure code).
      sql/sp_head.cc:
        Fixed some minor debug-mode bugs in show_create_*().
        New method for debugging: sp_head::show_routine_code() - returns the "assembly code"
        for a stored routine as a result set.
        Improved the print() methods for many sp_instr* classes, particularly for
        sp_instr_stmt where the query string is printed as well (up to a max length, just
        to give a hint of which statement it is). Also print the names of variables and
        cursors in some instruction.
      sql/sp_head.h:
        New debugging-only method in sp_head: show_routine_code().
        Added offset member to sp_instr_cpush for improved debug printing.
      sql/sp_pcontext.cc:
        Moved find_pvar(uint i) method from sp_pcontext.h, and made it work for all
        frames, not just the first one. (For debugging purposes)
        Added a similar find_cursor(uint i, ...) method, for debugging.
      sql/sp_pcontext.h:
        Moved find_pvar(uint i) method to sp_pcontext.cc.
        Added a similar find_cursor(uint i, ...) method, for debugging.
      sql/sql_lex.h:
        Added new sql_command codes for debugging.
      sql/sql_parse.cc:
        Added new commands for debugging, e.g. "show procedure code".
      sql/sql_yacc.yy:
        Added new commands for debugging purposes:
        "show procedure code ..." and "show function code ...".
        These are only enabled in debug builds, otherwise they result in a syntax error.
        (I.e. they don't exist)
      df0cf434
  19. 10 Nov, 2005 1 commit
    • unknown's avatar
      Added "SHOW AUTHORS" code · 1218ff33
      unknown authored
      mysql-test/r/show_check.result:
        Update to results
      mysql-test/t/show_check.test:
        Added SHOW AUTHORS test
      sql/field.h:
        Fixed portability issue
      sql/lex.h:
        Added new keyword "AUTHORS"
      sql/mysql_priv.h:
        Added reference to new show command.
      sql/sql_cache.h:
        Fixed compile bug (more of these need to be fixed)
      sql/sql_lex.h:
        Added to com bit.
      sql/sql_parse.cc:
        Parsing for show authors
      sql/sql_show.cc:
        Added new show command for "SHOW AUTHORS"
      sql/sql_yacc.yy:
        Added new parse code for show authors.
      1218ff33
  20. 07 Nov, 2005 1 commit
    • unknown's avatar
      Make storage engines "pluggable", handlerton work · e7aebf4f
      unknown authored
      Makefile.am:
        Changes to autoconf subst
      config/ac-macros/ha_berkeley.m4:
        simplify
      config/ac-macros/ha_ndbcluster.m4:
        simplify
      config/ac-macros/ha_partition.m4:
        simplify
      configure.in:
        strip configure of storage engine specific cruft and simplify
      extra/Makefile.am:
        changes to autoconf/automake subst
      libmysqld/Makefile.am:
        only compile storage engines if required.
        make find object file a little smarter
      libmysqld/examples/Makefile.am:
        changes to autoconf subst
      mysql-test/Makefile.am:
        remove storage engine specific cruft
      mysql-test/r/ps_1general.result:
        cannot gaurantee order of results from 'show storage engines'
      mysql-test/r/show_check.result:
        fix test - frm file fails to be deleted if it is invalid
      mysql-test/r/sql_mode.result:
        isam does not exist, test may need to be redone/fixed in 5.0
      mysql-test/r/warnings.result:
        isam no longer exists
      mysql-test/t/ps_1general.test:
        cannot gaurantee order of results from 'show storage engines'
      mysql-test/t/show_check.test:
        fix test - frm file fails to be deleted if it is invalid
      mysql-test/t/sql_mode.test:
        isam does not exist, test may need to be redone/fixed in 5.0
      mysql-test/t/system_mysql_db_fix.test:
        change isam to myisam
      mysql-test/t/view.test:
        change isam to myisam
      mysql-test/t/warnings.test:
        isam no longer exists
      sql/Makefile.am:
        Make storage engines "pluggable" stage 1
        only compile storage engines if included
      sql/examples/ha_example.cc:
        handlerton work
      sql/examples/ha_example.h:
        handlerton work
      sql/examples/ha_tina.cc:
        handlerton work
      sql/examples/ha_tina.h:
        handlerton work
      sql/ha_archive.cc:
        handlerton work
      sql/ha_archive.h:
        handlerton work
      sql/ha_berkeley.cc:
        handlerton work
      sql/ha_berkeley.h:
        handlerton work
      sql/ha_blackhole.cc:
        handlerton work
      sql/ha_federated.cc:
        handlerton work
      sql/ha_federated.h:
        handlerton work
      sql/ha_heap.cc:
        handlerton work
      sql/ha_innodb.cc:
        handlerton work
      sql/ha_innodb.h:
        handlerton work
      sql/ha_myisam.cc:
        handlerton work
      sql/ha_myisammrg.cc:
        handlerton work
      sql/ha_ndbcluster.cc:
        handlerton work
      sql/ha_ndbcluster.h:
        handlerton work
      sql/ha_partition.cc:
        handlerton work
      sql/handler.cc:
        start removing storage engine specific cruft
      sql/handler.h:
        start removing storage engine specific cruft
        db_type for binlog handlerton
        handlerton flag for not-user-selectable storage engines
      sql/lex.h:
        start removing storage engine specific cruft
      sql/log.cc:
        handlerton work
        give binlog handlerton a 'real' db_type
      sql/mysql_priv.h:
        start removing storage engine specific cruft
      sql/mysqld.cc:
        start removing storage engine specific cruft
      sql/set_var.cc:
        start removing storage engine specific cruft
      sql/sp_head.cc:
        start removing storage engine specific cruft
      sql/sql_class.cc:
        start removing storage engine specific cruft
      sql/sql_class.h:
        start removing storage engine specific cruft
      sql/sql_lex.h:
        start removing storage engine specific cruft
      sql/sql_manager.cc:
        start removing storage engine specific cruft
      sql/sql_manager.h:
        start removing storage engine specific cruft
      sql/sql_parse.cc:
        start removing storage engine specific cruft
      sql/sql_partition.cc:
        start removing storage engine specific cruft
      sql/sql_prepare.cc:
        start removing storage engine specific cruft
      sql/sql_show.cc:
        start removing storage engine specific cruft
      sql/sql_table.cc:
        changed define from HAVE_PARTITION_DB to WITH_PARTITION_STORAGE_ENGINE
        start removing storage engine specific cruft
      sql/sql_update.cc:
        changed define from HAVE_PARTITION_DB to WITH_PARTITION_STORAGE_ENGINE
      sql/sql_yacc.yy:
        start removing storage engine specific cruft
        test if we should throw error
      sql/table.cc:
        changed define from HAVE_PARTITION_DB to WITH_PARTITION_STORAGE_ENGINE
      sql/table.h:
        changed define from HAVE_PARTITION_DB to WITH_PARTITION_STORAGE_ENGINE
      sql/unireg.cc:
        changed define from HAVE_PARTITION_DB to WITH_PARTITION_STORAGE_ENGINE
      storage/ndb/include/kernel/kernel_types.h:
        added my_config.h
      storage/ndb/include/ndb_global.h.in:
        added my_config.h
      storage/ndb/include/ndb_types.h.in:
        added my_config.h
      config/ac-macros/storage.m4:
        New BitKeeper file ``config/ac-macros/storage.m4''
      sql/handlerton.cc.in:
        New BitKeeper file ``sql/handlerton.cc.in''
      e7aebf4f
  21. 06 Nov, 2005 1 commit
    • unknown's avatar
      WL#2575 - Fulltext: Parser plugin for FTS · b65f90f8
      unknown authored
      WL#2763 - MySQL plugin interface: step 1
      Manual merge from CNET tree.
      
      
      include/ft_global.h:
        Default parser added.
      include/my_global.h:
        dlopen related code moved from sql_udf.cc into my_global.h
      include/myisam.h:
        Added fulltext parser to MI_KEYDEF
      libmysqld/Makefile.am:
        Added LIBDIR macro.
      mysql-test/r/connect.result:
        Test result fixed: added plugin table
      mysql-test/r/information_schema.result:
        Test result fixed: added plugin table.
      mysql-test/r/mysqlcheck.result:
        Test result fixed: added plugin table.
      mysql-test/r/system_mysql_db.result:
         Test fixed: added plugin table
      mysql-test/t/system_mysql_db_fix.test:
         Test fixed: added plugin table
      scripts/mysql_create_system_tables.sh:
        Added mysql.plugin table.
      scripts/mysql_fix_privilege_tables.sql:
        Added mysql.plugin table.
      sql/Makefile.am:
        Added LIBDIR macro.
      sql/ha_myisam.cc:
        Pass fulltext parser from sql to myisam layer.
      sql/lex.h:
        Plugin related symbols.
      sql/mysqld.cc:
        Initialize/deinitialize plugins, pass opt_plugin_dir.
        plugin-dir renamed to plugin_dir.
        plugin_dir is relative to mysql_home now.
      sql/set_var.cc:
        plugin_dir added to SHOW VARIABLES.
      sql/share/errmsg.txt:
        Plugin related error messages.
      sql/sql_class.h:
        Added parser to Key class.
        Hold parser_name instead of plugin in Key class.
      sql/sql_lex.h:
        INSTALL/UNINSTALL PLUGIN commands.
      sql/sql_parse.cc:
        INSTALL/UNINSTALL PLUGIN commands.
      sql/sql_show.cc:
        SHOW CREATE TABLE: output parser name if index was created WITH PARSER.
      sql/sql_table.cc:
        Pass fulltext parser from yacc to sql layer.
      sql/sql_udf.cc:
        dlopen related code moved into my_global.h.
        Implemented better check for UDF path.
        UDF loads libraries that are under plugin_dir now.
      sql/sql_yacc.yy:
        INSTALL/UNINSTALL PLUGIN syntax.
        Added WITH PARSER syntax to CREATE/ALTER TABLE/INDEX.
        opt_fulltext_parser must allocate memory, since it will be used afterwards.
      sql/table.cc:
        Save/restore fulltext parser in extra data segment.
        Added DBUG_PRINTs.
      storage/myisam/ft_boolean_search.c:
        Split functions so they can be used by fulltext parser.
        Use fulltext parser if specified.
      storage/myisam/ft_nlq_search.c:
        Use fulltext parser.
      storage/myisam/ft_parser.c:
        Split functions so they can be used by fulltext parser.
        Use fulltext parser if specified.
      storage/myisam/ft_static.c:
        Default fulltext parser added.
      storage/myisam/ft_update.c:
        Use fulltext parser.
      storage/myisam/ftdefs.h:
        FTB_PARAM moved into plugin.h and renamed to MYSQL_FTPARSER_BOOLEAN_INFO.
      storage/myisam/mi_open.c:
        Set default parser.
      b65f90f8
  22. 25 Aug, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs. · b45f0cd0
      unknown authored
      "Interleaved SPs execution is now binlogged properly, "SELECT spfunc()" is binlogged too.
      The known remaining issue is binlogging/replication of "a routine is deleted while it is executed" scenario.
      
      
      mysql-test/r/rpl_sp.result:
        Fix for BUG#12335: updated test cases/results
      mysql-test/t/rpl_sp.test:
        Fix for BUG#12335: updated test cases/results
      sql/item.cc:
        Fix for BUG#12335 (SP replication): 
         - Added Item_name_const 'function'
         - Addede 'delete reuse' to call dtor on item reuse
      sql/item.h:
        Fix for BUG#12335 (SP replication) : Added Item_name_const 'function' + code cleanup
      sql/item_create.cc:
         Fix for BUG#12335 (SP replication) : Added Item_name_const 'function'
      sql/item_create.h:
         Fix for BUG#12335 (SP replication) : Added Item_name_const 'function'
      sql/item_func.cc:
        Fix for BUG#12335 (SP replication) : binary log is now constrolled from within execute_function.
      sql/lex.h:
        Fix for BUG#12335 ...
      b45f0cd0
  23. 24 Aug, 2005 1 commit
    • unknown's avatar
      Make SYSDATE() behave as in Oracle: always the current datetime, not the · 5ca3dfe7
      unknown authored
      datetime of when the current statement began. This also makes SYSDATE()
      not safe in replication. (Bug #12562)
      
      
      mysql-test/r/func_time.result:
        Add new results
      mysql-test/t/func_time.test:
        Add tests for new SYSDATE() behavior
      sql/item_timefunc.cc:
        Add Item_func_sysdate_local implementation
      sql/item_timefunc.h:
        Add Item_func_sysdate_local, so SYSDATE() can behave differently
        than NOW().
      sql/lex.h:
        SYSDATE() is no longer an alias for NOW().
      sql/sql_yacc.yy:
        Handle SYSDATE()
      5ca3dfe7
  24. 19 Aug, 2005 1 commit
    • unknown's avatar
      WL #2602, #2603, #2604 · 37306da9
      unknown authored
      Added new syntax for partition management
      
      
      mysql-test/t/partition_error.test:
        New line
      sql/ha_partition.cc:
        Added support for DROP PARTITION on-line
      sql/ha_partition.h:
        Added support for DROP PARTITION on-line
      sql/handler.h:
        Introduced state of partition
        Introduced extra list of temporary partitions
        Removed no_full_parts
        A couple of methods to check for duplicate names of partitions
        Adaptions of default checks to be useful from ALTER TABLE
        partition management
        New method on handler to drop partitions
        New method to check for foreign keys on table
      sql/lex.h:
        COALESCE and REORGANISE used by ALTER TABLE x COALESCE/REORGANISE PARTITION
      sql/mysql_priv.h:
        Parser needs method to check if partition management command is ongoing
      sql/share/errmsg.txt:
        A number of new error messages for partition management
      sql/sql_lex.h:
        Adapted the ALTER_INFO data structure for partition management
      sql/sql_partition.cc:
        Couple of new routines + adaption of existing for new
        partition management functionality
      sql/sql_table.cc:
        bin log writing into separate subroutine to minimise code
        duplication.
        Lots of new code to handle partition management
      sql/sql_yacc.yy:
        New syntax for partition management
        Fixed a few errors in the parser part for partitioning
      37306da9
  25. 12 Aug, 2005 1 commit
    • unknown's avatar
      Add SLEEP(seconds) function, which always returns 0 after the given · 7ef207a8
      unknown authored
      number of seconds (which can include microseconds). (Bug #6760)
      
      
      mysql-test/r/func_misc.result:
        Add new results
      mysql-test/t/func_misc.test:
        Add new regression test.
      sql/item_create.cc:
        Add create_func_sleep()
      sql/item_create.h:
        Add create_func_sleep()
      sql/item_func.cc:
        Add sleep() implementation
      sql/item_func.h:
        Add class for sleep() function
      sql/lex.h:
        Handle SLEEP() function
      7ef207a8
  26. 19 Jul, 2005 1 commit
    • unknown's avatar
      Fix for bugs #5892/6182/8751/8758/10994 (based on Antony's patch) · e4bbce4f
      unknown authored
        "Triggers have the wrong namespace"
        "Triggers: duplicate names allowed"
        "Triggers: CREATE TRIGGER does not accept fully qualified names"
        "SHOW TRIGGERS"
      
      
      mysql-test/r/information_schema.result:
        Added tests for new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      mysql-test/r/information_schema_db.result:
        INFORMATION_SCHEMA.TRIGGERS view was added.
      mysql-test/r/rpl_sp.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/r/trigger.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
        Added test checking that triggers have database wide namespace.
        Added test for bug #8791 "Triggers: Allowed to create triggers on a subject
        table in a different DB".
      mysql-test/r/view.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/t/information_schema.test:
        Added tests for new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      mysql-test/t/rpl_sp.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/t/trigger.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
        Added test checking that triggers have database wide namespace.
        Added test for bug #8791 "Triggers: Allowed to create triggers on a subject
        table in a different DB".
      mysql-test/t/view.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      sql/handler.cc:
        Added .TRN tho the list of known file extensions assoicated with tables.
      sql/item.h:
        trg_action_time_type/trg_event_type enums:
          Added TRG_ACTION_MAX/TRG_EVENT_MAX elements which should be used instead of
          magical values in various loops where we iterate through all types of trigger
          action times or/and trigger event types.
      sql/lex.h:
        Added new symbol "TRIGGERS".
      sql/mysql_priv.h:
        Added declaration of constant holding extension for trigger name (.TRN) files.
      sql/mysqld.cc:
        Added statistical variable for SHOW TRIGGERS command.
      sql/share/errmsg.txt:
        Added error message saying that one attempts to create trigger in wrong schema.
      sql/sp.cc:
        Replaced magical values with TRG_EVENT_MAX/TRG_ACTION_MAX constants.
      sql/sql_base.cc:
        open_unireg_entry():
          Now Table_triggers_list::check_n_load() has one more argument which
          controls whether we should prepare Table_triggers_list with fully functional
          triggers or load only their names.
      sql/sql_lex.h:
        Added element for new SHOW TRIGGERS command to enum_sql_command enum.
      sql/sql_parse.cc:
        prepare_schema_table():
          Added support for SHOW TRIGGERS statement.
      sql/sql_show.cc:
        Added new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      sql/sql_table.cc:
        mysql_rm_table_part2():
          Replaced simple deletion of .TRG file with call to
          Table_triggers_list::drop_all_triggers which will also delete .TRN files
          for all triggers associated with table.
      sql/sql_trigger.cc:
        Now triggers have database wide namespace. To support it we create special .TRN
        file with same name as trigger for each trigger. This file contains name of
        trigger's table so one does not need to specify it explicitly in DROP TRIGGER.
        Moreover DROP TRIGGER treats first part of trigger identifier as database name
        now. Updated mysql_create_or_drop_trigger() routine and
        Table_triggers_list::create_trigger()/drop_trigger()/check_n_load() methods
        accordingly. Added add_table_for_trigger() routine and
        Table_triggers_list::drop_all_triggers() method.
        
        Added Table_triggers_list::get_trigger_info() for obtaining trigger metadata.
      sql/sql_trigger.h:
        Table_triggers_list:
          Use TRG_EVENT_MAX, TRG_ACTION_MAX instead of magic values.
          Added get_trigger_info() method for obtaining trigger's meta-data.
          Added drop_all_triggers() method which drops all triggers for table.
          Added declarations of trg_action_time_type_names/trg_event_type_names
          arrays which hold names of triggers action time types  and event types.
      sql/sql_yacc.yy:
        Changed grammar for CREATE/DROP TRIGGER to support database wide trigger
        namespace. Added new SHOW TRIGGERS statement.
      sql/table.h:
        enum enum_schema_tables:
          Added constant for new INFORMATION_SCHEMA.TRIGGERS view.
      e4bbce4f
  27. 18 Jul, 2005 1 commit
  28. 01 Jul, 2005 1 commit
    • unknown's avatar
      Disabled the GOTO feature. (It's non-standard and undocumented.) · 614a6fbb
      unknown authored
      We want to have the defacto standard syntax for labels ("L:" instead of "label L;"),
      and fix some known bugs, before we enable this again.
      The code is left intact (#ifdef'ed SP_GOTO) and the test cases are kept in
      sp-goto.test, for the future...
      
      
      mysql-test/r/sp-error.result:
        Moved all goto tests to sp-goto.test.
      mysql-test/r/sp.result:
        Moved all goto tests to sp-goto.test.
      mysql-test/t/disabled.def:
        Disabled GOTO/LABEL (until the label syntax and some bugs can be fixed).
        We keep the tests in sp-goto.test for the future, but disable for now.
      mysql-test/t/sp-error.test:
        Moved all goto tests to sp-goto.test.
      mysql-test/t/sp.test:
        Moved all goto tests to sp-goto.test.
      sql/lex.h:
        Disabled GOTO/LABEL (until the label syntax and some bugs can be fixed).
      sql/sql_yacc.yy:
        Disabled GOTO/LABEL (until the label syntax and some bugs can be fixed).
      614a6fbb
  29. 25 Feb, 2005 1 commit
    • unknown's avatar
      BUG#3190 fix (request for STDDEV_SAMP, VAR_SAMP). · 654de7df
      unknown authored
      This bug is also known as WL#1639.
      
      
      mysql-test/r/func_group.result:
        Test case for stddev_pop, var_pop, stddev_samp, var_samp was added.
      mysql-test/t/func_group.test:
        Test case for stddev_pop, var_pop, stddev_samp, var_samp was added.
      sql/item_sum.cc:
        New functions stddev_samp and var_samp were added.
      sql/item_sum.h:
        New functions stddev_samp and var_samp were added.
      sql/lex.h:
        New functions stddev_pop, var_pop, stddev_samp and var_samp were added.
      sql/sql_yacc.yy:
        New functions stddev_pop, var_pop, stddev_samp and var_samp were added.
      654de7df
  30. 01 Feb, 2005 1 commit
    • unknown's avatar
      WL#1967 · 9658807a
      unknown authored
        Support for COMMIT/ROLLBACK optional arguments
      
      
      innobase/include/trx0roll.h:
        WL#1967
          trx_release_savepoint_for_mysql()
      innobase/trx/trx0roll.c:
        WL#1967
          trx_release_savepoint_for_mysql()
      mysql-test/r/innodb.result:
        WL#1967
          Test for savepoint release
      mysql-test/t/innodb.test:
        WL#1967
          Test for savepoint release
      sql/ha_innodb.cc:
        WL#1967
          innobase_release_savepoint_name()
      sql/ha_innodb.h:
        WL#1967
          innobase_release_savepoint_name()
      sql/handler.cc:
        WL#1967
          ha_release_savepoint_name()
      sql/handler.h:
        WL#1967
          ha_release_savepoint_name()
      sql/lex.h:
        WL#1967
          New tokens: CHAIN, RELEASE
      sql/mysqld.cc:
        WL#1967
          new option: completion-type
      sql/set_var.cc:
        WL#1967
          new option: completion-type
      sql/sql_class.h:
        WL#1967
          new option: completion-type
      sql/sql_lex.h:
        WL#1967
          Support RELEASE SAVEPOINT
          additional flags to support COMMIT/ROLLBACK options
      sql/sql_parse.cc:
        WL#1967
          Transaction operations in mysql_endtrans(), begin_trans()
      sql/sql_yacc.yy:
        WL#1967
          Support COMMIT/ROLLBACK optional args
      9658807a
  31. 16 Jan, 2005 1 commit
    • unknown's avatar
      XA (not completely polished out yet) · 63120ffe
      unknown authored
      include/my_pthread.h:
        cleanup. don't use gcc extensions
      innobase/include/trx0sys.ic:
        Jan's fix for innobase_xa_prepare
      innobase/read/read0read.c:
        Jan's fix for innobase_xa_prepare
      innobase/trx/trx0trx.c:
        Jan's fix for innobase_xa_prepare
      mysql-test/include/varchar.inc:
        test fix
      mysql-test/r/ctype_ucs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/drop_temp_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/insert_select.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/mix_innodb_myisam_binlog.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/myisam.result:
        test fix
      mysql-test/r/rpl000015.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_change_master.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_charset.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_error_ignored_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_log_loop.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_tables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_m.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_s.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log_pos.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_max_relay_size.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_relayrotate.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_replicate_do.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_reset_slave.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_rotate_logs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id1.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id2.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_temporary.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_timezone.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_until.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_user_variables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/user_var.result:
        new log event - all binlog positions are changed :(
      mysql-test/t/ctype_ucs.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mix_innodb_myisam_binlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog2.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_charset.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_error_ignored_table.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_m.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_s.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log_pos.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_user_variables.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/user_var.test:
        new log event - all binlog positions are changed :(
      mysys/hash.c:
        typo fixed
      sql/ha_berkeley.cc:
        handlerton framework
      sql/ha_berkeley.h:
        handlerton framework
      sql/ha_innodb.cc:
        handlerton framework
      sql/ha_innodb.h:
        handlerton framework
      sql/handler.cc:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/handler.h:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/lex.h:
        XA commands
      sql/log.cc:
        new transaction handling, handlerton framework, two-phase commit,
        XA support, tc-logging, TC_LOG_MMAP class
      sql/log_event.cc:
        Xid_log_event
      sql/log_event.h:
        Xid_log_event, LOG_EVENT_BINLOG_CLOSED_F flag
      sql/mysql_priv.h:
        wrapper for query_id++
      sql/mysqld.cc:
        new command-line options --log-tc, --log-tc-size, --tc-heuristic-recover,
        new status variables Tc_log_page_size, Tc_log_max_pages_used, Tc_log_page_waits.
        init/stop tc logging
      sql/set_var.h:
        warning fixed
      sql/share/errmsg.txt:
        XA error messages
      sql/sp_head.cc:
        s/query_id++/next_query_id()/
      sql/sql_base.cc:
        typo fixed. new transaction handling.
      sql/sql_class.cc:
        cleanup of THD.transaction
      sql/sql_class.h:
        TC_LOG classes, new status variables, new savepoint handling, XA support
      sql/sql_insert.cc:
        comments
      sql/sql_lex.cc:
        s/found_colon/found_semicolon/
      sql/sql_lex.h:
        SQLCOM_XA_xxx, XA related changes in Lex
      sql/sql_parse.cc:
        cleanup, XA commands, new savepoint handling
      sql/sql_repl.cc:
        two functions moved to log.cc
      sql/sql_repl.h:
        two functions moved to log.cc
      sql/sql_trigger.cc:
        s/lex.name_and_length/lex.ident/
      sql/sql_yacc.yy:
        XA commands, cleanup
      63120ffe
  32. 07 Jan, 2005 1 commit
    • unknown's avatar
      Introduce ROW_TYPE=REDUNDANT and ROW_TYPE=COMPACT for InnoDB table formats · 033636d0
      unknown authored
      sql/handler.cc:
        ha_row_type[]: Add REDUNDANT and COMPACT
      sql/handler.h:
        enum row_type: Add ROW_TYPE_REDUNDANT and ROW_TYPE_COMPACT
      sql/ha_innodb.cc:
        ha_innobase::create(): Detect ROW_TYPE=REDUNDANT
      sql/lex.h:
        Add "COMPACT" (COMPACT_SYM) and "REDUNDANT" (REDUNDANT_SYM)
      sql/sql_yacc.yy:
        row_types, keyword: Add COMPACT and REDUNDANT
      033636d0
  33. 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
  34. 24 Dec, 2004 2 commits
    • unknown's avatar
      Many files: · ff755ea2
      unknown authored
        tabs replaced
      ha_innodb.cc:
        Comments removed
      
      
      innobase/include/que0que.h:
        tabs replaced
      innobase/include/sync0rw.h:
        tabs replaced
      innobase/include/sync0sync.h:
        tabs replaced
      innobase/include/sync0sync.ic:
        tabs replaced
      innobase/row/row0sel.c:
        tabs replaced
      innobase/srv/srv0srv.c:
        tabs replaced
      innobase/sync/sync0rw.c:
        tabs replaced
      innobase/sync/sync0sync.c:
        tabs replaced
      sql/ha_innodb.cc:
        Comments removed
      sql/lex.h:
        tabs replaced
      sql/set_var.cc:
        tabs replaced
      sql/sql_parse.cc:
        tabs replaced
      sql/sql_yacc.yy:
        tabs replaced
      ff755ea2
    • unknown's avatar
      logging_ok: · a91217ce
      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
      a91217ce
  35. 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
  36. 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
  37. 12 Nov, 2004 1 commit
    • unknown's avatar
      Mainly resolving Guilhem's 4.1 patch to 5.0 · ef2a5a5c
      unknown authored
      client/mysqlbinlog.cc:
        Resolveing merge
      client/mysqldump.c:
        resolving merge
      sql/handler.cc:
        resolving merge
      sql/lex.h:
        resolve merge
      sql/log.cc:
        resolving merge
      sql/log_event.cc:
        resolving merge
      sql/sql_parse.cc:
        resolving merge
      sql/sql_yacc.yy:
        resolving merge
      ef2a5a5c
  38. 10 Nov, 2004 1 commit
    • unknown's avatar
      WL#1596 "make mysqldump --master-data --single-transaction able to do online... · fbc56a51
      unknown authored
      WL#1596 "make mysqldump --master-data --single-transaction able to do online dump of InnoDB AND report reliable
      binlog coordinates corresponding to the dump".
      The good news is that now mysqldump can be used to get an online backup of InnoDB *which works for
      point-in-time recovery and replication slave creation*. Formerly, mysqldump --master-data --single-transaction
      used to call in fact mysqldump --master-data, so the dump was not an online dump (took big lock all time of dump).
      The only lock which is now taken in this patch is at the beginning of the dump: mysqldump does:
      FLUSH TABLES WITH READ LOCK; START TRANSACTION WITH CONSISTENT SNAPSHOT; SHOW MASTER STATUS; UNLOCK TABLES;
      so the lock time is in fact the time FLUSH TABLES WITH READ LOCK takes to return (can be 0 or very long, if
      a table is undergoing a huge update).
      I have done some more minor changes listed in the paragraph of mysqldump.c.
      WL#2237 "WITH CONSISTENT SNAPSHOT clause for START TRANSACTION":
      it's a START TRANSACTION which additionally starts a consistent read on all
      capable storage engine (i.e. InnoDB). So, can serve as a replacement for
      BEGIN; SELECT * FROM some_innodb_table LIMIT 1; which starts a consistent read too. 
      
      
      client/mysqldump.c:
        Main change: mysqldump --single-transaction --master-data is now able to, at the same time,
        take an online dump of InnoDB (using consistent read) AND get the binlog position corresponding to this dump
        (before, using the two options used to silently cancel --single-transaction).
        This uses the new START TRANSACTION WITH CONSISTENT SNAPSHOT syntax.
        Additional changes: 
        a) cleanup:
         - DBerror calls exit() so some code was unneeded
         - no need to call COMMIT at end, leave disconnection do the job
         - mysql_query_with_error_report()
        b) requirements I had heard from colleagues:
         - --master-data now requires an argument, to comment out ("--") the CHANGE MASTER or not
           (commenting had been asked for point-in-time recovery when replication is not necessary).
         - --first-slave is renamed to --lock-all-tables
        c) more sensible behaviours (has been discussed internally):
         - if used with --master-data, --flush-logs is probably intended to get a flush synchronous
           with the dump, not one random flush per dumped db.
         - disabled automatic reconnection as, at least, SQL_MODE would be lost (and also, depending
           on options, LOCK TABLES, BEGIN, FLUSH TABLES WITH READ LOCK).
      include/mysqld_error.h:
        an error if START TRANSACTION WITH CONSISTENT SNAPSHOT is called and there is no consistent-read capable storage engine
        (idea ((C) PeterG) is that it's a bit like CREATE TABLE ENGINE=InnoDB when there is no support for InnoDB).
      sql/handler.cc:
        new ha_start_consistent_snapshot(), which, inside an existing transaction, starts a consistent read
        (offers an alternative to SELECTing any InnoDB table). Does something only for InnoDB.
        Warning if no suitable engine supported.
      sql/handler.h:
        declarations
      sql/lex.h:
        symbols for lex
      sql/share/czech/errmsg.txt:
        new message
      sql/share/danish/errmsg.txt:
        new message
      sql/share/dutch/errmsg.txt:
        new message
      sql/share/english/errmsg.txt:
        new message
      sql/share/estonian/errmsg.txt:
        new message
      sql/share/french/errmsg.txt:
        new message
      sql/share/german/errmsg.txt:
        new message
      sql/share/greek/errmsg.txt:
        new message
      sql/share/hungarian/errmsg.txt:
        new message
      sql/share/italian/errmsg.txt:
        new message
      sql/share/japanese/errmsg.txt:
        new message
      sql/share/korean/errmsg.txt:
        new message
      sql/share/norwegian-ny/errmsg.txt:
        new message
      sql/share/norwegian/errmsg.txt:
        new message
      sql/share/polish/errmsg.txt:
        new message
      sql/share/portuguese/errmsg.txt:
        new message
      sql/share/romanian/errmsg.txt:
        new message
      sql/share/russian/errmsg.txt:
        new message
      sql/share/serbian/errmsg.txt:
        new message
      sql/share/slovak/errmsg.txt:
        new message
      sql/share/spanish/errmsg.txt:
        new message
      sql/share/swedish/errmsg.txt:
        new message
      sql/share/ukrainian/errmsg.txt:
        new message
      sql/sql_lex.h:
        new option in lex (transaction options)
      sql/sql_parse.cc:
        warning comment (never make UNLOCK TABLES commit a transaction, please);
        support for starting consistent snapshot.
      sql/sql_yacc.yy:
        new clause WITH CONSISTENT SNAPSHOT (syntax ok'd by PeterG) for START TRANSACTION.
      fbc56a51