An error occurred fetching the project authors.
  1. 19 Dec, 2004 1 commit
    • unknown's avatar
      Merge with global tree · 06904103
      unknown authored
      Fixed some found bugs in BIT fields
      Added more test cases for BIT fields and varchar
      
      
      include/my_base.h:
        Merge
        Added HA_BIT_PART for easier test in key.cc
      innobase/os/os0proc.c:
        Fixed typo
      myisam/mi_dbug.c:
        Add printing of BIT types when debugging
      mysql-test/r/show_check.result:
        Set 'Avg_row_length' to # as this value is different between 32 and 64 bit machines
      mysql-test/r/type_bit.result:
        More tests
      mysql-test/r/type_varchar.result:
        More tests
      mysql-test/t/show_check.test:
        Set 'Avg_row_length' to # as this value is different between 32 and 64 bit machines
      mysql-test/t/type_bit.test:
        More tests
      mysql-test/t/type_varchar.test:
        More tests
      sql/field.cc:
        Added Field::val_int_as_str() to get better logging of bit fields
        Merged new_key_field with move_field() to fix some problems with bit fields
        Fixed some bugs with bit fields
      sql/field.h:
        Added Field::val_int_as_str() to get better logging of bit fields
        Merged new_key_field with move_field() to fix some problems with bit fields
        Fixed some bugs with bit fields
      sql/ha_myisam.cc:
        Fixed problem with unintialized memory (not critical)
      sql/key.cc:
        Fix so that 'key_cmp_if_same' works with bit fields.
      sql/opt_range.cc:
        Move declarations first in function
        Nice printing of bit fields in debug log
      sql/sql_prepare.cc:
        Fixed old merge error (not critical)
      sql/sql_select.cc:
        Use new interface to new_key_field
      sql/sql_select.h:
        Use new interface to new_key_fields()
        This fixes a bug with BIT fields where the upper bit of the data was not stored in the key buffer
      sql/structs.h:
        Extend key_part_flag to be able to add HA_BIT_PART to it
      sql/table.cc:
        Mark BIT key parts with HA_BIT_PART to make test in key.cc simpler
      06904103
  2. 18 Dec, 2004 1 commit
    • unknown's avatar
      Add 0x before pointers (to help with debugging) · 8eaef91f
      unknown authored
      Add support for VARCHAR with 1 or 2 length bytes
      Enable VARCHAR packing in MyISAM files (previous patch didn't pack data properly)
      Give error if we got problems in temporary tables during a SELECT
      Don't use new table generated by ALTER TABLE if index generation fails
      Fixed wrong call by range_end() (Could cause an ASSERT in debug mode)
      
      
      BUILD/SETUP.sh:
        Add flags for Intel 64
      dbug/dbug.c:
        Add 0x before pointers (to help with debugging)
      heap/_check.c:
        Add 0x before pointers (to help with debugging)
      heap/hp_create.c:
        Add support for VARCHAR with 1 or 2 length bytes
      heap/hp_delete.c:
        Add 0x before pointers
      heap/hp_hash.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Added more debugging
      heap/hp_open.c:
        Add 0x before pointers
      heap/hp_rkey.c:
        Add 0x before pointers
      heap/hp_rrnd.c:
        Add 0x before pointers
      heap/hp_write.c:
        Add 0x before pointers
      include/my_base.h:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/ft_static.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/ft_test1.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Fixed indentation
        (This file should probably be deleted as it doesn't compile)
      myisam/ft_update.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Fixed indentation
        Removed some not needed 'else'
      myisam/mi_check.c:
        Don't give an error for tables packed with myisampack
      myisam/mi_checksum.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_create.c:
        Add support for VARCHAR with 1 or 2 length bytes
        Store in number of pack-length-bytes in keyseg->bit_start
      myisam/mi_dbug.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_dynrec.c:
        Add support for VARCHAR with 1 or 2 length bytes
        (old code in _mi_rec_unpack() didn't really work with VARCHAR's)
      myisam/mi_key.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_open.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_packrec.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_search.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test1.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test3.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/mi_test_all.res:
        Update results
      myisam/mi_unique.c:
        Add support for VARCHAR with 1 or 2 length bytes
      myisam/myisampack.c:
        Add support for VARCHAR with 1 or 2 length bytes
      mysql-test/include/varchar.inc:
        Added more tests
      mysql-test/r/bdb.result:
        Update results after new tests
      mysql-test/r/information_schema.result:
        Update results
      mysql-test/r/innodb.result:
        Update results
      mysql-test/r/myisam.result:
        Update results after new tests
      mysql-test/r/ps_1general.result:
        Update results
      mysql-test/t/bdb.test:
        Shorter comments
      mysys/list.c:
        Add 0x before pointers
      mysys/my_handler.c:
        Add support for VARCHAR with 1 or 2 length bytes
      mysys/raid.cc:
        Add 0x before pointers
      sql/field.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/field.h:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/field_conv.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_berkeley.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_heap.cc:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/ha_myisam.cc:
        Ensure that enable_indexes() will report an error if it fails
        Enable VARCHAR packing for MyISAM files
      sql/item_sum.cc:
        Change key_cmp -> cmp() as we are comparing fields, not key segements
      sql/opt_range.cc:
        Add support for VARCHAR with 1 or 2 length bytes
        Change range_end to call ha_index_or_rnd_end() as in some error cases we may be in rnd mode when we abort
      sql/sql_base.cc:
        Remove compiler warning
      sql/sql_parse.cc:
        Move length checking code to sql_table.cc (as we don't have character set for fields at this stage)
      sql/sql_select.cc:
        Add support for VARCHAR with 1 or 2 length bytes
        Ensure that we report an error if we get an error while writing to internal temporary tables
      sql/sql_select.h:
        Add support for VARCHAR with 1 or 2 length bytes
      sql/sql_show.cc:
        Fix typo in comment
      sql/sql_table.cc:
        Don't use new table generated by ALTER TABLE if index generation fails
      vio/vio.c:
        Fixed DBUG info
      vio/viosocket.c:
        Fixed DBUG info
      vio/viossl.c:
        Fixed DBUG info
      vio/viosslfactories.c:
        Fixed DBUG info
      8eaef91f
  3. 06 Dec, 2004 1 commit
    • unknown's avatar
      Add support for up to VARCHAR (size up to 65535) · a8ea31fa
      unknown authored
      Renamed HA_VAR_LENGTH to HA_VAR_LENGTH_PART
      Renamed in all files FIELD_TYPE_STRING and FIELD_TYPE_VAR_STRING to MYSQL_TYPE_STRING and MYSQL_TYPE_VAR_STRING to make it easy to catch all possible errors
      Added support for VARCHAR KEYS to heap
      Removed support for ISAM
      Now only long VARCHAR columns are changed to TEXT on demand (not CHAR)
      Internal temporary files can now use fixed length tables if the used VARCHAR columns are short
      
      
      BitKeeper/deleted/.del-ha_isam.cc~4dce65904db2675e:
        Delete: sql/ha_isam.cc
      BitKeeper/deleted/.del-_cache.c~b5d80b5c3ae233b1:
        Delete: isam/_cache.c
      BitKeeper/deleted/.del-_dbug.c~88d7964ae5e3c9bd:
        Delete: isam/_dbug.c
      BitKeeper/deleted/.del-_dynrec.c~48dd758f5a5450df:
        Delete: isam/_dynrec.c
      BitKeeper/deleted/.del-_key.c~ce62d47a6c681084:
        Delete: isam/_key.c
      BitKeeper/deleted/.del-_locking.c~dea4cdc6ea425c67:
        Delete: isam/_locking.c
      BitKeeper/deleted/.del-_packrec.c~47ae1b16c007e9be:
        Delete: isam/_packrec.c
      BitKeeper/deleted/.del-_page.c~148b1a613d052ee8:
        Delete: isam/_page.c
      BitKeeper/deleted/.del-_search.c~f509292aa1ff18ff:
        Delete: isam/_search.c
      BitKeeper/deleted/.del-_statrec.c~58d9263b3475d58b:
        Delete: isam/_statrec.c
      BitKeeper/deleted/.del-changed.c~d075de80a314b02d:
        Delete: isam/changed.c
      BitKeeper/deleted/.del-close.c~fd62629496ee5bcc:
        Delete: isam/close.c
      BitKeeper/deleted/.del-create.c~96cecc433c0c2242:
        Delete: isam/create.c
      BitKeeper/deleted/.del-delete.c~65ee8daaa75a14b6:
        Delete: isam/delete.c
      BitKeeper/deleted/.del-extra.c~706f29d72beb2565:
        Delete: isam/extra.c
      BitKeeper/deleted/.del-info.c~96cfb747af8da0d:
        Delete: isam/info.c
      BitKeeper/deleted/.del-isamchk.c~c0f59c2687d2248f:
        Delete: isam/isamchk.c
      BitKeeper/deleted/.del-isamlog.c~85b6b31c6e2b8519:
        Delete: isam/isamlog.c
      BitKeeper/deleted/.del-log.c~55a973013d55cade:
        Delete: isam/log.c
      BitKeeper/deleted/.del-open.c~95b3b75042fae00a:
        Delete: isam/open.c
      BitKeeper/deleted/.del-pack_isam.c~43801f0df7504834:
        Delete: isam/pack_isam.c
      BitKeeper/deleted/.del-panic.c~f7fd71605324f8f3:
        Delete: isam/panic.c
      BitKeeper/deleted/.del-range.c~142f1f8ac4948082:
        Delete: isam/range.c
      BitKeeper/deleted/.del-rfirst.c~66f494291dc005d3:
        Delete: isam/rfirst.c
      BitKeeper/deleted/.del-rkey.c~cc54c6498352f999:
        Delete: isam/rkey.c
      BitKeeper/deleted/.del-rlast.c~d1fe1866139e9866:
        Delete: isam/rlast.c
      BitKeeper/deleted/.del-rnext.c~b308eaa1e11ea7de:
        Delete: isam/rnext.c
      BitKeeper/deleted/.del-rprev.c~b359f71fdea4bbce:
        Delete: isam/rprev.c
      BitKeeper/deleted/.del-rrnd.c~7fcfcce88d4a5200:
        Delete: isam/rrnd.c
      BitKeeper/deleted/.del-rsame.c~75a62d5548103a15:
        Delete: isam/rsame.c
      BitKeeper/deleted/.del-rsamepos.c~5b5652dd2cda6d5d:
        Delete: isam/rsamepos.c
      BitKeeper/deleted/.del-sort.c~e2e56b5a37ce86f4:
        Delete: isam/sort.c
      BitKeeper/deleted/.del-static.c~3a1354b84f4a9cc7:
        Delete: isam/static.c
      BitKeeper/deleted/.del-test1.c~64d52e9412d457ed:
        Delete: isam/test1.c
      BitKeeper/deleted/.del-test2.c~2f9a632cab572958:
        Delete: isam/test2.c
      BitKeeper/deleted/.del-test3.c~e8a7a4afe8a087:
        Delete: isam/test3.c
      BitKeeper/deleted/.del-isamdef.h~ac8d49e7e2201c66:
        Delete: isam/isamdef.h
      BitKeeper/deleted/.del-update.c~670264f51dc44934:
        Delete: isam/update.c
      BitKeeper/deleted/.del-write.c~8f1918b1f6770e54:
        Delete: isam/write.c
      BitKeeper/deleted/.del-Makefile.am~6cfa0db5e7778d09:
        Delete: isam/Makefile.am
      BitKeeper/deleted/.del-make-ccc~3ee55391eda0b0ab:
        Delete: isam/make-ccc
      BitKeeper/deleted/.del-ChangeLog~208984fb7a51e568:
        Delete: isam/ChangeLog
      BitKeeper/deleted/.del-test_all.res~c2aafb49a3a77db7:
        Delete: isam/test_all.res
      BitKeeper/deleted/.del-test_all~93c701e44a9c5b65:
        Delete: isam/test_all
      BitKeeper/deleted/.del-.cvsignore~54f6f0f2d5012561:
        Delete: isam/.cvsignore
      BitKeeper/deleted/.del-ha_isammrg.cc~dc682e4755d77a2e:
        Delete: sql/ha_isammrg.cc
      BitKeeper/deleted/.del-ha_isam.h~bf53d533be3d3927:
        Delete: sql/ha_isam.h
      BitKeeper/deleted/.del-ha_isammrg.h~66fd2e5bfe7207dc:
        Delete: sql/ha_isammrg.h
      acinclude.m4:
        Remove ISAM
      client/mysqldump.c:
        FIELD_TYPE -> MYSQL_TYPE
      client/mysqltest.c:
        Add missing DBUG_RETURN
      configure.in:
        Remove ISAM
      heap/heapdef.h:
        Add support for VARCHAR
      heap/hp_create.c:
        Add support for VARCHAR
      heap/hp_delete.c:
        Add support for VARCHAR
      heap/hp_hash.c:
        Add support for VARCHAR
        (VARCHAR keys was not supported before)
      heap/hp_rkey.c:
        Add support for VARCHAR
      heap/hp_update.c:
        Add support for VARCHAR
      heap/hp_write.c:
        Add support for VARCHAR
        (Added flag SEARCH_UPDATE to mark that this is an update)
      include/decimal.h:
        Remove not needed my_global.h
      include/m_ctype.h:
        Add support for VARCHAR
      include/my_base.h:
        Add support for VARCHAR
      include/my_handler.h:
        Moved general purpose macro from MyISAM code
      include/mysql_com.h:
        Add support for VARCHAR
      libmysql/libmysql.c:
        Add support for VARCHAR
      libmysqld/Makefile.am:
        Removed ISAM
      myisam/ft_static.c:
        Add support for VARCHAR
      myisam/ft_test1.c:
        Add support for VARCHAR
      myisam/ft_update.c:
        Add support for VARCHAR
      myisam/mi_check.c:
        Add support for VARCHAR
      myisam/mi_create.c:
        Add support for VARCHAR
        - VARCHAR key segments are marked with HA_VAR_LENGTH_PART
      myisam/mi_key.c:
        Add support for VARCHAR
        Fixed bug in old VARCHAR code when reading index-only
      myisam/mi_range.c:
        Fixed comment style
      myisam/mi_rnext_same.c:
        Handle case where equal keys can be of different length
      myisam/mi_search.c:
        Add support for VARCHAR
      myisam/mi_test1.c:
        Add support for VARCHAR
      myisam/mi_unique.c:
        Add support for VARCHAR
        (Some new code to handle keys that are equal but have different lengths)
      myisam/mi_write.c:
        Fixed comment
      myisam/myisamchk.c:
        Better infotext if wrong type
      mysql-test/r/bdb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/create.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ctype_tis620.result:
        Updated old result and new results for VARCHAR
        (Old code sorted tis620 wrong)
      mysql-test/r/ctype_ucs.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/endspace.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/func_like.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/heap.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/innodb.result:
        Updated old result. This will change a bit when also InnoDB supports VARCHAR
      mysql-test/r/merge.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/myisam.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/mysqldump.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/order_by.result:
        Updated old result and new results for VARCHAR
        (Key length is different for VARCHAR)
      mysql-test/r/ps.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_1general.result:
        Updated results for new .frm version
        Don't print seconds in show full process list as this may change
      mysql-test/r/ps_2myisam.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_3innodb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_4heap.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_5merge.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/ps_6bdb.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/select.result.es:
        Updated results by hand
      mysql-test/r/select.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/select_found.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/show_check.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/strict.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/subselect.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/system_mysql_db.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_blob.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_ranges.result:
        Updated old result and new results for VARCHAR
      mysql-test/r/type_ranges.result.es:
        Updated some results by hand
      mysql-test/t/bdb.test:
        Test VARCHAR
      mysql-test/t/ctype_ucs.test:
        Some fixes related to VARCHAR
      mysql-test/t/endspace.test:
        Fixes to make it easier to compare columns with end space
      mysql-test/t/heap.test:
        Test VARCHAR
      mysql-test/t/innodb.test:
        Prepare for testing VARCHAR
      mysql-test/t/myisam.test:
        Test VARCHAR
      mysql-test/t/ps_1general.test:
        Don't show seconds for show processlist
      mysql-test/t/ps_4heap.test:
        Update for VARCHAR
      mysql-test/t/strict.test:
        Fix test for VARCHAR
      mysql-test/t/type_blob.test:
        Update test for VARCHAR
        Note that now you can't store 'a' and 'a ' in an unique varchar/text index if the column is not binary
      mysys/my_handler.c:
        Add support for VARCHAR
      ndb/src/common/util/NdbSqlUtil.cpp:
        Fix for usage of strnncollsp
      scripts/mysql_fix_privilege_tables.sh:
        Simple fix so that my_print_defaults works
      sql/Makefile.am:
        Remove ISAM
      sql/field.cc:
        Add support for VARCHAR
        Fixed the keys for blob's are compared with strnncollsp
        Ensure that old tables from MySQL 4.0 works as they did before.
        (Old VARCHAR will be converted to new VARCHAR on ALTER TABLE)
      sql/field.h:
        Add support for VARCHAR
      sql/field_conv.cc:
        Change FIELD_TYPE_VAR_STRING -> MYSQL_TYPE_VARCHAR
        Added usage of HA_KEY_BLOB_LENGTH
      sql/ha_berkeley.cc:
        Add support for VARCHAR
        Added usage of table->insert_or_update if we would ever want to know in key_cmp if we are changing keys
      sql/ha_heap.cc:
        Add support for VARCHAR
      sql/ha_innodb.cc:
        Changed MYSQL_TYPE_VAR_STRING to MYSQL_TYPE_VARCHAR.
        Waiting for Heikki to add full VARCHAR support
      sql/ha_innodb.h:
        InnoDB doesn't support full VARCHAR yet
      sql/ha_myisam.cc:
        Add support for VARCHAR
      sql/ha_ndbcluster.cc:
        Add support for VARCHAR
      sql/handler.h:
        Added HA_NO_VARCHAR for table handler that doesn't support VARCHAR. In this case MySQL will create a normal CHAR instead
      sql/item.cc:
        Fixed access of already freed memory
        Added support of VARCHAR
        - varchar length is now checked in mysql_prepare
      sql/item_cmpfunc.cc:
        Added new parameter to strncollsp
      sql/item_sum.cc:
        Added new parameter to strncollsp
        FIELD_TYPE -> MYSQL_TYPE
      sql/key.cc:
        Add support for VARCHAR
      sql/opt_range.cc:
        Remove character set parameter from set_key_image()
      sql/opt_sum.cc:
        Remove character set parameter from set_key_image()
      sql/protocol.cc:
        Return MYSQL_TYPE_VAR_STRING instead of MYSQL_TYPE_VARCHAR to clients (to not cause compatiblity problems)
      sql/sql_acl.cc:
        Change key handling code so that we can use CHAR or VARCHAR for the user table columns
      sql/sql_base.cc:
        Remove old, not used code
      sql/sql_help.cc:
        Remove charset from get_key_image
      sql/sql_parse.cc:
        Ensure that OPTION_TABLE_LOCK is cleared ASAP; This fixed a problem in BDB transaction code when one used LOCK TABLES on a BDB table
        Added support for VARCHAR
        Moved field length checking and VARCHAR -> TEXT convert to mysql_prepare (as we need the know the character set for the column)
      sql/sql_select.cc:
        Added support of VARCHAR
        Added heuristic to use fixed size rows for tmp tables if we are using only a few short VARCHAR's
      sql/sql_string.cc:
        Added extra argument to strnncollsp
      sql/sql_table.cc:
        Add support for VARCHAR
        Automaticly convert (with warning) big VARCHAR (but not CHAR) to TEXT
        If handler doesn't support VARCHAR convert VARCHAR to CHAR
      sql/sql_update.cc:
        Fixed compiler warning
      sql/sql_yacc.yy:
        Add support for VARCHAR
      sql/strfunc.cc:
        Fixed valgrind warning
      sql/structs.h:
        Added 'table' to KEY structure to make life easier for some handler functions
      sql/table.cc:
        Add support for VARCHAR
        - New .frm version
        - FIELD_TYPE -> MYSQL_TYPE
      sql/table.h:
        Added insert_or_update; A bool flag a handler can set/reset if needed (for handler internal usage)
      sql/unireg.h:
        Add support for VARCHAR
      strings/ctype-big5.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-bin.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-czech.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-gbk.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-latin1.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-mb.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-simple.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-sjis.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-tis620.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-uca.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-ucs2.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/ctype-utf8.c:
        Added new argument to strnncollsp() to allow one to define if end space are significant or not
      strings/ctype-win1250ch.c:
        Changed my_like_range... to correctly calculate min_length & max_length
      strings/decimal.c:
        Fixed include files usage
        Fixed some compiler warnings
      tests/client_test.c:
        Ensure tests works with VARCHAR
      a8ea31fa
  4. 28 Nov, 2004 2 commits
    • unknown's avatar
      Fix for division by zero problem: · 46e12a2b
      unknown authored
       * Don't try building ROR-intersect if the queried table has zero rows
       * Don't ever produce an estimate of zero returned rows.
      
      
      46e12a2b
    • unknown's avatar
      protection: TRASH in delete · 30db8445
      unknown authored
      fixed a bug that it discovered
      
      
      include/my_sys.h:
        move TRASH to my_sys.h from sql_list.h
      sql/field.h:
        use TRASH macro
      sql/item.h:
        TRASH in delete
      sql/item_func.h:
        never delete item's manually!
      sql/opt_range.cc:
        TRASH in delete
      sql/sql_lex.h:
        TRASH in delete
      sql/sql_list.h:
        move TRASH to my_sys.h from sql_list.h
      sql/sql_parse.cc:
        don't use properties of deleted objects (even when it's safe)
      sql/sql_select.cc:
        TRASH in delete
      sql/sql_show.cc:
        TRASH in delete
      sql/sql_string.h:
        TRASH in delete
      30db8445
  5. 23 Nov, 2004 1 commit
  6. 21 Nov, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4177: · febda72f
      unknown authored
       * Make index merge quick selects code allow perform several scans.
       * Delay additional handler objects creation till row retrieval is started.
      
      
      include/queues.h:
        Added trivial queue_remove_all macro
      mysql-test/r/index_merge.result:
        Testcase for BUG#4177
      mysql-test/t/index_merge.test:
        Testcase for BUG#4177
      sql/opt_range.cc:
        Fix for BUG#4177: 
         * For any quick select, row retrieval can be performed several times. Now all index_merge quick selects code handles such cases properly.
         * In QUICK_INDEX_MERGE_SELECT we use one handler object for all merged scans, and it was possible that in 
            destructor several cleanup functions were called 
         * Additionally
          - Removed redundant QUICK_INDEX_MERGE_SELECT members.
          - Now QUICK_ROR_*_SELECTs create additional handler objects only when row retrieval is started
            So if join optimizer chooses other access method, we don't create/delete handlers.
      febda72f
  7. 18 Nov, 2004 1 commit
    • unknown's avatar
      Fixed one warning and two errors reported by VC 6.0. · 7d8f33ea
      unknown authored
      BitKeeper/etc/ignore:
        Added ndb/tools/ndb_restore to the ignore list
      sql/item.cc:
        Fixed VC 6.0 warning:
        mysql-5.0.2-alpha\sql\item.cpp(1729) : warning C4715: 'resolve_ref_in_select_and_group' : not all control paths return a value
      sql/opt_range.cc:
        Fixed VC 6.0 errors:
        ERROR # 4: mysql-5.0.2-alpha\sql\opt_range.cpp(8070) : error C2664: 'key_cmp' : cannot convert parameter 2 from 'char *' to 'const unsigned char *'
                Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
        
        ERROR # 5: mysql-5.0.2-alpha\sql\opt_range.cpp(8196) : error C2664: 'key_cmp' : cannot convert parameter 2 from 'char *' to 'const unsigned char *'
                Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
      7d8f33ea
  8. 17 Nov, 2004 1 commit
    • unknown's avatar
      Fix warnings and compilation failures (Windows). · 7cd9cc1b
      unknown authored
      sql/field.cc:
        Fix warning.
      sql/item_func.cc:
        Fix Windows compilation failure.
      sql/opt_range.cc:
        Fix warnings and errors (Windows)
      sql/sp_pcontext.h:
        Fix warning (Windows).
      sql/table.h:
        Fix warning (Windows).
      7cd9cc1b
  9. 09 Nov, 2004 1 commit
    • unknown's avatar
      After merge fixes · db676261
      unknown authored
      Added push_back(void *, MEM_ROOT *) to make some list-handling code easier that needs to be allocated in a different mem-root
      (Before one had to change thd->mem_root ; push_back(); restore mem_root.
      
      
      mysql-test/t/range.test:
        After merge fixRecR
      sql/item_func.cc:
        After merge fix
      sql/item_sum.cc:
        After merge fix
      sql/opt_range.cc:
        After merge fix
      sql/parse_file.cc:
        After merge fix
      sql/sp.cc:
        After merge fix
      sql/sp_head.cc:
        After merge fix
      sql/sp_head.h:
        After merge fix
      sql/sql_base.cc:
        After merge fix
      sql/sql_class.h:
        After merge fix
      sql/sql_list.h:
        Added push_back(void *, MEM_ROOT *) to make some list-handling code easier that needs to be allocated in a different mem-root
        (Before one had to change thd->mem_root ; push_back(); restore mem_root.
      sql/sql_prepare.cc:
        After merge fix
      sql/sql_select.cc:
        After merge fix
      sql/sql_table.cc:
        After merge fix
        Fixed problem with OPTIMIZE on INNODB tables
      sql/sql_trigger.cc:
        After merge fix
      sql/sql_union.cc:
        After merge fix
      sql/sql_view.cc:
        After merge fix
      sql/sql_yacc.yy:
        After merge fix
      sql/table.cc:
        After merge fix
      db676261
  10. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · 435b20aa
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      435b20aa
  11. 03 Nov, 2004 2 commits
    • unknown's avatar
      opt_range.cc, range.result, range.test: · 0afed4c3
      unknown authored
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      
      
      mysql-test/t/range.test:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      mysql-test/r/range.result:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      sql/opt_range.cc:
        Bug #6045: Binary Comparison regression in MySQL 4.1
        Binary searches didn't use a case insensitive index, now they do.
      0afed4c3
    • unknown's avatar
      Fixes after merge with 4.1 · f5a47f15
      unknown authored
      FOUND is not a reserved keyword anymore
      Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
      Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete
      
      
      BUILD/SETUP.sh:
        Portability fix
      client/mysqltest.c:
        Portability fix
      mysql-test/r/drop.result:
        updated results
      mysql-test/r/func_str.result:
        New warnings (after merge)
      mysql-test/r/insert.result:
        Updated tests
      mysql-test/r/join_nested.result:
        Updated results (because of new column types in 5.0)
      mysql-test/r/lock_multi.result:
        Temporarly wrong results until Sanja fixes multi-update-lock in 5.0
      mysql-test/r/multi_update.result:
        Temporary fix until Sanja fixes multi-update locking
      mysql-test/r/ps_1general.result:
        Update of results after merge
      mysql-test/r/ps_2myisam.result:
        Update of results after merge
      mysql-test/r/ps_3innodb.result:
        Update of results after merge
      mysql-test/r/ps_4heap.result:
        Update of results after merge
      mysql-test/r/ps_5merge.result:
        Update of results after merge
      mysql-test/r/ps_6bdb.result:
        Update of results after merge
      mysql-test/r/query_cache.result:
        Update of results after merge
      mysql-test/r/range.result:
        New results for new tests
      mysql-test/r/rpl_auto_increment.result:
        Update with new 4.0 information
      mysql-test/r/rpl_charset.result:
        After merge fixes
      mysql-test/r/subselect.result:
        After merge fixes
      mysql-test/r/view.result:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/drop.test:
        Safety fix
      mysql-test/t/multi_update.test:
        Temporary fix until multi-update-locking is fixed
      mysql-test/t/rpl_charset.test:
        More comments
      mysql-test/t/sp-error.test:
        Updated comments
      mysql-test/t/view.test:
        Temporary fix until multi-update-locking is fixed
      scripts/mysql_fix_privilege_tables.sh:
        Better error message
      sql-common/client.c:
        More debugging
      sql/ha_ndbcluster.cc:
        After merge fixes
      sql/handler.cc:
        After merge fixes
      sql/item.cc:
        Simple optimization of creating item
        After merge fixed
        Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted
        The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case)
      sql/item.h:
        Added Item::set_no_const_sub() to be able to mark fields that can't be substituted
      sql/item_cmpfunc.cc:
        Mark fields compared as binary to not be substituted.
      sql/item_func.cc:
        After merge fix
      sql/log_event.cc:
        After merge fix
      sql/mysql_priv.h:
        After merge fix
      sql/opt_range.cc:
        After merge fix
      sql/protocol.cc:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol.h:
        Made flags uint instead of int (as it's used as a bit mask)
      sql/protocol_cursor.cc:
        Made flags uint instead of int (as it's used as a bit mask)
        Indentation cleanups
      sql/sp.cc:
        After merge fixes
        Removed compiler warnings
      sql/sp_head.cc:
        After merge fixes
      sql/sql_base.cc:
        After merge fixes
        Removed 'send_error' from 'insert_fields()' as the error is sent higher up
      sql/sql_class.cc:
        Give assert if set_n_backup_item_arena is used twice
      sql/sql_class.h:
        Give assert if set_n_backup_item_arena is used twice
        After merge fixes
        Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_parse.cc:
        After merge fixes
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
        Moved 'build_equal_items' to optimize_cond() (logical place)
      sql/sql_table.cc:
        After merge fixes
      sql/sql_trigger.cc:
        After merge fixes
      sql/sql_update.cc:
        After merge fixes
        (This should be fixed by Sanja to have lower granuality locking of tables in multi-update)
      sql/sql_view.cc:
        After merge fixes
      sql/sql_yacc.yy:
        After merge fixes
        Don't have FOUND as a reserved keyword
      f5a47f15
  12. 01 Nov, 2004 1 commit
    • unknown's avatar
      Minor fixes of the patch for BUG#6303 · de691e17
      unknown authored
      mysql-test/r/group_min_max.result:
        Test results for BUG#6303
      mysql-test/t/group_min_max.test:
        Ucommented tests for BUG#6303
      sql/opt_range.cc:
        Comment fix
      de691e17
  13. 29 Oct, 2004 1 commit
    • unknown's avatar
      Fix for BUG#6303 + fix for discovered bug with sub-queries when analyzin... · 4cdb957b
      unknown authored
      Fix for BUG#6303 + fix for discovered bug with sub-queries when analyzin queries for MIN/MAX optimization (WL#1724).
      
      
      BitKeeper/etc/ignore:
        Added stamp-h1.in stamp-h2.in to the ignore list
      mysql-test/t/group_min_max.test:
        - Added test for BUG#6303
        - Added test for MIN/MAX optimizable queries with subqueries
      sql/opt_range.cc:
        - check_group_min_max_predicates should not be called when there is no MIN/MAX function
        - skip queries from GROUP BY with MIN/MAX optimization when there is a subselect in the WHERE clause
      4cdb957b
  14. 26 Oct, 2004 1 commit
    • unknown's avatar
      item_cmpfunc.h: · 8b44be63
      unknown authored
        COND_EQUAL must be derived from Sql_alloc to simplify memory
        management for objects of this class.
        This fixes a leak in mysql-test-run noticed by PEM.
      opt_range.cc:
        Fixed uninitialized min_max_range member the QUICK_GROUP_MIN_MAX_SELECT class.
      
      
      sql/opt_range.cc:
        Fixed uninitialized min_max_range member the QUICK_GROUP_MIN_MAX_SELECT class.
      sql/item_cmpfunc.h:
        COND_EQUAL must be derived from Sql_alloc to simplify memory
        management for objects of this class.
        This fixes a leak in mysql-test-run noticed by PEM.
      8b44be63
  15. 20 Oct, 2004 3 commits
  16. 19 Oct, 2004 1 commit
    • unknown's avatar
      table.h, sql_select.h: · 05933f13
      unknown authored
        Added the code processing on expressions for applying
        multiple equalities.
      sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      Many files:
        Post-merge fixes for Item_equal patch.
      item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      item.h, item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      
      
      mysql-test/r/func_test.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/index_merge.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/join_nested.result:
        Post-merge fixes for Item_equal patch.
      mysql-test/r/range.result:
        Post-merge fixes for Item_equal patch.
      sql/item.cc:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item.h:
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/item_cmpfunc.cc:
        Post-merge fixes for Item_equal patch.
        Fixed a problem when an equality field=const cannot be applied to
        the predicate P(field,c) for constant propagation as a conversion
        of field is needed.
      sql/opt_range.cc:
        Post-merge fixes for Item_equal patch.
      sql/sql_select.cc:
        Post-merge fixes for Item_equal patch.
        Added the code processing on expressions for applying
        multiple equalities.
      sql/sql_select.h:
        Added the code processing on expressions for applying
        multiple equalities.
      sql/table.h:
        Added the code processing on expressions for applying
        multiple equalities.
      05933f13
  17. 18 Oct, 2004 1 commit
    • unknown's avatar
      compatibility fix · bd5bafe1
      unknown authored
      test results corrected
      
      
      mysql-test/r/range.result:
        test results corrected
      mysql-test/t/range.test:
        test results corrected
      sql/opt_range.cc:
        compatibility fix
      bd5bafe1
  18. 13 Oct, 2004 1 commit
  19. 12 Oct, 2004 1 commit
  20. 11 Oct, 2004 2 commits
  21. 10 Oct, 2004 1 commit
  22. 07 Oct, 2004 1 commit
    • unknown's avatar
      Initialise "sorted" variable in constructor of QUICK_SELECT. The variable is... · 77a56a6a
      unknown authored
      Initialise "sorted" variable in constructor of QUICK_SELECT. The variable is set to 1 in test_if_skip_sort_order if we decide to optimize "order by" by uinsg index_read.
      
      
      mysql-test/r/ndb_index_ordered.result:
        Another test to check the use of "sorted" in combination with reset_bounds()
      mysql-test/t/ndb_index_ordered.test:
        Another test to check the use of "sorted" in combination with reset_bounds()
      sql/ha_ndbcluster.cc:
        Check that sorted is set to 0 or 1.
      sql/opt_range.cc:
        Initialise the sorted variable to zero QUICK_SELECT constructor.
      77a56a6a
  23. 28 Sep, 2004 1 commit
    • unknown's avatar
      Strict mode & better warnings · 2a491215
      unknown authored
      Under strict mode MySQL will generate an error message if there was any conversion when assigning data to a field.
      Added checking of date/datetime fields.
      If strict mode, give error if we have not given value to field without a default value (for INSERT)
      
      
      client/mysqltest.c:
        Added --exit as an option to abort a test in a middle (good for debugging)
      include/my_time.h:
        Added flags to allow checking of dates in strict mode
      include/mysql_com.h:
        Added flag to check if field has a default value or not
      include/mysqld_error.h:
        New error messages for strict mode
      include/sql_state.h:
        Fixed SQL states (for strict mode tests)
      mysql-test/r/auto_increment.result:
        Updated error messages
      mysql-test/r/func_sapdb.result:
        Added test for ALLOW_INVALID_DATES
      mysql-test/r/func_str.result:
        Updated error messages
      mysql-test/r/func_time.result:
        Updated error messages
      mysql-test/r/insert.result:
        Updated error messages
      mysql-test/r/loaddata.result:
        Updated error messages
      mysql-test/r/select.result:
        Updated error messages
      mysql-test/r/sp.result:
        Updated error messages
      mysql-test/r/timezone2.result:
        Updated error messages
      mysql-test/r/type_datetime.result:
        Updated error messages
      mysql-test/r/type_decimal.result:
        Updated error messages
      mysql-test/r/type_float.result:
        Updated error messages
      mysql-test/r/type_ranges.result:
        Updated error messages
      mysql-test/r/type_time.result:
        Updated error messages
      mysql-test/r/type_uint.result:
        Updated error messages
      mysql-test/r/warnings.result:
        Updated error messages
      mysql-test/t/func_sapdb.test:
        Aded test
      sql-common/my_time.c:
        Added checking of dates
      sql/field.cc:
        Better error messages
        Optimization of warning handling (by introducing of check_int())
        Changed to use my_strtoll10()
      sql/field.h:
        Added check_int()
      sql/item_func.cc:
        Warnings when dividing by NULL
      sql/item_func.h:
        Warnings when dividing by NULL
      sql/item_timefunc.cc:
        Testing of date/datetime
        Use macros instead of constants
      sql/mysql_priv.h:
        New modes (part of strict mode)
      sql/mysqld.cc:
        New modes (part of strict mode)
      sql/opt_range.cc:
        Simple optimizations
      sql/protocol.cc:
        Add note/warning level to find_handler()
      sql/set_var.cc:
        Added mode 'traditional'
      sql/share/czech/errmsg.txt:
        New error messages for strict mode
      sql/share/danish/errmsg.txt:
        New error messages for strict mode
      sql/share/dutch/errmsg.txt:
        New error messages for strict mode
      sql/share/english/errmsg.txt:
        New error messages for strict mode
      sql/share/estonian/errmsg.txt:
        New error messages for strict mode
      sql/share/french/errmsg.txt:
        New error messages for strict mode
      sql/share/german/errmsg.txt:
        New error messages for strict mode
      sql/share/greek/errmsg.txt:
        New error messages for strict mode
      sql/share/hungarian/errmsg.txt:
        New error messages for strict mode
      sql/share/italian/errmsg.txt:
        New error messages for strict mode
      sql/share/japanese/errmsg.txt:
        New error messages for strict mode
      sql/share/korean/errmsg.txt:
        New error messages for strict mode
      sql/share/norwegian-ny/errmsg.txt:
        New error messages for strict mode
      sql/share/norwegian/errmsg.txt:
        New error messages for strict mode
      sql/share/polish/errmsg.txt:
        New error messages for strict mode
      sql/share/portuguese/errmsg.txt:
        New error messages for strict mode
      sql/share/romanian/errmsg.txt:
        New error messages for strict mode
      sql/share/russian/errmsg.txt:
        New error messages for strict mode
      sql/share/serbian/errmsg.txt:
        New error messages for strict mode
      sql/share/slovak/errmsg.txt:
        New error messages for strict mode
      sql/share/spanish/errmsg.txt:
        New error messages for strict mode
      sql/share/swedish/errmsg.txt:
        New error messages for strict mode
      sql/share/ukrainian/errmsg.txt:
        New error messages for strict mode
      sql/sp_rcontext.cc:
        Add note/warning level to find_handler()
      sql/sp_rcontext.h:
        Add note/warning level to find_handler()
      sql/sql_base.cc:
        Fix bug for detecting crashed table
      sql/sql_class.cc:
        Variables for strct mode
      sql/sql_class.h:
        Variables for strct mode
      sql/sql_error.cc:
        In strict mode, convert warnings to errors
      sql/sql_insert.cc:
        Strict mode
        If strict mode, give error if we have not given value to field without a default value
      sql/sql_load.cc:
        Strict mode
      sql/sql_parse.cc:
        Strict mode.
        Add flag to field if it doesn't have a default value
      sql/sql_select.cc:
        Added comment
        Prepare for upper level handling of table->status
      sql/sql_union.cc:
        Added THD to write_record()
      sql/sql_update.cc:
        Strict mode
      sql/table.cc:
        Handling of default values
      sql/time.cc:
        Checking of dates
      2a491215
  24. 23 Sep, 2004 1 commit
    • unknown's avatar
      Implementation of Monty's idea about clear_alloc_root() optimization and cleanup of work · 7ba5d931
      unknown authored
      with memory roots in THD/Statement/Item_arena.
      Added assertions preventing memory allocation on bzero'ed MEM_ROOT since it is worked by 
      pure luck and was very ineffective.
      
      
      include/my_sys.h:
        Reimplementation of Monty's optimization of clear_alloc_root().
        Now clear_alloc_root() can be used only for detaching memory associated with MEM_ROOT
        (e.g. to avoid its freeing). It can not be used for MEM_ROOT initialization any longer 
        (it was bad idea anyway since memory allocation on such MEM_ROOT was very ineffective 
        and worked by pure luck).
        Introduced ALLOC_ROOT_MIN_BLOCK_SIZE constant.
      mysys/my_alloc.c:
        Added description of init_alloc_root().
        Added assertions to alloc_root() and reset_root_defaults() so now they can only be used
        on previosly initialized MEM_ROOT. (It worked for bzeroed MEM_ROOT before but 
        by pure luck and very inefficiently). Calling free_root() on bzero'ed MEM_ROOT
        is still ok (we can't remove this easily because of static MEM_ROOTs).
        Also now using ALLOC_ROOT_MIN_BLOCK_SIZE constant inside these functions.
      sql/opt_range.cc:
        Fixed get_quick_select_for_ref() function to not use bzero'ed MEM_ROOT for allocation.
        Also QUICK_RANGEs created in this function should be created in memory root of QUICK_SELECT.
      sql/sql_class.cc:
        Implementation of Monty's idea about clear_alloc_root() optimization and cleanup of work 
        with memory roots in THD/Statement/Item_arena.
        Now we are always initing THD::transaction.mem_root and THD::mem_root in THD constructor 
        (without memory allocation and with minimal block size) and then later change their
        parameters in THD::init_for_queries() (this is partially because we can't allocate anything
        on bzero'ed memory roots anymore).
        Item_arena() constructor is now trivial and is used only then Item_arena is created as backup
        storage for other Item_arena (we use Item_arena(bool) now if it is part of Statement).
        Both trivial Item_arena constructor and destructor are now inline.
        Removed unneeded clear_alloc_root from Item_arena::restore_backup_item_arena().
      sql/sql_class.h:
        Both trivial Item_arena constructor and destructor are now inline.
        Commented various Item_arena constructors.
      7ba5d931
  25. 17 Sep, 2004 1 commit
    • unknown's avatar
      Removed wrong warnings in test suite (This was because select_insert /... · e74b00bb
      unknown authored
      Removed wrong warnings in test suite (This was because select_insert / select_create results was not freed.
      Added thd to openfrm() for initialization of TABLE->in_use. This fixed a bug in BDB handling where table->in_use was used early
      
      
      mysql-test/r/key.result:
        Added new tests that shows a bug in warnings hat
      mysql-test/t/key.test:
        Added new tests that shows a bug in warnings hat
      sql/handler.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/item.cc:
        New function to avoid warnings when giving field a value
      sql/item.h:
        New function to avoid warnings when giving field a value
      sql/mysql_priv.h:
        Added thd to openfrm() for initialization of TABLE->in_use
      sql/opt_range.cc:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_base.cc:
        Give memroot explicitely to open_unireg_entry() and open_table() (Makes code simpler)
        Ensure that table->in_use is set early
        New arguments for openfrm()
      sql/sql_insert.cc:
        More debugging & comments
      sql/sql_parse.cc:
        Delete results for select_insert and select_create. This fixed a bug that generated warnings in test suite
      sql/sql_select.h:
        Don't give warnings in optimizer when internally storing a field value in a field. (Should be ok as we ar checking the feild in the WHERE clause later)
      sql/sql_table.cc:
        New arguments to open_table() and openfrm()
      sql/table.cc:
        Added thd to openfrm() for initialization of TABLE->in_use
        This fixes some bugs in BDB where table->in_use was used
      e74b00bb
  26. 10 Sep, 2004 1 commit
    • unknown's avatar
      Implementation of the last review comments for WL#1724 · 4f1d7b7d
      unknown authored
      "Min/Max Optimization for Queries with Group By Clause"
      
      
      mysql-test/r/group_min_max.result:
        Added new test
      mysql-test/t/group_min_max.test:
        Added new test & comments
      sql/item.h:
        Remove processor methods that are no longer used.
      sql/item_sum.cc:
        Remove processor methods that are no longer used.
      sql/item_sum.h:
        Remove processor methods that are no longer used.
      sql/opt_range.cc:
        - the test procedure no longer needs to build lists and to traverse the expression trees
        - all usable indexes are tested and the bes one is chosen
        - added/edited function comments
      sql/sql_select.cc:
        Modified make_sum_func_list() so it can be reused in the test for MIN/MAX optimization.
      sql/sql_select.h:
        Modified make_sum_func_list() so it can be reused in the test for MIN/MAX optimization.
      4f1d7b7d
  27. 09 Sep, 2004 1 commit
    • unknown's avatar
      After merge fixes of merge with 4.1 that included the new arena code. · 33efc967
      unknown authored
      Fixed (together with Guilhem) bugs in mysqlbinlog regarding --offset
      Prefix addresses with 0x for easier comparisons of debug logs
      Fixed problem where MySQL choosed index-read even if there would be a much better range on the same index
      This fix changed some 'index' queries to 'range' queries in the test suite
      Don't create 'dummy' WHERE clause for trivial WHERE clauses where we can remove the WHERE clause.
      This fix removed of a lot of 'Using where' notes in the test suite.
      Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      Give NOTE instead of WARNING for safe field-type conversions
      
      
      Makefile.am:
        Don't automaticly update files from bk
      client/mysqlbinlog.cc:
        Merge with 4.1 (+ apply bug fixes for --offset and --start-position)
      include/my_sys.h:
        Faster clear_alloc_root()
      mysql-test/r/bdb.result:
        Updated results after merge
      mysql-test/r/create.result:
        Updated results after merge
      mysql-test/r/func_group.result:
        Updated results after merge
      mysql-test/r/func_if.result:
        Updated results after merge
      mysql-test/r/heap_btree.result:
        Updated results after merge
      mysql-test/r/index_merge.result:
        Updated results after merge
      mysql-test/r/index_merge_ror.result:
        Updated results after merge
      mysql-test/r/innodb.result:
        Updated results after merge
      mysql-test/r/join_outer.result:
        Updated results after merge
      mysql-test/r/mysqlbinlog2.result:
        Updated results after merge
      mysql-test/r/negation_elimination.result:
        Updated results after merge
      mysql-test/r/null.result:
        Updated results after merge
        Added more tests
      mysql-test/r/null_key.result:
        Updated results after merge
        Added more tests
      mysql-test/r/order_by.result:
        Updated results after merge
      mysql-test/r/range.result:
        Updated results after merge
        Added more tests
      mysql-test/r/rpl_charset.result:
        Updated results after merge
      mysql-test/r/sp-error.result:
        Updated results after merge
      mysql-test/r/sp.result:
        Updated results after merge
        Added delete of some stored procedures in an attempt to be able to re-run test even if it aborts in the middle
      mysql-test/r/type_blob.result:
        Updated results after merge
        (Some warnings are now notes)
      mysql-test/r/user_var.result:
        Updated results after merge
        Added more tests
      mysql-test/r/variables.result:
        Updated results after merge
      mysql-test/r/view.result:
        Updated results after merge
      mysql-test/t/mysqlbinlog2.test:
        Updated tests to use new positions
      mysql-test/t/null.test:
        More tests
      mysql-test/t/null_key.test:
        More tests
      mysql-test/t/range.test:
        More tests
      mysql-test/t/rpl_charset.test:
        Avoid big diffs in the future if tests changes
      mysql-test/t/sp-error.test:
        Updated error numbers
      mysql-test/t/sp-security.test:
        Updated error numbers
      mysql-test/t/sp.test:
        Updated results after merge
        Added delete of some stored procedures in an attempt to be able to re-run test even if it aborts in the middle
      mysql-test/t/user_var.test:
        More tests
      mysql-test/t/view.test:
        Updated error numbers
      mysys/my_alloc.c:
        Write into debug log the address of the allocated area
      sql/ha_isam.cc:
        Prefix addresses with 0x for easier comparisons of debug logs
      sql/ha_myisam.cc:
        Prefix addresses with 0x for easier comparisons of debug logs
      sql/ha_ndbcluster.cc:
        Add missing enum to switch
      sql/handler.cc:
        remove compiler warning
      sql/item.cc:
        More debugging
        Simple cleanup
      sql/item.h:
        Move Item::cleanup() to item.cc
      sql/item_cmpfunc.cc:
        Fix arena code
      sql/item_subselect.cc:
        After merge fixes
      sql/item_subselect.h:
        After merge fixes
      sql/item_sum.cc:
        Updated comment
      sql/log_event.cc:
        Remove wrong test
      sql/mysql_priv.h:
        Indentation fixes
      sql/mysqld.cc:
        After merge fixes
        Added 0x to pointers in debug log
      sql/opt_range.cc:
        Fixed problem where MySQL choosed index-read even if there would be a much better range on the same index
        This fix changed some 'index' queries to 'range' queries in the test suite
      sql/set_var.cc:
        Indentation fixes
      sql/sp_head.cc:
        Set state to INITIALIZED to make SP work with new arena code
      sql/sql_base.cc:
        After merge fixes
      sql/sql_class.cc:
        More debugging
        Use clear_alloc_root() instead of init_alloc_root() as the former is faster
      sql/sql_class.h:
        New method 'only_prepare()'
      sql/sql_lex.cc:
        After merge fixes
      sql/sql_lex.h:
        After merge fixes
      sql/sql_parse.cc:
        Fix for timezone tables. (The old way to add timezone tables to global list in 'create_total_list' doesn't work anymore)
        Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        Don't create 'dummy' WHERE clause for trivial WHERE clauses where we can remove the WHERE clause.
        This fix removed of a lot of 'Using where' notes in the test suite
      sql/sql_table.cc:
        Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
      sql/sql_union.cc:
        After merge fix
      sql/sql_view.cc:
        After merge fix
      sql/table.cc:
        After merge fix
      sql/tztime.cc:
        Update timezone table handling to use new table lists structure
      sql/tztime.h:
        Update timezone table handling to use new table lists structure
      sql/unireg.cc:
        Use 0x before pointers
      33efc967
  28. 04 Sep, 2004 1 commit
  29. 27 Aug, 2004 1 commit
    • unknown's avatar
      WL#1724 "Min/Max Optimization for Queries with Group By Clause" · d9450332
      unknown authored
      - after-review changes
      - merged with the source tree from 204-08-27
      
      
      mysql-test/r/distinct.result:
        Different plans due to group-by optimization.
      sql/ha_myisam.cc:
        More general interface to key_copy.
      sql/handler.cc:
        More general interface to key_copy.
      sql/item.cc:
        New method to collect all Item_field objects. Used by Item::walk.
      sql/item.h:
        Several methods to collect different kinds of items from expression trees.
        Used by Item::walk.
      sql/item_sum.cc:
        Added helper to collect Item_sum objects.
      sql/item_sum.h:
        Methods to collect and test Item_sum objects.
      sql/key.cc:
        More general interface to key_copy and key_restore.
      sql/mysql_priv.h:
        More general interface to key_copy and key_restore.
      sql/opt_range.cc:
        Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
      sql/opt_range.h:
        Complete implementaion of WL#1724 "Min/Max Optimization for Queries with Group By Clause".
      sql/opt_sum.cc:
        simple_pred is re-used in opt_range.cc
      sql/sql_acl.cc:
        More general interface to key_copy and key_restore.
      sql/sql_handler.cc:
        More general interface to key_copy.
      sql/sql_insert.cc:
        More general interface to key_copy.
      sql/sql_select.cc:
        Changes to hook the new QUICK_GROUP_MIN_MAX_SELECT due to two differences from all other
        quick selects:
        1)
        This quick select may be created (and used) even if there is no WHERE clause.
        Several places assumed that a QUICK_SELECT is constructed only if there is a WHERE clause,
        which had to be changed so that QUICK_GROUP_MIN_MAX can be used.
        2)
        Unlike all other quick selects, this QUICK_GROUP_MIN_MAX_SELECT operates for GROUP BY queries.
        Since for the caller the quick select already produces one result tuple per group, there is
        no need to call end_send_group, instead we have to call end_send as for a regular quick select.
      sql/sql_select.h:
        simple_pred is re-used in opt_range.cc
      d9450332
  30. 26 Aug, 2004 2 commits
  31. 13 Aug, 2004 1 commit
  32. 11 Aug, 2004 1 commit
    • unknown's avatar
      Fix and testcase for BUG#4984 · dde591f2
      unknown authored
       The crash is eliminated but still it is weird/inefficent that ROR-intersection is used when performing updates in empty table.
      
      
      mysql-test/r/index_merge_ror_cpk.result:
        Fix and testcase for BUG#4984
      mysql-test/t/index_merge_ror_cpk.test:
        Fix and testcase for BUG#4984
      sql/opt_range.cc:
        Don't call index_end() for CPK quick select inside of a ROR-intersection.
      sql/opt_range.h:
        Fix and testcase for BUG#4984
      dde591f2
  33. 26 Jul, 2004 1 commit
    • unknown's avatar
      compatibility fixes · f06c397d
      unknown authored
      mysql-test/r/show_check.result:
        results updated
      sql/opt_range.cc:
        wrong (I believe :) cast fixed
      f06c397d
  34. 20 Jul, 2004 1 commit
    • unknown's avatar
      misc fixes for compile-time errors · d0c69399
      unknown authored
      sql/item_sum.cc:
        "unused variable" warning
      sql/item_timefunc.cc:
        "unused variable" warning
      sql/log_event.h:
        const bool is_valid() -> bool is_valid() const
      sql/opt_range.cc:
        cast log's argument to double (otherwise an error on some compilers)
      sql/opt_range.h:
        get_quick_select_for_ref should be declared in the global scope to be visible.
      d0c69399