1. 19 Aug, 2009 1 commit
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · c54370d3
      Sergey Petrunya authored
      - Use Table_elimination only for functional dependency checking for
        individual objects and rename it to Func_dep_analyzer
      
      c54370d3
  2. 18 Aug, 2009 4 commits
  3. 17 Aug, 2009 2 commits
  4. 16 Aug, 2009 6 commits
  5. 15 Aug, 2009 4 commits
  6. 13 Aug, 2009 6 commits
  7. 12 Aug, 2009 2 commits
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · b032c7d8
      Sergey Petrunya authored
      - Continue addressing review feedback: remove "unusable KEYUSEs" 
        extension as it is no longer needed.
      
      sql/item.h:
        MWL#17: Table elimination
        - Code cleanup
      sql/opt_table_elimination.cc:
        MWL#17: Table elimination
        - Code cleanup
      b032c7d8
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 854bb82b
      Sergey Petrunya authored
      Address review feedback: 
      - Change from Wave-based approach (a-la const table detection) to 
        building and walking functional dependency graph.
      - Change from piggy-backing on ref-access code and KEYUSE structures
        to using our own expression analyzer.
      
      
      sql/item.cc:
        MWL#17: Table elimination
        - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator
      sql/item.h:
        MWL#17: Table elimination
        - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator
      sql/sql_bitmap.h:
        MWL#17: Table elimination
        - Backport of Table_map_iterator from 6.0
      854bb82b
  8. 05 Aug, 2009 1 commit
  9. 04 Aug, 2009 1 commit
  10. 03 Aug, 2009 3 commits
  11. 24 Jul, 2009 2 commits
  12. 08 Jul, 2009 1 commit
  13. 07 Jul, 2009 1 commit
    • unknown's avatar
      Solaris 10 build script fixes by Toby Thain. · 51f3e004
      unknown authored
      Added build scripts for 32 bit x86 architecture on Solaris.
      Renamed some scripts for consistency.
      Changed to dynamic linking of libgcc.
      
      
      BUILD/compile-solaris-amd64:
        Changed to dynamic linking of libgcc.
        
        The -static-libgcc was a legacy of the original build scripts. -R
        (analogous to -L link time search path) is a Solaris mechanism to
        ensure a needed lib directory is searched at runtime.
        
        In Solaris 10, gcc comes bundled, under /usr/sfw, allowing to use it without
        creating dependency problems. This allows eg. benefiting from ordinary system
        patch maintenance.
      BUILD/compile-solaris-amd64-debug:
        Changed to dynamic linking of libgcc.
        
        The -static-libgcc was a legacy of the original build scripts. -R
        (analogous to -L link time search path) is a Solaris mechanism to
        ensure a needed lib directory is searched at runtime.
        
        In Solaris 10, gcc comes bundled, under /usr/sfw, allowing to use it without
        creating dependency problems. This allows eg. benefiting from ordinary system
        patch maintenance.
      51f3e004
  14. 06 Jul, 2009 1 commit
  15. 02 Jul, 2009 1 commit
    • Michael Widenius's avatar
      Added MY_CS_NONASCII marker for character sets that are not compatible with... · 9db357e2
      Michael Widenius authored
      Added MY_CS_NONASCII marker for character sets that are not compatible with latin1 for characters 0x00-0x7f
      This allows us to skip and speed up some very common character converts that MySQL is doing when sending data to the client
      and this gives us a nice speed increase for most queries that uses only characters in the range 0x00-0x7f.
      
      This code is based on Alexander Barkov's code that he has done in MySQL 6.0
      
      
      include/m_ctype.h:
        Added MY_CS_NONASCII marker
      libmysqld/lib_sql.cc:
        Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
      mysys/charset.c:
        Mark character sets with MY_CS_NONASCII
      scripts/mysql_install_db.sh:
        Fixed messages to refer to MariaDB instead of MySQL
      sql/protocol.cc:
        Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
      sql/protocol.h:
        Added function net_store_data(...) that takes to and from CHARSET_INFO * as arguments
      sql/sql_string.cc:
        Quicker copy of strings with no characters above 0x7f
      strings/conf_to_src.c:
        Added printing of MY_CS_NONASCII
      strings/ctype-extra.c:
        Mark incompatible character sets with MY_CS_NONASCII
        Removed duplicated character set geostd
      strings/ctype-sjis.c:
        Mark incompatible character sets with MY_CS_NONASCII
      strings/ctype-uca.c:
        Mark incompatible character sets with MY_CS_NONASCII
      strings/ctype-ucs2.c:
        Mark incompatible character sets with MY_CS_NONASCII
      strings/ctype-utf8.c:
        Mark incompatible character sets with MY_CS_NONASCII
      strings/ctype.c:
        Added function to check if character set is compatible with latin1 in ranges 0x00-0x7f
      9db357e2
  16. 30 Jun, 2009 3 commits
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 7b3d4645
      Sergey Petrunya authored
      - More comments
      - Renove old code
      
      7b3d4645
    • Sergey Petrunya's avatar
      MWL#17: Table elimination · 8156d9eb
      Sergey Petrunya authored
      - Last fixes
      
      sql/item.cc:
        MWL#17: Table elimination
        - Don't make multiple calls of ::walk(check_column_usage_processor),
          call once and cache the value
      sql/item.h:
        MWL#17: Table elimination
        - s/KEYUSE::usable/KEYUSE::type/, more comments
      sql/opt_table_elimination.cc:
        MWL#17: Table elimination
        - Don't make multiple calls of ::walk(check_column_usage_processor),
          call once and cache the value
      sql/sql_select.cc:
        MWL#17: Table elimination
        - s/KEYUSE::usable/KEYUSE::type/, more comments
      sql/sql_select.h:
        MWL#17: Table elimination
        - s/KEYUSE::usable/KEYUSE::type/, more comments
      sql/table.h:
        MWL#17: Table elimination
        - Better comments
      8156d9eb
    • Michael Widenius's avatar
      Changed default thread stack to 288K to get better memory missalignment... · f1183fc1
      Michael Widenius authored
      Changed default thread stack to 288K to get better memory missalignment between stacks of different threads (should speed up things) and to get a bit extra safety.
      In maria_open(), don't allocate big arrays on stack as this may lead to stack overflow.
      This fixes a valgrind warning detected by buildbot
      
      include/my_pthread.h:
        Changed default thread stack to 288K to get better memory missalignment between stacks of different threads (should speed up things) and to get a bit extra safety.
      storage/maria/ma_open.c:
        In maria_open(), don't allocate big arrays on stack as this may lead to stack overflow.
      f1183fc1
  17. 29 Jun, 2009 1 commit
    • Michael Widenius's avatar
      Added some changes inspired by Zardosht Kasheff: · bb557919
      Michael Widenius authored
      - Added a handler call (prepare_index_scan()) to inform storage engines that an index scan is about to take place.
      - Extended the maximun key parts for an index from 16 to 32
      - Extended MyISAM and Maria engines to support up to 32 parts
      
      Added checks for return value from ha_index_init()
      
      
      
      include/my_handler.h:
        Extended number of key parts for MyISAM and Maria from 16 to 32
      include/my_pthread.h:
        Ensure we always have 256M of stack.
        (Required to be able to handle the current number of keys and key parts in MyISAM)
      mysql-test/r/create.result:
        Extended to test for 32 key parts
      mysql-test/r/myisam.result:
        Test that we can create 32 but not 33 key parts
      mysql-test/r/ps_1general.result:
        Length of ref is now 2048 as we can have more key parts
      mysql-test/r/ps_2myisam.result:
        Length of ref is now 2048 as we can have more key parts
      mysql-test/r/ps_3innodb.result:
        Length of ref is now 2048 as we can have more key parts
      mysql-test/r/ps_4heap.result:
        Length of ref is now 2048 as we can have more key parts
      mysql-test/r/ps_5merge.result:
        Length of ref is now 2048 as we can have more key parts
      mysql-test/suite/maria/r/maria.result:
        Max key length is now 1208 bytes
      mysql-test/suite/maria/r/maria3.result:
        Max key length is now 1208 bytes
      mysql-test/suite/maria/r/ps_maria.result:
        Max key length is now 1208 byte
      mysql-test/t/create.test:
        Extended to test for 32 key parts
      mysql-test/t/myisam.test:
        Test that we can create 32 but not 33 key parts
      sql/handler.cc:
        Check return value from ha_index_init()
      sql/handler.h:
        Added a handler call (prepare_index_scan()) to inform storage engines that an index scan is about to take place.
      sql/sql_select.cc:
        Checks all return values from ha_index_init()
        Call prepare_index_scan()) to inform storage engines that an index scan is about to take place.
        Fixed indentation
      sql/table.cc:
        Fixed wrong types for key_length (rest of code assumed this was 32 bit)
      sql/unireg.h:
        Extended the maximun key parts for an index from 16 to 32
      storage/maria/ha_maria.cc:
        Don't allocate HA_CHECK on the stack in functions where we call repair() as HA_CHECK is HUGE and will overflow stack
      storage/myisam/ha_myisam.cc:
        Don't allocate HA_CHECK on the stack in functions where we call repair() as HA_CHECK is HUGE and will overflow stack
      storage/myisam/mi_check.c:
        Fixed wrong check if value overflow
      tests/mysql_client_test.c:
        Added fflush() to fix output in case of error
        Fixed wrong check of 'ref' length in EXPLAIN
      bb557919