summaryrefslogtreecommitdiff
path: root/sql/sql_load.cc
Commit message (Collapse)AuthorAgeFilesLines
* auto-mergeIgnacio Galarza2009-03-171-3/+26
|\
| * BUG#38174 secure-file-priv breaks LOAD DATA INFILE replication in statement modeAlfranio Correia2009-02-211-3/+26
| | | | | | | | | | | | | | | | | | If secure-file-priv was set on slave, it became unable to execute LOAD DATA INFILE statements sent from master using mixed or statement-based replication. This patch fixes the issue by ignoring this security restriction and checking if the files are created and read by the slave in the --slave-load-tmpdir while executing the SQL Thread.
* | Bug#29125 Windows Server X64: so many compiler warningsIgnacio Galarza2009-02-131-2/+2
|\ \ | |/ |/| | | | | | | - Remove bothersome warning messages. This change focuses on the warnings that are covered by the ignore file: support-files/compiler_warnings.supp. - Strings are guaranteed to be max uint in length
| * Bug#29125 Windows Server X64: so many compiler warningsIgnacio Galarza2009-02-101-2/+2
| | | | | | | | | | - Remove bothersome warning messages. This change focuses on the warnings that are covered by the ignore file: support-files/compiler_warnings.supp. - Strings are guaranteed to be max uint in length
* | auto-mergeTatiana A. Nurnberg2008-09-171-1/+3
|\ \ | |/
| * Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD ↵Tatiana A. Nurnberg2008-09-171-1/+3
| | | | | | | | | | | | DATA INFILE NO_BACKSLASH_ESCAPES was not heeded in LOAD DATA INFILE and SELECT INTO OUTFILE. It is now.
* | Merge quad.opbmk:/mnt/raid/alik/MySQL/devel/5.0-btanozdrin/alik@quad.opbmk2008-03-281-14/+42
|\ \ | |/ | | | | into quad.opbmk:/mnt/raid/alik/MySQL/devel/5.1-bt-merged
| * Fix for Bug#35469: server crash with LOAD DATA INFILE to a VIEW.anozdrin/alik@quad.opbmk2008-03-281-14/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that LOAD DATA code (sql_load.cc) didn't take into account that there may be items, representing references to other columns. This is a usual case in views. The crash happened because Item_direct_view_ref was casted to Item_user_var_as_out_param, which is not a base class. The fix is to 1) Handle references properly; 2) Ensure that an item is treated as a user variable only when it is a user variable indeed; 3) Report an error if LOAD DATA is used to load data into non-updatable column.
* | Merge magare.gmz:/home/kgeorge/mysql/autopush/B26461-5.0-optgkodinov/kgeorge@magare.gmz2008-03-211-1/+1
|\ \ | |/ | | | | into magare.gmz:/home/kgeorge/mysql/work/B26461-5.1-opt
| * Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes)gkodinov/kgeorge@macbook.gmz2008-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The bool data type was redefined to BOOL (4 bytes on windows). Removed the #define and fixed some of the warnings that were uncovered by this. Note that the fix also disables 2 warnings : 4800 : 'type' : forcing value to bool 'true' or 'false' (performance warning) 4805: 'operation' : unsafe mix of type 'type' and type 'type' in operation These warnings will be handled in a separate bug, as they are performance related or bogus. Fixed to int the return type of functions that return more than 2 distinct values.
* | Rename send_ok to my_ok. Similarly to my_error, it only records the status,kostja@dipika.(none)2008-02-191-1/+1
| | | | | | | | does not send it to the client.
* | A fix and a test case for Bug#12713 "Error in a stored function called from kostja@dipika.(none)2008-02-191-10/+0
| | | | | | | | | | | | | | | | | | | | a SELECT doesn't cause ROLLBACK of statem". The idea of the fix is to ensure that we always commit the current statement at the end of dispatch_command(). In order to not issue redundant disc syncs, an optimization of the two-phase commit protocol is implemented to bypass the two phase commit if the transaction is read-only.
* | Manual merge 5.0-rpl -> 5.1-rpl.aelkin/elkin@koti.dsl.inet.fi2007-10-301-44/+5
| | | | | | | | involved bug#12691, bug#27571
* | Merge ↵aelkin/elkin@koti.dsl.inet.fi2007-10-301-3/+55
|\ \ | |/ | | | | | | | | koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27571_asyn_killed_flags into koti.dsl.inet.fi:/home/elkin/MySQL/5.1-merge-bug27571
| * Bug #27571 asynchronousity in setting mysql_`query`::error andaelkin/elkin@koti.dsl.inet.fi2007-10-291-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Query_log_event::error_code A query can perform completely having the local var error of mysql_$query zero, where $query in insert, update, delete, load, and be binlogged with error_code e.g KILLED_QUERY while there is no reason do to so. That can happen because Query_log_event consults thd->killed flag to evaluate error_code. Fixed with implementing a scheme suggested and partly implemented at time of bug@22725 work-on. error_status is cached immediatly after the control leaves the main rows-loop and that instance always corresponds to `error' the local of mysql_$query functions. The cached value is passed to Query_log_event constructor, not the default thd->killed which can be changed in between of the caching and the constructing.
* | Merge dl145j.mysql.com:/tmp/andrei/mysql-5.0-rplaelkin@dl145j.mysql.com2007-09-151-1/+1
|\ \ | |/ | | | | into dl145j.mysql.com:/tmp/andrei/5.1-merge
| * Bug #23333 stored function + non-transac table + transac table = breaks ↵aelkin/elkin@dsl-hkibras-fe38f900-157.dhcp.inet.fi2007-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | stmt-based binlog Binlogging of the statement with a side effect like a modified non-trans table did not happen. The artifact involved all binloggable dml queries. Fixed with changing the binlogging conditions all over the code to exploit thd->transaction.stmt.modified_non_trans_table introduced by the patch for bug@27417. Multi-delete case has own specific addressed by another bug@29136. Multi-update case has been addressed by bug#27716 and patch and will need merging.
* | (Pushing for Andrei)gkodinov/kgeorge@magare.gmz2007-07-301-10/+6
|\ \ | |/ | | | | | | Merge magare.gmz:/home/kgeorge/mysql/work/B27417-5.0-opt into magare.gmz:/home/kgeorge/mysql/work/B27417-5.1-opt
| * (pushing for Andrei)gkodinov/kgeorge@magare.gmz2007-07-301-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack Once had been set the flag might later got reset inside of a stored routine execution stack. The reason was in that there was no check if a new statement started at time of resetting. The artifact affects most of binlogable DML queries. Notice, that multi-update is wrapped up within bug@27716 fix, multi-delete bug@29136. Fixed with saving parent's statement flag of whether the statement modified non-transactional table, and unioning (merging) the value with that was gained in mysql_execute_command. Resettling thd->no_trans_update members into thd->transaction.`member`; Asserting code; Effectively the following properties are held. 1. At the end of a substatement thd->transaction.stmt.modified_non_trans_table reflects the fact if such a table got modified by the substatement. That also respects THD::really_abort_on_warnin() requirements. 2. Eventually thd->transaction.stmt.modified_non_trans_table will be computed as the union of the values of all invoked sub-statements. That fixes this bug#27417; Computing of thd->transaction.all.modified_non_trans_table is refined to base to the stmt's value for all the case including insert .. select statement which before the patch had an extra issue bug@28960. Minor issues are covered with mysql_load, mysql_delete, and binloggin of insert in to temp_table select. The supplied test verifies limitely, mostly asserts. The ultimate testing is defered for bug@13270, bug@23333.
* | Merge magare.gmz:/home/kgeorge/mysql/work/mysql-5.0-optgkodinov/kgeorge@magare.gmz2007-07-041-0/+1
|\ \ | |/ | | | | into magare.gmz:/home/kgeorge/mysql/work/merge-5.1-opt
| * Merge gleb.loc:/home/uchum/work/bk/4.1-optgshchepa/uchum@gleb.loc2007-07-041-0/+1
| |\ | | | | | | | | | into gleb.loc:/home/uchum/work/bk/5.0-opt
| | * Fixed bug #29294.gshchepa/uchum@gleb.loc2007-07-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `SELECT 'r' INTO OUTFILE ... FIELDS ENCLOSED BY 'r' ' statement encoded the 'r' string to a 4 byte string of value x'725c7272' (sequence of 4 characters: r\rr). The LOAD DATA statement decoded this string to a 1 byte string of value x'0d' (ASCII Carriage Return character) instead of the original 'r' character. The same error also happened with the FIELDS ENCLOSED BY clause followed by special characters: 'n', 't', 'r', 'b', '0', 'Z' and 'N'. NOTE 1: This is a result of the undocumented feature: the LOAD DATA INFILE recognises 2-byte input sequences like \n, \t, \r and \Z in addition to documented 2-byte sequences: \0 and \N. This feature should be documented (here backspace character is a default ESCAPED BY character, in the real-life example it may be any ESCAPED BY character). NOTE 2, changed behaviour: Now the `SELECT INTO OUTFILE' statement with the `FIELDS ENCLOSED BY' clause followed by one of: 'n', 't', 'r', 'b', '0', 'Z' or 'N' characters encodes this special character itself by doubling it ('r' --> 'rr'), not by prepending it with an escape character.
| * | Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpllars/lthalmann@dl145h.mysql.com2007-05-281-3/+3
| |\ \ | | | | | | | | | | | | into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
| | * | BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not ↵cbell/Chuck@mysql_cab.2007-05-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flushed This patch corrects a bug involving a LOAD DATA INFILE operation on a transactional table. It corrects a problem in the error handler moving the transactional table check and autocommit_or_rollback operation to the end of the error handler. An additional test case was added to detect this condition.
* | | | Merge bk-internal.mysql.com:/home/bk/mysql-5.1kostja@bodhi.(none)2007-06-011-20/+20
|\ \ \ \ | | | | | | | | | | | | | | | into bodhi.(none):/opt/local/work/mysql-5.1-runtime
| * \ \ \ Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1jani@a88-113-38-195.elisa-laajakaista.fi2007-05-241-20/+20
| |\ \ \ \ | | | | | | | | | | | | | | | | | | into a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
| | * | | | WL#3817: Simplify string / memory area types and make things more consistent ↵monty@mysql.com/narttu.mysql.fi2007-05-101-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (first part) The following type conversions was done: - Changed byte to uchar - Changed gptr to uchar* - Change my_string to char * - Change my_size_t to size_t - Change size_s to size_t Removed declaration of byte, gptr, my_string, my_size_t and size_s. Following function parameter changes was done: - All string functions in mysys/strings was changed to use size_t instead of uint for string lengths. - All read()/write() functions changed to use size_t (including vio). - All protocoll functions changed to use size_t instead of uint - Functions that used a pointer to a string length was changed to use size_t* - Changed malloc(), free() and related functions from using gptr to use void * as this requires fewer casts in the code and is more in line with how the standard functions work. - Added extra length argument to dirname_part() to return the length of the created string. - Changed (at least) following functions to take uchar* as argument: - db_dump() - my_net_write() - net_write_command() - net_store_data() - DBUG_DUMP() - decimal2bin() & bin2decimal() - Changed my_compress() and my_uncompress() to use size_t. Changed one argument to my_uncompress() from a pointer to a value as we only return one value (makes function easier to use). - Changed type of 'pack_data' argument to packfrm() to avoid casts. - Changed in readfrm() and writefrom(), ha_discover and handler::discover() the type for argument 'frmdata' to uchar** to avoid casts. - Changed most Field functions to use uchar* instead of char* (reduced a lot of casts). - Changed field->val_xxx(xxx, new_ptr) to take const pointers. Other changes: - Removed a lot of not needed casts - Added a few new cast required by other changes - Added some cast to my_multi_malloc() arguments for safety (as string lengths needs to be uint, not size_t). - Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done explicitely as this conflict was often hided by casting the function to hash_get_key). - Changed some buffers to memory regions to uchar* to avoid casts. - Changed some string lengths from uint to size_t. - Changed field->ptr to be uchar* instead of char*. This allowed us to get rid of a lot of casts. - Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar - Include zlib.h in some files as we needed declaration of crc32() - Changed MY_FILE_ERROR to be (size_t) -1. - Changed many variables to hold the result of my_read() / my_write() to be size_t. This was needed to properly detect errors (which are returned as (size_t) -1). - Removed some very old VMS code - Changed packfrm()/unpackfrm() to not be depending on uint size (portability fix) - Removed windows specific code to restore cursor position as this causes slowdown on windows and we should not mix read() and pread() calls anyway as this is not thread safe. Updated function comment to reflect this. Changed function that depended on original behavior of my_pwrite() to itself restore the cursor position (one such case). - Added some missing checking of return value of malloc(). - Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow. - Changed type of table_def::m_size from my_size_t to ulong to reflect that m_size is the number of elements in the array, not a string/memory length. - Moved THD::max_row_length() to table.cc (as it's not depending on THD). Inlined max_row_length_blob() into this function. - More function comments - Fixed some compiler warnings when compiled without partitions. - Removed setting of LEX_STRING() arguments in declaration (portability fix). - Some trivial indentation/variable name changes. - Some trivial code simplifications: - Replaced some calls to alloc_root + memcpy to use strmake_root()/strdup_root(). - Changed some calls from memdup() to strmake() (Safety fix) - Simpler loops in client-simple.c
* | | | | | Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpllars/lthalmann@dl145h.mysql.com2007-05-281-3/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
| * | | | | BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not ↵cbell/Chuck@mysql_cab.2007-05-081-3/+3
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flushed This patch corrects a bug involving a LOAD DATA INFILE operation on a transactional table. It corrects a problem in the error handler by moving the transactional table check and autocommit_or_rollback operation to the end of the error handler. The problem was an assert was thrown after the operation completed. The assert found a non-sunk event in the transaction cache. The events in the transaction cache were added after commit_or_rollack and thereafter nothing removed them. An additional test case was added to detect this condition.
* | | | | Merge olga.mysql.com:/home/igor/mysql-5.0-optigor@olga.mysql.com2007-05-081-0/+4
|\ \ \ \ \ | |/ / / / |/| / / / | |/ / / into olga.mysql.com:/home/igor/mysql-5.1-opt
| * | | Bug#27670: LOAD DATA does not set CURRENT_TIMESTAMP default value for aevgen@moonbone.local2007-05-091-0/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TIMESTAMP field when no value has been provided. The LOAD DATA sets the current time in the TIMESTAMP field with CURRENT_TIMESTAMP default value when the field is detected as a null. But when the LOAD DATA command loads data from a file that doesn't contain enough data for all fields then the rest of fields are simply set to null without any check. This leads to no value being inserted to such TIMESTAMP field. Now the read_sep_field() and the read_fixed_length() functions set current time to the TIMESTAMP field with CURRENT_TIMESTAMP default value in all cases when a NULL value is loaded to the field.
| * | Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0jani@ua141d10.elisa.omakaista.fi2007-04-121-8/+9
| |\ \ | | | | | | | | | | | | into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-marvel
| * \ \ Merge bk-internal.mysql.com:/data0/bk/mysql-5.0jamppa@bk-internal.mysql.com2007-04-031-8/+8
| |\ \ \ | | | | | | | | | | | | | | | into bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel
* | \ \ \ Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1jani@ua141d10.elisa.omakaista.fi2007-04-101-8/+8
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel
| * \ \ \ \ Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marveljani@ua141d10.elisa.omakaista.fi2007-04-031-8/+8
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel
| | * \ \ \ \ Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-marveljani@ua141d10.elisa.omakaista.fi2007-03-291-8/+8
| | |\ \ \ \ \ | | | | |/ / / | | | |/| | | | | | | | | | into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel
| | | * | | | Bug #27395 OPTION_STATUS_NO_TRANS_UPDATE is not preserved at the end of SF()aelkin/elkin@andrepl.(none)2007-03-231-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thd->options' OPTION_STATUS_NO_TRANS_UPDATE bit was not restored at the end of SF() invocation, where SF() modified non-ta table. As the result of this artifact it was not possible to detect whether there were any side-effects when top-level query ends. If the top level query table was not modified and the bit is lost there would be no binlogging. Fixed with preserving the bit inside of thd->no_trans_update struct. The struct agregates two bool flags telling whether the current query and the current transaction modified any non-ta table. The flags stmt, all are dropped at the end of the query and the transaction.
* | | | | | | Merge mysql.com:/d2/hf/mrg/mysql-5.0-optholyfoot/hf@hfmain.(none)2007-04-091-7/+8
|\ \ \ \ \ \ \ | | |_|_|_|/ / | |/| | | | | | | | | | | | into mysql.com:/d2/hf/mrg/mysql-5.1-opt
| * | | | | | Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-optevgen@moonbone.local2007-04-071-7/+8
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | into moonbone.local:/mnt/gentoo64/work/27586-bug-5.0-opt-mysql
| | * | | | | | Bug#27586: Wrong autoinc value assigned by LOAD DATA in theevgen@moonbone.local2007-04-071-7/+8
| | | |_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NO_AUTO_VALUE_ON_ZERO mode. The table->auto_increment_field_not_null variable wasn't reset after reading a row which may lead to inserting a wrong value to the auto-increment field to the following row. The table->auto_increment_field_not_null variable is reset now right after a row is being written in the read_fixed_length() and the read_sep_field() functions. Removed wrong setting of the table->auto_increment_field_not_null variable in the read_sep_field() function.
| * | | | | | Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0mskold/marty@mysql.com/linux.site2007-04-051-1/+1
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | | | | | | | | | into mysql.com:/windows/Linux_space/MySQL/mysql-5.0-ndb
| | * | | | | Bug #26242 UPDATE with subquery and triggers failing with cluster tablesmskold/marty@mysql.com/linux.site2007-04-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In certain cases AFTER UPDATE/DELETE triggers on NDB tables that referenced subject table didn't see the results of operation which caused invocation of those triggers. In other words AFTER trigger invoked as result of update (or deletion) of particular row saw version of this row before update (or deletion). The problem occured because NDB handler in those cases postponed actual update/delete operations to be able to perform them later as one batch. This fix solves the problem by disabling this optimization for particular operation if subject table has AFTER trigger for this operation defined. To achieve this we introduce two new flags for handler::extra() method: HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH. These are called if there exists AFTER DELETE/UPDATE triggers during a statement that potentially can generate calls to delete_row()/update_row(). This includes multi_delete/multi_update statements as well as insert statements that do delete/update as part of an ON DUPLICATE statement.
* | | | | | | Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.1mskold/marty@linux.site2007-04-041-1/+1
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | | | | | | | | into mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
| * | | | | | Merge from 5.0mskold/marty@mysql.com/linux.site2007-04-041-1/+1
| | | | | | |
* | | | | | | Merge moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.0-optevgen@moonbone.local2007-03-311-2/+1
|\ \ \ \ \ \ \ | | |/ / / / / | |/| | / / / | |_|_|/ / / |/| | | | | into moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.1-opt
| * | | | | Bug#23233: 0 as LAST_INSERT_ID() after INSERT .. ON DUPLICATE in the evgen@sunlight.local2007-03-301-2/+1
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NO_AUTO_VALUE_ON_ZERO mode. In the NO_AUTO_VALUE_ON_ZERO mode the table->auto_increment_field_not_null variable is used to indicate that a non-NULL value was specified by the user for an auto_increment column. When an INSERT .. ON DUPLICATE updates the auto_increment field this variable is set to true and stays unchanged for the next insert operation. This makes the next inserted row sometimes wrongly have 0 as the value of the auto_increment field. Now the fill_record() function resets the table->auto_increment_field_not_null variable before filling the record. The table->auto_increment_field_not_null variable is also reset by the open_table() function for a case if we missed some auto_increment_field_not_null handling bug. Now the table->auto_increment_field_not_null is reset at the end of the mysql_load() function. Reset the table->auto_increment_field_not_null variable after each write_row() call in the copy_data_between_tables() function.
| * | | | Merge bk@192.168.21.1:mysql-5.0holyfoot/hf@mysql.com/hfmain.(none)2007-03-081-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | into mysql.com:/home/hf/work/mrg/mysql-5.0-opt
| * \ \ \ \ Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0msvensson@pilot.blaudden2007-03-011-3/+9
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
* | \ \ \ \ \ Merge bk@192.168.21.1:mysql-5.1holyfoot/hf@hfmain.(none)2007-03-081-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/hf/work/mrg/mysql-5.1-opt
| * \ \ \ \ \ \ Merge mysql.com:/home/hf/work/mrg/mysql-5.0-optholyfoot/hf@hfmain.(none)2007-03-081-1/+1
| |\ \ \ \ \ \ \ | | | |_|/ / / / | | |/| | / / / | | |_|_|/ / / | |/| | | | | into mysql.com:/home/hf/work/mrg/mysql-5.1-opt