1. 06 Jun, 2011 2 commits
    • Igor Babaev's avatar
      Fixed LP bug #793436. · 5cc770fa
      Igor Babaev authored
      When looking for the execution plan of a derived table to be materialized
      JOIN::optimize finds  out that all joined tables of the derived table
      contain not more than one row then the derived table should be maretialized
      at the optimization stage.
      Added a test case for the bug.
      Adjusted results in other test cases.
      5cc770fa
    • Igor Babaev's avatar
      Added two new flags for the optimizer switch: · 3413328c
      Igor Babaev authored
      'derived_merge':
        - if the flag is off then all derived tables are materialized
        - if the flag is on then mergeable derived tables are merged
      'derived_with_keys':
        - if the flag is off then no keys are created for derived tables
        - if the flag is on then for any derived table a key to access 
          the derived table may be created.
      
      Now by default both flags are on.
      Later the default values for the flags will be off to comply with
      the current behaviour of mysql-5.1. 
      
      Uncommented previously commented out test case from parts.partition_repair_myisam
      after having added an explicit requirement to materialize the derived
      table used in the test case.  
      
       
      3413328c
  2. 05 Jun, 2011 1 commit
  3. 04 Jun, 2011 1 commit
  4. 03 Jun, 2011 7 commits
  5. 02 Jun, 2011 5 commits
  6. 31 May, 2011 4 commits
  7. 30 May, 2011 5 commits
  8. 29 May, 2011 4 commits
  9. 28 May, 2011 11 commits
    • Sergey Petrunya's avatar
      - Update test results (trivial) · 40816227
      Sergey Petrunya authored
      - Code cleanup: remove garbage comments
      40816227
    • Sergey Petrunya's avatar
      Buildbot fixes: · a2cbdae6
      Sergey Petrunya authored
      - Don't call table_list->process_index_hints() for JTBM pseudo-tables
      - Update test results
      a2cbdae6
    • Sergey Petrunya's avatar
      Post-merge fix for tests · c527d1ad
      Sergey Petrunya authored
      - bad .result merge
      - make .test file do not switch off both materialization and IN->EXISTS as that leads to error now.
      c527d1ad
    • Sergey Petrunya's avatar
      Buildbot fixes · 730a715b
      Sergey Petrunya authored
      - Update test results (checked)
      - Fix compiler warning
      730a715b
    • Vladislav Vaintroub's avatar
      Fix gcc warning. · d1898ee7
      Vladislav Vaintroub authored
      d1898ee7
    • Sergey Petrunya's avatar
      post-merge fixes: get MWL#90 code to work with MWL#89's · 0fca9c18
      Sergey Petrunya authored
      way of processing prepared statements:
      - conversion subquery_predicate -> TABLE_LIST is once per-statement
      - However, the code must take into account that materialized temptable
        is dropped and re-created on each execution (the tricky part is that 
        at start of n-th EXECUTE we have TABLE_LIST object but not its TABLE object)
      - IN-equality is injected into WHERE on every execution.
      0fca9c18
    • Vladislav Vaintroub's avatar
      Fix compile errors and warnings and test errors introduced by microseconds push. · 5f8963b9
      Vladislav Vaintroub authored
      Also, change windows timespec definition to be Unix-ish - simplifies handling a lot.
      5f8963b9
    • Michael Widenius's avatar
      Automatic merge · 7c091ab7
      Michael Widenius authored
      7c091ab7
    • Michael Widenius's avatar
      automatic merge with 5.3 · ff204169
      Michael Widenius authored
      ff204169
    • Michael Widenius's avatar
      automatic merge with 5.2 · ce3c1c8b
      Michael Widenius authored
      ce3c1c8b
    • Michael Widenius's avatar
      Merge with 5.1-microseconds · 557f90b8
      Michael Widenius authored
      A lot of small fixes and new test cases.
      
      client/mysqlbinlog.cc:
        Cast removed
      client/mysqltest.cc:
        Added missing DBUG_RETURN
      include/my_pthread.h:
        set_timespec_time_nsec() now only takes one argument
      mysql-test/t/date_formats.test:
        Remove --disable_ps_protocl as now also ps supports microseconds
      mysys/my_uuid.c:
        Changed to use my_interval_timer() instead of my_getsystime()
      mysys/waiting_threads.c:
        Changed to use my_hrtime()
      sql/field.h:
        Added bool special_const_compare() for fields that may convert values before compare (like year)
      sql/field_conv.cc:
        Added test to get optimal copying of identical temporal values.
      sql/item.cc:
        Return that item_int is equal if it's positive, even if unsigned flag is different.
        Fixed Item_cache_str::save_in_field() to have identical null check as other similar functions
        Added proper NULL check to Item_cache_int::save_in_field()
      sql/item_cmpfunc.cc:
        Don't call convert_constant_item() if there is nothing that is worth converting.
        Simplified test when years should be converted
      sql/item_sum.cc:
        Mark cache values in Item_sum_hybrid as not constants to ensure they are not replaced by other cache values in compare_datetime()
      sql/item_timefunc.cc:
        Changed sec_to_time() to take a my_decimal argument to ensure we don't loose any sub seconds.
        Added Item_temporal_func::get_time() (This simplifies some things)
      sql/mysql_priv.h:
        Added Lazy_string_decimal()
      sql/mysqld.cc:
        Added my_decimal constants max_seconds_for_time_type, time_second_part_factor
      sql/table.cc:
        Changed expr_arena to be of type CONVENTIONAL_EXECUTION to ensure that we don't loose any items that are created by fix_fields()
      sql/tztime.cc:
        TIME_to_gmt_sec() now sets *in_dst_time_gap in case of errors
        This is needed to be able to detect if timestamp is 0
      storage/maria/lockman.c:
        Changed from my_getsystime() to set_timespec_time_nsec()
      storage/maria/ma_loghandler.c:
        Changed from my_getsystime() to my_hrtime()
      storage/maria/ma_recovery.c:
        Changed from my_getsystime() to mmicrosecond_interval_timer()
      storage/maria/unittest/trnman-t.c:
        Changed from my_getsystime() to mmicrosecond_interval_timer()
      storage/xtradb/handler/ha_innodb.cc:
        Added support for new time,datetime and timestamp
      unittest/mysys/thr_template.c:
        my_getsystime() -> my_interval_timer()
      unittest/mysys/waiting_threads-t.c:
        my_getsystime() -> my_interval_timer()
      557f90b8