Commit graph

1252 commits

Author SHA1 Message Date
unknown
f6edb3f5c2 Free unused JOINs early even if using subqueries.
sql/sql_select.cc:
  According to the conclusion made in the previous patch, we can widen
  the range of cases when JOINs are fully freed early, and include 
  subqueries to it.
2005-06-25 00:27:40 +04:00
unknown
024d232af5 Remove an unrelevant assert.
sql/sql_select.cc:
  This assert is not relevant because:
  - the correct assert is DBUG_ASSERT(! (full && sl->uncacheable)) 
    (prevents freeing of uncacheable JOINs), it breaks view.test
  - it seems we can free internal JOINs, even if they are uncacheable:
    if the top level join is evaluated, we're not going to need  the
    internal joins any more
2005-06-24 23:29:00 +04:00
unknown
e0fde7f52b Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-join_free2push


sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
2005-06-24 22:48:46 +04:00
unknown
97e78d6017 - don't call JOIN::join_free(1) twice for every join in JOIN::cleanup().
The reason it happened was that both, JOIN::cleanup() and JOIN::join_free(),
went over all nested joins and called cleanup/join_free for them.
For that:
- split recursive and non-recursive parts of JOIN::cleanup() and
JOIN::join_free()
- rename JOIN::cleanup to JOIN::destroy, as it actually destroys its
  argument
- move the recursive part of JOIN::cleanup to st_select_lex::cleanup
- move the non-recursive part of JOIN::join_free to the introduced
  method JOIN::cleanup().


sql/sql_lex.h:
  Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup()
sql/sql_select.cc:
  - remove two unused arguments from return_zero_rows
  - split JOIN::join_free and JOIN::cleanup to recursive and non-recursive
    parts.
  - note, the assert in JOIN::join_free _does_ fail in having.test.
    We have two options: a) propagate `full' flag to the nested joins.
    We did it before, and this patch didn't change it. If so, we 
    can end up cleaning up an uncacheable JOIN (that is, the join that
    we might need again).
    b) evaluate own 'full' flag on every level. In this case, we might
    end up with tables freed in mysql_unlock_read_tables, but not
    cleaned up properly, and this may be even worse. The test suite
    passes with both approaches, but not with the assert.
sql/sql_select.h:
  - declarations for JOIN::cleanup() and JOIN::join_free()
sql/sql_union.cc:
  Add st_select_lex::cleanup, a counterpart of st_select_lex_unit::cleanup():
  move the recursive part of JOIN::cleanup to it.
2005-06-24 22:48:12 +04:00
unknown
61e7655c89 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
2005-06-23 11:22:32 -07:00
unknown
e3cfd4ef0c Manual merge
mysql-test/r/func_str.result:
  Auto merged
mysql-test/t/func_str.test:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-23 11:22:30 -07:00
unknown
91180cb8ab - implement inheritance of sp_instr: public Query_arena.
We need every instruction to have its own arena, because we want to
  track instruction's state (INITIALIZED_FOR_SP -> EXECUTED). Because of 
  `if' statements and other conditional instructions used in stored 
  procedures, not every instruction of a stored procedure gets executed 
  during the first (or even subsequent) execution of the procedure. 
  So it's better if we track the execution state of every instruction 
  independently.
  All instructions of a given procedure now also share sp_head's 
  mem_root, but keep their own free_list.
  This simplifies juggling with free Item lists in sp_head::execute.
- free_items() moved to be a member of Query_arena. 
- logic of 'backup_arena' debug member of Query_arena has been
  changed to support
  multi-backups. Until now, TRUE 'backup_arena' meant that there is
  exactly one active backup of the THD arena. Now it means simply that
  the arena is used for backup, so that we can't accidentally overwrite an 
  existing backup. This allows doing multiple backups, e.g. in
  sp_head::execute and Cursor::fetch, when THD arena is already backed up
  but we want to set yet another arena (usually the 'permanent' arena,
  to save permanent transformations/optimizations of a parsed tree).


sql/sp_head.cc:
  - use Query_arena support in sp_head::execute() as now sp_instr inherites
    from it.
sql/sp_head.h:
  - inherite sp_instr from Query_arena
