An error occurred fetching the project authors.
  1. 30 Apr, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9520 "SELECT DISTINCT crashes server · 963e94ce
      unknown authored
      with cursor". The patch refactors do_select/sub_select
      functions, which implement the nested loop algorithm, and reuses them to
      fetch rows for cursors as well.
      Pushing with view.test failing (--ps-protocol).
      
      
      sql/sql_prepare.cc:
         Cursor::fetch() now returns void
      sql/sql_select.cc:
        A fix for Bug#9520 "SELECT DISTINCT crashes server with cursor":
        * rename sub_select returns codes to be able to track down what's going
          on in which case.
        * move record processing and outer join record processing to a separate
          function, out of sub_select read-record loop.
        * use generalized sub_select() nested loop function for
        cursors instead of own loop implementation used in Cursor::fetch() before
      sql/sql_select.h:
        Replace all return values of sub_select family with enum.
        Add JOIN::resume_nested_loop flag to indicate we are restarting the nested loop
        for execution of next chunk of cursor's rows.
      tests/mysql_client_test.c:
        A test case for Bug#9520 "SELECT DISTINCT crashes server with cursor"
      963e94ce
  2. 18 Apr, 2005 1 commit
    • unknown's avatar
      Fix for BUG#9103: · 955ec71f
      unknown authored
      Don't produce data truncation warnings from within cp_buffer_from_ref(). This function
      is only used to make index search tuples and data truncation that occurs here has no
      relation with truncated values being saved into tables.
      
      
      mysql-test/r/update.result:
        Testcase for BUG#9103
      mysql-test/t/update.test:
        Testcase for BUG#9103
      sql/opt_range.cc:
        cp_buffer_from_ref now has THD* parameter
      sql/sql_select.h:
        cp_buffer_from_ref now has THD* parameter
      955ec71f
  3. 04 Apr, 2005 1 commit
    • unknown's avatar
      Fix for BUG#8877: Implementation of · 31f2f9bc
      unknown authored
      "Early NULL-values filtering for ref access" (attempt2+post-review fixes)
      1. update_ref_and_keys() accumulates info about null-rejecting
      predicates in in KEY_FIELD::null_rejecting, add_key_part saves
      these to KEYUSE.
      2. create_ref_for_key copies them to TABLE_REF.
      3. add_not_null_conds adds "x IS NOT NULL" to join_tab->select_cond of
      appropiate JOIN_TAB members.
      
      Includes code cleanups: 
      * add_key_field() params: s/COND/Item_func/ (as only Item_funcs are
      passed to it)
      * add_key_fields() params: JOIN_TAB *stat removed (wasn't used)
      
      
      sql/sql_select.cc:
        Fix for BUG#8877: Implementation of 
        "Early NULL-values filtering for ref access"
        1. update_ref_and_keys() accumulates info about null-rejecting
        predicates in in KEY_FIELD::null_rejecting, add_key_part saves
        these to KEYUSE.
        2. create_ref_for_key copies them to TABLE_REF.
        3. add_not_null_conds adds "x IS NOT NULL" to join_tab->select_cond
        of appropiate JOIN_TAB members.
        
        Includes code cleanups: 
        * add_key_field() params: s/COND/Item_func/ (as only Item_funcs are
        passed to it)
        * add_key_fields() params: JOIN_TAB *stat removed (wasn't used)
      sql/sql_select.h:
        Fix for BUG#8877: Implementation of 
        "Early NULL-values filtering for ref access" (attempt2)
      31f2f9bc
  4. 30 Mar, 2005 1 commit
  5. 24 Mar, 2005 1 commit
    • unknown's avatar
      Fixes and test cases for Bug#8880 "Commands out of sync error with cursors" · 3b236b1d
      unknown authored
       and Bug#9159 "Server crash during mysql_stmt_close".
      The patch adds support for single-row result sets in cursors.
      
      
      libmysql/libmysql.c:
        If we wanted a cursor, and the server wasn't able to create one,
        buffer all rows on client. Currently this is possible only for
        single row result sets and some SHOW commands.
      sql/sql_prepare.cc:
        Properly free resources if there was a request to open a cursor which
        wasn't fullfilled.
        Give error on attempt to open a cursor for a statement not returning
        a result set.
      sql/sql_select.h:
        Initialize Item_arena of Cursor object. A case when a cursor object
        is created but not used is possible with single-row result sets.
      tests/mysql_client_test.c:
        Test cases for Bug#8880 and Bug#9159
      3b236b1d
  6. 19 Mar, 2005 1 commit
    • unknown's avatar
      Eliminate warnings noticed by VC7. This includes fixing my_mmap() on · 892a6138
      unknown authored
      Windows to call CreateFileMapping() with correct arguments, and
      propogating the introduction of query_id_t to everywhere query ids are
      passed around. (Bug #8826)
      
      
      libmysql/libmysql.c:
        Make implicit cast explicit
      myisam/mi_open.c:
        Make cast of value to smaller data size explicit
      myisam/mi_packrec.c:
        Cast file size (my_off_t) to size_t for mmap
      mysys/my_mmap.c:
        Fix Windows version of my_mmap() to use the right parameters
        for call to CreateFileMapping()
      sql/field.cc:
        Use temporary value of correct type
      sql/field.h:
        Use query_id_t for query_id value
      sql/ha_berkeley.cc:
        Fix flag check
      sql/ha_innodb.h:
        Use query_id_t for query_id value
      sql/handler.cc:
        Explain opt_using_transactions calculation, and add cast
      sql/handler.h:
        Fix forward declaration of COND
      sql/item.cc:
        Fix val_bool() tests of val_int() to avoid implicit cast
      sql/item_cmpfunc.cc:
        Fix typo in switch label
      sql/item_func.cc:
        Make implicit cast explicit
      sql/item_strfunc.cc:
        Now that query_id is a query_id_t, need to cast it to a ulong here
      sql/item_subselect.cc:
        Fix test of value
      sql/log.cc:
        Cast my_off_t used for file size to size_t for memory allocation
        Also cast my_off_t when using it to calculate the number of pages for TC log
        Cast total_ha_2pc to uchar when saving it
      sql/mysql_priv.h:
        Move up query_id definition so it can be used more widely
      sql/opt_range.cc:
        Add unused delete operator to prevent compiler warning
      sql/set_var.cc:
        Cast value for max_user_connections
      sql/sql_cache.cc:
        Remove unused label
      sql/sql_class.h:
        Fix query id values to be of type query_id_t
      sql/sql_db.cc:
        Move variable only used inside #ifdef within the #ifdef
      sql/sql_help.cc:
        Remove unused label
      sql/sql_insert.cc:
        Use query_id_t for query id values
      sql/sql_lex.h:
        Add unused delete operator to prevent compiler warning
      sql/sql_select.cc:
        Remove unused variable
        Make cast of value explicit
      sql/sql_select.h:
        Use query_id_t for query id values
      sql/sql_table.cc:
        Make comparison to function pointer explicit
      sql/sql_update.cc:
        Use query_id_t for query id values
      sql/table.h:
        Use query_id_t for query id values
      strings/ctype-simple.c:
        Add cast of long value to (char) in expression
      strings/ctype-ucs2.c:
        Add cast of long value to (char) in expression
      strings/ctype-utf8.c:
        Make cast to smaller size explicit
      892a6138
  7. 16 Mar, 2005 1 commit
    • unknown's avatar
      olap.result, olap.test: · e16535ce
      unknown authored
        Added a test case for bug #8616.
      item.h:
        Fixed bug #8616.
        Added class Item_null_result used in rollup processing.
      sql_select.h, sql_select.cc:
        Fixed bug #8616.
        Added JOIN::rollup_write_data to cover rollup queries
        with DISTINCT. Modified other rollup methods.
      
      
      sql/sql_select.cc:
        Fixed bug #8616.
        Added JOIN::rollup_write_data to cover rollup queries
        with DISTINCT. Modified other rollup methods.
      sql/sql_select.h:
        Fixed bug #8616.
        Added JOIN::rollup_write_data to cover rollup queries
        with DISTINCT. Modified other rollup methods.
      sql/item.h:
        Fixed bug #8616.
        Added class Item_null_result used in rollup processing.
      mysql-test/t/olap.test:
        Added a test case for bug #8616.
      mysql-test/r/olap.result:
        Added a test case for bug #8616.
      e16535ce
  8. 13 Mar, 2005 1 commit
    • unknown's avatar
      WL#926 "SUM(DISTINCT) and AVG(DISTINCT)": improvement of SUM(DISTINCT) and · 1534ed8e
      unknown authored
       implementation of AVG(DISTINCT) which utilizes the approach with Fields.
      The patch implemented in October is portede to the up-to-date tree 
      containing DECIMAL type.
      Tests for AVG(DISTINCT) (although there is not much to test provided
      that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
      will follow in another changeset.
      
      
      sql/field.cc:
        A handy way to init create_field used for use with virtual tmp tables.
        Feel free to extend it for your own needs.
      sql/field.h:
        Declaration for create_field::init_for_tmp_table()
      sql/item.cc:
        Implementation for a framework used to easily handle different result
        types of SQL expressions. Instead of having instances of each possible 
        result type (integer, decimal, double) in every item, variables
        of all used types are moved to struct Hybrid_type.
        Hybrid_type can change its dynamic type in runtime, and become,
        for instance, DECIMAL from INTEGER.
        All type-specific Item operations are moved to the class hierarchy
        Hybrid_type_traits. Item::decimals and Item::max_length can
        be moved to Hybrid_type as well.
      sql/item.h:
        Declaration for Hybrid_type framework. See also comments for item.cc
        in this changeset.
      sql/item_sum.cc:
        Rewritten implementation for Item_sum_sum_distinct (SUM(DISTINCT))
        and added implementation for Item_sum_avg_distinct (AVG(DISTINCT)).
        The classes utilize Hybrid_type class hierarchy and Fields to
        convert SUM/AVG arguments to binary representation and store in a RB-tree.
      sql/item_sum.h:
        Declarations for Item_sum_distinct (the new intermediate class used
        for SUM and AVG distinct), Item_sum_sum_distinct, Item_sum_avg_distinct.
      sql/sql_select.cc:
        Implementatio of create_virtual_tmp_table().
      sql/sql_select.h:
        Declaration for create_virtual_tmp_table.
      sql/sql_yacc.yy:
        Grammar support for Item_sum_avg_distinct.
      1534ed8e
  9. 01 Mar, 2005 1 commit
    • unknown's avatar
      Fix for Bug#5615 and merge from 4.1 · 53bfeb48
      unknown authored
      
      mysql-test/r/func_group.result:
        Added some tests and fix for Bug#5615.
      mysql-test/r/show_check.result:
        Fix for Bug#5615.
      mysql-test/t/func_group.test:
        Added some tests.
      sql/item_sum.cc:
        Fix for Bug#5615.
      sql/item_sum.h:
        Fix for Bug#5615.
      sql/sql_select.cc:
        Fix for Bug#5615.
      sql/sql_select.h:
        Fix for Bug#5615.
      53bfeb48
  10. 19 Dec, 2004 1 commit
    • unknown's avatar
      Merge with global tree · 06904103
      unknown authored
      Fixed some found bugs in BIT fields
      Added more test cases for BIT fields and varchar
      
      
      include/my_base.h:
        Merge
        Added HA_BIT_PART for easier test in key.cc
      innobase/os/os0proc.c:
        Fixed typo
      myisam/mi_dbug.c:
        Add printing of BIT types when debugging
      mysql-test/r/show_check.result:
        Set 'Avg_row_length' to # as this value is different between 32 and 64 bit machines
      mysql-test/r/type_bit.result:
        More tests
      mysql-test/r/type_varchar.result:
        More tests
      mysql-test/t/show_check.test:
        Set 'Avg_row_length' to # as this value is different between 32 and 64 bit machines
      mysql-test/t/type_bit.test:
        More tests
      mysql-test/t/type_varchar.test:
        More tests
      sql/field.cc:
        Added Field::val_int_as_str() to get better logging of bit fields
        Merged new_key_field with move_field() to fix some problems with bit fields
        Fixed some bugs with bit fields
      sql/field.h:
        Added Field::val_int_as_str() to get better logging of bit fields
        Merged new_key_field with move_field() to fix some problems with bit fields
        Fixed some bugs with bit fields
      sql/ha_myisam.cc:
        Fixed problem with unintialized memory (not critical)
      sql/key.cc:
        Fix so that 'key_cmp_if_same' works with bit fields.
      sql/opt_range.cc:
        Move declarations first in function
        Nice printing of bit fields in debug log
      sql/sql_prepare.cc:
        Fixed old merge error (not critical)
      sql/sql_select.cc:
        Use new interface to new_key_field
      sql/sql_select.h:
        Use new interface to new_key_fields()
        This fixes a bug with BIT fields where the upper bit of the data was not stored in the key buffer
      sql/structs.h:
        Extend key_part_flag to be able to add HA_BIT_PART to it
      sql/table.cc:
        Mark BIT key parts with HA_BIT_PART to make test in key.cc simpler
      06904103
  11. 18 Dec, 2004 1 commit
    • unknown's avatar
      Add 0x before pointers (to help with debugging) · 8eaef91f
      unknown authored
      Add support for VARCHAR with 1 or 2 length bytes
      Enable VARCHAR packing in MyISAM files (previous patch didn't pack data properly)
      Give error if we got problems in temporary tables during a SELECT
      Don't use new table generated by ALTER TABLE if index generation fails
      Fixed wrong call by range_end() (Could cause an ASSERT in debug mode)
      
      
      BUILD/SETUP.sh:
        Add flags for Intel 64
      dbug/dbug.c:
        Add 0x before pointers (to help with debugging)
      heap/_check.c:
        Add 0x before pointers (to help with debugging)
      heap/hp_create.c:
        Add support for VARCHAR with 1 or 2 length bytes
      heap/hp_delete.c:
        Add 0x before pointers
      heap/hp_hash.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Added more debugging
      heap/hp_open.c:
        Add 0x before pointers
      heap/hp_rkey.c:
        Add 0x before pointers
      heap/hp_rrnd.c:
        Add 0x before pointers
      heap/hp_write.c:
        Add 0x before pointers
      include/my_base.h:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/ft_static.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/ft_test1.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Fixed indentation
        (This file should probably be deleted as it doesn't compile)
      myisam/ft_update.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Fixed indentation
        Removed some not needed 'else'
      myisam/mi_check.c:
        Don't give an error for tables packed with myisampack
      myisam/mi_checksum.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_create.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Store in number of pack-length-bytes in keyseg->bit_start
      myisam/mi_dbug.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_dynrec.c:
        Add support for VARCHAR with 1 or 2 length bytes
        (old code in _mi_rec_unpack() didn't really work with VARCHAR's)
      myisam/mi_key.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_open.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_packrec.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_search.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test1.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test3.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test_all.res:
        Update results
      myisam/mi_unique.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/myisampack.c:
        Add support for VARCHAR with 1 or 2 length bytes
      mysql-test/include/varchar.inc:
        Added more tests
      mysql-test/r/bdb.result:
        Update results after new tests
      mysql-test/r/information_schema.result:
        Update results
      mysql-test/r/innodb.result:
        Update results
      mysql-test/r/myisam.result:
        Update results after new tests
      mysql-test/r/ps_1general.result:
        Update results
      mysql-test/t/bdb.test:
        Shorter comments
      mysys/list.c:
        Add 0x before pointers
      mysys/my_handler.c:
        Add support for VARCHAR with 1 or 2 length bytes
      mysys/raid.cc:
        Add 0x before pointers
      sql/field.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/field.h:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/field_conv.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_berkeley.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_heap.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_myisam.cc:
        Ensure that enable_indexes() will report an error if it fails
        Enable VARCHAR packing for MyISAM files
      sql/item_sum.cc:
        Change key_cmp -> cmp() as we are comparing fields, not key segements
      sql/opt_range.cc:
        Add support for VARCHAR with 1 or 2 length bytes
        Change range_end to call ha_index_or_rnd_end() as in some error cases we may be in rnd mode when we abort
      sql/sql_base.cc:
        Remove compiler warning
      sql/sql_parse.cc:
        Move length checking code to sql_table.cc (as we don't have character set for fields at this stage)
      sql/sql_select.cc:
        Add support for VARCHAR with 1 or 2 length bytes
        Ensure that we report an error if we get an error while writing to internal temporary tables
      sql/sql_select.h:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/sql_show.cc:
        Fix typo in comment
      sql/sql_table.cc:
        Don't use new table generated by ALTER TABLE if index generation fails
      vio/vio.c:
        Fixed DBUG info
      vio/viosocket.c:
        Fixed DBUG info
      vio/viossl.c:
        Fixed DBUG info
      vio/viosslfactories.c:
        Fixed DBUG info
      8eaef91f
  12. 24 Nov, 2004 1 commit
  13. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · 435b20aa
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      435b20aa
  14. 20 Oct, 2004 1 commit
    • unknown's avatar
      errors without code removed · 066c9056
      unknown authored
      net_printf/send_error calls replaced by my_error family functions
      -1/1 (sent/unsent) error reporting removed
      (WL#2133)
      
      
      include/mysqld_error.h:
        new errors added.
      mysql-test/r/rpl_charset.result:
        new error
      mysql-test/r/rpl_timezone.result:
        new error
      mysql-test/r/sp-security.result:
        more clean error message
      mysql-test/r/sp.result:
        now error state intercepted correctly
      mysql-test/t/connect.test:
        new error message
      mysql-test/t/rpl_charset.test:
        new error message
      mysql-test/t/rpl_timezone.test:
        new error
      mysql-test/t/sp-security.test:
        more correct error handling
      mysql-test/t/sp.test:
        now error state intercepted correctly
      sql/ha_innodb.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/ha_innodb.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item.cc:
        only boolean values should be returned by fix_fields()
      sql/item_cmpfunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_func.cc:
        only boolean values should be returned by fix_fields()
        net_printf/send_error calls replaced by my_error family functions
      sql/item_row.cc:
        only boolean values should be returned by fix_fields()
      sql/item_subselect.cc:
        only boolean values should be returned by fix_fields()
        -1/1 (sent/unsent) error reporting removed
      sql/item_subselect.h:
        -1/1 (sent/unsent) error reporting removed
      sql/item_sum.cc:
        only boolean values should be returned by fix_fields()
      sql/item_timefunc.cc:
        only boolean values should be returned by fix_fields()
      sql/item_uniq.h:
        only boolean values should be returned by fix_fields()
      sql/mysql_priv.h:
        -1/1 (sent/unsent) error reporting removed
      sql/mysqld.cc:
        net_printf/send_error calls replaced by my_error family functions
        changes in my_message_sql to support error handling correctly
      sql/protocol.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/protocol_cursor.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/repl_failsafe.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/repl_failsafe.h:
        -1/1 (sent/unsent) error reporting removed
      sql/set_var.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/share/czech/errmsg.txt:
        new error messages
      sql/share/danish/errmsg.txt:
        new error messages
      sql/share/dutch/errmsg.txt:
        new error messages
      sql/share/english/errmsg.txt:
        new error messages
      sql/share/estonian/errmsg.txt:
        new error messages
      sql/share/french/errmsg.txt:
        new error messages
      sql/share/german/errmsg.txt:
        new error messages
      sql/share/greek/errmsg.txt:
        new error messages
      sql/share/hungarian/errmsg.txt:
        new error messages
      sql/share/italian/errmsg.txt:
        new error messages
      sql/share/japanese/errmsg.txt:
        new error messages
      sql/share/korean/errmsg.txt:
        new error messages
      sql/share/norwegian-ny/errmsg.txt:
        new error messages
      sql/share/norwegian/errmsg.txt:
        new error messages
      sql/share/polish/errmsg.txt:
        new error messages
      sql/share/portuguese/errmsg.txt:
        new error messages
      sql/share/romanian/errmsg.txt:
        new error messages
      sql/share/russian/errmsg.txt:
        new error messages
      sql/share/serbian/errmsg.txt:
        new error messages
      sql/share/slovak/errmsg.txt:
        new error messages
      sql/share/spanish/errmsg.txt:
        new error messages
      sql/share/swedish/errmsg.txt:
        new error messages
      sql/share/ukrainian/errmsg.txt:
        new error messages
      sql/slave.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/slave.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sp.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_head.cc:
        new eror handling support
        net_printf/send_error calls replaced by my_error family functions
      sql/sp_rcontext.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_acl.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_acl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_base.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_class.h:
        my_messhage_sql now set/reset query_error flag
      sql/sql_db.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_delete.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_do.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_error.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_handler.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_help.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_insert.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_lex.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_load.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_map.cc:
        errors without code removed
      sql/sql_parse.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed from mysql_execute_command
      sql/sql_prepare.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.cc:
        error messages fixed
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_repl.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_select.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_show.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_table.cc:
        net_printf/send_error calls replaced by my_error family functions
        -1/1 (sent/unsent) error reporting removed
      sql/sql_trigger.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_udf.cc:
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_union.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_update.cc:
        -1/1 (sent/unsent) error reporting removed
        net_printf/send_error calls replaced by my_error family functions
      sql/sql_view.cc:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_view.h:
        -1/1 (sent/unsent) error reporting removed
      sql/sql_yacc.yy:
        net_printf/send_error calls replaced by my_error family functions
      066c9056
  15. 19 Oct, 2004 1 commit
    • unknown's avatar
      table.h, sql_select.h: · 05933f13
      unknown authored
        Added the code processing on expressions for applying
        multiple equalities.
      sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      Many files:
        Post-merge fixes for Item_equal patch.
      item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      item.h, item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      
      
      mysql-test/r/func_test.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/index_merge.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/join_nested.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/range.result:
        Post-merge fixes for Item_equal patch.
      sql/item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item.h:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/opt_range.cc:
        Post-merge fixes for Item_equal patch.
      sql/sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      sql/sql_select.h:
        Added the code processing on expressions for applying
        multiple equalities.
      sql/table.h:
        Added the code processing on expressions for applying
        multiple equalities.
      05933f13
  16. 17 Sep, 2004 1 commit
    • unknown's avatar
      Removed wrong warnings in test suite (This was because select_insert /... · e74b00bb
      unknown authored
      Removed wrong warnings in test suite (This was because select_insert / select_create results was not freed.
      Added thd to openfrm() for initialization of TABLE->in_use. This fixed a bug in BDB handling where table->in_use was used early
      
      
      mysql-test/r/key.result:
        Added new tests that shows a bug in warnings hat
      mysql-test/t/key.test:
        Added new tests that shows a bug in warnings hat
      sql/handler.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/item.cc:
        New function to avoid warnings when giving field a value
      sql/item.h:
        New function to avoid warnings when giving field a value
      sql/mysql_priv.h:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/opt_range.cc:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_base.cc:
        Give memroot explicitely to open_unireg_entry() and open_table() (Makes code simpler)
        Ensure that table->in_use is set early
        New arguments for openfrm()
      sql/sql_insert.cc:
        More debugging & comments
      sql/sql_parse.cc:
        Delete results for select_insert and select_create. This fixed a bug that generated warnings in test suite
      sql/sql_select.h:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_table.cc:
        New arguments to open_table() and openfrm()
      sql/table.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
        This fixes some bugs in BDB where table->in_use was used
      e74b00bb
  17. 10 Sep, 2004 1 commit
    • unknown's avatar
      Implementation of the last review comments for WL#1724 · 4f1d7b7d
      unknown authored
      "Min/Max Optimization for Queries with Group By Clause"
      
      
      mysql-test/r/group_min_max.result:
        Added new test
      mysql-test/t/group_min_max.test:
        Added new test & comments
      sql/item.h:
        Remove processor methods that are no longer used.
      sql/item_sum.cc:
        Remove processor methods that are no longer used.
      sql/item_sum.h:
        Remove processor methods that are no longer used.
      sql/opt_range.cc:
        - the test procedure no longer needs to build lists and to traverse the expression trees
        - all usable indexes are tested and the bes one is chosen
        - added/edited function comments
      sql/sql_select.cc:
        Modified make_sum_func_list() so it can be reused in the test for MIN/MAX optimization.
      sql/sql_select.h:
        Modified make_sum_func_list() so it can be reused in the test for MIN/MAX optimization.
      4f1d7b7d
  18. 31 Aug, 2004 1 commit
    • unknown's avatar
      after review patch · 1dc52f07
      unknown authored
      mysql-test/r/negation_elimination.result:
        new tests of negation elimination
      mysql-test/t/negation_elimination.test:
        new tests of negation elimination
      sql/item.h:
        test of boolean functions added
      sql/item_cmpfunc.cc:
        NOT subtree is already checked, so wee need to return just argument
      sql/item_cmpfunc.h:
        test of boolean functions added
      sql/mysql_priv.h:
        'place' to detect WHERE clause
      sql/sql_parse.cc:
        function for creation negated expression
      sql/sql_select.cc:
        removed unused function
      sql/sql_select.h:
        removed unused function
      sql/sql_yacc.yy:
        'place' to detect WHERE clause
      1dc52f07
  19. 27 Aug, 2004 1 commit
    • unknown's avatar
      WL#1724 "Min/Max Optimization for Queries with Group By Clause" · d9450332
      unknown authored
      - after-review changes
      - merged with the source tree from 204-08-27
      
      
      mysql-test/r/distinct.result:
        Different plans due to group-by optimization.
      sql/ha_myisam.cc:
        More general interface to key_copy.
      sql/handler.cc:
        More general interface to key_copy.
      sql/item.cc:
        New method to collect all Item_field objects. Used by Item::walk.
      sql/item.h:
        Several methods to collect different kinds of items from expression trees.
        Used by Item::walk.
      sql/item_sum.cc:
        Added helper to collect Item_sum objects.
      sql/item_sum.h:
        Methods to collect and test Item_sum objects.
      sql/key.cc:
        More general interface to key_copy and key_restore.
      sql/mysql_priv.h:
        More general interface to key_copy and key_restore.
      sql/opt_range.cc:
        Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
      sql/opt_range.h:
        Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
      sql/opt_sum.cc:
        simple_pred is re-used in opt_range.cc
      sql/sql_acl.cc:
        More general interface to key_copy and key_restore.
      sql/sql_handler.cc:
        More general interface to key_copy.
      sql/sql_insert.cc:
        More general interface to key_copy.
      sql/sql_select.cc:
        Changes to hook the new QUICK_GROUP_MIN_MAX_SELECT due to two differences from all other
        quick selects:
        1)
        This quick select may be created (and used) even if there is no WHERE clause.
        Several places assumed that a QUICK_SELECT is constructed only if there is a WHERE clause,
        which had to be changed so that QUICK_GROUP_MIN_MAX can be used.
        2)
        Unlike all other quick selects, this QUICK_GROUP_MIN_MAX_SELECT operates for GROUP BY queries.
        Since for the caller the quick select already produces one result tuple per group, there is
        no need to call end_send_group, instead we have to call end_send as for a regular quick select.
      sql/sql_select.h:
        simple_pred is re-used in opt_range.cc
      d9450332
  20. 03 Aug, 2004 1 commit
    • unknown's avatar
      Port of cursors to be pushed into 5.0 tree: · eaf34dd8
      unknown authored
      - client side part is simple and may be considered stable
      - server side part now just joggles with THD state to save execution
        state and has no additional locking wisdom.
        Lot's of it are to be rewritten.
      
      
      include/mysql.h:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - new statement attribute STMT_ATTR_CURSOR_TYPE
        - MYSQL_STMT::flags to store statement cursor type
        - MYSQL_STMT::server_status to store server status (i. e. if the server
        was able to open a cursor for this query).
      include/mysql_com.h:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - new COMmand, COM_FETCH, to fetch K rows from read-only cursor.
          By design should support scrollable cursors as well.
        - a few new server statuses:
          SERVER_STATUS_CURSOR_EXISTS is sent by server in reply to COM_EXECUTE,
          when cursor was successfully opened for this query
          SERVER_STATUS_LAST_ROW_SENT is sent along with the last row to prevent one
          more round trip just for finding out that all rows were fetched from 
          this cursor (this is server mem savier also).
        - and finally, all possible values of STMT_ATTR_CURSOR_TYPE, 
          while now we support only CURSORT_TYPE_NO_CURSOR and 
          CURSOR_TYPE_READ_ONLY
      libmysql/libmysql.c:
        Cursor patch to push into the main tree, client library part (considered 
        stable):
        - simple additions to mysql_stmt_fetch implementation to read data 
          from an opened cursor: we can read up to iteration count rows per
          one request; read rows are buffered in the same way as rows of
          mysql_stmt_store_result.
        - now send stmt->flags to server to let him now if we wish to have 
          a cursor for this statement.
        - support for setting/getting statement cursor type.
      libmysqld/examples/Makefile.am:
        Testing cursors was originally implemented in C++. Now when these tests
        go into client_test, it's time to convert it to C++ as well.
      libmysqld/lib_sql.cc:
        - cleanup: send_fields flags are now named.
      sql/ha_innodb.cc:
        - cleanup: send_fields flags are now named.
      sql/mysql_priv.h:
        - cursors support: declaration for server-side handler of COM_FETCH
      sql/protocol.cc:
        - cleanup: send_fields flags are now named.
        - we can't anymore assert that field_types[field_pos] is sensible:
          if we have COM_EXCUTE(stmt1), COM_EXECUTE(stmt2), COM_FETCH(stmt1)
          field_types[field_pos] will point to fields of stmt2.
      sql/protocol.h:
        - cleanup: send_fields flag_s_ are now named.
      sql/protocol_cursor.cc:
        - cleanup: send_fields flags are now named.
      sql/repl_failsafe.cc:
        - cleanup: send_fields flags are now named.
      sql/slave.cc:
        - cleanup: send_fields flags are now named.
      sql/sp.cc:
        - cleanup: send_fields flags are now named.
      sql/sp_head.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_acl.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_class.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_class.h:
        - cleanup: send_fields flags are now named.
      sql/sql_error.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_handler.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_help.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_parse.cc:
        Server side support for cursors:
        - handle COM_FETCH
        - enforce assumption that whenever we free thd->free_list, 
          we reset it to zero. This way it's much easier to handle free_list
          in prepared statements implementation.
      sql/sql_prepare.cc:
        Server side support for cursors:
        - implementation of mysql_stmt_fetch (fetch some rows from open cursor).
        - management of cursors memory is quite tricky now.
        - execute_stmt can't be reused anymore in mysql_stmt_execute and 
          mysql_sql_stmt_execute
      sql/sql_repl.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_select.cc:
        Server side support for cursors:
        - implementation of Cursor::open, Cursor::fetch (buggy when it comes to
          non-equi joins), cursor cleanups.
        - -4 -3 -0 constants indicating return value of sub_select and end_send are
          to be renamed to something more readable:
          it turned out to be not so simple, so it should come with the other patch.
      sql/sql_select.h:
        Server side support for cursors:
        - declaration of Cursor class.
        - JOIN::fetch_limit contains runtime value of rows fetched via cursor.
      sql/sql_show.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_table.cc:
        - cleanup: send_fields flags are now named.
      sql/sql_union.cc:
        - if there was a cursor, don't cleanup unit: we'll need it to fetch
          the rest of the rows.
      tests/Makefile.am:
        Now client_test is in C++.
      tests/client_test.cc:
        A few elementary tests for cursors.
      BitKeeper/etc/ignore:
        Added libmysqld/examples/client_test.cc to the ignore list
      eaf34dd8
  21. 11 Jun, 2004 1 commit
    • unknown's avatar
      join_nested.test, join_nested.result: · cd23d6e3
      unknown authored
        new file
      Many files:
        Nested joins added.
      
      
      sql/item_cmpfunc.h:
        Nested joins added.
      sql/item_func.h:
        Nested joins added.
      sql/sql_base.cc:
        Nested joins added.
      sql/sql_lex.cc:
        Nested joins added.
      sql/sql_lex.h:
        Nested joins added.
      sql/sql_parse.cc:
        Nested joins added.
      sql/sql_select.cc:
        Nested joins added.
      sql/sql_select.h:
        Nested joins added.
      sql/sql_yacc.yy:
        Nested joins added.
      sql/table.h:
        Nested joins added.
      mysql-test/r/join_outer.result:
        Nested joins added.
      mysql-test/r/select.result:
        Nested joins added.
      cd23d6e3
  22. 12 May, 2004 1 commit
    • unknown's avatar
      This is first cset for WL#1394 "Optimize index merge when all involved index... · 3600d09a
      unknown authored
      This is first cset for WL#1394 "Optimize index merge when all involved index ranges include only values with equal keys"
      The main idea is to exploit the fact that key scans for "key=const" return ordered sequences of rowids.
      
      
      include/my_base.h:
        Added HA_EXTRA_KEYREAD_PRESERVE_FIELDS flag
      include/my_bitmap.h:
        Added a couple of utility functions
      include/my_sys.h:
        Added my_conunt_bits_ushort function
      innobase/include/row0mysql.h:
        Added support for HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      innobase/row/row0sel.c:
        Added support for HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      mysys/my_bit.c:
        Added my_count_bits_ushort function
      mysys/my_bitmap.c:
        Added a couple of utility functions
      sql/ha_berkeley.cc:
        Added cmp_ref rowid comparison function.
      sql/ha_berkeley.h:
        Added cmp_ref rowid comparison function.
      sql/ha_heap.h:
        Added cmp_ref rowid comparison function.
      sql/ha_innodb.cc:
        Added cmp_ref rowid comparison function and support from HA_EXTRA_KEYREAD_PRESERVE_FIELDS
      sql/ha_innodb.h:
        Added cmp_ref rowid comparison function.
      sql/handler.h:
        Added cmp_ref rowid comparison function.
      sql/opt_range.cc:
        Added QUICK_ROR_{INTERSECT,UNION}_SELECT classes and related optimizer code
      sql/opt_range.h:
        Added QUICK_ROR_{INTERSECT,UNION}_SELECT classes
      sql/sql_delete.cc:
        Changed to use new ROWID comparison function
        also always call quick->reset() for quick selects
      sql/sql_select.cc:
        Account for new quick select types
      sql/sql_select.h:
        New, proper rowid ordering/comparison function to be used with Unique class etc.
      sql/sql_test.cc:
        Account for new quick select types
      sql/sql_update.cc:
        Account for new quick select types
      3600d09a
  23. 11 May, 2004 1 commit
  24. 07 May, 2004 1 commit
    • unknown's avatar
      keep old engine & JOIN if we changed subquery Item (Bug #3646) · e54ca13b
      unknown authored
      mysql-test/r/subselect.result:
        ALL/ANY test
      mysql-test/t/subselect.test:
        ALL/ANY test
      sql/item_subselect.cc:
        keep old engine & JOIN if we changed subquery Item, which allow avoid second all SELECT items fix_fields call with pervios clean up (because of second setup_tables which remove table->key_use and maybe something else)
        keep list when we change Item in SELECT list
        processing inserted max/min function (now JOIN::prepare will be called only once)
        methods of changing item for subselect engines
      sql/item_subselect.h:
        change item & results procedure
      sql/item_sum.cc:
        Item_sum_hybrid::clear moved to .cc file (to keep .h clean and to make inserving/removing debug info easy)
      sql/item_sum.h:
        Item_sum_hybrid::clear moved to .cc file (to keep .h clean and to make inserving/removing debug info easy)
      sql/sql_lex.cc:
        note about new method
      sql/sql_lex.h:
        method for changing result of UNION JOINs
      sql/sql_select.cc:
        method for changing result in JOIN
      sql/sql_select.h:
        method for changing result in JOIN
      sql/sql_union.cc:
        method for changing result in JOIN
      e54ca13b
  25. 04 May, 2004 1 commit
  26. 16 Apr, 2004 1 commit
    • unknown's avatar
      Implementation of WL#1469 (Greedy algorithm to search for an optimal execution plan). · 4c56ede4
      unknown authored
      mysql-test/r/subselect.result:
        Table pre-sorting before optimization makes the optimizer select a different plan, this change fixes the plan.
      sql/mysql_priv.h:
        Added new status variable last_query_cost that contains the cost of the last compiled query.
      sql/mysqld.cc:
        * Added new system variable 'plan_search_depth' to control the exhaustiveness of the search for an optimal query plan.
        * Added new system variable 'heuristic' to control the use of query optimization heuristic.
        * Added new status variable 'last_query_cost' that contains the cost of the last compiled query.
      sql/set_var.cc:
        * Added new system variable 'plan_search_depth' to control the exhaustiveness of the search for an optimal query plan.
        * Added new system variable 'heuristic' to control the use of query optimization heuristic.
      sql/sql_class.h:
        * Added new system variable 'plan_search_depth' to control the exhaustiveness of the search for an optimal query plan.
        * Added new system variable 'heuristic' to control the use of query optimization heuristic.
      sql/sql_select.cc:
        Added a combined greedy/exhaustive query optimization algorithm.
        * The greedy search algorithm is implemented in function 'greedy_search'.
        * The exhaustive search with controlled search depth is implemented in function 'find_best_limited_depth', a modification of 'find_best'.
        * The selection of the best access path and its cost computation is factored out from 'find_best' into function 'best_access_path'.
        * In addition:
          - added pre-sorting for the query tables before they get optimized
          - factored out the optimization of STRAIGHT_JOIN into a separate procedure
      sql/sql_select.h:
        Added new field to st_position to support the greedy optimizer.
        Added a comment to class JOIN.
      sql/sql_show.cc:
        Added a case to 'mysqld_show' to print double status variables.
      sql/structs.h:
        Added a new type of status variables SHOW_DOUBLE
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      4c56ede4
  27. 17 Mar, 2004 1 commit
    • unknown's avatar
      DBUG_ASSERT(fixed == 0) added to fix_fields() · f83cf414
      unknown authored
      sql/item.cc:
        layout fixed
        fixed bug in prepared statements with subqueries and outer references
      sql/item.h:
        neg_transformer get thd argument to call fix_fields
      sql/item_cmpfunc.cc:
        DBUG_ASSERT(fixed == 0) added to fix_fields()
        fixed Item_in_optimizer fixed flag
        neg_arguments(), neg_transformer() call fix_field() on created items to avoid bouble fix field or non-called fixfields()
      sql/item_cmpfunc.h:
        neg_transformer get thd argument to call fix_fields
        fixed forgoten cleanup() call of parent class
      sql/item_func.cc:
        DBUG_ASSERT(fixed == 0) and fixed flag check added to fix_fields()
      sql/item_func.h:
        DBUG_ASSERT(fixed == 0) added to fix_fields()
        fixed forgoten cleanup() call of parent class
      sql/item_row.cc:
        DBUG_ASSERT(fixed == 0) added to fix_fields()
        added forgoten 'fixed' flag set
      sql/item_subselect.cc:
        DBUG_ASSERT(fixed == 0) added to fix_fields()
        fixed subquery transformation
      sql/sql_base.cc:
        check of fixed flag added
      sql/sql_derived.cc:
        fixed cleunup union in derived table during EXPLAIN command processing
      sql/sql_select.cc:
        thd argument add to function to allow call fix_fields() of new created items
        fixed EXPLAIN double preparation
        check of fixed flag added
        eliminate_not_funcs fixed for corrcet fix_fields call of new created items
      sql/sql_select.h:
        thd argument add to function to allow call fix_fields() of new created items
      sql/sql_union.cc:
        union processing fixed
      tests/client_test.c:
        layout fixed
        new test of outer references fron subqueries
      f83cf414
  28. 10 Feb, 2004 1 commit
    • unknown's avatar
      after merge & valgrind test fixes (BUG#2120) · ecb11989
      unknown authored
      sql/sql_derived.cc:
        memory leack fixed
      sql/sql_lex.cc:
        flag to avoid double cleaning
      sql/sql_lex.h:
        flag to avoid double cleaning
      sql/sql_select.cc:
        right way to cleanup JOIN_TAB
      sql/sql_select.h:
        right way to cleanup JOIN_TAB
      sql/sql_union.cc:
        flag to avoid double cleaning
      ecb11989
  29. 01 Feb, 2004 1 commit
    • unknown's avatar
      now all tables of query are locked in one place (including derived tables) · 68c0a299
      unknown authored
      fixed BUG#2120 and other problem with EXPLAINing derived tables
      
      
      mysql-test/r/derived.result:
        correct tables names & Co in derived tables
        test case for BUG#2120
      mysql-test/t/derived.test:
        test case for BUG#2120
      sql/mysql_priv.h:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/repl_failsafe.cc:
        correct initialization of TABLE_LIST
      sql/sql_acl.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_base.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_delete.cc:
        all tables processing is done during opening
      sql/sql_derived.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables) to sutisfy "all query tables locking" at the moment
      sql/sql_insert.cc:
        all tables processing is done during opening
        correct initialization of TABLE_LIST
      sql/sql_lex.cc:
        now table list will be created for whole query
        layout fix
        correct check of updated table in subqueries
      sql/sql_lex.h:
        now table list will be created for whole query
        correct check of updated table in subqueries
      sql/sql_olap.cc:
        THIS FUNCTION IS USED NOWHERE
        it will be good to remove it at all (handle_olaps)
      sql/sql_parse.cc:
        derived tables processing moved after open/locking all tables (in open_and_lock_tables)
      sql/sql_prepare.cc:
        new creating list parameters
        all tables processing is done during opening
      sql/sql_select.cc:
        all tables processing is done during opening
      sql/sql_select.h:
        now it used only within file where is defined
      sql/sql_udf.cc:
        used simple table opening without derived table processing to avoid unneeded initialization of SELECT_LEX
      sql/sql_update.cc:
        all tables processing is done during opening
      68c0a299
  30. 31 Jan, 2004 1 commit
    • unknown's avatar
      fix for the bug #2419: order by ignores rows. · abc17f8f
      unknown authored
      null_ref_key moved to TABLE_REF.
      new null range created if necessary.
      
      
      mysql-test/r/order_by.result:
        fix for the bug #2419: order by ignores rows
      mysql-test/t/order_by.test:
        fix for the bug #2419: order by ignores rows
      sql/item_subselect.cc:
        fix for the bug #2419: order by ignores rows
      sql/opt_range.cc:
        fix for the bug #2419: order by ignores rows
      sql/sql_select.cc:
        fix for the bug #2419: order by ignores rows
      sql/sql_select.h:
        fix for the bug #2419: order by ignores rows
      abc17f8f
  31. 28 Nov, 2003 1 commit
    • unknown's avatar
      Added missing SSL library (Should be in source distribution) · 76bf7d22
      unknown authored
      Fixed compiler warnings (a lot of hidden variables detected by the Forte compiler)
      Added a lot of 'version_xxx' strings to 'show variables'
      Prevent copying of TMP_TABLE_PARAM (This caused core dump bug on Solaris)
      Fixed problem with printing sub selects to debug log
      
      
      Docs/mysqld_error.txt:
        Updated error messages
      Makefile.am:
        Added missing SSL library (Should be in source distribution)
      configure.in:
        Added missing SSL library
      include/sql_common.h:
        Move duplicated prototypes
      innobase/os/os0file.c:
        Added comment for line that could be removed
      innobase/srv/srv0srv.c:
        Added comment for line that could be removed
      innobase/srv/srv0start.c:
        Added comment for line that could be removed
      innobase/trx/trx0sys.c:
        Added cast to remove compiler warning
      isam/isamchk.c:
        Fixed compiler warning
      libmysql/conf_to_src.c:
        Include files in proper order
      myisam/mi_check.c:
        Removed else part that caused compiler warning
      myisam/mi_delete.c:
        Added cast
      myisam/mi_page.c:
        Added cast
      myisam/mi_preload.c:
        Added cast
      myisam/mi_write.c:
        Added cast
      myisam/myisampack.c:
        changed 'byte' to 'current_byte' to avoid compiler warnings
      mysql-test/mysql-test-run.sh:
        Removed start-from as test '<' is not portable and this can easily be done from command line
      mysys/hash.c:
        Added cast
      mysys/mf_wcomp.c:
        Removed not reached line
      mysys/my_append.c:
        Fixed include file order to get this more portable
      mysys/my_copy.c:
        Fixed include file order to get this more portable
      mysys/my_redel.c:
        Fixed include file order to get this more portable
      sql-common/client.c:
        More DBUG_PRINT
      sql-common/pack.c:
        Added casts becasue Fortre compiler apparently compares (ulonglong) < (longlong) as signed
      sql/ha_heap.cc:
        Changed variable names to not cause hidden variables
      sql/ha_innodb.cc:
        Changed variable names to not cause hidden variables
      sql/item.cc:
        Changed variable names to not cause hidden variables
      sql/item.h:
        Changed variable names to not cause hidden variables
      sql/item_cmpfunc.h:
        Changed variable names to not cause hidden variables
      sql/item_func.cc:
        Changed variable names to not cause hidden variables
      sql/item_subselect.cc:
        Changed variable names to not cause hidden variables
      sql/item_subselect.h:
        Changed variable names to not cause hidden variables
      sql/item_sum.cc:
        Changed variable names to not cause hidden variables
      sql/item_timefunc.cc:
        Changed variable names to not cause hidden variables
      sql/log.cc:
        Changed variable names to not cause hidden variables
      sql/protocol.cc:
        Changed variable names to not cause hidden variables
      sql/protocol.h:
        Changed variable names to not cause hidden variables
        Remove function not declared in protocol.cc
      sql/protocol_cursor.cc:
        Changed variable names to not cause hidden variables
      sql/set_var.cc:
        Added a lot of 'version_xxx' strings
        Changed 'bdb_version' to 'version_bdb'
      sql/sql_class.cc:
        Changed variable names to not cause hidden variables
        Add TMP_TABLE_PARAM::init() to allow one to initialize structure several times
      sql/sql_class.h:
        Prevent copying of TMP_TABLE_PARAM (This caused core dump bug on Solaris)
      sql/sql_derived.cc:
        Avoid copying TMP_TABLE_PARAM (Use class version instead)
      sql/sql_error.cc:
        More DBUG
      sql/sql_help.cc:
        Fixed compiler warning
      sql/sql_lex.cc:
        Changed variable names to not cause hidden variables
      sql/sql_list.h:
        Changed variable names to not cause hidden variables
      sql/sql_parse.cc:
        Changed variable names to not cause hidden variables
      sql/sql_select.cc:
        Changed variable names to not cause hidden variables
        Ensure that you don't send NULL to printf() for %s
        Fixed problem with printing sub selects to debug log
      sql/sql_select.h:
        Changed variable names to not cause hidden variables
      sql/sql_union.cc:
        Changed variable names to not cause hidden variables
        Don't use local copy of TMP_TABLE_PARAM (Caused core dump on Solaris)
      sql/sql_update.cc:
        Indentation cleanup
      sql/sql_yacc.yy:
        Remove warning
      strings/conf_to_src.c:
        Fixed include file order
      76bf7d22
  32. 27 Nov, 2003 1 commit
    • unknown's avatar
      This ChangeSet Introdices Item_equal. · da566c16
      unknown authored
      The objects of this class represent multiple conjunctive equalities
      in where conditions: =(f1,f2,...fn) <=> f1=f2 and f2= ... and =fn.
      The objects are used to generate new possibale paths to access
      the tables when executing a query.
      They are also used to optimize the execution plan 
      chosen by the optimizer for the query.  
      
      
      sql/item.cc:
        Introduced Item_equal
      sql/item.h:
        Introduced Item_equal.
        Added traverse method.
      sql/item_cmpfunc.cc:
        Introduced Item_equal.
        Added traverse mehtod.
      sql/item_cmpfunc.h:
        Itroduced Item_equal and Item_equal_iterator.
      sql/item_func.cc:
        Added traverse method.
        Introduced Item_equal.
      sql/item_func.h:
        Introduced Item_equal.
        Added traverse method.
      sql/item_row.cc:
        Added traverse method.
      sql/item_row.h:
        Added traverse method.
      sql/item_strfunc.h:
        Added traverse method.
      sql/opt_range.cc:
        Used Item_equal in range analysis.
      sql/opt_sum.cc:
        Introduced Item_equal.
      sql/sql_list.h:
        Added concat and disjoin methods to lists.
        Fixed remove method for lists.
      sql/sql_select.cc:
        Introdiced Item_equal:
          created Item_equal;
          used Item_equal objects to generate new paths to access tables.
          used Item_equal objects to optimize the execution plan chosen by optimizer.
      sql/sql_select.h:
        Introduced Item_equal.
      da566c16
  33. 23 Nov, 2003 1 commit
    • unknown's avatar
      Fixed UNION fields type/length detecting · 3e21b667
      unknown authored
      mysql-test/r/union.result:
        new results with max union field length detecting
        type conversion tests
      mysql-test/t/union.test:
        type conversion tests
      sql/field.h:
        field converion support
      sql/item.cc:
        fixed printing field of internal temporary table of SELECT (reference from HAVING clause)
        layout fix
        new item for storing field type
      sql/item.h:
        new item for storing field type
      sql/item_subselect.cc:
        new subquery item length/dec detecting
      sql/mysql_priv.h:
        we do not need pre-inited tables and fields
      sql/sql_base.cc:
        we do not need double fix_fielding
      sql/sql_class.h:
        we do not need double fix_fielding
      sql/sql_derived.cc:
        preparing moved before temporary table creation
      sql/sql_lex.h:
        we do not need pre-inited tables and fields
        new lists to store fields types and fields of temporary table
      sql/sql_parse.cc:
        we do not need pre-inited tables and fields
      sql/sql_prepare.cc:
        we do not need pre-inited tables and fields
      sql/sql_select.cc:
        we do not need pre-inited tables and fields
        support mysql_select call from derived tables after it preparing (in derived table routing)
        support of crreating temporary table fields from Item_type_holder
      sql/sql_select.h:
        we do not need pre-inited tables and fields
      sql/sql_union.cc:
        we do not need pre-inited tables and fields
        check of columns number in union moved to prepare()
        prepering of SELECTS moved before temporary table creation, fixed union columns type/length detecting
      sql/sql_update.cc:
        we do not need pre-inited tables and fields
      3e21b667
  34. 21 Nov, 2003 1 commit
  35. 20 Nov, 2003 1 commit
    • unknown's avatar
      Update VC++ files · 3ca0fa15
      unknown authored
      Portability fixes
      After merge fixes
      
      
      VC++Files/mysql.dsw:
        Added dependencys
      VC++Files/mysys/mysys.dsp:
        Add missing files
      client/mysqlcheck.c:
        Added comment
      client/mysqltest.c:
        Remove not used variables
      include/keycache.h:
        Removed not used element
      include/m_ctype.h:
        Portability fix
      include/my_base.h:
        Removed not used define
      myisam/mi_keycache.c:
        Added mutex for extra safety
      mysql-test/r/count_distinct3.result:
        Faster test
      mysql-test/r/rpl_change_master.result:
        updated results
      mysql-test/t/count_distinct3.test:
        Faster test
      mysql-test/t/rpl_change_master.test:
        Make test repeatable
      mysys/default.c:
        Remove compiler warning
      mysys/mf_keycache.c:
        Removed not used 'action' element
      mysys/my_getopt.c:
        Remove not used variable
      sql/ha_myisam.cc:
        Remove compiler warning
      sql/item.cc:
        Fixed wrong patch from last changeset
      sql/item_timefunc.cc:
        Remove compiler warnings
      sql/set_var.cc:
        Remove compiler warnings
      sql/sql_prepare.cc:
        Remove not used variables
      sql/sql_repl.cc:
        After merge fix
      sql/sql_select.h:
        Added comments
      sql/sql_table.cc:
        Remove not used define
      strings/ctype-tis620.c:
        Remove not used variables
      3ca0fa15
  36. 18 Nov, 2003 1 commit
    • unknown's avatar
      index_merge implementation using Unique class, to be merged into 5.0 · a1e9e67e
      unknown authored
      sql/filesort.cc:
        index_merge implementation using Unique class
      sql/opt_ft.cc:
        index_merge implementation using Unique class
      sql/opt_ft.h:
        index_merge implementation using Unique class
      sql/opt_range.cc:
        index_merge implementation using Unique class
      sql/opt_range.h:
        index_merge implementation using Unique class
      sql/records.cc:
        index_merge implementation using Unique class
      sql/sql_class.cc:
        index_merge implementation using Unique class
      sql/sql_list.h:
        index_merge implementation using Unique class
      sql/sql_select.cc:
        index_merge implementation using Unique class
      sql/sql_select.h:
        index_merge implementation using Unique class
      sql/sql_test.cc:
        index_merge implementation using Unique class
      sql/sql_union.cc:
        index_merge implementation using Unique class
      sql/sql_update.cc:
        index_merge implementation using Unique class
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      a1e9e67e
  37. 13 Nov, 2003 1 commit
  38. 02 Nov, 2003 1 commit
    • unknown's avatar
      join_free now is method of JOIN and commented · 1e1d7b17
      unknown authored
      dependence should mean uncacheability
      
      
      sql/item_subselect.cc:
        dependence should mean uncacheability
      sql/sql_lex.cc:
        dependence should mean uncacheability
      sql/sql_select.cc:
        join_free now is method of JOIN and commented
      sql/sql_select.h:
        join_free now is method of JOIN
      1e1d7b17
  39. 31 Oct, 2003 1 commit
  40. 16 Oct, 2003 1 commit
    • unknown's avatar
      subqueries made printable · 724a6c3c
      unknown authored
      new EXPLAIN parameter to show real query as it was interpreted
      (SCRUM) (WL#1274)
      
      
      mysql-test/r/subselect.result:
        new explains
      mysql-test/r/union.result:
        new explains
      mysql-test/t/subselect.test:
        new explains
      mysql-test/t/union.test:
        new explains
      sql/item.cc:
        fixed printability of Items in SELECT list
      sql/item.h:
        fixed printability of Items in SELECT list
      sql/item_cmpfunc.cc:
        fixed print()
      sql/item_cmpfunc.h:
        fixed print()
      sql/item_subselect.cc:
        subqueries made printable
      sql/item_subselect.h:
        subqueries made printable
      sql/mysql_priv.h:
        union option made looks like options
      sql/sql_derived.cc:
        now this link is used
      sql/sql_lex.cc:
        subqueries made printable
      sql/sql_lex.h:
        subqueries made printable
        new EXPLAIN parameter support
      sql/sql_parse.cc:
        new EXPLAIN parameter
      sql/sql_select.cc:
        debug output
        new EXPLAIN parameter support
      sql/sql_select.h:
        new EXPLAIN parameter support
      sql/sql_yacc.yy:
        new EXPLAIN parameter support
        SELECT printability support
      724a6c3c