1. 06 Jun, 2011 2 commits
    • Igor Babaev's avatar
      Fixed LP bug #793436. · db0c3406
      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.
      db0c3406
    • Igor Babaev's avatar
      Added two new flags for the optimizer switch: · 3bf08e54
      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.  
      
       
      3bf08e54
  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) · ded7342d
      Sergey Petrunya authored
      - Code cleanup: remove garbage comments
      ded7342d
    • Sergey Petrunya's avatar
      Buildbot fixes: · 6f17421c
      Sergey Petrunya authored
      - Don't call table_list->process_index_hints() for JTBM pseudo-tables
      - Update test results
      6f17421c
    • Sergey Petrunya's avatar
      Post-merge fix for tests · 6b744533
      Sergey Petrunya authored
      - bad .result merge
      - make .test file do not switch off both materialization and IN->EXISTS as that leads to error now.
      6b744533
    • Sergey Petrunya's avatar
      Buildbot fixes · 0b69585d
      Sergey Petrunya authored
      - Update test results (checked)
      - Fix compiler warning
      0b69585d
    • Vladislav Vaintroub's avatar
      Fix gcc warning. · 1e1755be
      Vladislav Vaintroub authored
      1e1755be
    • Sergey Petrunya's avatar
      post-merge fixes: get MWL#90 code to work with MWL#89's · 77c4c4d8
      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.
      77c4c4d8
    • Vladislav Vaintroub's avatar
      Fix compile errors and warnings and test errors introduced by microseconds push. · b519f2b6
      Vladislav Vaintroub authored
      Also, change windows timespec definition to be Unix-ish - simplifies handling a lot.
      b519f2b6
    • Michael Widenius's avatar
      Automatic merge · 152dfe58
      Michael Widenius authored
      152dfe58
    • Michael Widenius's avatar
      automatic merge with 5.3 · 2894d50e
      Michael Widenius authored
      2894d50e
    • Michael Widenius's avatar
      automatic merge with 5.2 · bf33056e
      Michael Widenius authored
      bf33056e
    • Michael Widenius's avatar
      Merge with 5.1-microseconds · f197991f
      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()
      f197991f