An error occurred fetching the project authors.
  1. 03 May, 2007 1 commit
    • evgen@moonbone.local's avatar
      Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function. · 7f9411c1
      evgen@moonbone.local authored
      The generic string to int conversion was used by the Item_func_signed and
      the Item_func_unsigned classes to convert DATE/DATETIME values to the
      SIGNED/UNSIGNED type. But this conversion produces wrong results for such
      values.
      
      Now if the item which result has to be converted can return its result as
      longlong then the item->val_int() method is used to allow the item to carry
      out the conversion itself and return the correct result.
      This condition is checked in the Item_func_signed::val_int() and the
      Item_func_unsigned::val_int() functions.
      7f9411c1
  2. 13 Apr, 2007 1 commit
    • kostja@vajra.(none)'s avatar
      An attempt to fix a sporadic valgrind memory leak in Event Scheduler: · eccd5ae2
      kostja@vajra.(none) authored
      streamline the event worker thread work flow and try to eliminate
      possibilities for memory corruptions that might have been
      lurking in previous (complicated) code.
      This patch: 
       * removes Event_job_data::compile that was never used
       * cleans up Event_job_data::execute to minimize juggling with
         thread context and eliminate unneded code paths
       * Implements Security_context::change/restore_security_context
         to be able to re-use these methods in all stored programs
      This is to maybe fix Bug#27733 "Valgrind failures in 
      remove_table_from_cache".
      Review comments applied.
      eccd5ae2
  3. 12 Apr, 2007 2 commits
    • svoj@mysql.com/april.(none)'s avatar
      BUG#25951 - ignore/use index does not work with fulltext · 005d8c52
      svoj@mysql.com/april.(none) authored
      IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
      index.
      
      With this fix these hints are ignored. For regular indexes we may
      perform table scan instead of index lookup when IGNORE INDEX was
      specified. We cannot do this for FULLTEXT in NLQ mode.
      005d8c52
    • mats@romeo.(none)'s avatar
      BUG#25688 (RBR: circular replication may cause STMT_END_F flags to be · 11fc24ef
      mats@romeo.(none) authored
      skipped):
      
      By moving statement end actions from Rows_log_event::do_apply_event() to
      Rows_log_event::do_update_pos() they will always be executed, even if
      Rows_log_event::do_apply_event() is skipped because the event originated
      at the same server. This because Rows_log_event::do_update_pos() is always
      executed (unless Rows_log_event::do_apply_event() failed with an error,
      in which case the slave stops with an error anyway). 
      
      Adding test case.
      
      Fixing logic to detect if inside a group. If a rotate event occured
      when an initial prefix of events for a statement, but for which the
      table did contain a key, last_event_start_time is set to zero, causing
      rotate to end the group but without unlocking any tables. This left a
      lock hanging around, which subsequently triggered an assertion when a
      second attempt was made to lock the same sequence of tables.
      
      In order to solve the above problem, a new flag was added to the relay
      log info structure that is used to indicate that the replication thread
      is currently executing a statement. Using this flag, the replication
      thread is in a group if it is either in a statement or inside a trans-
      action.
      
      The patch also eliminates some gratuitous header file inclusions that
      were not needed (and caused compile errors) and replaced them with
      forward definitions.
      11fc24ef
  4. 02 Apr, 2007 1 commit
  5. 27 Mar, 2007 2 commits
  6. 19 Mar, 2007 1 commit
  7. 16 Mar, 2007 1 commit
    • Kristofer.Pettersson@naruto.'s avatar
      Bug#20777 Function w BIGINT UNSIGNED shows diff. behaviour with and without --ps-protocol · 05bef788
      Kristofer.Pettersson@naruto. authored
      - Stored procedures returning unsinged values returns signed values if
        text protocol is used. The reason is that the stored proceedure item
        Item_func_sp wasn't initializing the member variables properly based
        on the information contained in the associated result field.
      - The patch is to upon field-item association, ::fix_fields, initialize
        the member variables in appropriate order.
      - Field type of an Item_func_sp was hard coded to MYSQL_TYPE_VARCHAR.
        This is changed to return the type of the actual result field.
      - Member function name sp_result_field was refactored to the more 
        appropriate init_result_field.
      - Member function name find_and_check_access was refactored to 
        sp_check_access.
      05bef788
  8. 09 Mar, 2007 1 commit
  9. 07 Mar, 2007 1 commit
    • evgen@moonbone.local's avatar
      Bug#25373: Stored functions wasn't compared correctly which leads to a wrong · b81b814c
      evgen@moonbone.local authored
      result.
      
      For built-in functions like sqrt() function names are hard-coded and can be
      compared by pointer. But this isn't the case for a used-defined stored
      functions - names there are dynamical and should be compared as strings.
      
      Now the Item_func::eq() function employs my_strcasecmp() function to compare
      used-defined stored functions names.
      b81b814c
  10. 02 Mar, 2007 2 commits
  11. 26 Feb, 2007 1 commit
    • cbell/Chuck@mysql_cab_desk.'s avatar
      BUG#20141 "User-defined variables are not replicated properly for · d7e4de99
      cbell/Chuck@mysql_cab_desk. authored
                SF/Triggers in SBR mode."
      BUG#14914 "SP: Uses of session variables in routines are not always replicated"
      BUG#25167 "Dupl. usage of user-variables in trigger/function is not replicated
                correctly"
      
      User-defined variables used inside of stored functions/triggers in
      statements which did not update tables directly were not replicated.
      We also had problems with replication of user-defined variables which
      were used in triggers (or stored functions called from table-updating
      statements) more than once.
      
      This patch addresses the first issue by enabling logging of all
      references to user-defined variables in triggers/stored functions
      and not only references from table-updating statements.
      
      The second issue stemmed from the fact that for user-defined
      variables used from triggers or stored functions called from
      table-updating statements we were writing binlog events for each
      reference instead of only one event for the first reference.
      This problem is already solved for stored functions called from
      non-updating statements with help of "event unioning" mechanism.
      So the patch simply extends this mechanism to the case affected.
      It also fixes small problem in this mechanism which caused wrong
      logging of references to user-variables in cases when non-updating
      statement called several stored functions which used the same
      variable and some of these function calls were omitted from binlog
      as they were not updating any tables.
      d7e4de99
  12. 23 Feb, 2007 2 commits
    • cbell/Chuck@mysql_cab_desk.'s avatar
      BUG#20141 "User-defined variables are not replicated properly for SF/ · 4c6ced9f
      cbell/Chuck@mysql_cab_desk. authored
                 Triggers in SBR mode."
      BUG#14914 "SP: Uses of session variables in routines are not always
                 replicated"
      BUG#25167 "Dupl. usage of user-variables in trigger/function is not
                 replicated correctly"
      
      User-defined variables used inside of stored functions/triggers in
      statements which did not update tables directly were not replicated.
      We also had problems with replication of user-defined variables which
      were used in triggers (or stored functions called from table-updating
      statements) more than once.
      
      This patch addresses the first issue by enabling logging of all
      references to user-defined variables in triggers/stored functions
      and not only references from table-updating statements.
      
      The second issue stemmed from the fact that for user-defined
      variables used from triggers or stored functions called from
      table-updating statements we were writing binlog events for each
      reference instead of only one event for the first reference.
      This problem is already solved for stored functions called from
      non-updating statements with help of "event unioning" mechanism.
      So the patch simply extends this mechanism to the case affected.
      It also fixes small problem in this mechanism which caused wrong
      logging of references to user-variables in cases when non-updating
      statement called several stored functions which used the same
      variable and some of these function calls were omitted from binlog
      as they were not updating any tables.
      4c6ced9f
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed compiler warnings · f0ae3ce9
      monty@mysql.com/narttu.mysql.fi authored
      Fixed compile-pentium64 scripts
      Fixed wrong estimate of update_with_key_prefix in sql-bench
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
      Fixed unsafe define of uint4korr()
      Fixed that --extern works with mysql-test-run.pl
      Small trivial cleanups
      This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
      Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
      Split handle_one_connection() into reusable sub functions.
      Split create_new_thread() into reusable sub functions.
      Added thread_scheduler; Preliminary interface code for future thread_handling code.
      
      Use 'my_thread_id' for internal thread id's
      Make thr_alarm_kill() to depend on thread_id instead of thread
      Make thr_abort_locks_for_thread() depend on thread_id instead of thread
      In store_globals(), set my_thread_var->id to be thd->thread_id.
      Use my_thread_var->id as basis for my_thread_name()
      The above changes makes the connection we have between THD and threads more soft.
      
      Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
      Fixed compiler warnings
      Fixed core dumps when running with --debug
      Removed setting of signal masks (was never used)
      Made event code call pthread_exit() (portability fix)
      Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
      Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
      Removed one common 'not freed memory' warning from mysqltest
      Fixed a couple of usage of not initialized warnings (unlikely cases)
      Suppress compiler warnings from bdb and (for the moment) warnings from ndb
      f0ae3ce9
  13. 09 Feb, 2007 1 commit
  14. 29 Jan, 2007 2 commits
  15. 28 Jan, 2007 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      After merge fixes · 410fc81a
      monty@mysql.com/narttu.mysql.fi authored
      Removed a lot of compiler warnings
      Removed not used variables, functions and labels
      Initialize some variables that could be used unitialized (fatal bugs)
      %ll -> %l
      410fc81a
  16. 26 Jan, 2007 1 commit
    • igor@olga.mysql.com's avatar
      Fixed bug #24653. · 36df33d8
      igor@olga.mysql.com authored
      The bug report has demonstrated the following two problems.
      1. If an ORDER/GROUP BY list includes a constant expression being 
      optimized away and, at the same time, containing single-row
      subselects that return more that one row, no error is reported.
      Strictly speaking the standard allows to ignore error in this case.
      Yet, now a corresponding fatal error is reported in this case.
      2. If a query requires sorting by expressions containing single-row
      subselects that, however, return more than one row, then the execution
      of the query may cause a server crash. 
      To fix this some code has been added that blocks execution of a subselect
      item in case of a fatal error in the method Item_subselect::exec.
      36df33d8
  17. 23 Jan, 2007 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #6172: RAND(a) should only accept constant values as arguments · 450e9b6b
      gkodinov/kgeorge@macbook.gmz authored
       RAND() must accept scalar expressions regardless of their kind.
       That includes both constant expressions and expressions that 
       depend on column values.
       When the expression is constant the random seed can be initialized
       at compile time.
       However when the expression is not constant the random seed must be
       initialized at each invocation (while it still can be allocated at
       compile time).
       Implemented the above rules by extending Item_func_rand::val_real()
       to initialize the random seed at the correct place.
      450e9b6b
  18. 22 Jan, 2007 1 commit
  19. 18 Jan, 2007 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #25382: Passing NULL to an UDF called from stored procedures · 20d94f11
      gkodinov/kgeorge@macbook.gmz authored
       crashes server
       Check for null value is reliable only after calling some of the 
       val_xxx() methods. If the val_xxx() method is not called
       the null_value flag will be set only for certain types of NULL
       values (like SQL constant NULLs for example).
       This caused a crash while trying to dereference a NULL pointer
       that is returned by val_str() for NULL values.
       Fixed by swapping the order of val_xxx() and null_value check.
      20d94f11
  20. 09 Jan, 2007 2 commits
    • evgen@moonbone.local's avatar
      Fixed bug#16861: User defined variable can have a wrong value if a tmp table was · e098f736
      evgen@moonbone.local authored
      used.
      
      The Item::save_in_field() function is called from fill_record() to fill the 
      new row with data while execution of the CREATE TABLE ... SELECT statement.
      Item::save_in_field() calls val_xxx() methods in order to get values.
      val_xxx() methods do not take into account the result field. Due to this
      Item_func_set_user_var::val_xxx() methods returns values from the original
      table, not from the temporary one.
      
      The save_in_field() member function is added to the Item_func_set_user_var
      class. It detects whether the result field should be used and properly updates
      the value of the user variable.
      e098f736
    • kroki/tomash@moonlight.home's avatar
      BUG#23443: user-defined variables can consume too much memory in the · 5b4d9d87
      kroki/tomash@moonlight.home authored
                 server
      
      The problem was that when memory was exhausted HEAP engine could crash
      (GROUP BY uses HEAP TABLE).  Alternatively, if SET was used, it could
      report an error "You may only use constant expressions with SET" instead
      of "Out of memory (Needed NNNNNN bytes)".
      
      The solution is:
       - pass MY_WME to (some) calls to my_malloc() to get correct message.
       - fix heap_write() so that the first key is skipped during cleanup
         on ENOMEM because it wasn't inserted and doesn't have to be
         deleted.
      
      No test case is provided because we can't test out-of-memory behaviour
      in our current test framework.
      5b4d9d87
  21. 23 Dec, 2006 1 commit
  22. 14 Dec, 2006 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed compiler warnings detected by option -Wshadow and -Wunused: · 88dd873d
      monty@mysql.com/narttu.mysql.fi authored
      - Removed not used variables and functions
      - Added #ifdef around code that is not used
      - Renamed variables and functions to avoid conflicts
      - Removed some not used arguments
      
      Fixed some class/struct warnings in ndb
      Added define IS_LONGDATA() to simplify code in libmysql.c
      
      I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
      88dd873d
  23. 04 Dec, 2006 1 commit
  24. 02 Dec, 2006 1 commit
  25. 30 Nov, 2006 2 commits
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed portability issue in my_thr_init.c (was added in my last push) · 3d409560
      monty@mysql.com/narttu.mysql.fi authored
      Fixed compiler warnings (detected by VC++):
      - Removed not used variables
      - Added casts
      - Fixed wrong assignments to bool
      - Fixed wrong calls with bool arguments
      - Added missing argument to store(longlong), which caused wrong store method to be called.
      3d409560
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed compiler warnings (Mostly VC++): · 3a35c300
      monty@mysql.com/narttu.mysql.fi authored
      - Removed not used variables
      - Changed some ulong parameters/variables to ulonglong (possible serious bug)
      - Added casts to get rid of safe assignment from longlong to long (and similar)
      - Added casts to function parameters
      - Fixed signed/unsigned compares
      - Added some constructores to structures
      - Removed some not portable constructs
      
      Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
      (Added new parameter to net_clear() to define when we want the communication buffer to be emptied)
      3a35c300
  26. 26 Nov, 2006 1 commit
    • monty@mysql.com/nosik.monty.fi's avatar
      Fixed a LOT of compiler warnings · fa81a82e
      monty@mysql.com/nosik.monty.fi authored
      Added missing DBUG_RETURN statements (in mysqldump.c)
      Added missing enums
      Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes
      Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems.
      fa81a82e
  27. 17 Nov, 2006 1 commit
  28. 16 Nov, 2006 1 commit
    • malff/marcsql@weblab.(none)'s avatar
      Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions) · ccfbd686
      malff/marcsql@weblab.(none) authored
      Before this change, the functions BENCHMARK, ENCODE, DECODE and FORMAT could
      only accept a constant for some parameters.
      
      After this change, this restriction has been removed. An implication is that
      these functions can also be used in prepared statements.
      
      The change consist of changing the following classes:
      - Item_func_benchmark
      - Item_func_encode
      - Item_func_decode
      - Item_func_format
      to:
      - only accept Item* in the constructor,
      - and evaluate arguments during calls to val_xxx()
      which fits the general design of all the other functions.
      
      The 'TODO' items identified in item_create.cc during the work done for
      Bug 21114 are addressed by this fix, as a natural consequence of aligning
      the design.
      
      In the 'func_str' test, a single very long test line involving an explain
      extended select with many functions has been rewritten into multiple
      separate tests, to improve maintainability.
      The result of explain extended select decode(encode(...)) has changed,
      since the encode and decode functions now print all their parameters.
      ccfbd686
  29. 15 Nov, 2006 2 commits
    • cmiller@zippy.cornsilk.net's avatar
      Bug#19955: unsigned bigint used as signed with MOD function · 5d4c57b9
      cmiller@zippy.cornsilk.net authored
      Problem:  When we have a really large number (between 2^63 and 2^64)
      as the left side of the mod operator, it gets improperly corerced
      into a signed value.
      
      Solution:  Added check to see if the "negative" number is really
      positive, and if so, cast it.
      5d4c57b9
    • tnurnberg@salvation.intern.azundris.com's avatar
      Bug#16456 "RBR: rpl_sp.test expects query to fail, but passes in RBR" · ea3bf1b2
      calling (rather than defining) non-deterministic SP in SBR (as opposed
      to RBR or mixed) will throw an error now.
      
      require mixed mode for tests now. SBR will now fail when calling
      non-deter SPs and SFs (as it should), and RBR already failed by virtue of
      giving different results for "show binlog" than the results-file has.
      also test for 16456 now. lastly make amends because one of the tests
      fails with a new error # now as code was added to sql_trigger.cc while
      test was disabled.
      ea3bf1b2
  30. 13 Nov, 2006 3 commits
    • cmiller@zippy.cornsilk.net's avatar
      Bug#18761: constant expression as UDF parameters not passed in as constant · 8471897f
      cmiller@zippy.cornsilk.net authored
      The code that set up data to be passed to user-defined functions was very
      old and analyzed the "Type" of the data that was passed into the UDF, when
      it really should analyze the "return_type", which is hard-coded for simple
      Items and works correctly for complex ones like functions.
      ---
      Added test at Sergei's behest.
      8471897f
    • dlenev@mockturtle.local's avatar
      Small adjustment after merging fix for bug#23651 "Server crashes when · 8a5db3e9
      dlenev@mockturtle.local authored
      trigger which uses stored function invoked from different connections"
      into 5.1.
      8a5db3e9
    • dlenev@mockturtle.local's avatar
      Fix for bug bug#23651 "Server crashes when trigger which uses · dd1a4f57
      dlenev@mockturtle.local authored
      stored function invoked from different connections".
      
      Invocation of trigger which was using stored function from different
      connections caused server crashes (for non-debug server this happened
      in highly concurrent environment, but debug server failed on assertion
      in relatively simple scenario).
      
      Item_func_sp was not safe to use in triggers (in other words for
      re-execution from different threads) as artificial TABLE object
      pointed by Item_func_sp::dummy_table referenced incorrect THD
      object. To fix the problem we force re-initialization of this
      object for each re-execution of statement.
      dd1a4f57