sql/sql_class.cc:
  - changed the principle of Query_arena::backup_arena; free_items is now
    a member of Query_arena.
sql/sql_class.h:
  - changed the principle of Query_arena::backup_arena; free_items is now
    a member of Query_arena.
sql/sql_prepare.cc:
  free_items() is now a member of Query_arena.
sql/sql_select.cc:
  free_items() now automatically sets free_list to zero.
2005-06-23 20:22:08 +04:00
unknown
98253bd64d func_str.result, func_str.test:
Added a test case for bug #10124.
sql_select.h, item_subselect.cc, sql_select.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
field.cc:
  Fixed bug #10124.
  When ussuing a warning the store methods return 2 instead of 1 now.


sql/field.cc:
  Fixed bug #10124.
  When ussuing a warning the store methods return 2 instead of 1 now.
sql/sql_select.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
sql/item_subselect.cc:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
sql/sql_select.h:
  Fixed bug #10124.
  The copy method of the store_key classes can return
  STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
mysql-test/t/func_str.test:
  Added a test case for bug #10124.
mysql-test/r/func_str.result:
  Added a test case for bug #10124.
2005-06-23 06:15:50 -07:00
unknown
60d6b87775 Remove THD::stmt_backup
sql/sql_class.cc:
  Statement constructor for the case when it's used for backup only
  was removed.
sql/sql_class.h:
  Remove THD::stmt_backup and simplify Statement constructors.
sql/sql_prepare.cc:
  Use an object on stack instead of THD::stmt_backup
sql/sql_select.cc:
  Use an object on stack instead of THD::stmt_backup
2005-06-22 23:12:25 +04:00
unknown
e5245b34d1 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-10736-new


sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-22 14:40:30 +04:00
unknown
80a621321b WL#2286 - Compile MySQL w/YASSL support
Fix GCC 4.0 link failure.
Better CXX_VERSION guessing.


config/ac-macros/misc.m4:
  Better CXX_VERSION guessing.
configure.in:
  CXX_VERSION guessing moved to misc.m4.
  HAVE_EXPLICIT_TEMPLATE_INSTANTIATION moved to config.h.
  Use compiler AR with MIPSpro and Forte instead of instantiating templates explicitly.
extra/yassl/src/crypto_wrapper.cpp:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
extra/yassl/src/template_instnt.cpp:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
extra/yassl/src/yassl_int.cpp:
  GCC 4.0 link fix. This file needs __cxa_pure_virtual.
extra/yassl/taocrypt/include/runtime.hpp:
  Fix GCC 4.0 link failure. Instruct compiler to always emit __cxa_pure_virtual even if
  it seems to be never used.
extra/yassl/taocrypt/include/types.hpp:
  Include config.h.
extra/yassl/taocrypt/src/algebra.cpp:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
extra/yassl/taocrypt/src/dh.cpp:
  GCC 4.0 link fix. This file needs __cxa_pure_virtual.
extra/yassl/taocrypt/src/dsa.cpp:
  GCC 4.0 link fix. This file needs __cxa_pure_virtual.
extra/yassl/taocrypt/src/integer.cpp:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
extra/yassl/taocrypt/src/rsa.cpp:
  GCC 4.0 link fix. This file needs __cxa_pure_virtual.
extra/yassl/taocrypt/src/template_instnt.cpp:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/field.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/item.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/item_buff.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/mysqld.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/opt_range.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/set_var.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/slave.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_acl.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_class.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_insert.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_map.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_select.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/sql_show.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
sql/table.cc:
  EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
2005-06-22 14:08:28 +05:00
unknown
40f0738b9c Adjust to the changed Query_arena constructor:
main_mem_root is moved out of class Query_arena.


sql/sp_head.cc:
  Adjust to the changed Query_arena constructor. 
  main_mem_root is moved out of class Query_arena.
sql/sp_head.h:
  main_mem_root is moved out of class Query_arena: add it to class sp_head.
sql/sql_class.cc:
  main_mem_root is moved out of class Query_arena: remove
  constructors no longer relevant, remove dead code.
sql/sql_class.h:
  main_mem_root is moved out of class Query_arena.
