summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* mysql_stmt_field_count()unknown2004-06-061-0/+1
| | | | | | | | | | | | include/mysql.h: mysql_stmt_field_count() declaration libmysql/libmysql.c: added mysql_stmt_field_count(): we need this function to ease use of mysql_stmt_result_metadata: if mysql_stmt_field_count() != 0 mysql_stmt_result_metadata fails only if OOM. libmysql/libmysql.def: declaration for mysql_stmt_field_count()
* Few more cleanups in client_test:unknown2004-06-051-264/+13
| | | | | | | | No need for mysql_commit, especially after DDL statements. tests/client_test.c: No need for mysql_commit, especially after DDL statements.
* The comment is not true any more. unknown2004-06-051-6/+0
| | | | | | | Is there a way to sefely use MYSQL_BIND structure without bzero?
* HAVE_DEPRECATED_411_API macro removed.unknown2004-06-041-3275/+3382
| | | | | | | | | include/mysql.h: Removed obsolete define. tests/client_test.c: Rewritten to use new API. Few cleanups. A lot of valgrind warnings/errors removed.
* Fix for Bug#3796 "Prepared statement, select concat(<parameter>,<column>), ↵unknown2004-05-311-3/+87
| | | | | | | | | | | | | | | | | | wrong result": new Item_param member for use in val_str() sql/item.cc: Fix for Bug#3796: - return str_value_ptr from val_str to prevent modifications of parameter value. sql/item.h: Fix for bug#3796: - Item::val_str() method semantics documented - new member of Item_param tests/client_test.c: Test case for bug #3796 added. A few compile-time warnings removed.
* Support for character set conversion in binary protocol: another gounknown2004-05-251-7/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | after Monty's review. - Item_param was rewritten. - it turns out that we can't convert string data to character set of connection on the fly, because they first should be written to the binary log. To support efficient conversion we need to rewrite prepared statements binlogging code first. include/my_global.h: Macro swap(a, b, c) was renamed to resolve name conflict with String::swap() method. include/my_sys.h: Added declaration of escape_string_for_mysql() include/mysql_com.h: Removed and moved back: a macro which is visible to libmysql user but has sence only in prepared statement protocol implementation. isam/_search.c: swap -> swap_variables isam/test2.c: swap -> swap_variables libmysql/libmysql.c: - sub_escape_string moved to mysys/charset.c to be visible in sql/ - few cleanups myisam/mi_test2.c: swap -> swap_variables mysys/charset.c: sub_escape_string was moved from libmysql.c to be able to use it in sql/ code. mysys/my_chsize.c: rename: swap -> swap_variables mysys/my_compress.c: swap -> swap_variables mysys/my_handler.c: swap -> swap_variables sql/field.cc: Field::store_time refactored to use TIME_to_string function from time.cc sql/item.cc: New implementation of Item_param class: added support for character sets conversion. sql/item.h: Item_param: - 'state' member introduced instead of many boolean variables. - put ltime, int_value and real_value into union to save space. - remove unimplemented members - set_value renamed to set_str sql/item_timefunc.cc: Refactored to use functions from time.cc sql/lock.cc: rename: swap -> swap_variables sql/mysql_priv.h: - added declarations for TIME_to_ulonglong_*, TIME_to_string functions - const specifiers for make_date, make_time, make_datetime arguments sql/opt_range.cc: rename: swap -> swap_variables sql/protocol.cc: - added character set conversion support to binary protocol. - Protocol::convert changed to point at shared buffer in THD. This lets us use one convert buffer for binary and simple protocol. The same buffer is used for client->server conversions in prepared statements code. - string conversion code refactored to Protocol::store_string_aux function. - few more comments sql/protocol.h: - Protocol::convert now points at THD::convert_buffer: we want to share one buffer between all protocol implementations. sql/sql_class.cc: - implementation of THD::convert_string using THD::convert_buffer (conversion of strings allocated in the system heap). sql/sql_class.h: - THD::convert_buffer is shared between THD and network Protocols and used for character set conversion of strings. - new function to convert String object from one charset to another using THD::convert_buffer sql/sql_insert.cc: A little fix in a comment. sql/sql_parse.cc: Shrink convert buffer in the end of each statement. sql/sql_prepare.cc: Many changes: - static specifier for set_param_* family of functions. - FIELD_TYPE -> MYSQL_TYPE - added set_param_binary as handler for BLOB types. - added character set support - added support for param typecode in mysql_stmt_get_longdata (mysql_stmt_send_long_data handler) - changes in Item_param deployed - few cleanups sql/sql_select.cc: rename: swap -> swap_variables sql/sql_string.cc: - String::append rewritten to support character set conversion for single-byte encodings. - added String::swap method to efficiently exchange two string objects. sql/sql_string.h: Declraration for String::swap(). sql/time.cc: - function TIME_to_string to convert TIME to String in default MySQL format - family of functions TIME_to_ulonglong_* tests/client_test.c: Test for support for character set conversions in prepared statements (binary and text data).
* assigning max_length parameter for Item_param (Bug #3811)unknown2004-05-201-1/+43
| | | | | | | | sql/item.cc: assigning max_length/decimal parameter for Item_param tests/client_test.c: layout fixed test suite for bug
* Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-05-191-9/+11
|\ | | | | | | | | | | | | | | | | | | into deer.(none):/home/hf/work/mysql-4.1.ps sql/sql_parse.cc: Auto merged tests/client_test.c: Auto merged
| * Portability fixesunknown2004-05-191-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed wrong number of warnings/duplicates for machines with high-byte-first client/mysql.cc: Remove not used variables client/mysqltest.c: Remove double ; myisam/ft_nlq_search.c: Fix valgrind error (not fatal) myisam/rt_test.c: Portability fix mysql-test/r/rpl_trunc_binlog.result: Portability fix mysql-test/t/rpl_trunc_binlog.test: Portability fix (Column 23 was different on openbsd) sql/sql_insert.cc: Fixed wrong number of warnings/duplicates for machines with high-byte-first strings/ctype-big5.c: Portability fix strings/ctype-gbk.c: Portability fix strings/ctype-mb.c: Portability fix strings/ctype-uca.c: Portability fix tests/client_test.c: Portability fixes
* | Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-05-171-0/+3
|\ \ | |/ |/| | | | | | | | | | | | | | | into deer.(none):/home/hf/work/mysql-4.1.ps sql/sql_parse.cc: Auto merged tests/client_test.c: Auto merged
| * Fixes for #3371, #3372, #3374, #3375, #3376unknown2004-05-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libmysql/libmysql.c: code to fix #3772 counting of field->max_length moved to mysql_store_stmt_result so it will work in libmysqld also libmysqld/lib_sql.cc: to fix #3771 and #3775 stmt->affected_rows specifying added code getting default values changed so it will add terminating /0 to values sql/sql_parse.cc: to fix #3773 silly mistake here :\ sql/sql_prepare.cc: to fix #3774 and #3776 special function for datetime values in embedded server added unsigned flag now specified for values in embedded server tests/client_test.c: this test fails if privilege-checking pars are disabled (it's the default for libmysqld)
* | Better fix for bug #3749 (bug in deleting automatic generated foreign keys)unknown2004-05-151-3/+2
|/ | | | | | | | | | | | | mysql-test/r/func_encrypt.result: Update tests (left after sanjas last push) mysql-test/r/innodb.result: Added test for bug #3749 (bug in deleting automatic generated foreign keys) mysql-test/t/innodb.test: Added test for bug #3749 (bug in deleting automatic generated foreign keys) sql/sql_class.cc: Updated comment tests/client_test.c: Added missing mysql_stmt_close()
* treat parameter as constant in ORDER BY check of fields in SELECT list(Bug ↵unknown2004-05-101-1/+47
| | | | | | | | | #3686) sql/sql_select.cc: treat parameter as constant in ORDER BY check of fields in SELECT list tests/client_test.c: test of using parameters in SELECT list with ORDER BY
* mysql_stmt_reset now expects ok/error packet from server.unknown2004-05-061-1/+4
| | | | | | | | | libmysql/libmysql.c: Make advanced_command check client reply sql/sql_prepare.cc: mysql_stmt_reset now sends ok/error reply to the client. tests/client_test.c: Memory leak fixed.
* Few cleanups to client_test.cunknown2004-05-061-9/+5
| | | | | tests/client_test.c: Few cleanups
* Merge bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-05-051-5/+28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/my/mysql-4.1 mysql-test/r/subselect.result: Auto merged sql/item.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_update.cc: Auto merged tests/client_test.c: Auto merged
| * Fix to handle unsigned data in prepared statements (Bug #3447)unknown2004-05-041-5/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404) Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238) Don't auto-repair tables in mysqlcheck if table type doesn't support 'check' command. Docs/mysqld_error.txt: Updated error values client/mysqlcheck.c: Don't cause auto-repair on 'note' (Tables that doesn't support 'check') libmysql/libmysql.c: Fix to handle unsigned data in prepared statements (Bug #3447) mysql-test/r/analyse.result: Test of analyze + impossible where (Bug #2238) mysql-test/r/bdb.result: Update results mysql-test/r/ctype_ujis.result: Update results mysql-test/r/isam.result: Update results mysql-test/r/repair.result: Update results mysql-test/t/analyse.test: Test of analyze + impossible where (Bug #2238) mysql-test/t/ctype_ujis.test: Added test for LIKE (Bug #3438) sql/sql_acl.cc: Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404) sql/sql_select.cc: Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238) sql/sql_table.cc: Changed 'error' to 'note' when table doesn't support admin command. sql/sql_update.cc: Indentaion cleanup tests/client_test.c: Added test for handling unsigned/signed strings with prepared statements
* | After merge fix. unknown2004-05-041-21/+16
| | | | | | | | | | | | | | | | Now test_bug1664() uses new statement checking macros. tests/client_test.c: Now test_bug1664() uses new statement checking macros.
* | Manual merge of bugfix for Bug #1664.unknown2004-05-041-0/+148
|\ \ | | | | | | | | | | | | | | | | | | sql/sql_prepare.cc: Auto merged tests/client_test.c: Manual merge.
| * | Fix for remaining issues described in Bug #1664 unknown2004-05-041-0/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "mysql_send_long_data() API call is completely broken". Now we are resetting some members (long_data_supplied/null_value...) of Item_param to its initial state after each execution of prepared statement. We also manipulating Item_param::maybe_null/null_value only via Item_param::set_* setters which makes code a bit more robust. sql/item.cc: Now we are assuming that Item_param may be NULL until we know this fact exactly. Added non-empty implementation of Item_param::reset() method which should be used for restoring Item_param state after each statment execution. (We need to clear long_data_supplied flag, we also clear some other Item_param members here since it makes code simpler.) sql/item.h: Now Item_param::reset() method really does something. sql/sql_prepare.cc: Now we are calling Item_param::reset() for each parameter after execution for resetting Item_param to initial state. So we no longer don't need Prepared_statement::long_data_flag. We also set Item_param::null_value/maybe_null value in Item_param::set_* and reset() methods instead of doing it explicitly in insert_params_* functions (this by the way lowers probability that we will forget to update one of such functions). tests/client_test.c: Added test for Bug#1664 "mysql_send_long_data() API call is broken".
* | | return table list of fake_select in empty state to prevent using TABLE_LIST ↵unknown2004-05-031-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | allocated on stack in next execution of PS (Bug #3577) sql/sql_union.cc: return table list of fake_select in empty state to prevent using TABLE_LIST allocated on stack in next execution of PS tests/client_test.c: test of UNIONS with PS
* | | Fix client_test to use new statement assertion macrosunknown2004-04-301-3/+3
| | |
* | | Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-04-301-0/+58
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | into mysql.com:/dbdata/psergey/mysql-4.1-bug3420 tests/client_test.c: Auto merged
| * | Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-04-301-0/+58
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/dbdata/psergey/mysql-4.1-bug3420 tests/client_test.c: Auto merged
| | * | Testcase for BUG#3420. The bug itself has been fixed by some previous PS ↵unknown2004-04-141-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | code changes made since 4.1.1a tests/client_test.c: Testcase for BUG#3420
* | | | Only calculate MYSQL_FIELD->max_length if mysql_stmt_attr_set(..., ↵unknown2004-04-301-26/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | STMT_ATTR_UPDATE_MAX_LENGTH) is done. tests/client_test.c: Test mysql_stmt_attr_set(...STMT_ATTR_UPDATE_MAX_LENGTH)
* | | | Mergeunknown2004-04-301-503/+569
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | libmysql/libmysql.c: Auto merged tests/client_test.c: Auto merged include/mysql.h: SCCS merged
| * | | Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result() (Bug #1647)unknown2004-04-301-503/+569
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added checking of cut read lines in bootstrap thread (Bug #2874) include/mysql.h: Added length to MYSQL_ROWS to enable sanity checking of packets Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result() libmysql/libmysql.c: Update 'MYSQL_FIELD->max_length' on mysql_stmt_store_result() (Bug #1647) scripts/fill_help_tables.sh: Added checking of maximum length of line in output (Bug #2874) scripts/mysql_install_db.sh: Added error message if help tables couldn't be done (Bug #2874) sql/sql_parse.cc: Added checking of cut read lines in bootstrap thread (Bug #2874) tests/client_test.c: Added --debug Changed some strange define names Less output Added testing of max_length for prepared statements
* | | | Merge bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-04-301-0/+163
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/kostja/mysql/mysql-4.1-u2 include/mysql.h: Auto merged libmysql/libmysql.c: Auto merged sql/sql_prepare.cc: Auto merged tests/client_test.c: Auto merged
| * | | Fix for Bug#3035 "Prepared statement integer inserts": now unsignedunknown2004-04-301-0/+163
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flag is sent to server with placeholder types. There were no need to extend the protocol as one additional byte was reserved for placeholder code, when placeholder code is in range 0-255. So this byte is now used for flags. Post-review fixes added. include/config-win.h: added floaststore implementation include/my_global.h: added floatstore implementation include/mysql.h: Bug#3035: added 'is_unsigned' member binary_data wasn't used, removed null_field wasn't necessary, removed include/mysql_com.h: Unused defines were removed. libmysql/libmysql.c: Function store_param_type was removed - too much for a function, especially with bug in it. New implementation is inline and takes into account signedness of placeholder. Fixed store functions to not perform double network-host order conversion on high-byte-first systems (should also fix Bug#3578 "Prepared statement integer conversions work wrong in 64-bit Power Mac G5 CPUs"). null_field removed. sql/sql_prepare.cc: Placeholder sign is taken into account when reading data from network. tests/client_test.c: Test for BUG#3035 added: insert and retrieve minimum and maximum of all integer types.
* | | Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1unknown2004-04-301-1/+31
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | into mysql.com:/dbdata/psergey/mysql-4.1-my-ps-bugs tests/client_test.c: Auto merged
| * | Fix for BUG#3567: Disallow several SQL statements inside a Prepared Statement.unknown2004-04-271-0/+30
| | |
| * | Fixed client_test to run with MAX_KEY=64. unknown2004-04-271-1/+1
| |/
* | Fix and testcase for BUG#3367.unknown2004-04-131-0/+70
|/ | | | | sql/sql_prepare.cc: value_is_set should be true for NULL value, as for non-NULL values.
* complex join example for test suiteunknown2004-04-091-0/+53
|
* fixed subquery in the FROM clause with parameter (BUG#3020)unknown2004-04-081-0/+48
| | | | | | | sql/sql_derived.cc: do not execute subqueries in the FROM clause in PS preparation tests/client_test.c: test of subquery in FROM clause with parameter
* field->store resuts passing is fixed for REAL and INT for Item_param (BUG3223)unknown2004-04-081-2/+45
| | | | | | | | | sql/item.cc: field->store resuts passing is fixed for REAL and INT tests/client_test.c: removed debugging commnet fixed type casting test for BUG#3223
* new error for unsupported command in PSunknown2004-04-081-23/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixed IN subselect with basic constant left expression SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406) fixed multiupdate privelege check (BUG#3408) fixed multiupdate tables check (BUG#3411) unchecked commands now is rejected by PS protocol to avoid serever crash fixed cleunup procedure to be compatible sith DO/SET (BUG#3393) include/mysqld_error.h: new error for unsupported command in PS mysql-test/r/multi_update.result: test sutes (BUG#3408, BUG#3411) mysql-test/t/multi_update.test: test sutes (BUG#3408, BUG#3411) sql/item_cmpfunc.cc: fixed IN subselect with basic constant left expression sql/mysql_priv.h: some function frop sql_parse.h become public sql/set_var.cc: check for SET command via PS sql/set_var.h: check for SET command via PS sql/share/czech/errmsg.txt: new error for unsupported command in PS sql/share/danish/errmsg.txt: new error for unsupported command in PS sql/share/dutch/errmsg.txt: new error for unsupported command in PS sql/share/english/errmsg.txt: new error for unsupported command in PS sql/share/estonian/errmsg.txt: new error for unsupported command in PS sql/share/french/errmsg.txt: new error for unsupported command in PS sql/share/german/errmsg.txt: new error for unsupported command in PS sql/share/greek/errmsg.txt: new error for unsupported command in PS sql/share/hungarian/errmsg.txt: new error for unsupported command in PS sql/share/italian/errmsg.txt: new error for unsupported command in PS sql/share/japanese/errmsg.txt: new error for unsupported command in PS sql/share/korean/errmsg.txt: new error for unsupported command in PS sql/share/norwegian-ny/errmsg.txt: new error for unsupported command in PS sql/share/norwegian/errmsg.txt: new error for unsupported command in PS sql/share/polish/errmsg.txt: new error for unsupported command in PS sql/share/portuguese/errmsg.txt: new error for unsupported command in PS sql/share/romanian/errmsg.txt: new error for unsupported command in PS sql/share/russian/errmsg.txt: new error for unsupported command in PS sql/share/serbian/errmsg.txt: new error for unsupported command in PS sql/share/slovak/errmsg.txt: new error for unsupported command in PS sql/share/spanish/errmsg.txt: new error for unsupported command in PS sql/share/swedish/errmsg.txt: new error for unsupported command in PS sql/share/ukrainian/errmsg.txt: new error for unsupported command in PS sql/sql_lex.cc: first table unlincking procedures for CREATE command sql/sql_lex.h: first table unlincking procedures for CREATE command sql/sql_parse.cc: used function to exclude first table from list SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406) fixed multiupdate privelege check (BUG#3408) fixed multiupdate tables check (BUG#3411) sql/sql_prepare.cc: fixed a lot of commands to be compatible with PS unchecked commands now is rejected to avoid serever crash sql/sql_select.cc: allow empty result for PS preparing sql/sql_union.cc: fixed cleunup procedure to be compatible sith DO/SET (BUG#3393) sql/sql_update.cc: fixed update to use correct tables lists (BUG#3408) sql/table.h: flag to support multi update tables check (BUG#3408) tests/client_test.c: removed unsupported tables fixed show table test added new tests
* reverting table list to be able to use it in next PS call (BUG#2811)unknown2004-04-061-4/+83
| | | | | | | | | | sql/sql_parse.cc: reverting table list to be able to use it in next PS call sql/sql_rename.cc: reverting table list to be able to use it in next PS call tests/client_test.c: typo fixed test of crete/drop/rename commands
* for Item_param we have to have value set instead of fave item fixed (BUG#3353)unknown2004-04-031-14/+28
| | | | | | | | | | | | | fixed outer joins test of different joins included sql/item.cc: for Item_param we have to have value set instead of fave item fixed sql/sql_base.cc: fixed PS with outer joins tests/client_test.c: test of different types of joins
* fixed brocken of client_test unknown2004-04-031-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixed aggregate functions in PS (BUG#3360) mysql-test/r/union.result: 4.1 more correct error sql/item_cmpfunc.h: and_conds do not make fix fields sql/item_sum.cc: storing/restoring argument of aggregate function for prepared statements restoring order list of group_concat for safety sql/item_sum.h: storing/restoring argument of aggregate function for prepared statements layout fix sql/mysql_priv.h: just declaration sql/sql_base.cc: fix_fields() have to be called with temporary memory pool active sql/sql_parse.cc: removed hack with item pointer storing sql/sql_prepare.cc: debug output added removed hack with item pointer storing sql/sql_select.cc: fix_fields now should be called separately sql/sql_union.cc: removed wrong merged check from 4.0 (4.1 have its own protection) sql/table.h: removed hack with item pointer storing tests/client_test.c: new test fo PS
* fix for table/field caching mechanismunknown2004-04-011-0/+39
| | | | | | | | | | | | | | | | | save moving ON/USING tables conditions to WHERE clause (BUG#2794) sql/sql_base.cc: fix for table/field caching mechanism (global lock of it and right table passed as parameter) save moving ON/USING tables conditions to WHERE clause (BUG#2794) sql/sql_class.cc: lock for using field/table cache in Item name resolution sql/sql_class.h: lock for using field/table cache in Item name resolution sql/sql_insert.cc: lock for using field/table cache in Item name resolution tests/client_test.c: Test of PS queries with ON condition
* Merge fix.unknown2004-03-251-0/+63
|\ | | | | | | | | | | | | sql/sql_yacc.yy: Auto merged tests/client_test.c: Merge fix (two new test cases at the same time).
| * Fixed BUG#3117: LAST_INSERT_ID() works incorrectly inside stored procedure.unknown2004-03-251-2/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This turned out to be a problem for prepared statements as well; the id was evaluated once, at parse time. mysql-test/r/auto_increment.result: Updated results after bugfix in last_insert_id(). mysql-test/r/query_cache.result: Updated results after bugfix in last_insert_id(). mysql-test/r/variables.result: Updated results after bugfix in last_insert_id(). sql/item_func.cc: Fixed bug in last_insert_id(); get id at each evaluation (and not in the parser). Renamed the class Item_func_set_last_insert_id too, since it's not only for setting. sql/item_func.h: Fixed bug in last_insert_id(); get id at each evaluation (and not in the parser). Renamed the class Item_func_set_last_insert_id too, since it's not only for setting. sql/sql_yacc.yy: Fixed bug in last_insert_id(); get id at each evaluation (and not in the parser). Renamed the class Item_func_set_last_insert_id too, since it's not only for setting. tests/client_test.c: Test case for last_insert_id() in prepared statements.
* | fixed union with prepared statement bug found by Konstantinunknown2004-03-231-3/+57
|/ | | | | | | | | sql/sql_lex.cc: initialisation for safety sql/sql_union.cc: item list should be saved in statement memory tests/client_test.c: test suite
* mergeunknown2004-03-181-1/+34
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sql/field.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_update.cc: Auto merged sql/sql_yacc.yy: Auto merged
| * DBUG_ASSERT(fixed == 0) added to fix_fields()unknown2004-03-171-1/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sql/item.cc: layout fixed fixed bug in prepared statements with subqueries and outer references sql/item.h: neg_transformer get thd argument to call fix_fields sql/item_cmpfunc.cc: DBUG_ASSERT(fixed == 0) added to fix_fields() fixed Item_in_optimizer fixed flag neg_arguments(), neg_transformer() call fix_field() on created items to avoid bouble fix field or non-called fixfields() sql/item_cmpfunc.h: neg_transformer get thd argument to call fix_fields fixed forgoten cleanup() call of parent class sql/item_func.cc: DBUG_ASSERT(fixed == 0) and fixed flag check added to fix_fields() sql/item_func.h: DBUG_ASSERT(fixed == 0) added to fix_fields() fixed forgoten cleanup() call of parent class sql/item_row.cc: DBUG_ASSERT(fixed == 0) added to fix_fields() added forgoten 'fixed' flag set sql/item_subselect.cc: DBUG_ASSERT(fixed == 0) added to fix_fields() fixed subquery transformation sql/sql_base.cc: check of fixed flag added sql/sql_derived.cc: fixed cleunup union in derived table during EXPLAIN command processing sql/sql_select.cc: thd argument add to function to allow call fix_fields() of new created items fixed EXPLAIN double preparation check of fixed flag added eliminate_not_funcs fixed for corrcet fix_fields call of new created items sql/sql_select.h: thd argument add to function to allow call fix_fields() of new created items sql/sql_union.cc: union processing fixed tests/client_test.c: layout fixed new test of outer references fron subqueries
* | merge with 4.0unknown2004-03-161-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/logging_ok: auto-union VC++Files/innobase/innobase.dsp: Auto merged VC++Files/libmysql/libmysql.dsp: Auto merged acinclude.m4: Auto merged configure.in: Auto merged BitKeeper/deleted/.del-com0shm.c~6a16f0c3d81de1f: Auto merged BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql: Auto merged extra/replace.c: Auto merged include/my_sys.h: Auto merged innobase/btr/btr0btr.c: Auto merged innobase/btr/btr0cur.c: Auto merged innobase/btr/btr0pcur.c: Auto merged innobase/btr/btr0sea.c: Auto merged innobase/configure.in: Auto merged innobase/data/data0data.c: Auto merged innobase/dict/dict0boot.c: Auto merged innobase/dict/dict0crea.c: Auto merged innobase/dict/dict0dict.c: Auto merged innobase/dict/dict0load.c: Auto merged innobase/dict/dict0mem.c: Auto merged innobase/ha/ha0ha.c: Auto merged innobase/ha/hash0hash.c: Auto merged innobase/include/btr0btr.ic: Auto merged innobase/include/data0type.ic: Auto merged innobase/include/dict0mem.h: Auto merged innobase/include/log0log.ic: Auto merged innobase/include/mach0data.ic: Auto merged innobase/include/mtr0log.h: Auto merged innobase/include/mtr0mtr.h: Auto merged innobase/include/os0file.h: Auto merged innobase/include/row0upd.ic: Auto merged innobase/include/srv0srv.h: Auto merged innobase/include/sync0sync.h: Auto merged innobase/include/trx0rseg.ic: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/log/log0recv.c: Auto merged innobase/mem/mem0dbg.c: Auto merged innobase/mtr/mtr0log.c: Auto merged innobase/mtr/mtr0mtr.c: Auto merged innobase/os/os0file.c: Auto merged innobase/page/page0cur.c: Auto merged innobase/page/page0page.c: Auto merged innobase/pars/lexyy.c: Auto merged innobase/read/read0read.c: Auto merged innobase/rem/rem0cmp.c: Auto merged innobase/rem/rem0rec.c: Auto merged innobase/row/row0ins.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/row/row0purge.c: Auto merged innobase/row/row0sel.c: Auto merged innobase/row/row0undo.c: Auto merged innobase/row/row0upd.c: Auto merged innobase/srv/srv0srv.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/sync/sync0rw.c: Auto merged innobase/thr/thr0loc.c: Auto merged innobase/trx/trx0purge.c: Auto merged innobase/trx/trx0rec.c: Auto merged innobase/trx/trx0roll.c: Auto merged innobase/trx/trx0trx.c: Auto merged innobase/trx/trx0undo.c: Auto merged myisam/mi_check.c: Auto merged myisam/myisamchk.c: Auto merged mysql-test/r/multi_update.result: Auto merged mysql-test/r/mysqlbinlog.result: Auto merged mysql-test/r/rpl_error_ignored_table.result: Auto merged mysql-test/t/multi_update.test: Auto merged mysql-test/t/rpl_error_ignored_table.test: Auto merged mysys/mf_iocache.c: Auto merged mysys/mf_pack.c: Auto merged mysys/my_getopt.c: Auto merged sql/ha_berkeley.cc: Auto merged sql/ha_myisam.cc: Auto merged sql/lock.cc: Auto merged sql/log.cc: Auto merged sql/opt_range.cc: Auto merged sql/set_var.h: Auto merged sql/sql_cache.cc: Auto merged sql/sql_cache.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_handler.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_list.h: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_update.cc: Auto merged tests/thread_test.c: Auto merged client/mysqldump.c: Keep original indentation mysql-test/r/merge.result: keep old file scripts/mysql_fix_privilege_tables.sh: Keep old structure in merge with 4.0 sql/table.cc: merge with 4.0 + simple optimizations
* | New call mysql_stmt_init() introduced.unknown2004-03-051-14/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renames: mysql_bind_param -> mysql_stmt_bind_param mysql_bind_result -> mysql_stmt_bind_result mysql_execute -> mysql_stmt_execute mysql_fetch -> mysql_stmt_fetch mysql_fetch_column -> mysql_stmt_fetch_column mysql_get_metadata -> mysql_stmt_result_metadata mysql_param_count -> mysql_stmt_param_count mysql_param_result -> mysql_stmt_param_metadata mysql_prepare -> mysql_stmt_prepare mysql_send_long_data -> mysql_stmt_send_long_data client_test.c cleaned up from memory leaks include/mysql.h: New call mysql_stmt_init() introduced. Renames: mysql_bind_param -> mysql_stmt_bind_param mysql_bind_result -> mysql_stmt_bind_result mysql_execute -> mysql_stmt_execute mysql_fetch -> mysql_stmt_fetch mysql_fetch_column -> mysql_stmt_fetch_column mysql_get_metadata -> mysql_stmt_result_metadata mysql_param_count -> mysql_stmt_param_count mysql_param_result -> mysql_stmt_param_metadata mysql_prepare -> mysql_stmt_prepare mysql_send_long_data -> mysql_stmt_send_long_data Renames are done according to the rule 'Everything call operating with 'MYSQL_STMT' structure has 'mysql_stmt_' prefix. Additionally mysql_param_result was renamed to mysql_stmt_param_metadata and mysql_get_metadata to mysql_stmt_result_metadata. All renames are done in hope that new names are easier to remember and understand. libmysql/client_settings.h: skip_list is not needed any more libmysql/libmysql.c: New call mysql_stmt_init() introduced. Renames: mysql_bind_param -> mysql_stmt_bind_param mysql_bind_result -> mysql_stmt_bind_result mysql_execute -> mysql_stmt_execute mysql_fetch -> mysql_stmt_fetch mysql_fetch_column -> mysql_stmt_fetch_column mysql_get_metadata -> mysql_stmt_result_metadata mysql_param_count -> mysql_stmt_param_count mysql_param_result -> mysql_stmt_param_metadata mysql_prepare -> mysql_stmt_prepare mysql_send_long_data -> mysql_stmt_send_long_data sql-common/client.c: no skip_list argument any more tests/client_test.c: - many memory leaks and valgrind errors cleaned up.
* | Desperate attempt to push part of prepared statements cleanup which was unknown2004-03-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reviewed in Saint-Petersbourg (including post-review fixes). include/my_sys.h: Added clear_alloc_root (reset alloc root without freeing its memory) sql/item.h: - rename setup_param -> set_parap (function assigns parameter value to item) sql/mysql_priv.h: - all return values are void, because return value is never checked in dispatch_command - removed unused declaration of setup_param_functions sql/protocol.h: - unused declarations of setup_params_data* removed sql/sql_class.cc: Cleanup: - bzero(mem_root) replaced with clear_alloc_root - query_id and command members moved back to THD from Statement Assignment of mem_root, free_list, query_id and command optimized away from set_statement(). sql/sql_class.h: - query_id and command moved back to THD from Statement sql/sql_lex.h: - better type for param_list - param_count is the same thing as param_list.elements sql/sql_parse.cc: - comments for dispatch_command sql/sql_prepare.cc: Cleanup: - added comments to many functions and removed trailing spaces in many lines, some stale comments removed. - it's faster to iterate using pointers, than classes - Renames: error_in_prepare renamed to get_longdata_error (because it is set when there is an error in mysql_send_longdata, rather than in mysql_prepare), embedded versions of placeholder assignement functions now have prefix emb_, setup_ functions renamed to set_, because they perform assignment, not installation, setup_params_data now doesn't call insert_params and was renamed to setup_set_param_functions, - find_prepared_statement should not send error if called from no-reply calls, like mysql_stmt_reset - error reporting is checked up, to always report errors and not report errors twice. send_prep_stmt can be done mostly in send_prepare_result, rather than in test_* functions. - now we don't need to reinit THD->mem_root/free_list in mysql_stmt_execute, because it's not reset there. tests/client_test.c: - removed second call to test_subqueries