1. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · e7a0d543
      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).
      e7a0d543
  2. 12 Oct, 2004 4 commits
    • unknown's avatar
      ps.test, ps.result: a test case for Bug#6042 "constants · febdbf18
      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).
      febdbf18
    • unknown's avatar
      New tests for prepared statements: · 24db339f
      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.
      
      24db339f
    • unknown's avatar
      item.h: · cf19901a
      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
      cf19901a
    • unknown's avatar
      NDB compile fix sol9x86 · 3908b8f8
      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
      3908b8f8
  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 · 01d299f7
      unknown authored
      into gw.mysql.r18.ru:/usr/home/ram/work/4.1.b5382
      
      01d299f7
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 34b5a761
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
      
      34b5a761
    • unknown's avatar
      clean-up, indentation fixes. · 913e003b
      unknown authored
      
      mysql-test/t/outfile.test:
        this 'drop...' not needed anymore
      sql/sql_yacc.yy:
        indentation fixes
      913e003b
    • unknown's avatar
      692c4ee4
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 4195d5e0
      unknown authored
      into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
      
      4195d5e0
    • unknown's avatar
      Fixes bug with tableImpl with blobs not being initialized properly w.r.t... · 95c21a25
      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
      95c21a25
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · d9f53f22
      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
      d9f53f22
    • unknown's avatar
      Blob support for the group_concat() function. · 5acf251b
      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)
      
      5acf251b
  5. 09 Oct, 2004 8 commits
    • unknown's avatar
      A small simplification: perform two actions at once, register a · c90fd2c4
      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
      c90fd2c4
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 338a38b6
      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
      338a38b6
    • unknown's avatar
      A fix and test case for Bug#5987 "subselect in bool function · bcc6f615
      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.
      bcc6f615
    • unknown's avatar
      Added possibility to use [GNR...] optional argument for · 285d66d5
      unknown authored
      mysqld_multi via mysqld_multi.server.sh
      
      285d66d5
    • unknown's avatar
      Added some extra information to output in case --verbose · 8cc0f7e6
      unknown authored
      was given.
      
      8cc0f7e6
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · c5fe1823
      unknown authored
      into a193-229-222-2.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
      
      c5fe1823
    • unknown's avatar
      - Added --verbose · 3082911a
      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
      
      3082911a
    • unknown's avatar
      Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1 · ac209a97
      unknown authored
      into sanja.is.com.ua:/home/bell/mysql/bk/work-ps-4.1
      
      ac209a97
  6. 08 Oct, 2004 10 commits
    • unknown's avatar
      args_copy and cleunup() removed from Item_sum · 29d87fee
      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
      29d87fee
    • unknown's avatar
      row0mysql.c: · bffccdf4
      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
      bffccdf4
    • unknown's avatar
      mysql-test-run.sh: · 6f00b4de
      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/
      6f00b4de
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · 2cda143a
      unknown authored
      into a193-229-222-2.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
      
      2cda143a
    • unknown's avatar
      Changed a fatal error to a warning in case the default mysqld · 26736163
      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
      26736163
    • unknown's avatar
      Deployment of centralized Item change registry, step 2: Item_ref · 9ba3c23e
      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
      9ba3c23e
    • unknown's avatar
      Solve compile problem - use system types like 'size_t'. · f0fae219
      unknown authored
      
      sql/sql_class.cc:
        'new' does not accept 'unsigned int' on several platforms but 
        requires 'size_t' (this can be 'unsigned long'!).
      f0fae219
    • unknown's avatar
      Merge heikki@build.mysql.com:/home/bk/mysql-4.1 · 1a7275b2
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      
      1a7275b2
    • unknown's avatar
      row0sel.c, row0row.c: · 918a3fb9
      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
      918a3fb9
    • unknown's avatar
      BUG#5973 ndb table belonging to different database shows up in SHOW TABLES · 4a1a0c48
      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.
      4a1a0c48
  7. 07 Oct, 2004 4 commits
    • unknown's avatar
      Makefile.am, client_test.test, mysql-test-run.sh: · 451636cd
      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
      451636cd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 8a7e072d
      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
      8a7e072d
    • unknown's avatar
      A fix for Bug#5748 "Prepared statement with BETWEEN and bigint values · 5eba8d3a
      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.
      5eba8d3a
    • unknown's avatar
      Fixed a bug in --log option. · d67bedd8
      unknown authored
      d67bedd8