sql/sql_prepare.cc:
  It's better to not use main_mem_root anywhere: logically, it's not
  a public member (can't fix sp_head::make_field and Item_subselect::exec
  to make it protected)
sql/sql_select.cc:
  New Cursor constructor, which avoids unneeded memory allocation
  when initializign main_mem_root.
sql/sql_select.h:
  main_mem_root is moved out of class Query_arena.
2005-06-22 11:59:13 +04:00
unknown
2c7095c82e Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1
into igor-inspiron.creware.com:/home/igor/mysql-4.1


sql/sql_select.cc:
  Auto merged
2005-06-20 06:13:30 -07:00
unknown
2ccb51061b Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/svoj/devel/mysql/yassl-mysql-5.0


sql/item_buff.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
2005-06-20 11:33:57 +05:00
unknown
2c8ee686d8 WL#2286 - Compile MySQL w/YASSL support
Fix for yaSSL link failures with Forte Developer 7, MIPSpro Compilers, Compaq C++.
These compilers have problem with implicit template instantiation in archives
(libyassl.a, libtaocrypt.a). Instantiate templates explicitly.

Fix for yaSSL link failure on powermacg5 (gcc 3.3). When -O3 is specified gcc inlines
__cxa_pure_virtual. This is wrong behavior, __cxa_pure_virtual must never be inlined.


configure.in:
  Better CXX_VERSION guessing.
  EXPLICIT_TEMPLATE_INSTANTIATION macro indicates whether to instantiate templates explicitly.
  Instantiate templates explicitly on MIPSpro, Compaq, Forte.
extra/yassl/src/crypto_wrapper.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
extra/yassl/src/template_instnt.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
  More portable templates instantiation.
extra/yassl/src/yassl_int.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
  More portable templates instantiation.
extra/yassl/taocrypt/include/runtime.hpp:
  Fix for link failure on powermacg5 (gcc 3.3). __cxa_pure_virtual must never be inlined.
extra/yassl/taocrypt/src/algebra.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
extra/yassl/taocrypt/src/integer.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
extra/yassl/taocrypt/src/template_instnt.cpp:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/field.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/item.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/item_buff.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/mysqld.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/opt_range.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/set_var.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/slave.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_acl.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_class.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_insert.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_map.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_select.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/sql_show.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
sql/table.cc:
  Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
2005-06-19 21:46:44 +05:00
unknown
aece56e30a Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


sql/sql_select.cc:
  Auto merged
2005-06-17 14:54:59 +02:00
unknown
30aabe00de Merge dl145c.mysql.com:/home/ndbdev/tomas/mysql-4.1
into dl145c.mysql.com:/home/ndbdev/tomas/mysql-5.0


sql/sql_select.cc:
  Auto merged
2005-06-17 12:53:49 +02:00
unknown
6de6d3ad5c sql_select.cc:
fixed 64bit bug in lenght store/retrive in cache


sql/sql_select.cc:
  fixed 64bit bug in lenght store/retrive in cache
2005-06-17 12:36:09 +02:00
unknown
cb121e0ce5 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-16 21:27:51 +02:00
unknown
0f57c00481 Manual merge
mysql-test/t/rpl_ddl.test:
  Auto merged
ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-16 10:04:41 -07:00
unknown
0812385dcc group_by.result, group_by.test:
Added a test case for bug #8614.
sql_select.cc:
  Fixed bug #8614.
  SELECT DISTINCT ... GROUP BY 'const' must be equivalent to
  SELECT ... GROUP BY 'const'.


sql/sql_select.cc:
  Fixed bug #8614.
  SELECT DISTINCT ... GROUP BY 'const' must be equivalent to
  SELECT ... GROUP BY 'const'.
mysql-test/t/group_by.test:
  Added a test case for bug #8614.
mysql-test/r/group_by.result:
  Added a test case for bug #8614.
2005-06-16 09:45:41 -07:00
unknown
536a1cd14b merged
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
  Auto merged
ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_select.cc:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  ul
2005-06-16 14:35:15 +02:00
unknown
17b55ca39b for consictency, changed to use memcpy_fixed. 2005-06-16 13:39:54 +02:00
unknown
9fb9133f2c cleanup for bug#11167.
portability alignment issues.
2005-06-15 22:49:52 +02:00
unknown
f1f1d39a29 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0


sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-15 20:24:13 +02:00
unknown
f1e42a0b35 renamed:
Item_buff -> Cached_item
  Item_arena -> Query_arena
  TEST_ASSERT -> YYERROR_UNLESS


sql/item.h:
  renamed:
    Item_buff -> Cached_item
sql/item_buff.cc:
  renamed:
    Item_buff -> Cached_item
sql/item_func.cc:
  renamed:
    Item_arena -> Query_arena
sql/item_subselect.cc:
  renamed:
    Item_arena -> Query_arena
sql/sp_head.cc:
  renamed:
    Item_arena -> Query_arena
sql/sp_head.h:
  renamed:
    Item_arena -> Query_arena
sql/sql_base.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_class.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_class.h:
  renamed:
    Item_arena -> Query_arena
sql/sql_lex.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_prepare.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_select.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_select.h:
  renamed:
    Item_buff -> Cached_item
    Item_arena -> Query_arena
sql/sql_union.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_view.cc:
  renamed:
    Item_arena -> Query_arena
sql/sql_yacc.yy:
  renamed:
    TEST_ASSERT -> YYERROR_UNLESS
sql/table.cc:
  renamed:
    Item_arena -> Query_arena
2005-06-15 19:58:35 +02:00
unknown
ad57284c69 join_nested.result, join_nested.test:
Added a teast case for bug #11284.
sql_select.cc:
  Fixed bug #11284.
  Optimization with empty inner table currently cannot be
  used in the case of nested outer join.


sql/sql_select.cc:
  Fixed bug #11284.
  Optimization with empty inner table currently cannot be
  used in the case of nested outer join.
mysql-test/t/join_nested.test:
  Added a teast case for bug #11284.
2005-06-15 05:56:19 -07:00
unknown
67c204c46b Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
2005-06-15 03:39:43 -07:00
unknown
098d02eb44 join_outer.result, join_outer.test:
Added a test case for bug #11285.
sql_select.cc:
  Fixed bug #11285.
  The problem occurred with Item_equal in an 'on expression'
  that was evaluated to false.


sql/sql_select.cc:
  Fixed bug #11285.
  The problem occurred with Item_equal in an 'on expression'
  that was evaluated to false.
mysql-test/t/join_outer.test:
  Added a test case for bug #11285.
mysql-test/r/join_outer.result:
  Added a test case for bug #11285.
2005-06-15 02:02:25 -07:00
unknown
476ca52ee7 Fix for BUG#11211 "GROUP BY doesn't work correctly"
When the GROUP BY clause contains a column reference that can be resolved to
both an aliased column in the SELECT list, and to a column in the FROM clause,
the group column is resolved to the column in the FROM clause (for ANSI conformance).
However, it may be so that the user's intent is just the other way around, and he/she
gets the query results grouped by a completely different column than expexted.
This patch adds a warning in such cases that tells the user that there is potential
ambiguity in the group column.

sql/sql_select.cc
- Added a warning when a GROUP column is ambiguous due to that there is a
  column reference with the same name both in the SELECT and FROM clauses.
  In this case we resolve to the column in FROM clause and warn the user
  of a possible ambiguity.
- More extensive comments.
- Changed the function to return bool instead of int (as in other places).

mysql-test/t/group_by.test
  Added test for BUG#11211.

mysql-test/r/group_by.result
  Added test for BUG#11211.


mysql-test/r/group_by.result:
  Import patch 11211.diff
mysql-test/t/group_by.test:
  Import patch 11211.diff
sql/sql_select.cc:
  Import patch 11211.diff
BitKeeper/etc/ignore:
  Added ndb/src/dummy.cpp to the ignore list
mysql-test/r/alias.result:
  Added warning for potentially ambiguous column.
mysql-test/r/having.result:
  Added warning for potentially ambiguous column.
2005-06-15 10:12:49 +03:00
unknown
4d8cbb0c27 fix of BUG#11111 fix
sql/item.h:
  revrited as recursive
sql/sql_select.cc:
  real_type is virtual
tests/mysql_client_test.c:
  check results abd delete views
