into mysql.com:/opt/local/work/mysql-5.0-root
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
sql/field.cc:
manual merge
tests/mysql_client_test.c:
manual merge
mysql-test/r/select.result:
manual merge
mysql-test/t/select.test:
manual merge
sql/sql_select.cc:
Auto merged
sql/item_func.cc:
Auto merged
in cursors.
libmysql/libmysql.c:
- reset_stmt_handle(): don't reset the server side just because we have
an open cursor: the server will close the cursor automatically if
needed
sql/sql_prepare.cc:
- implement Prepared_statement::close_cursor,
- implicitly close an open cursor in mysql_stmt_execute instead of
issuing an error (to reduce the need to explicitly close cursors
and save network bandwidth).
- cleanup
sql/sql_select.cc:
Remove a destructor: cursor destruction can not be done by simply
calling a destructor, because of cross-references between cursor
and statement memory.
sql/sql_select.h:
- add an empty Cursor destructor
tests/mysql_client_test.c:
- remove a test for dropped functionality
No separate typecode for MEDIUMTEXT/LONGTEXT is added, as we
have no sound decision yet what typecodes and for what types are
sent by the server (aka what constitutes a distinct type in MySQL).
mysql-test/r/ps_2myisam.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_3innodb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_4heap.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_5merge.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_6bdb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_7ndb.result:
Test results fixed: new longtext/longblob length (2^32)
sql/field.cc:
A fix for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT": fix wrong initialization of field_length
in case of BLOB fields.
tests/mysql_client_test.c:
A test case for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT"
tests/mysql_client_test.c:
a fix (bug #11808: Test case 'mysql_client_test' fails in assert 'double_data == o_double_data')
cmp_double() introduced in order to avoid using long double registers
(for local double vars).
The problem here is that columns that have an especially long type
such as an enum type with many options would be longer than 40 chars
but the type column returned from show columns always was defined
as varchar(40).
This is fixed in 5.0 using info schema.
mysql-test/r/ps_1general.result:
update columns which will now be reported as blobs
mysql-test/r/ps_2myisam.result:
update columns which will now be reported as blobs
mysql-test/r/ps_3innodb.result:
update columns which will now be reported as blobs
mysql-test/r/ps_4heap.result:
update columns which will now be reported as blobs
mysql-test/r/ps_5merge.result:
update columns which will now be reported as blobs
sql/item.cc:
report a column as a particular blob type if it's size warrants
sql/sql_show.cc:
Add function to iterate over all the fields of a table and determine
the longest type name.
We call this function at the top of our show fields code. We pass in
either 40 or max_len whichever is longer to the ctor of
Item_empty_string.
tests/mysql_client_test.c:
update columns which will now be reported as blobs
Added api function mysql_get_character_set_info which provides
information about the current client character set.
include/mysql.h:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
libmysql/libmysql.c:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
libmysql/libmysql.def:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
tests/mysql_client_test.c:
Added api function mysql_get_character_set_info which provides
information about the current client character set.
BitKeeper/deleted/.del-Makefile.am~6cfa0db5e7778d09:
Auto merged
BitKeeper/deleted/.del-Makefile.am~41238af048e60515:
Auto merged
mysql-test/Makefile.am:
Auto merged
netware/Makefile.am:
Auto merged
tests/Makefile.am:
Auto merged
vio/Makefile.am:
SCCS merged
into mysql.com:/home/jimw/my/mysql-5.0-clean
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
tests/mysql_client_test.c:
Clean up merge of new tests
Add a test case for Bug#11656 "Server crash with mysql_stmt_fetch
(cursors)", the bug itself is no longer present.
tests/mysql_client_test.c:
Add a test case for Bug#11656 "Server crash with mysql_stmt_fetch
(cursors)", the bug itself is no longer present.
CURSOR_TYPE_READ_ONLY date/datetime filter server crash".
The fix adds support for Item_change_list in cursors (proper rollback
of the modified item tree).
sql/sql_class.cc:
No need to call fatal_error() twice.
sql/sql_prepare.cc:
- implement proper cleanup of the prepared statement in mysql_stmt_reset
if there is a cursor.
- take into account thd->change_list when fetching data through a
cursor.
sql/sql_select.cc:
- take into account thd->change_list when fetching data from a cursor:
grab it when we open a cursor, and rollback the changes to the parsed
tree when we close it.
sql/sql_select.h:
- Cursor::change_list added
tests/mysql_client_test.c:
- a test case for Bug#11172 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY date/datetime
filter server crash"
open cursor after mysql_stmt_execute" + post-review fixes.
The bug was caused by wrong flags in stmt->server_status on the client
side: if there was no cursor, the server didn't send server_status
flags to the client, and the old flags were used to set up the
fetch function of a statement. Consequently, stmt_read_row_from_cursor was
used when there was no cursor. The fix fixes the server to always
send server flags to the client.
include/mysql_com.h:
Update stale comments.
libmysql/libmysql.c:
Remove an extra assignment.
libmysqld/lib_sql.cc:
Update to correspond to the changed signature of send_eof
sql/protocol.cc:
Actual fix for bug#10794: create a function that writes the eof
packet to network and use it from send_fields. We need to send
a full eof packet from send_fields to inform the client about
the cursor status (that there is no cursor in this case).
sql/protocol.h:
Remove an unused parameter for send_eof.
tests/mysql_client_test.c:
A test case for Bug#10794 "mysql_stmt_attr_set no open cursor
after mysql_stmt_execute"
CURSOR_TYPE_READ_ONLY select within select".
The bug was caused by the reset of thd->mem_root to thd->main_mem_root in
Item_subselect::exec, which in turn triggered too early free_root() for
data which was needed on subsequent fetches from a cursor.
This reset also caused a memory leak in stored procedures, as
subsequent executions of instructions containing a subselect
were allocating memory in thd->main_mem_root, which is not freed
until the end of the entire SP, instead of the per-call mem_root,
which is freed in the end of execution of the instruction.
sql/item_subselect.cc:
Don't try to protect subqueries from the code that assumes that
it can reset thd->mem_root and get away with it: it's responsibility
of the caller to ensure that no assumption about the life span
of the allocated memory made by the called code is broken.
Besides, this didn't work well with cursors and stored procedures,
where the runtime memory root is not the same as &thd->main_mem_root.
sql/opt_range.cc:
In get_mm_leaf restore the original mem_root of the thd which has
been temporarily reset with the quick select mem_root earlier: if
thd->mem_root points to the QUICK...::mem_root, the memory allocated
in JOIN::exec during evaluation of a subquery gets freed too early.
tests/mysql_client_test.c:
A test case for Bug#10736 "mysql_stmt_attr_set CURSOR_TYPE_READ_ONLY
select within select"
it can use it to switch to only quoting apostrophes by doubling
them when it is in effect. (Bug #10214)
include/my_sys.h:
Add new escape_quotes_for_mysql() function
include/mysql_com.h:
Add SERVER_STATUS_NO_BACKSLASH_ESCAPES
libmysql/libmysql.c:
Use SERVER_STATUS_NO_BACKSLASH_ESCAPES in server_status to determine
how mysql_real_escape_string() should do quoting.
mysys/charset.c:
Add new escape_quotes_for_mysql() function that only quotes
apostrophes by doubling them up.
sql/set_var.cc:
Set SERVER_STATUS_NO_BACKSLASH_ESCAPES when MODE_NO_BACKSLASH_ESCAPES
changes.
sql/sql_class.cc:
Set SERVER_STATUS_NO_BACKSLASH_ESCAPES when necessary on thread creation.
tests/mysql_client_test.c:
Add new test for sending NO_BACKSLASH_ESCAPES as part of server_status.
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"
Fix for link failures on boxes with non-gnu compiler.
client/Makefile.am:
Add a dummy C++ file to client suite to make libtool use a C++ linker:
this lets client suite link when using yaSSL and a non-gcc C++ compiler.
config/ac-macros/yassl.m4:
HAVE_YASSL conditional is used to add dummy C++ file if configured with yaSSL.
tests/Makefile.am:
Add a dummy C++ file to tests to make libtool use a C++ linker:
this lets tests link when using yaSSL and a non-gcc C++ compiler.
vio/Makefile.am:
Use dummy C++ file if configured with yaSSL only.
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)
set net->no_send_error to 0 before execution of each element of
multiquery statement to provide the sending of error to client
tests/mysql_client_test.c:
Fix for bug #9992: mysql_next_result hangs on error
test case
This makes it easier to give an error in the handler if there was a problem generating an auto-increment value
mysys/thr_alarm.c:
Remove warning from valgrind
sql/item_strfunc.cc:
Fixed indentation
tests/mysql_client_test.c:
Removed compiler warning
- check on the client the unsupported feature and return
an error message if it's been requested.
Additionally added API support for STMT_ATTR_PREFETCH_ROWS.
Post-review fixes.
include/errmsg.h:
Add a new error code for "Not implemented" client-side error message.
include/mysql.h:
Add a statement attribute STMT_ATTR_PREFETCH_ROWS - unsigned long
number of rows to fetch per one COM_FETCH command, used when there
is a read-only cursor.
Note, that we don't break compatibility by adding this new member
because MYSQL_STMT is always allocated inside the client library by
mysql_stmt_init.
libmysql/errmsg.c:
Text for the error message CR_NOT_IMPLEMENTED
libmysql/libmysql.c:
Implement support for STMT_ATTR_PREFETCH_ROWS
Return an error message on attempt to set an attribute of a prepared
statement which is not implemented yet. We probably should be doing
it in the server: currently the server just ignores unknown attributes.
tests/mysql_client_test.c:
A test case for Bug#9643 "CURSOR_TYPE_SCROLLABLE dos not work"
- check that an error message is returned for CURSOR_TYPE_SCROLLABLE.
Additionally, check setting of STMT_ATTR_PREFETCH_ROWS.
Fixed bug in mysql_stmt_fetch() when retrieving rows to return
mysql-test/r/ps.result:
Fix to not get warnings if mysql_client_test.test fails
mysql-test/t/index_merge_ror.test:
Proper fix for 64 bit intel (which gives uses another, equal good index)
mysql-test/t/ps.test:
Fix to not get warnings if mysql_client_test.test fails
sql-common/client.c:
More debugging
sql/sql_prepare.cc:
Fixed bug in mysql_stmt_fetch() when retrieving rows to return
sql/sql_select.cc:
More debugging
tests/mysql_client_test.c:
More debugging
(crash on attempt to re-execute a statement with an open cursor) +
post-review fixes.
include/errmsg.h:
Add a special error message when we attempt to mysql_stmt_fetch
from a statement which has no result set.
libmysql/errmsg.c:
Error message text for CR_NO_RESULT_SET
libmysql/libmysql.c:
Move the code which frees result sets on client and closes the cursor
on server, resets long data state on client and server.
This makes one function out of two (mysql_stmt_reset and
mysql_stmt_free_result), thus aggregating all related reset work
in one place.
sql-common/client.c:
Fix one place where we flushed the pending result set of a statement,
but didn't set unbuffered_fetch_cancelled flag.
sql/share/errmsg.txt:
Fix format of ER_UNKNOWN_STMT_HANDLER error message (needs to
be fixed separately in 4.1). Add two new error messages
for the case when we fetch from when there is no cursor
and for the case when we attempt to execute a statement while there is
a cursor.
sql/sql_prepare.cc:
Return error when we fetch while there is no open cursor and
when we call execute while there is a pending cursor.
Fix mysql_stmt_reset to close the open cursor if there is any.
sql/sql_select.cc:
free_items and free_root moved to Cursor::close().
sql/sql_select.h:
A comment added.
tests/mysql_client_test.c:
A test case for Bug#9478, test the case of mysql_stmt_reset
called for client-side cached result set and for the case with open cursor.
All strcpy replaced with strmov (review request).
BitKeeper/etc/logging_ok:
auto-union
configure.in:
Auto merged
include/config-win.h:
Auto merged
include/my_global.h:
Auto merged
mysql-test/r/drop.result:
Auto merged
mysys/default.c:
Auto merged
mysys/mf_keycache.c:
Auto merged
sql/field.h:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysqld.cc:
Auto merged
BitKeeper/deleted/.del-errmsg.txt~f96b7055cac394e:
Auto merged
mysql-test/r/cast.result:
Merge
mysql-test/t/cast.test:
Merge
sql/sql_insert.cc:
Merge
sql/sql_select.cc:
Merge
with cursor". The patch refactors do_select/sub_select
functions, which implement the nested loop algorithm, and reuses them to
fetch rows for cursors as well.
Pushing with view.test failing (--ps-protocol).
sql/sql_prepare.cc:
Cursor::fetch() now returns void
sql/sql_select.cc:
A fix for Bug#9520 "SELECT DISTINCT crashes server with cursor":
* rename sub_select returns codes to be able to track down what's going
on in which case.
* move record processing and outer join record processing to a separate
function, out of sub_select read-record loop.
* use generalized sub_select() nested loop function for
cursors instead of own loop implementation used in Cursor::fetch() before
sql/sql_select.h:
Replace all return values of sub_select family with enum.
Add JOIN::resume_nested_loop flag to indicate we are restarting the nested loop
for execution of next chunk of cursor's rows.
tests/mysql_client_test.c:
A test case for Bug#9520 "SELECT DISTINCT crashes server with cursor"
mysql-test/mysql-test-run.sh:
Set up arguments for mysql_client_test when testing
the embedded server.
tests/mysql_client_test.c:
Add -A switch for passing arguments to the embedded server.
Fixed problem with NULL in VARCHAR/BLOB keys for multi-part keys where VARCHAR/BLOB is first part
client/mysqladmin.cc:
Show GLOBAL status
myisam/mi_key.c:
Fixed problem with NULL in VARCHAR/BLOB keys for multi-part keys where VARCHAR/BLOB is first part
(Ramil will soon push test cases)
sql/handler.cc:
Indentation fix
tests/mysql_client_test.c:
Portability fixes
Added email threading capabilities to both
programs.
tests/mail_to_db.pl:
Changes to mail_to_db.pl
- Removed table name as optional. Future releases may require
more than one table, after which it's better to have a fixed
table name.
- Fixed a bug in report (division by zero error), if table was created,
but no mails was inserted.
- Added fields message_id and in_reply_to.
tests/pmail.pl:
Changed pmail:
New option: --thread. Prints all sub sequent replies in the thread.
New option: --message_id. Prints message_id and number of replies found.
Both options are run recursively. That means, not just direct replies to
the mail found are being searched, but also replies to replies and so on
until the whole thread has been found.
Clean up: Localized variables and moved code into functions.
Fix that mysql.proc works with new VARCHAR fields
Give warnings for wrong zero dates
configure.in:
Don't use -lsupc++ with gcc 3.3 and below as this gives linking problems when linking staticly
mysql-test/r/func_time.result:
New warnings
mysql-test/r/row.result:
Moved code around to get things to work with --ps-protocol
Note that one on warning disappered, but it should appear again when bug #9600 is fixed
mysql-test/r/strict.result:
enabled more tests
Added more tests
mysql-test/r/union.result:
Test that UNION generates correct row format
mysql-test/t/row.test:
Moved test to get things to work with --ps-protocol
mysql-test/t/strict.test:
enabled more tests
Added more tests
mysql-test/t/union.test:
Test that UNION generates correct row format
sql/item.cc:
Removed compiler warning
Simple cleanup
sql/sp.cc:
Fix that mysql.proc works with new VARCHAR fields
sql/time.cc:
Give warnings for wrong zero dates
tests/mysql_client_test.c:
More startup information
and Bug#9159 "Server crash during mysql_stmt_close".
The patch adds support for single-row result sets in cursors.
libmysql/libmysql.c:
If we wanted a cursor, and the server wasn't able to create one,
buffer all rows on client. Currently this is possible only for
single row result sets and some SHOW commands.
sql/sql_prepare.cc:
Properly free resources if there was a request to open a cursor which
wasn't fullfilled.
Give error on attempt to open a cursor for a statement not returning
a result set.
sql/sql_select.h:
Initialize Item_arena of Cursor object. A case when a cursor object
is created but not used is possible with single-row result sets.
tests/mysql_client_test.c:
Test cases for Bug#8880 and Bug#9159
server" to the test suite, the bug is no longer repeatable.
tests/mysql_client_test.c:
The test case for Bug#8722 "prepared statement with view crashes server"