1. 09 Jul, 2005 1 commit
    • unknown's avatar
      Enable support of access to tables from triggers. Thus fix bug #8406 "Triggers · f64f74cb
      unknown authored
      crash if referencing a table" and several other related bugs.
      Fix for bug #11834 "Re-execution of prepared statement with dropped function
      crashes server." which was spotted during work on previous bugs.
      
      Also couple of nice cleanups:
      - Replaced two separate hashes for stored routines used by statement with one.
      - Now instead of doing one pass through all routines used in statement for
        caching them and then doing another pass for adding their tables to table
        list, we do only one pass during which do both things.
      
      
      mysql-test/r/sp-error.result:
        Added test for bug #11834 "Re-execution of prepared statement with dropped
        function crashes server" also covering handling of prepared statements
        which use stored functions but does not require prelocking.
      mysql-test/r/sp.result:
        Updated test for LOCK TABLES with views in table list.
        (Old version of statement used in this test will work ok now, since prelocking
         algorithm was tuned and will lock only one multi-set of tables for each routine
         even if this routine is used in several different views).
      mysql-test/r/trigger.result:
        Added several tests for triggers using tables.
      mysql-test/t/sp-error.test:
        Added test for bug #11834 "Re-execution of prepared statement with dropped
        function crashes server" also covering handling of prepared statements
        which use stored functions but does not require prelocking.
      mysql-test/t/sp.test:
        Updated comment about recursive views to reflect current situation.
        Updated test for LOCK TABLES with views in table list.
        (Old version of statement used in this test will work ok now, since prelocking
         algorithm was tuned and will lock only one multi-set of tables for each routine
         even if this routine is used in several different views).
      mysql-test/t/trigger.test:
        Added several tests for triggers using tables.
      sql/item_func.cc:
        Item_func_sp::cleanup():
          By next statement execution stored function can be dropped or altered so
          we can't assume that sp_head object for it will be still valid.
      sql/sp.cc:
        - Added Sroutine_hash_entry structure that represents element in the set of
          stored routines used by statement or routine. We can't as before use
          LEX_STRING for this purprose because we want link all elements of this set
          in list.
        - Replaced sp_add_to_hash() with sp_add_used_routine() which takes into account
          that now we use one hash for stored routines used by statement instead of two
          and which mantains list linking all elelemnts in this hash.
        - Renamed sp_merge_hash() to sp_update_sp_used_routines().
        - Introduced sp_update_stmt_used_routines() for adding elements to the set of
          routines used by statement from another similar set for statement or routine.
          This function will also mantain list linking elements of destination set.
        - Now instead of one sp_cache_routines() function we have family of 
          sp_cache_routines_and_add_tables() functions which are also responsible for
          adding tables used by routines being cached to statement table list. Nice
          optimization - thanks to list linking all elements in the hash of routines
          used by statement we don't need to perform several iterations over this hash
          (as it was before in cases when we have added new elements to it).
      sql/sp.h:
        Added declarations of functions used for manipulations with set (hash) of stored
        routines used by statement.
      sql/sp_head.cc:
        sp_name::init_qname():
          Now sp_name also holds key identifying routine in the set (hash) of
          stored routines used by statement. 
        sp_head:
          Instead of two separate hashes sp_funs/m_spprocs representing sets of stored
          routines used by this routine we use one hash - m_sroutines. 
        sp_instr_set_trigger_field:
          Added support for subqueries in assignments to row accessors in triggers.
        Removed definition of sp_add_sp_tables_to_table_list() and auxilary functions 
        since now we don't have separate stage on which we add tables used by routines
        used by statement to table list for prelocking. We do it on the same stage as
        we load those routines in SP cache. So all this functionality moved to
        sp_cache_routines_and_add_tables() family of functions.
      sql/sp_head.h:
        sp_name:
          Now this class also holds key identifying routine in the set (hash) of stored
          routines used by statement. 
        sp_head:
          Instead of two separate hashes sp_funs/m_spprocs representing sets of stored
          routines used by this routine we use one hash - m_sroutines. 
        sp_instr_set_trigger_field:
          Added support for subqueries in assignments to row accessors in triggers.
        Removed declaration of sp_add_sp_tables_to_table_list() since now we don't have
        separate stage on which we add tables used by routines used by statement to
        table list for prelocking. We do it on the same stage as we load those routines
        in SP cache.
      sql/sql_base.cc:
        open_tables():
        - LEX::spfuns/spprocs hashes were replaced with one LEX::sroutines hash.
        - Now instead of doing one pass through all routines used in statement for
          caching them and then doing another pass for adding their tables to table
          list, we do only one pass during which do both things. It is easy to do
          since all routines in the set of routines used by statement are linked in
          the list. This also allows us to calculate table list for prelocking more
          precisely.
        - Now triggers properly inform prelocking algorithm about tables they use.
      sql/sql_lex.cc:
        lex_start():
          Replaced LEX::spfuns/spprocs with with one LEX::sroutines hash.
          Added LEX::sroutines_list list linking all elements in this hash.
        st_lex::st_lex():
          Moved definition of LEX constructor to sql_lex.cc file to be able
          use sp_sroutine_key declaration from sp.h in it.
      sql/sql_lex.h:
        LEX:
          Replaced two separate hashes for stored routines used by statement with one.
          Added list linking all elements in this hash to be able to iterate through all
          elements and add new elements to this hash at the same time.
          Moved constructor definition to sql_lex.cc.
      sql/sql_parse.cc:
        mysql_execute_command():
          Replaced LEX::spfuns/spprocs with one LEX::sroutines hash.
      sql/sql_trigger.cc:
        Added missing GNU GPL notice.
        Table_triggers_list::check_n_load()
          Added initialization of sroutines_key which stores key representing
          triggers of this table in the set (hash) of routines used by this statement.
      sql/sql_trigger.h:
        Added missing GNU GPL notice.
        Table_triggers_list:
          Added sroutines_key member to store key representing triggers of this
          table in the set (hash) of routines used by this statement.
          Declared sp_cache_routines_and_add_tables_for_triggers() as friend since
          it needs access to sroutines_key and trigger bodies.
      sql/sql_yacc.yy:
        - Now we use sp_add_used_routine() instead of sp_add_to_hash() for adding
          elements to the set of stored routines used in statement.
        - Enabled support of subqueries as right sides in assignments to triggers' row
          accessors.
      f64f74cb
  2. 16 Jun, 2005 1 commit
  3. 15 Jun, 2005 24 commits
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · ee400291
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0
      
      ee400291
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · 203b64f3
      unknown authored
      into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0
      
      203b64f3
    • unknown's avatar
      Manual merge · 6ea5a77c
      unknown authored
      
      sql/field.cc:
        Auto merged
      6ea5a77c
    • unknown's avatar
      cast.result, cast.test: · ec489073
      unknown authored
        Added test case for bug #11283.
      field.h, field.cc:
        Fixed bug #11283: wrong conversion from varchar to decimal.
        Added methods Field_string::val_decimal,
        Field_varstring::val_decimal, Field_blob::val_decimal.
        They are not inherited from the base class Field_longstr
        anymore.
      
      
      sql/field.cc:
        Fixed bug #11283: wrong conversion from varchar to decimal.
        Added methods Field_string::val_decimal,
        Field_varstring::val_decimal, Field_blob::val_decimal.
        They are not inherited from the base class Field_longstr
        anymore.
      sql/field.h:
        Fixed bug #11283: wrong conversion from varchar to decimal.
        Added methods Field_string::val_decimal,
        Field_varstring::val_decimal, Field_blob::val_decimal.
        They are not inherited from the base class Field_longstr
        anymore.
      mysql-test/t/cast.test:
        Added test case for bug #11283.
      mysql-test/r/cast.result:
        Added test case for bug #11283.
      ec489073
    • unknown's avatar
      Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0 · 3d0d6cee
      unknown authored
      into deer.(none):/home/hf/work/mysql-5.0.10632
      
      
      strings/decimal.c:
        Auto merged
      3d0d6cee
    • unknown's avatar
      Fix for bug #10632 (CEILING returns wrong result) · 19cd85dd
      unknown authored
      
      mysql-test/r/func_math.result:
        test result fixed
      mysql-test/t/func_math.test:
        test case added
      strings/decimal.c:
        handling of round_digit changed - we have to check all the digits after
        the point if round_digit is 0
      19cd85dd
    • unknown's avatar
      Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0 · ba36aabc
      unknown authored
      into deer.(none):/home/hf/work/mysql-5.0.10337
      
      
      strings/decimal.c:
        Auto merged
      ba36aabc
    • unknown's avatar
      Fix for bug #10337 (cast(NULL DECIMAL) crashes the server) · 2d30c8fd
      unknown authored
      
      mysql-test/r/cast.result:
        test result fixed
      mysql-test/t/cast.test:
        test case added
      sql/item_func.cc:
        checks for NULL added
      strings/decimal.c:
        we need to return specified 'scale' for the rounded decimal
      2d30c8fd
    • unknown's avatar
      Merge grichter@bk-internal.mysql.com:/home/bk/mysql-5.0 · f0091240
      unknown authored
      into lmy002.wdf.sap.corp:/home/georg/work/mysql/prod/mysql-5.0
      
      
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      f0091240
    • unknown's avatar
      Added comment after Serg's review · 4e7f3d30
      unknown authored
      4e7f3d30
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · 789f30ad
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      789f30ad
    • unknown's avatar
      Merge lgrimmer@bk-internal.mysql.com:/home/bk/mysql-5.0 · 6e5e7800
      unknown authored
      into mysql.com:/space/my/mysql-5.0
      
      6e5e7800
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · 54af0310
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      54af0310
    • unknown's avatar
      join_nested.result, join_nested.test: · 5ad7c3ee
      unknown authored
        Added a teast case for bug #11284.
      sql_select.cc:
        Fixed bug #11284.
        Optimization with empty inner table currently cannot be
        used in the case of nested outer join.
      
      
      sql/sql_select.cc:
        Fixed bug #11284.
        Optimization with empty inner table currently cannot be
        used in the case of nested outer join.
      mysql-test/t/join_nested.test:
        Added a teast case for bug #11284.
      5ad7c3ee
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · e27f146a
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      e27f146a
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0 · c828941e
      unknown authored
      into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
      
      
      sql/sql_select.cc:
        Auto merged
      c828941e
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 13c0049e
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
      
      13c0049e
    • unknown's avatar
    • unknown's avatar
      join_outer.result, join_outer.test: · 58dd57d3
      unknown authored
        Added a test case for bug #11285.
      sql_select.cc:
        Fixed bug #11285.
        The problem occurred with Item_equal in an 'on expression'
        that was evaluated to false.
      
      
      sql/sql_select.cc:
        Fixed bug #11285.
        The problem occurred with Item_equal in an 'on expression'
        that was evaluated to false.
      mysql-test/t/join_outer.test:
        Added a test case for bug #11285.
      mysql-test/r/join_outer.result:
        Added a test case for bug #11285.
      58dd57d3
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/5.0-virgin · 44474ed1
      unknown authored
      into mysql.com:/home/timka/mysql/src/5.0-dbg
      
      44474ed1
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · b6cb2380
      unknown authored
      into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
      
      b6cb2380
    • unknown's avatar
    • unknown's avatar
      bf4f38a2
    • unknown's avatar
      Fix for BUG#11211 "GROUP BY doesn't work correctly" · 5e144bf7
      unknown authored
        
      When the GROUP BY clause contains a column reference that can be resolved to
      both an aliased column in the SELECT list, and to a column in the FROM clause,
      the group column is resolved to the column in the FROM clause (for ANSI conformance).
      However, it may be so that the user's intent is just the other way around, and he/she
      gets the query results grouped by a completely different column than expexted.
      This patch adds a warning in such cases that tells the user that there is potential
      ambiguity in the group column.
      
      sql/sql_select.cc
      - Added a warning when a GROUP column is ambiguous due to that there is a
        column reference with the same name both in the SELECT and FROM clauses.
        In this case we resolve to the column in FROM clause and warn the user
        of a possible ambiguity.
      - More extensive comments.
      - Changed the function to return bool instead of int (as in other places).
      
      mysql-test/t/group_by.test
        Added test for BUG#11211.
      
      mysql-test/r/group_by.result
        Added test for BUG#11211.
      
      
      mysql-test/r/group_by.result:
        Import patch 11211.diff
      mysql-test/t/group_by.test:
        Import patch 11211.diff
      sql/sql_select.cc:
        Import patch 11211.diff
      BitKeeper/etc/ignore:
        Added ndb/src/dummy.cpp to the ignore list
      mysql-test/r/alias.result:
        Added warning for potentially ambiguous column.
      mysql-test/r/having.result:
        Added warning for potentially ambiguous column.
      5e144bf7
  4. 14 Jun, 2005 14 commits