An error occurred fetching the project authors.
  1. 06 Apr, 2006 1 commit
  2. 20 Mar, 2006 1 commit
    • unknown's avatar
      BUG#17754 · 51f70d9f
      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
      51f70d9f
  3. 17 Feb, 2006 1 commit
    • unknown's avatar
      WL#2645 (CHECK TABLE FOR UPGRADE) · bf840404
      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
      bf840404
  4. 12 Feb, 2006 1 commit
    • unknown's avatar
      This patch is to further remove the RAID code. We removed support for people... · 88aa9b13
      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.
      88aa9b13
  5. 24 Jan, 2006 1 commit
    • unknown's avatar
      fix for bug#16404 (Events: keyword is ENABLED rather than ENABLE) · 679aef1b
      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)
      679aef1b
  6. 17 Jan, 2006 1 commit
    • unknown's avatar
      WL #2604: Partition Management · 19bbb7cc
      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
      19bbb7cc
  7. 11 Jan, 2006 1 commit
    • unknown's avatar
      wl2723 - ndb opt. nr · 641ce5e9
      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''
      641ce5e9
  8. 28 Dec, 2005 1 commit
    • unknown's avatar
      WL #1034 update · b3e35272
      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
      b3e35272
  9. 21 Dec, 2005 1 commit
    • unknown's avatar
      Adding XPath support: ExtractValue and UpdateXML functions. · 5e4c3ce6
      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.
      5e4c3ce6
  10. 02 Dec, 2005 1 commit
  11. 17 Nov, 2005 1 commit
    • unknown's avatar
      Background: · 91ab7076
      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)
      91ab7076
  12. 10 Nov, 2005 1 commit
    • unknown's avatar
      Added "SHOW AUTHORS" code · c1595446
      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.
      c1595446
  13. 07 Nov, 2005 1 commit
    • unknown's avatar
      Make storage engines "pluggable", handlerton work · 6b3a9cae
      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''
      6b3a9cae
  14. 06 Nov, 2005 1 commit
    • unknown's avatar
      WL#2575 - Fulltext: Parser plugin for FTS · 66002e45
      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.
      66002e45
  15. 25 Aug, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs. · 8a5e5274
      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 (SP replication) : Added Item_name_const 'function'
      sql/log.cc:
        Fix for BUG#12335 (SP replication) : Added MYSQL_LOG::{start|stop}_union_events to allow
        one to temporary disable binlogging but collect a 'union' information about binlog write
        calls.
      sql/mysql_priv.h:
        Fix for BUG#12335 (SP replication)
      sql/sp_head.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sp_head.h:
        Comments added
      sql/sp_pcontext.h:
        Comments added
      sql/sp_rcontext.h:
        Comments added
      sql/sql_class.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sql_class.h:
        Fix for BUG#12335 (SP replication) : Added MYSQL_LOG::{start|stop}_union_events to allow
        one to temporary disable binlogging but collect a 'union' information about binlog write
        calls.
      sql/sql_delete.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_insert.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_lex.cc:
        Fix for BUG#12335 (SP replication): Add ability to extract previous returned token from
        the tokenizer.
      sql/sql_lex.h:
        Fix for BUG#12335 (SP replication): Add ability to extract previous returned token from
        the tokenizer.
      sql/sql_parse.cc:
        Fix for BUG#12335 (SP replication) : Now we use different SP binlogging strategy, grep for 
        StoredRoutinesBinlogging for details
      sql/sql_update.cc:
        Fix for BUG#12335: check THD::query_str_binlog_unsuitable when writing to binlog.
      sql/sql_yacc.yy:
        Fix for BUG#12335 (SP replication) : When creating Item_splocal, remember where it is located
        in the query.
      8a5e5274
  16. 24 Aug, 2005 1 commit
    • unknown's avatar
      Make SYSDATE() behave as in Oracle: always the current datetime, not the · da13a76a
      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()
      da13a76a
  17. 19 Aug, 2005 1 commit
    • unknown's avatar
      WL #2602, #2603, #2604 · 7b79f728
      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
      7b79f728
  18. 12 Aug, 2005 1 commit
    • unknown's avatar
      Add SLEEP(seconds) function, which always returns 0 after the given · 7eebb751
      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
      7eebb751
  19. 19 Jul, 2005 1 commit
    • unknown's avatar
      Fix for bugs #5892/6182/8751/8758/10994 (based on Antony's patch) · a32bf7fb
      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.
      a32bf7fb
  20. 18 Jul, 2005 1 commit
  21. 01 Jul, 2005 1 commit
    • unknown's avatar
      Disabled the GOTO feature. (It's non-standard and undocumented.) · 1ff4a0eb
      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).
      1ff4a0eb
  22. 25 Feb, 2005 1 commit
    • unknown's avatar
      BUG#3190 fix (request for STDDEV_SAMP, VAR_SAMP). · d339dd13
      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.
      d339dd13
  23. 01 Feb, 2005 1 commit
    • unknown's avatar
      WL#1967 · 0e50e324
      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
      0e50e324
  24. 16 Jan, 2005 1 commit
    • unknown's avatar
      XA (not completely polished out yet) · 88bd301d
      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
      88bd301d
  25. 07 Jan, 2005 1 commit
    • unknown's avatar
      Introduce ROW_TYPE=REDUNDANT and ROW_TYPE=COMPACT for InnoDB table formats · 6e74893a
      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
      6e74893a
  26. 29 Dec, 2004 1 commit
    • unknown's avatar
      WL#1339 "Add per account max_user_connections limit (maximum number · 05b709fc
      unknown authored
      of concurrent connections for the same account)"
      
      Added support of account specific max_user_connections limit. Made all
      user limits to be counted per account instead of the old behavior,
      which was per user/host accounting. Added option which enables the old
      behavior. Added testing of these to the test suite.
      
      (After review version).
      
      
      client/mysqltest.c:
        Extended mysqltest to be able to handle connect() statements for which
        error is expected.
        
        - Added replace_dynstr_append() utility function.
        - added connect_n_handle_errors() function which connects with server
          without retries and handles errors as if "connect" was usual
          statement.
        - do_connect(): added ability to handle connects which are expected
          to return an error.
        - run_query_normal(): Moved all expected-error-handling code to separate
          normal_handle_error()/normal_handle_no_error() functions to be able
          to reuse them in connect_n_handle_errors().
      mysql-test/r/grant.result:
        Fixed test results since one more column to mysql.user was added.
      mysql-test/r/system_mysql_db.result:
        Fixed test results since one more column to mysql.user was added.
      scripts/mysql_create_system_tables.sh:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      scripts/mysql_fix_privilege_tables.sql:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      sql/lex.h:
        Added MAX_USER_CONNECTIONS symbol used for specifying
        maximum number of concurrent connections per account.
      sql/mysql_priv.h:
        Added declaration of opt_old_style_user_limits variable which is defined
        in sql/mysqld.cc used in sql/sql_parse.cc.
      sql/mysqld.cc:
        Added "old-style-user-limits" option which forces user limits to behave
        in old way i.e. to be counted per user/host pair instead of per account.
        Added comment describing mqh_used variable.
      sql/set_var.cc:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/set_var.h:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/sql_acl.cc:
        Added support for account-specific MAX_USER_CONNECTIONS limit.
        Tweaked USER_RESOURCES and their handling for better clarity.
      sql/sql_parse.cc:
        Added support for account-specific MAX_USER_CONNECTIONS (maximum number
        of concurrent connections per account) limit. Changed default behavior
        of all user limits to be per account instead of per user+host.
        '--old-style-user-limits' option was added to enable the old behavior.
        Made maximum number of connections per hour to be independant on the
        value of global max_user_connections variable.
      sql/sql_yacc.yy:
        Added support of new MAX_USER_CONNECTIONS limit to grammar.
        Renamed USER_RESOURCES::connections member to conn_per_hour and bits
        member to specified_limits. Also enum is used instead of naked numbers
        when we are working with specified_limits.
      sql/structs.h:
        USER_RESOURCES struct:
         - Added user_conn member to store the maximum number of concurrent 
           connections for an account. Renamed connections member to 
           conn_per_hour for less ambiguity.
         - Renamed member 'bits' to 'specified_limits' for the sake of clarity.
           The member was used as a flag indicating which limits were mentioned
           in GRANT clause.
         - Added comments.
        USER_CONN struct:
         - Removed unused user_len member.
         - Added comments.
      05b709fc
  27. 24 Dec, 2004 2 commits
    • unknown's avatar
      Many files: · af22d870
      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
      af22d870
    • unknown's avatar
      logging_ok: · 40d7e74e
      unknown authored
        Logging to logging@openlogging.org accepted
      sql_yacc.yy, sql_parse.cc, sql_lex.h, lex.h:
        Implements the SHOW MUTEX STATUS command
      set_var.cc, mysqld.cc, mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      ha_innodb.h:
        New function innodb_mutex_show_status
      ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      innodb.test, innodb.result:
        Added new row_lock_waits status variables tests.
      variables.test, variables.result:
        test new variable timed_mutexes
      ut0ut.c:
        New function ut_usectime.
      sync0sync.c:
        Mutex counting.
      sync0rw.c:
        New mutex parameters initialization.
      srv0srv.c:
        Counting row lock waits
      row0sel.c, row0mysql.c:
        Setting row_lock or table_lock state to thd.
      que0que.c:
        Added default no_lock_state to thd.
      univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      sync0sync.ic:
        Count mutex using.
      sync0sync.h:
        Added new parameters to mutex structure for counting.
      sync0rw.h:
        Added new parameters to rw_create_func.
      srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      que0que.h:
        Added thread lock states.
      
      
      innobase/include/que0que.h:
        Added thread lock states.
      innobase/include/srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      innobase/include/sync0rw.h:
        Added new parameters to rw_create_func.
      innobase/include/sync0sync.h:
        Added new parameters to mutex structure for counting.
      innobase/include/sync0sync.ic:
        Count mutex using.
      innobase/include/univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      innobase/que/que0que.c:
        Added default no_lock_state to thd.
      innobase/row/row0mysql.c:
        Setting row_lock or table_lock state to thd.
      innobase/row/row0sel.c:
        Setting row_lock or table_lock state to thd.
      innobase/srv/srv0srv.c:
        Counting row lock waits
      innobase/sync/sync0rw.c:
        New mutex parameters initialization.
      innobase/sync/sync0sync.c:
        Mutex counting.
      innobase/ut/ut0ut.c:
        New function ut_usectime.
      mysql-test/r/variables.result:
        test new variable timed_mutexes
      mysql-test/r/innodb.result:
        Added new row_lock_waits status variables tests.
      mysql-test/t/variables.test:
        test new variable timed_mutexes
      mysql-test/t/innodb.test:
        Added new row_lock_waits status variables tests.
      sql/ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      sql/ha_innodb.h:
        New function innodb_mutex_show_status
      sql/lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      sql/mysqld.cc:
        Added new GLOBAL variable timed_mutexes
      sql/set_var.cc:
        Added new GLOBAL variable timed_mutexes
      sql/sql_lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/sql_parse.cc:
        Implements the SHOW MUTEX STATUS command
      sql/sql_yacc.yy:
        Implements the SHOW MUTEX STATUS command
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      40d7e74e
  28. 23 Dec, 2004 1 commit
    • unknown's avatar
      WL#925 - Privileges for stored routines · 09ce0b33
      unknown authored
        Implement fine-grained control over access to stored procedures
        Privileges are cached (same way as existing table/column privs)
        
      
      
      mysql-test/include/system_db_struct.inc:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/connect.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/grant.result:
        WL#925 - Privileges for stored routines
          user table has additional privilege attributes
          SHOW PRIVILEGES amended
      mysql-test/r/grant2.result:
        Fix result
      mysql-test/r/information_schema.result:
        WL#925 - Privileges for stored routines
          New system table procs_priv
          New user privileges
      mysql-test/r/show_check.result:
        Fix result
      mysql-test/r/sp-security.result:
        WL#925 - Privileges for stored routines
          Fix existing tests to work with new privileges
          New tests for new privileges
      mysql-test/r/sp.result:
        WL#925 - Privileges for stored routines
          Fix SHOW PRIVILEGES results
      mysql-test/r/system_mysql_db.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
          user and db tables have new privilege attributes
      mysql-test/t/grant2.test:
        Fix test
      mysql-test/t/show_check.test:
        Fix test
      mysql-test/t/sp-security.test:
        WL#925 - Privileges for stored routines
          Allow existing tests to run with new privilege checks
          New tests for privileges
      mysql-test/t/system_mysql_db_fix.test:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      scripts/mysql_create_system_tables.sh:
        WL#925 - Privileges for stored routines
          db and user has new privilege attributes
          new system table: procs_priv
      scripts/mysql_fix_privilege_tables.sql:
        WL#925 - Privileges for stored routines
          new system table: procs_priv
      scripts/mysql_install_db.sh:
        WL#925 - Privileges for stored routines
          Amend comment
      sql/item_func.cc:
        WL#925 - Privileges for stored routines
          Privilege check for stored FUNCTION routine
      sql/lex.h:
        WL#925 - Privileges for stored routines
          new token ROUTINE
      sql/mysql_priv.h:
        WL#925 - Privileges for stored routines
          New function: check_procedure_access()
      sql/mysqld.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/set_var.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/share/errmsg.txt:
        WL#925 - Privileges for stored routines
          rename errormessage to conform:
            ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
          New error messages
            ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
      sql/sp.cc:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sp.h:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sql_acl.cc:
        WL#925 - Privileges for stored routines
          Implementation for SP privileges.
          Privileges are cached in memory hash.
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_revoke_privileges()
            sp_grant_privileges()
      sql/sql_acl.h:
        WL#925 - Privileges for stored routines
          New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
          Alter confusing bit-segments to be shifted
          New macros: fix_rights_for_procedure() get_rights_for_procedure()
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_grant_privileges()
            sp_revoke_privileges()
      sql/sql_lex.h:
        WL#925 - Privileges for stored routines
          new all_privileges attribute in LEX
      sql/sql_parse.cc:
        WL#925 - Privileges for stored routines
          Remove function: check_sp_definer_access()
          Add handling for SP grants/revokes
          Add privilege checks for stored procedure invocation
      sql/sql_show.cc:
        WL#925 - Privileges for stored routines
          update result for SHOW PRIVILEGES
      sql/sql_yacc.yy:
        WL#925 - Privileges for stored routines
          New token ROUTINE
          rename some rules
          handle CREATE ROUTINE / ALTER ROUTINE privileges
      09ce0b33
  29. 17 Nov, 2004 1 commit
    • unknown's avatar
      WL#638 - Fix precedence for parsing NOT ... LIKE expression s · 191fa299
      unknown authored
        Rework parser expression rules
        Rework handling for "||" concat/or
        Eliminate some shift/reduce conflicts
        Add support for "xxx IS [ NOT ] truth_value"
      
      
      mysql-test/r/ansi.result:
        Fix test for new BROKEN_NOT mode bit
      mysql-test/r/bool.result:
        WL#638
          New test for BROKEN_NOT mode
          New test for "expr IS [NOT] truth_value" syntax
      mysql-test/r/sql_mode.result:
        Fix test for new BROKEN_NOT mode bit
      mysql-test/t/bool.test:
        WL#638
          New test for BROKEN_NOT mode
          New test for "expr IS [NOT] truth_value" syntax
      sql/lex.h:
        WL#638
          "&&" and "AND" return different tokens,
          NOT token changed to NOT_SYM
          OR_OR_CONCAT token changed to OR_OR_SYM
          New token "UNKNOWN"
      sql/mysql_priv.h:
        WL#638
          New mode: BROKEN_NOT
      sql/mysqld.cc:
        WL#638
          New mode: BROKEN_NOT
      sql/set_var.cc:
        WL#638
          New mode: BROKEN_NOT
          BROKEN_NOT is set in MYSQL323 and MYSQL40 modes
      sql/sql_lex.cc:
        Bug#638
          Alter tokens returned by lexer depending upon sql_mode:
          Return NOT2_SYM token instead of NOT_SYM when in BROKEN_NOT mode
          Return OR2_SYM token instead of OR_OR_SYM when not in PIPES_AS_CONCAT mode
      sql/sql_yacc.yy:
        WL#638
          Change grammar to respect proper SQL syntax for NOT
          Clean up grammar, eliminate >100 shift/reduce conflicts
          New support for "expr IS [NOT] truth_value" SQL syntax
          Remove or_or_concat() support func. New support func is_truth_value()
      191fa299
  30. 12 Nov, 2004 1 commit
    • unknown's avatar
      Mainly resolving Guilhem's 4.1 patch to 5.0 · 593c7ce9
      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
      593c7ce9
  31. 10 Nov, 2004 1 commit
    • unknown's avatar
      WL#1596 "make mysqldump --master-data --single-transaction able to do online... · 313ce62f
      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.
      313ce62f
  32. 14 Oct, 2004 1 commit
    • unknown's avatar
      Implemented the stored procedure data access characteristics: · a750003f
      unknown authored
      NO SQL
      CONTAINS SQL (default)
      READS SQL DATA
      MODIFIES SQL DATA
      
      These are needed as hints for the replication.
      (Before this, we did have the default in the mysql.proc table, but no support in the parser.)
      
      
      mysql-test/r/sp.result:
        Modified test cases for new data access characteristics.
      mysql-test/t/sp.test:
        Modified test cases for new data access characteristics.
      scripts/mysql_create_system_tables.sh:
        We now support all the SP data access characteristics (not just CONTAINS SQL).
      scripts/mysql_fix_privilege_tables.sql:
        We now support all the SP data access characteristics (not just CONTAINS SQL).
      sql/lex.h:
        New tokens for SP data access characteristics.
      sql/sp.cc:
        Store, print and support alter of data access characteristics.
      sql/sp_head.cc:
        Added SP_ prefix to some symbols.
      sql/sql_lex.h:
        Added SP_ prefix to some symbols, and added SP data access enum.
      sql/sql_yacc.yy:
        Parse SP data access characteristics.
        (And allow "alter ... language sql", mostly as a formality, it was accidently
         put in the wrong clause before.)
      a750003f
  33. 07 Oct, 2004 1 commit
    • unknown's avatar
      test of DELETE privilege and cyclic reference added in case of altering view (BUG#5148) · 72ed0fc0
      unknown authored
      fixed ALTER VIEW syntax
      fixed WITH CHECK OPTION clause printing in SHOW CREATE VIEW
      
      
      mysql-test/r/view.result:
        test of VIEW altering
      mysql-test/t/view.test:
        test of VIEW altering
      sql/lex.h:
        explicitly mentioned undefined algorithm
      sql/sql_show.cc:
        explicitly mentioned undefined algorithm
        added printing WITH CHECK OPTION clause
      sql/sql_view.cc:
        test of DELETE privilege and cyclic reference added in case of altering view
        effective and requested WITH CHECK OPTION parameters divided
      sql/sql_yacc.yy:
        fixed ALTER VIEW
      sql/table.cc:
        effective and requested WITH CHECK OPTION parameters divided
      sql/table.h:
        effective and requested WITH CHECK OPTION parameters divided
      72ed0fc0
  34. 01 Oct, 2004 1 commit
  35. 07 Sep, 2004 1 commit
    • unknown's avatar
      WL#1218 "Triggers". Some very preliminary version of patch. · 52ac4935
      unknown authored
      Mostly needed for Monty for him getting notion what needed for triggers 
      from new .FRM format. 
      
      Things to be done:
      - Right placement of trigger's invocations
      - Right handling of errors in triggers (including transaction rollback)
      - Support for priviliges
      - Right handling of DROP/RENAME table (hope that it will be handled automatically
        with merging of .TRG into .FRM file)
      - Saving/restoring some information critical for trigger creation and replication
        with their definitions (e.g. sql_mode, creator, ...)
      - Replication
      
      Already has some known bugs so probably not for general review.
      
      
      include/mysqld_error.h:
        Added trigger related error codes.
      sql/Makefile.am:
        Added sql_trigger.* files to list of sources from which mysqld is built.
      sql/item.cc:
        Added Item_trigger_field class representing field of new/old version of row which is 
        inserted/updated/deleted and for which trigger is invoked.
      sql/item.h:
        Added enums for describing trigger properties. (Here because of dependencies).
        Added Item_trigger_field class representing field of new/old version of row which is 
        inserted/updated/deleted and for which trigger is invoked.
      sql/item_func.cc:
        Added Item_func_set_user_var::print_as_stmt() for printing of assignment to ser variable
        from stored procedures.
        Added comment clarifying why we don't need set no_send_ok when calling stored functions.
      sql/item_func.h:
        Added Item_func_set_user_var::print_as_stmt() for printing of assignment to ser variable
        from stored procedures.
      sql/lex.h:
        Symbols used in statements defining triggers were added.
      sql/mysql_priv.h:
        Exported some functions needed for triggers implementation.
      sql/parse_file.cc:
        Cleaned up FILE_OPTIONS_STRLIST handling (needed for triggers).
      sql/parse_file.h:
        Cleaned up FILE_OPTIONS_STRLIST handling (needed for triggers).
      sql/share/czech/errmsg.txt:
        Added trigger related error messages.
      sql/share/danish/errmsg.txt:
        Added trigger related error messages.
      sql/share/dutch/errmsg.txt:
        Added trigger related error messages.
      sql/share/english/errmsg.txt:
        Added trigger related error messages.
      sql/share/estonian/errmsg.txt:
        Added trigger related error messages.
      sql/share/french/errmsg.txt:
        Added trigger related error messages.
      sql/share/german/errmsg.txt:
        Added trigger related error messages.
      sql/share/greek/errmsg.txt:
        Added trigger related error messages.
      sql/share/hungarian/errmsg.txt:
        Added trigger related error messages.
      sql/share/italian/errmsg.txt:
        Added trigger related error messages.
      sql/share/japanese/errmsg.txt:
        Added trigger related error messages.
      sql/share/korean/errmsg.txt:
        Added trigger related error messages.
      sql/share/norwegian-ny/errmsg.txt:
        Added trigger related error messages.
      sql/share/norwegian/errmsg.txt:
        Added trigger related error messages.
      sql/share/polish/errmsg.txt:
        Added trigger related error messages.
      sql/share/portuguese/errmsg.txt:
        Added trigger related error messages.
      sql/share/romanian/errmsg.txt:
        Added trigger related error messages.
      sql/share/russian/errmsg.txt:
        Added trigger related error messages.
      sql/share/serbian/errmsg.txt:
        Added trigger related error messages.
      sql/share/slovak/errmsg.txt:
        Added trigger related error messages.
      sql/share/spanish/errmsg.txt:
        Added trigger related error messages.
      sql/share/swedish/errmsg.txt:
        Added trigger related error messages.
      sql/share/ukrainian/errmsg.txt:
        Added trigger related error messages.
      sql/sp_head.cc:
        sp_head::init_strings(): added support for triggers 
          (we don't have most of strings for them)
        sp_head::execute_function(): triggers don't require RETURN
        sp_head::reset_lex(): added propagation of trigger properties to LEX used for 
         parsing of statements composing trigger body.
        Added two more SP instructions:
        - sp_instr_set_user_var for setting user variables in stored functions and triggers
          (we can't use sp_instr_stmt and "SET @A:=..." statement since it will close open 
          tables and thus break execution of calling statement.
        - sp_instr_set_trigger_field for assignment to fields of row being updated/inserted in
          triggers
      sql/sp_head.h:
        Added new type of sp_head object - TYPE_ENUM_TRIGGER
        Added two more SP instructions:
        - sp_instr_set_user_var for setting user variables in stored functions and triggers
          (we can't use sp_instr_stmt and "SET @A:=..." statement since it will close open 
          tables and thus break execution of calling statement.
        - sp_instr_set_trigger_field for assignment to fields of row being updated/inserted in
          triggers
      sql/sql_base.cc:
        Now freeing memory occupied by trigger related structures when closing tables.
        open_unireg_entry(): added loading of triggers for table.
        find_field_in_real_table() is now public since it required by Item_trigger_field in item.cc
      sql/sql_delete.cc:
        Added triggers invocation for DELETE (should be fixed for sure :))
      sql/sql_insert.cc:
        Added triggers invocation for INSERT (should be fixed for sure :))
      sql/sql_lex.cc:
        Added trg_new_row_fake_var variable pointer to which is used for distinguishing between
        assignment to NEW row field (when parsing trigger definition) and structured variable.
        Added initialization of LEX->trg_table to lex_start(). (When triggers are parsed during
        opening of table it points to table object.)
      sql/sql_lex.h:
        Added trigger related commands.
        Added st_trg_chistics structure describing properties of trigger being created
        (as struct and as LEX member).
        Added trg_new_row_fake_var variable pointer to which is used for
        distinguishing between assignment to NEW row field (when parsing trigger definition)
        and structured variable.
        Added LEX::trg_table which points to table being opened when we are parsing trigger
        definition while opening table.
      sql/sql_parse.cc:
        Added support for CREATE/DROP TRIGGER commands.
      sql/sql_table.cc:
        Cleanup. close_cached_table() always returns 0 and its result is not analyzed in most
        places so chenged its return type to void.
      sql/sql_update.cc:
        Added triggers invocation for UPDATE (should be fixed for sure :))
      sql/sql_yacc.yy:
        Added support for CREATE/DROP TRIGGER statements.
        Added support for OLD/NEW row identifiers in trigger.
        Made assignment to user variables not to break execution of stored function or trigger.
      sql/table.h:
        Added TABLE::triggers member representing triggers for this table.
      52ac4935
  36. 17 Aug, 2004 1 commit
    • unknown's avatar
      WL#2002: Implement stored procedure GOTO. · 9b5a6f72
      unknown authored
      Mostly done, it works, but the temporary LABEL syntax still to be fixed.
      
      
      mysql-test/r/sp-error.result:
        New test case for WL#2002 (GOTO).
      mysql-test/r/sp.result:
        New test case for WL#2002 (GOTO).
        (Also corrected another test)
      mysql-test/t/sp-error.test:
        New test case for WL#2002 (GOTO).
      mysql-test/t/sp.test:
        New test case for WL#2002 (GOTO).
        (Also corrected another test)
      sql/lex.h:
        New symbol GOTO.
        Also a temporary symbol LABEL, which hopefully will go away soon.
      sql/sp_head.cc:
        Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions.
        Also optimized away pointless jump instructions.
      sql/sp_head.h:
        Fixed backpatching to cope with free GOTO labels an hpop and cpop instructions.
        We now sometimes generate hpop/cpop 0 instructions but the optimizer removes them.
      sql/sp_pcontext.cc:
        Added free GOTO labels, and support for coping with jumps out of blocks
        with handlers or cursors.
      sql/sp_pcontext.h:
        Added free GOTO labels, and support for coping with jumps out of blocks
        with handlers or cursors.
      sql/sql_yacc.yy:
        Added GOTO and LABEL, and adjusted backpatching accordingly. Also fixed LEAVE
        out of blocks. The LABEL syntax will go away soon, hopefully.
      9b5a6f72
  37. 10 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server". · 68d7b266
      unknown authored
      Instead of trying to open time zone tables during calculation of CONVERT_TZ() function
      or setting of @@time_zone variable we should open and lock them with the rest of 
      statement's table (so we should add them to global table list) and after that use such 
      pre-opened tables for loading info about time zones.
      
      
      mysql-test/r/timezone2.result:
        Added test for bug #4508
      mysql-test/t/timezone2.test:
        Added test for bug #4508
      scripts/mysql_create_system_tables.sh:
        Added one more test time zone to time zone tables which is needed for test for bug #4508.
      sql/item_create.cc:
        CONVERT_TZ() now is treated as special function.
      sql/item_create.h:
        CONVERT_TZ() now is treated as special function.
      sql/item_timefunc.cc:
        Item_func_convert_tz now uses list of pre-opened time zone tables instead of trying to
        open them ad-hoc. Also it avoid calling of current_thd.
      sql/item_timefunc.h:
        Added comment describing special nature of CONVERT_TZ() function.
        Optimization: Added own fix_fields() method and tz_tables member for caching pointer
        to list of open time zone tables to Item_func_convert_tz class.
      sql/lex.h:
        CONVERT_TZ() now is treated as special function.
      sql/mysql_priv.h:
        Removed function which is no longer used.
      sql/set_var.cc:
        Now my_tz_find() accepts list of pre-opened time zone tables as last argument 
        and no longer needs pointer to current THD.
      sql/set_var.h:
        Exported sys_time_zone, which is now used in sql_yacc.yy for quick finding out if we are
        setting @@time_zone variable.
      sql/sql_base.cc:
        Moved propagation of pointers to open tables from global list to local select lists to
        open_and_lock_tables(), also added implicit usage of time zone tables as condition for
        such propagation.
      sql/sql_lex.cc:
        Added fake_time_zone_tables_list which is used to indicate that time zone tables are
        implicitly used in statement.
        st_select_lex_unit::create_total_list(): if time zone tables are implicitly used in
        statement add them to global tables list.
      sql/sql_lex.h:
        Added LEX::time_zone_tables_used member which is used to indicate that time zone tables 
        are implicitly used in this statement (by pointing to fake_time_zone_table_list) and 
        for holding pointer to those tables after they've been opened.
      sql/sql_parse.cc:
        We should also create global table list if statement uses time zone tables implicitly.
        Added initialization of LEX::time_zone_tables_used to mysql_query_init().
      sql/sql_prepare.cc:
        We should also create global table list if statement uses time zone tables implicitly.
      sql/sql_select.cc:
        Removed functions which are no longer used.
      sql/sql_yacc.yy:
        CONVERT_TZ() and @@time_zone variable are handled in special way since they implicitly 
        use time zone tables.
      sql/tztime.cc:
        Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server".
        If statement uses CONVERT_TZ() function or @@time_zone variable is set then it implicitly
        uses time zone tables. We need to open and lock such tables with all other tables of 
        such statement.
        
        All code responsible for opening table was removed from tz_load_from_db() and function was 
        renamed to tz_load_from_open_tables() (which uses list of pre-opened tables).
        We also have new functions for construction and initialization of table list of time
        zone tables.
        my_tz_find() now always require list of pre-opened time zone tables and no longer needs
        current THD. So we have to pre-open them in my_tz_init().
        Also now we try to open time zone tables only if they were found during startup.
      sql/tztime.h:
        New function for construction of table list of time zone tables my_tz_get_table_list().
        Now my_tz_find() requires list of pre-pened time zone tables instead of current thread.
      68d7b266
  38. 15 Jul, 2004 1 commit
    • unknown's avatar
      VIEW · 8790b1e6
      unknown authored
      two TABLE_LIST copy eliminated
      
      
      include/mysqld_error.h:
        errors of view
      libmysqld/Makefile.am:
        new view file
      mysql-test/r/connect.result:
        SHOW TABLE show type of table
      mysql-test/r/ctype_recoding.result:
        SHOW TABLE show type of table
      mysql-test/r/drop.result:
        SHOW TABLE show type of table
      mysql-test/r/grant.result:
        new two privileges (CRETEA|SHOW VIEW)
      mysql-test/r/lowercase_table.result:
        SHOW TABLE show type of table
      mysql-test/r/ps_1general.result:
        SHOW TABLE show type of table
      mysql-test/r/rename.result:
        SHOW TABLE show type of table
      mysql-test/r/rpl000009.result:
        SHOW TABLE show type of table
      mysql-test/r/rpl_error_ignored_table.result:
        SHOW TABLE show type of table
      mysql-test/r/select.result:
        SHOW TABLE show type of table
      mysql-test/r/system_mysql_db.result:
        SHOW TABLE show type of table
        new two privileges (CRETEA|SHOW VIEW)
      mysql-test/t/system_mysql_db_fix.test:
        removing all system tables
      scripts/mysql_fix_privilege_tables.sql:
        new two privileges (CRETEA|SHOW VIEW)
      sql/Makefile.am:
        new VIEW related file
      sql/ha_myisammrg.cc:
        two TABLE_LIST copy eliminated
      sql/item.cc:
        VIEW
      sql/item.h:
        VIEW
      sql/item_subselect.cc:
        VIEW
      sql/item_subselect.h:
        VIEW
      sql/lex.h:
        VIEW
      sql/lock.cc:
        VIEW
      sql/mysql_priv.h:
        VIEW
      sql/mysqld.cc:
        VIEW
        new parameter - sql_updatable_view_key
      sql/opt_sum.cc:
        two TABLE_LIST copy eliminated
      sql/set_var.cc:
        new parameter - sql_updatable_view_key
      sql/share/czech/errmsg.txt:
        errors messages of views
      sql/share/danish/errmsg.txt:
        errors messages of views
      sql/share/dutch/errmsg.txt:
        errors messages of views
      sql/share/english/errmsg.txt:
        errors messages of views
      sql/share/estonian/errmsg.txt:
        errors messages of views
      sql/share/french/errmsg.txt:
        errors messages of views
      sql/share/german/errmsg.txt:
        errors messages of views
      sql/share/greek/errmsg.txt:
        errors messages of views
      sql/share/hungarian/errmsg.txt:
        errors messages of views
      sql/share/italian/errmsg.txt:
        errors messages of views
      sql/share/japanese/errmsg.txt:
        errors messages of views
      sql/share/korean/errmsg.txt:
        errors messages of views
      sql/share/norwegian-ny/errmsg.txt:
        errors messages of views
      sql/share/norwegian/errmsg.txt:
        errors messages of views
      sql/share/polish/errmsg.txt:
        errors messages of views
      sql/share/portuguese/errmsg.txt:
        errors messages of views
      sql/share/romanian/errmsg.txt:
        errors messages of views
      sql/share/russian/errmsg.txt:
        errors messages of views
      sql/share/serbian/errmsg.txt:
        errors messages of views
      sql/share/slovak/errmsg.txt:
        errors messages of views
      sql/share/spanish/errmsg.txt:
        errors messages of views
      sql/share/swedish/errmsg.txt:
        errors messages of views
      sql/share/ukrainian/errmsg.txt:
        errors messages of views
      sql/slave.cc:
        two TABLE_LIST copy eliminated
      sql/sp.cc:
        VIEW
      sql/sql_acl.cc:
        VIEW
      sql/sql_acl.h:
        VIEW
      sql/sql_base.cc:
        VIEW
      sql/sql_cache.cc:
        two TABLE_LIST copy eliminated
      sql/sql_class.h:
        VIEW
      sql/sql_db.cc:
        two TABLE_LIST copy eliminated
      sql/sql_delete.cc:
        VIEW
      sql/sql_derived.cc:
        VIEW
      sql/sql_handler.cc:
        two TABLE_LIST copy eliminated
      sql/sql_help.cc:
        two TABLE_LIST copy eliminated
      sql/sql_insert.cc:
        VIEW
      sql/sql_lex.cc:
        VIEW
      sql/sql_lex.h:
        VIEW
      sql/sql_load.cc:
        VIEW
      sql/sql_olap.cc:
        VIEW
      sql/sql_parse.cc:
        two TABLE_LIST copy eliminated
        VIEW
      sql/sql_prepare.cc:
        VIEW
      sql/sql_rename.cc:
        two TABLE_LIST copy eliminated
      sql/sql_select.cc:
        VIEW
      sql/sql_show.cc:
        VIEW
      sql/sql_table.cc:
        VIEW
      sql/sql_union.cc:
        VIEW
      sql/sql_update.cc:
        VIEW
      sql/sql_yacc.yy:
        VIEW
      sql/table.cc:
        VIEW
      sql/table.h:
        VIEW
      sql/tztime.cc:
        two TABLE_LIST copy eliminated
      sql/unireg.h:
        VIEW
      tests/client_test.c:
        VIEW
      8790b1e6
  39. 23 Jun, 2004 1 commit
    • unknown's avatar
      handler interface cleanups: · 9a554b47
      unknown authored
        more logical table/index_flags
        return  HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
        max_keys and other limits renamed to max_supported_keys/etc
        max_keys/etc are now wrappers to max_supported_keys/etc 
        ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing
      
      
      include/myisam.h:
        increasing myisam_max_temp_file_length
      include/my_base.h:
        handler interface cleanup
      myisam/mi_static.c:
        warning removed
      mysql-test/Makefile.am:
        followup
      mysql-test/r/fulltext.result:
        fulltext indexes are not ordered
      mysql-test/r/rpl_user_variables.result:
        followup
      sql/field.cc:
        index_flags
      sql/filesort.cc:
        rnd_init -> ha_rnd_init
        rnd_end -> ha_rnd_end
      sql/ha_berkeley.cc:
        cleanup
      sql/ha_berkeley.h:
        table/index_flags revamped
      sql/ha_heap.cc:
        ensure index is accessed only after index_init (esp. important for temp tables)
      sql/ha_heap.h:
        table/index_flags revamped
      sql/ha_innodb.cc:
        don't workaround MySQL sloppiness
      sql/ha_innodb.h:
        table/index_flags revamped
      sql/ha_isam.h:
        table/index_flags revamped
      sql/ha_isammrg.h:
        table/index_flags revamped
      sql/ha_myisam.cc:
        ensure index is accessed only after index_init (esp. important for temp tables)
      sql/ha_myisam.h:
        table/index_flags revamped
      sql/ha_myisammrg.h:
        table/index_flags revamped
      sql/handler.cc:
        handler interface cleanups
      sql/handler.h:
        handler interface cleanups:
          more logical table/index_flags
          return  HA_ERR_WRONG_COMMAND instead of abstract methods
          max_keys and other limits renamed to max_supported_keys/etc
          max_keys/etc are now wrappers to max_supported_keys/etc 
          ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to enforce strict pairing
      sql/item_subselect.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/lex.h:
        renamed to avoid conflicts
      sql/opt_range.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/opt_range.h:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/opt_sum.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/records.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_acl.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_cache.cc:
        cleanup
      sql/sql_delete.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_handler.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_help.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_insert.cc:
        table/index_flags cleanup
      sql/sql_select.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/sql_table.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
        table/index_flags cleanup
      sql/sql_update.cc:
        index_init/index_end/rnd_init/rnd_end strict pairing fixed
      sql/sql_yacc.yy:
        INDEX -> INDEX_SYM
      sql/table.cc:
        table/index_flags cleanup
      9a554b47