1. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · 54b00f54
      unknown authored
      crashes server." The fix makes Item_func_rand prepared-statements
      aware plus it fixes the case when RAND is used in prepared
      statements and replication is on (as well as several similar issues).
      Until now we did not reset THD before every execution of a prepared
      statement, so if some execution had set thd->time_zone_used
      or thd->rand_used they would not be reset until next mysql_parse.
      Some of post-review fixes done.
      
      
      mysql-test/r/ps.result:
        A test case for Bug#5985: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
        server."
      sql/item_func.cc:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/item_func.h:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/mysql_priv.h:
        We need a separate call to reset THD state before every execute of
        a prepared statement. Otherwise things like THD->user_var_events
        are never cleaned up and bloat binary log (as the list of events
        grows from execution to execution).
      sql/sql_class.cc:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_class.h:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_lex.cc:
        Move the part responsible for initializing LEX from mysql_init_query
        to lex_start.
      sql/sql_lex.h:
        All lex-related initialization is now in lex_start.
        Move thd->select_number to lex->select_number to be able to use it
        easily in lex_start.
      sql/sql_parse.cc:
        Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
        which is used in PS and conventional execution, and lex_start, used only
        when we want to parse something.
        Fix init_connect to use initialized THD.
      sql/sql_prepare.cc:
        Deploy mysql_reset_thd_for_next_query to reset THD state before
        execution of a prepared statement.
        Normally this should have been added to just one place, but
        we have to reset thd before assigning placeholders from variables,
        thus we can't do that in execute_stmt (yuck).
      54b00f54
  2. 12 Oct, 2004 4 commits
    • unknown's avatar
      ps.test, ps.result: a test case for Bug#6042 "constants · d007600b
      unknown authored
      propogation works only once (prepared statements)".
      
      
      mysql-test/r/ps.result:
        Test case for Bug#6042: test results fixed
      mysql-test/t/ps.test:
        A test case for Bug#6042 "constants propogation works only once
        (prepared statements).
      d007600b
    • unknown's avatar
      New tests for prepared statements: · 4855ff51
      unknown authored
      - 'ps_10nestset' uses a "nested set" approach for an employee 
        hierarchy, then does arithmetic on the "salary" field;
        (soon) to be extended by inserts / deletes which imply
        mass updates on the "l"/"r" fields showing the set inclusion,
      - 'ps_11bugs' will get (some of ?) those bug DB entries which
        refer to prepared statements, but whose number does not appear
        in a test file comment - so it will also be extended.
      
      
      4855ff51
    • unknown's avatar
      item.h: · 9ed05da4
      unknown authored
        A fix for Bug#6042 "constants propogation works olny once (prepared
        statements)": reset item->marker in Item::cleanup, as it's used
        in propogate_cond_constants. No test case as the only way I could
        come up with to show the problem is EXPLAIN, and EXPLAIN is painful
        to use in the test suite.
      
      
      sql/item.h:
        A fix for Bug#6042 "constants propogation works olny once (prepared
        statements)": reset item->marker in Item::cleanup, as it's used
        in propogate_cond_constants
      9ed05da4
    • unknown's avatar
      NDB compile fix sol9x86 · 64ac84fb
      unknown authored
      
      ndb/include/kernel/LogLevel.hpp:
        compile fix sol9x86
      ndb/include/util/version.h:
        compile fix sol9x86
      ndb/src/common/util/version.c:
        compile fix sol9x86
      ndb/src/mgmsrv/Services.cpp:
        compile fix sol9x86
      64ac84fb
  3. 11 Oct, 2004 5 commits
  4. 10 Oct, 2004 8 commits
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 1073271b
      unknown authored
      into gw.mysql.r18.ru:/usr/home/ram/work/4.1.b5382
      
      
      1073271b
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1 · da03d0a1
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
      
      
      da03d0a1
    • unknown's avatar
      clean-up, indentation fixes. · 98bb6fd4
      unknown authored
      
      mysql-test/t/outfile.test:
        this 'drop...' not needed anymore
      sql/sql_yacc.yy:
        indentation fixes
      98bb6fd4
    • unknown's avatar
      cb81894a
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 12bef7a8
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
      
      
      12bef7a8
    • unknown's avatar
      Fixes bug with tableImpl with blobs not being initialized properly w.r.t... · ed5b9e9a
      unknown authored
      Fixes bug with tableImpl with blobs not being initialized properly w.r.t pointer to blob tableImpl in column
          added blob to test to see that blob tables don't show up in show tables
          auto increment setting need not fetch blob tables (will otherwise generate error during table creation)
          moved addBlobTables out of fetchGlobalTableImpl to get_local_table_info
          changed addBlobTables to start from last column and break if all blobs added
          also addBlobTables will return -1 if failed (typically getTable)
          changed to using get_local_table_info with internal table name where applicable for efficiency
          added option to get_local_table_info wether to fetch blob tables or not
          getTable always fetches the blobtables
          moved addBlobTables to get_local_table_info to always be called, even if main table goes to cache only
      
      
      mysql-test/r/ndb_autodiscover.result:
        added blob to test to see that blob tables don't show up in show tables
      mysql-test/t/ndb_autodiscover.test:
        added blob to test to see that blob tables don't show up in show tables
      ndb/src/ndbapi/Ndb.cpp:
        auto increment setting need not fetch blob tables (will otherwise generate error during table creation)
      ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        moved addBlobTables out of fetchGlobalTableImpl to get_local_table_info
        changed addBlobTables to start from last column and break if all blobs added
        also addBlobTables will return -1 if failed (typically getTable)
        changed to using get_local_table_info with internal table name where applicable for efficiency
      ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        added option to get_local_table_info wether to fetch blob tables or not
        getTable always fetches the blobtables
        moved addBlobTables to get_local_table_info to always be called, even if main table goes to cache only
      ed5b9e9a
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 5ddf724d
      unknown authored
      into gw.mysql.r18.ru:/usr/home/ram/work/4.1.gconcat
      
      
      sql/item_sum.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      5ddf724d
    • unknown's avatar
      Blob support for the group_concat() function. · b123f514
      unknown authored
      (Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
       Bug #5564: Strange behaviour with group_concat and distinct
       Bug #5970: group_concat doesn't print warnings)
      
      
      b123f514
  5. 09 Oct, 2004 8 commits
    • unknown's avatar
      A small simplification: perform two actions at once, register a · acecc4dd
      unknown authored
      change, and perform it (the new Item changes registry).
      
      
      sql/item.cc:
        A small simplification: perform two actions at once, register a
        change, and perform it.
      sql/item_cmpfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/item_func.cc:
        register_item_tree_change -> change_item_tree
      sql/item_row.cc:
        register_item_tree_change -> change_item_tree
      sql/item_strfunc.cc:
        register_item_tree_change -> change_item_tree
      sql/sql_class.h:
        register_item_tree_change -> change_item_tree
      sql/sql_select.cc:
        register_item_tree_change -> change_item_tree
      acecc4dd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · fe0a0347
      unknown authored
      into mysql.com:/media/sda1/mysql/mysql-4.1-hook
      
      
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      fe0a0347
    • unknown's avatar
      A fix and test case for Bug#5987 "subselect in bool function · 1d48aec2
      unknown authored
      crashes server (prepared statements)": the bug was that all boolean
      items always recovered its original arguments at statement cleanup 
      stage.
      This collided with Item_subselect::select_transformer, which tries to 
      permanently change the item tree to use a transformed subselect instead of
      original one.
      So we had this call sequence for prepare:
      mysql_stmt_prepare -> JOIN::prepare -> 
      Item_subselect::fix_fields -> the item tree gets transformed ->
      Item_bool_rowready_func2::cleanup, item tree is recovered to original
      state, while it shouldn't have been;
      mysql_stmt_execute -> attempts to execute a broken tree -> crash.
      Now instead of bluntly recovering all arguments of bool functions in 
      Item_bool_rowready_func2::cleanup, we recover only those
      which were changed, and do it in one place.
      There still would exist a possibility for a collision with subselect
      tranformation, if permanent and temporary changes were performed at the 
      same stage.
      But fortunately subselect transformation is always done first, so it 
      doesn't conflict with the optimization done by propogate_cond_constants.
      Now we have: 
      mysql_stmt_prepare -> JOIN::prepare -> subselect transformation 
      permanently changes the tree -> cleanup doesn't recover anything, 
      because nothing was registered for recovery.
      mysql_stmt_execute -> JOIN::prepare (the tree is already transformed, 
      so it doesn't change), JOIN::optimize -> 
      propogate_cond_constants -> temporary changes the item tree 
      with constants -> JOIN::execute -> cleanup -> 
      the changes done by propogate_cond_constants are recovered, as
      they were registered for recovery.
      
      
      mysql-test/r/ps.result:
        Bug#5987: test results fixed.
      mysql-test/t/ps.test:
        A test for bug#5987 "subselect in bool function crashes server 
        (prepared statements)"
      sql/item.cc:
        resolve_const_item is now responsible to register all changes of the 
        item tree for recovery
      sql/item.h:
        resolve_const_item signagture changed
      sql/item_cmpfunc.h:
        Arguments of boolean functions are now recovered using the 
        centralized registry of THD.
      sql/sql_class.cc:
        It's crucial to add new items to the beginning of the recovery list,
        so that the recovery is performed in LIFO mode: otherwise if we 
        change one node of a tree twice, it will be recovered to some intermediate
        state.
      sql/sql_select.cc:
        change_cond_ref_to_const and propogate_cond_constants are now responsible
        to register all changes of the item tree for recovery.
        The recovery is done using the centralized THD registry of
        changed tree items.
      1d48aec2
    • unknown's avatar
      Added possibility to use [GNR...] optional argument for · 34a30eb7
      unknown authored
      mysqld_multi via mysqld_multi.server.sh
      
      
      34a30eb7
    • unknown's avatar
      Added some extra information to output in case --verbose · f1eefa47
      unknown authored
      was given.
      
      
      f1eefa47
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · af80f39e
      unknown authored
      into a193-229-222-2.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
      
      
      af80f39e
    • unknown's avatar
      - Added --verbose · 412f9da8
      unknown authored
      - Made some of the warnings under --verbose only
      - Added possibility to add mysqladmin= under groups [mysqldN]
        mysqladmin=... is no longer mandatory under [mysqld_multi]
      - Made 'start', 'stop' and 'report' commands truly case-insensitive
      - Some other common places code merge and cleanup
      
      
      412f9da8
    • unknown's avatar
      Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1 · b98a5f07
      unknown authored
      into sanja.is.com.ua:/home/bell/mysql/bk/work-ps-4.1
      
      
      b98a5f07
  6. 08 Oct, 2004 10 commits
    • unknown's avatar
      args_copy and cleunup() removed from Item_sum · c6b382d6
      unknown authored
      registration changing ITEM_SUM arguments added
      
      
      sql/item.cc:
        cleunup for Item_result_field
      sql/item.h:
        cleunup for Item_result_field
      sql/item_sum.cc:
        args_copy and cleunup() removed from Item_sum
      sql/item_sum.h:
        args_copy and cleunup() removed from Item_sum
      sql/sql_select.cc:
        registration changing ITEM_SUM arguments
      c6b382d6
    • unknown's avatar
      row0mysql.c: · 84ad2489
      unknown authored
        If one tries to drop an InnoDB table without an .ibd file, print to .err log that we DID remove the table from the internal data dictionary of InnoDB, and return DB_SUCCESS so that MySQL will delete the .frm file; the drawback in this is that then DROP TABLE returns success, and the user is not alerted; maybe it could return a warning
      
      
      innobase/row/row0mysql.c:
        If one tries to drop an InnoDB table without an .ibd file, print to .err log that we DID remove the table from the internal data dictionary of InnoDB, and return DB_SUCCESS so that MySQL will delete the .frm file; the drawback in this is that then DROP TABLE returns success, and the user is not alerted; maybe it could return a warning
      84ad2489
    • unknown's avatar
      mysql-test-run.sh: · 865a0d1c
      unknown authored
        Look for 'client_test' in tests/ not bin/
      make_binary_distribution.sh:
        Copy 'client_test' into the dist
      
      
      scripts/make_binary_distribution.sh:
        Copy 'client_test' into the dist
      mysql-test/mysql-test-run.sh:
        Look for 'client_test' in tests/ not bin/
      865a0d1c
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · b7212fbe
      unknown authored
      into a193-229-222-2.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
      
      
      b7212fbe
    • unknown's avatar
      Changed a fatal error to a warning in case the default mysqld · 53ff8fd9
      unknown authored
      binary for mysqld_multi was not found. This is because it is
      possible to define one under each mysqldN group separately.
      Bailing out if mysqld binary is not found at all.
      
      Added option --silent to turn off warnings.
      
      
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      53ff8fd9
    • unknown's avatar
      Deployment of centralized Item change registry, step 2: Item_ref · 166d19e9
      unknown authored
      doesn't need to have it's own recovery mechanism.
      
      
      sql/item.cc:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item.h:
        Deployment of centralized Item change registry, step 2: Item_ref 
        doesn't need to have it's own recovery mechanism, so it was simplified.
      sql/item_cmpfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_cmpfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_func.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_func.h:
        - Item::split_sum_func now requires THD
      sql/item_row.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change
      sql/item_row.h:
        - Item::split_sum_func now requires THD
      sql/item_strfunc.cc:
        - Item::split_sum_func now requires THD
        - use THD::register_item_tree_change to register changes in the item
          tree
      sql/item_strfunc.h:
        - Item::split_sum_func now requires THD
      sql/item_subselect.cc:
        - use updated Item_ref constructor
      sql/sql_base.cc:
        - Item::split_sum_func now requires THD
      sql/sql_select.cc:
        - Item::split_sum_func now requires THD
      sql/sql_yacc.yy:
        - use updated Item_ref constructor
      166d19e9
    • unknown's avatar
      Solve compile problem - use system types like 'size_t'. · c428135e
      unknown authored
      
      sql/sql_class.cc:
        'new' does not accept 'unsigned int' on several platforms but 
        requires 'size_t' (this can be 'unsigned long'!).
      c428135e
    • unknown's avatar
      Merge heikki@build.mysql.com:/home/bk/mysql-4.1 · 82343427
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      
      
      82343427
    • unknown's avatar
      row0sel.c, row0row.c: · 3c73e5bd
      unknown authored
        Fix bug #5975 about UTF-8 chars and prefix indexes; do not print warnings if a column prefix is > 255 bytes
      
      
      innobase/row/row0row.c:
        Fix bug #5975 about UTF-8 chars and prefix indexes; do not print warnings if a column prefix is > 255 bytes
      innobase/row/row0sel.c:
        Fix bug #5975 about UTF-8 chars and prefix indexes; do not print warnings if a column prefix is > 255 bytes
      3c73e5bd
    • unknown's avatar
      BUG#5973 ndb table belonging to different database shows up in SHOW TABLES · 3d963659
      unknown authored
      
      mysql-test/r/ndb_autodiscover.result:
        Added test cases to check that SHOW TABLES  only show tables in the selected  db.
      mysql-test/t/ndb_autodiscover.test:
        Added test cases to check that SHOW TABLES  only show tables in the selected  db.
      sql/ha_ndbcluster.cc:
        Only find files for the current db
        Only add files to files list which can be created i.e has a valid frm blob. This prevents NDB$BLOB tables and tables created from NdbApi to show up.
      3d963659
  7. 07 Oct, 2004 4 commits
    • unknown's avatar
      Makefile.am, client_test.test, mysql-test-run.sh: · 69b6adbd
      unknown authored
        To make client_test work as mysql-test-run test case, needs to install it
      
      
      mysql-test/mysql-test-run.sh:
        To make client_test work as mysql-test-run test case, needs to install it
      mysql-test/t/client_test.test:
        To make client_test work as mysql-test-run test case, needs to install it
      tests/Makefile.am:
        To make client_test work as mysql-test-run test case, needs to install it
      69b6adbd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 36b3ed27
      unknown authored
      into mysql.com:/media/sda1/mysql/mysql-4.1-5748-anew
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      36b3ed27
    • unknown's avatar
      A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values · 8fa6f37a
      unknown authored
      crashes mysqld": implementation for a generic item tree modifications
      registry. Every item tree modification which should be rolled back for
      subsequent execution of a prepared statement or stored procedure should
      be saved in the registry. All such modifications are rolled back at once
      during cleanup stage of PS.
      Actual fix for the bug just adds a call to register modifications to
      convert_constant_item.
      Post review fixes implemented.
      
      
      mysql-test/r/ps.result:
        A fix for bug#5748, test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld"
      sql/item.cc:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld":
        First step in removing up item-specific cleanups: now all such
        tree modifications should be done using the genericm mechanism implemented
        in this changeset.
      sql/item.h:
        Fix for Bug#5748 "Prepared statement with BETWEEN and bigint values
        crashes mysqld": no need for an item-specific change record any more.
      sql/item_cmpfunc.cc:
        A fix for Bug#5748 "Prepared statement with BETWEEN and bigint 
        values crashes mysqld": register item tree transformation performed by
        convert_constant_item.
      sql/sql_class.cc:
        Implementation for item tree transformations registry.
      sql/sql_class.h:
        Declarations, necessary for the tree transformations registry.
      sql/sql_parse.cc:
        Assert that the item tree transformations registry is not used for 
        conventional execution.
      sql/sql_prepare.cc:
        Use of the item tree modifications registry in prepared statements:
        rollback all modifications in the end of statement prepare and execute.
        Also we now always set thd->current_arena to be able to determine that
        this is an execution of prepared statement inside the registry code.
      tests/client_test.c:
        A typo fixed.
      8fa6f37a
    • unknown's avatar
      Fixed a bug in --log option. · c9465b91
      unknown authored
      c9465b91