2005-06-15 01:57:25 +03:00
unknown
4095a52a77 Fix 11 "fetch from view returns wrong data"
Wrong method for creating temporary field was choosen, which results in
sending int field with int header but lonlong data.

Test case is added to mysql_client_test.c because client library is required
to test the bug.



tests/mysql_client_test.c:
  Test case for bug#11111 "fetch from view returns wrong data"
sql/sql_select.cc:
  Fix bug #11111 "fetch from view returns wrong data"
sql/item.h:
  Fix bug #11111 "fetch from view returns wrong data"
2005-06-15 01:57:40 +04:00
unknown
0cd6d1c6f1 Merge igor-inspiron.creware.com:/home/igor/dev/mysql-4.1-0
into igor-inspiron.creware.com:/home/igor/dev/mysql-5.0-0


BitKeeper/etc/logging_ok:
  auto-union
mysql-test/r/ctype_utf8.result:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-13 06:28:23 -07:00
unknown
3f483c18bd ctype_utf8.test, ctype_utf8.result:
Added a test case for bug #11167.
sql_select.cc:
  Fixed bug #11167.
  In 4.1 char/varchar fields are limited by 255 characters in
  length that make them longer than 255 bytes in size for such
  character sets as UTF8. The functions store_record_in_cache
  and read_cached_records did not take into account this
  Moreover the code did not take into account that the size
  of the varchar fields in 5.0 can be up to 65535 bytes


sql/sql_select.cc:
  Fixed bug #11167.
  In 4.1 char/varchar fields are limited by 255 characters in
  length that make them longer than 255 bytes in size for such
  character sets as UTF8. The functions store_record_in_cache
  and read_cached_records did not take into account this
  Moreover the code did not take into account that the size
  of the varchar fields in 5.0 can be up to 65535 bytes
mysql-test/r/ctype_utf8.result:
  Added a test case for bug #11167.
mysql-test/t/ctype_utf8.test:
  Added a test case for bug #11167.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-06-13 06:10:19 -07:00
unknown
d0db70270c A fix and test case for Bug#10729 "mysql_stmt_attr_set
CURSOR_TYPE_READ_ONLY". The bug was that we (me) don't perform proper
cleanups of the prepared statement when done fetching from a cursor.
Another patch.


sql/mysql_priv.h:
  Rename reset_stmt_for_execute to init_stmt_before_use (to correspond to
  cleanup_stmt_and_thd_after_use).
sql/sp_head.cc:
  Rename.
sql/sql_prepare.cc:
  Move common cleanup code to a cleanup function, call it when we close
  a cursor.
sql/sql_select.cc:
  Cleanup.
sql/sql_select.h:
  No need for init_thd, this code has been inlined in Cursor::open.
tests/mysql_client_test.c:
  Add a test case for Bug#10729 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY"
  (problem reusing a prepared statemnt if there was a cursor)
2005-06-09 18:17:45 +04:00
unknown
03a85abe90 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0
into rurik.mysql.com:/home/igor/mysql-5.0


sql/item.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-07 06:00:37 -07:00
unknown
edb38786c9 Manual merge.
sql/item.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2005-06-07 14:50:45 +04:00
unknown
5188f031ae Patch two (the final one) for Bug#7306 "the server side preparedStatement
error for LIMIT placeholder".
The patch adds grammar support for LIMIT ?, ? and changes the
type of ST_SELECT_LEX::select_limit,offset_limit from ha_rows to Item*,
so that it can point to Item_param.


mysql-test/include/ps_modify.inc:
  Fix existing tests: now LIMIT can contain placeholders.
mysql-test/include/ps_query.inc:
  Fix existing tests: now LIMIT can contain placeholders.
mysql-test/r/ps.result:
  Add basic test coverage for LIMIT ?, ? and fix test results.
mysql-test/r/ps_2myisam.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/r/ps_3innodb.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/r/ps_4heap.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/r/ps_5merge.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/r/ps_6bdb.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/r/ps_7ndb.result:
  Fix test results: now LIMIT can contain placeholders.
mysql-test/t/ps.test:
  Add basic test coverage for LIMIT ?, ?.
sql/item.h:
  Add a short-cut for (ulonglong) val_int() to Item.
  Add a constructor to Item_int() that accepts ulonglong.
  Simplify Item_uint constructor by using the c-tor above.
sql/item_subselect.cc:
  Now select_limit has type Item *.
  We can safely create an Item in Item_exists_subselect::fix_length_and_dec():
  it will be allocated in runtime memory root and freed in the end of
  execution.
sql/sp_head.cc:
  Add a special initalization state for stored procedures to 
  be able to easily distinguish the first execution of a stored procedure
  from prepared statement prepare.
sql/sql_class.h:
  Introduce new state 'INITIALIZED_FOR_SP' to be able to easily distinguish
  the first execution of a stored procedure from prepared statement prepare.
sql/sql_derived.cc:
  - use unit->set_limit() to set unit->select_limit_cnt, offset_limit_cnt
    evreryplace. Add a warning about use of set_limit in 
  mysql_derived_filling.
sql/sql_error.cc:
  - use unit->set_limit() to set unit->select_limit_cnt, offset_limit_cnt
    evreryplace.
  - this change is also aware of bug#11095 "show warnings limit 0 returns 
  all rows instead of zero rows", so the one who merges the bugfix from
  4.1 can use local version of sql_error.cc.
sql/sql_handler.cc:
  - use unit->set_limit() to initalize 
  unit->select_limit_cnt,offset_limit_cnt everyplace.
sql/sql_lex.cc:
  Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
sql/sql_lex.h:
  Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
sql/sql_parse.cc:
  - use unit->set_limit() to initalize 
  unit->select_limit_cnt,offset_limit_cnt everyplace. 
  - we can create an Item_int to set global limit of a statement:
  it will be created in the runtime mem root and freed in the end of
  execution.
sql/sql_repl.cc:
  Use unit->set_limit to initialize limits.
sql/sql_select.cc:
  - select_limit is now Item* so the proper way to check for default value
  is to compare it with NULL.
sql/sql_union.cc:
  Evaluate offset_limit_cnt using the new type of ST_SELECT_LEX::offset_limit
sql/sql_view.cc:
  Now ST_SELECT_LEX::select_limit, offset_limit have type Item *
sql/sql_yacc.yy:
  Add grammar support for LIMIT ?, ? clause.
2005-06-07 14:11:36 +04:00
unknown
ecd32735e2 Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


mysql-test/r/group_by.result:
  Auto merged
sql/item.h:
  Auto merged
sql/item_buff.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-07 03:07:42 -07:00
unknown
4da133cabf sql_select.cc, item_buff.cc, item.h:
Fixed bug #11088: a crash for queries with GROUP BY a BLOB column
  + COUNT(DISTINCT...) due to an attempt to allocate a too large
  buffer for the BLOB field.
  Now the size of the buffer is limited by max_sort_length.
group_by.test, group_by.result:
  Added a test case for bug #11088.


mysql-test/r/group_by.result:
  Added a test case for bug #11088.
mysql-test/t/group_by.test:
  Added a test case for bug #11088.
sql/item.h:
  Fixed bug #11088: a crash for queries with GROUP BY a BLOB column
  + COUNT(DISTINCT...) due to an attempt to allocate a too large
  buffer for the BLOB fields.
  Now the size of the buffer is limited by max_sort_length.
sql/item_buff.cc:
  Fixed bug #11088: a crash for queries with GROUP BY a BLOB column
  + COUNT(DISTINCT...) due to an attempt to allocate a too large
  buffer for the BLOB fields.
  Now the size of the buffer is limited by max_sort_length.
sql/sql_select.cc:
  Fixed bug #11088: a crash for queries with GROUP BY a BLOB column
  + COUNT(DISTINCT...) due to an attempt to allocate a too large
  buffer for the BLOB fields.
  Now the size of the buffer is limited by max_sort_length.
2005-06-07 03:05:57 -07:00
unknown
e90b64cda4 After merge fixes
mysql-test/r/innodb.result:
  Update results
mysql-test/r/warnings.result:
  Update results
sql/item.cc:
  Simple optimization
sql/item_func.cc:
  After merge fix
sql/item_sum.cc:
  Fixes for group_concat and rollup (From Ramil)
sql/sql_parse.cc:
  Remove compiler warning
sql/sql_select.cc:
  Fixed problem with rollup
2005-06-07 05:43:59 +03:00
unknown
bd47a7df59 Merge with 4.1
BitKeeper/etc/logging_ok:
  auto-union
client/sql_string.cc:
  Auto merged
configure.in:
  Auto merged
include/my_global.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/create.result:
  Auto merged
mysql-test/r/olap.result:
  Auto merged
mysql-test/r/warnings.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/warnings.test:
  Auto merged
mysys/raid.cc:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
sql/field.cc:
  Auto merged
BitKeeper/deleted/.del-ha_isam.cc~4dce65904db2675e:
  Auto merged
BitKeeper/deleted/.del-ha_isammrg.cc~dc682e4755d77a2e:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_blackhole.cc:
  Auto merged
sql/ha_heap.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_geofunc.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/item_uniq.cc:
  Auto merged
sql/lock.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/procedure.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/protocol_cursor.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_analyse.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_error.cc:
  Auto merged
sql/sql_handler.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_map.cc:
  Auto merged
sql/sql_olap.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_string.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_udf.cc:
  Auto merged
sql/examples/ha_archive.cc:
  Auto merged
sql/examples/ha_example.cc:
  Auto merged
sql/examples/ha_tina.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/tztime.cc:
  Auto merged
strings/ctype-win1250ch.c:
  Auto merged
mysql-test/r/func_gconcat.result:
  merge & ensure that 4.1 and 5.0 source have tests in same order
mysql-test/r/innodb.result:
  merge & ensure that 4.1 and 5.0 source have tests in same order
mysql-test/t/func_gconcat.test:
  merge & ensure that 4.1 and 5.0 source have tests in same order
mysql-test/t/innodb.test:
  merge & ensure that 4.1 and 5.0 source have tests in same order
sql/item_func.cc:
  merge
sql/mysqld.cc:
  merge
sql/opt_range.cc:
  merge
sql/sql_parse.cc:
  merge
  Give better name to goto labels
sql/sql_select.cc:
  merge
2005-06-07 00:31:53 +03:00
unknown
a0682cac47 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0


sql/item_func.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-06 19:43:07 +03:00
unknown
4fb0b9b874 Merge lgrimmer@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/space/my/mysql-5.0


sql/sql_select.cc:
  Auto merged
2005-06-06 18:03:16 +02:00
unknown
6fd6ad917a Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0


sql/sql_select.cc:
  Auto merged
2005-06-06 18:31:38 +03:00
unknown
a0d18bd492 Some Windows compile improvements:
- removed some unreferenced variables
 - fixed the libmysql project file by removing a duplicate file reference (merge error)


sql/item_func.cc:
  - removed unused variable "Field" from Item_func_sp::sp_result_field
sql/sql_select.cc:
  - removed unreferenced variable "filename" from create_tmp_table
sql/unireg.cc:
  - removed unused variable "firstpos" from make_empty_rec
VC++Files/libmysql/libmysql.dsp:
  - after-merge fix: removed duplicate file ctype-cp932.c
2005-06-06 15:23:04 +02:00
unknown
4e12564589 Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
2005-06-06 06:15:09 -07:00
unknown
3b808af0fd sp.test, sp.result:
Added a test case for bug #6866.
sql_select.cc:
  Fixed bug #6866.
  Bug was due to the fact that on_expr was not backed up
  for the second execution of the stored procedure.


sql/sql_select.cc:
  Fixed bug #6866.
  Bug was due to the fact that on_expr was not backed up
  for the second execution of the stored procedure.
mysql-test/r/sp.result:
  Added a test case for bug #6866.
mysql-test/t/sp.test:
  Added a test case for bug #6866.
2005-06-06 06:05:11 -07:00
unknown
062a1b8b4e a compiler must see '#pragma implementation' *before*
'#pragma interface' (that comes with the #include'd header file)
2005-06-05 19:38:52 +02:00
unknown
4eb26350cb merge
client/mysql.cc:
  Auto merged
libmysql/libmysql.c:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_bitmap.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-06-05 17:19:50 +03:00