1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-11 15:22:09 +03:00
Commit Graph

13691 Commits

Author SHA1 Message Date
532735e6c8 BUG#22584: last_insert_id not updated after inserting a record through
a updatable view.

When there's a VIEW on a base table that have AUTO_INCREMENT column, and
this VIEW doesn't provide an access such column, after INSERT to such
VIEW LAST_INSERT_ID() did not return the value just generated.

This behaviour is intended and correct, because if the VIEW doesn't list
some columns then these columns are effectively hidden from the user,
and so any side effects of inserting default values to them.

However, there was a bug that such statement inserting into a view would
reset LAST_INSERT_ID() instead of leaving it unchanged.

This patch restores the original value of LAST_INSERT_ID() instead of
resetting it to zero.


mysql-test/r/view.result:
  Add result for bug#22584: last_insert_id not updated after inserting
  a record through a updatable view.
mysql-test/t/view.test:
  Add test case for bug#22584: last_insert_id not updated after inserting
  a record through a updatable view.
sql/sql_parse.cc:
  When we have inserted into a view, and AUTO_INCREMENT column is not
  accessed from this view, instead of setting LAST_INSERT_ID to zero set
  it to the value it had before this statement was executed.
2006-10-27 13:32:41 +04:00
b2ea3624e3 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/t/ctype_utf8.test:
  Auto merged
2006-10-26 22:54:25 +02:00
08d43705a6 Bug#20894 Reproducible MySQL client segmentation fault
- Add two null bytes in  "buff" variable allowing us to call
   get_arg two times also for strings longer than sizeof(buff) 


client/mysql.cc:
  Make sure there are _two_ zero bytes at the end of buff, to allow 'get_arg' to be
  called twice on long strings. The first time it will mark end of string with a
  zero and the second time it will "skip ahead" to the first zero, and the find the
  second one indicating end of buff.
mysql-test/r/mysql.result:
  Update test results
mysql-test/t/mysql.test:
  Add tests for "com_connect" function in mysql
  Add test reported in bug
2006-10-26 19:51:29 +02:00
1444edfcef Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  siva.hindu.god:/usr/home/tim/m/bk/50


configure.in:
  Auto merged
2006-10-25 16:28:42 -06:00
853fb1ebfe Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug18819


mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/t/innodb_mysql.test:
  Auto merged
sql/sql_delete.cc:
  Auto merged
2006-10-25 20:16:39 +04:00
722d433018 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug18819
2006-10-25 20:13:07 +04:00
6137ef86a9 Fix after manual merge. 2006-10-25 20:09:31 +04:00
e171a36efb Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug18819
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug18819


mysql-test/r/innodb_mysql.result:
  Manual merge.
mysql-test/t/innodb_mysql.test:
  Manual merge.
sql/sql_delete.cc:
  Manual merge.
2006-10-25 20:00:51 +04:00
e3d49f0c3f BUG#18819: DELETE IGNORE hangs on foreign key parent delete
If the error happens during DELETE IGNORE, nothing could be send to the
client, thus leaving it frozen expecting the reply.

The problem was that if some error occurred, it wouldn't be reported to
the client because of IGNORE, but neither success would be reported.

MySQL 4.1 would not freeze the client, but will report

  ERROR 1105 (HY000): Unknown error

instead, which is also a bug.

The solution is to report success if we are in DELETE IGNORE and some
non-fatal error has happened.


mysql-test/r/innodb_mysql.result:
  Add result for bug#18819: DELETE IGNORE hangs on foreign key parent
  delete.
mysql-test/t/innodb_mysql.test:
  Add test case for bug#18819: DELETE IGNORE hangs on foreign key parent
  delete.
sql/sql_delete.cc:
  Report success if we have got an error, but we are in DELETE IGNORE, and
  the error is not fatal (if it is, it would be reported to the client).
2006-10-25 19:53:26 +04:00
01a0be193d bug #19491 (CAST do DATETIME wrong result)
mysql-test/r/type_datetime.result:
  result fixed
mysql-test/r/type_newdecimal.result:
  result fixed
mysql-test/t/type_datetime.test:
  testcase
mysql-test/t/type_newdecimal.test:
  testcase
sql/field.cc:
  Field_new_decimal::store_time implemented
sql/field.h:
  Field_new_decimal::store_time added
sql/item.cc:
  auxiliary methods implemented to operate with datatimes
sql/item.h:
  auxiliary methods declared in Item to operate with datatimes
sql/item_timefunc.cc:
  Item_date::save_in_field old implementation removed
sql/item_timefunc.h:
  my_decimal and save_in_field methods implemented for datetime items
sql/my_decimal.cc:
  date2my_decimal implemented
sql/my_decimal.h:
  date2my_decimal declared
2006-10-25 20:14:39 +05:00
a0efc901bb Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge


myisam/mi_open.c:
  Auto merged
sql/slave.cc:
  Auto merged
2006-10-25 17:10:18 +02:00
2ab335a5b8 Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge


myisam/mi_open.c:
  Auto merged
2006-10-25 17:08:57 +02:00
060f4196af Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/lib/mtr_cases.pl:
  Auto merged
2006-10-25 16:51:32 +02:00
5decebc5f3 Skip innodb test if mysqld doesn't have innodb support 2006-10-25 16:50:06 +02:00
bf6e47f8c4 Test failure when compiled without innodb
Disable warnings around the create table statements, we want to use innodb when possible but they work just fine without.


mysql-test/t/ctype_utf8.test:
  Disable warnings around the create table statements, we want to use innodb when possible but they work just fine without.
2006-10-25 15:41:32 +02:00
e402af83f5 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-25 14:57:06 +02:00
7596e12bbe Update the binlog format parse routine to only be avaliable in 5.1 and allow for any binlog_format to be specified 2006-10-25 14:56:36 +02:00
5b29efafa5 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
tests/mysql_client_test.c:
  Use local in 5.0
2006-10-25 14:39:29 +02:00
870ed0c3f5 Add valgrinding support for mysql_client_test
Fix two memory leaks in mysql_client_test


mysql-test/mysql-test-run.pl:
  Add valgrinding support for mysql_client_test
tests/mysql_client_test.c:
  Fix two memory leaks
2006-10-25 14:34:18 +02:00
4a9f71aef4 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-25 12:41:34 +02:00
379809f40e Set flag opt_skip_ndbcluster_slave if no slaves are being used.
Add comments
Deperlify
2006-10-25 12:40:33 +02:00
0a7a2b8f66 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/lib/mtr_cases.pl:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-24 23:40:11 +02:00
4da54b4769 Adapt mysql-test-run.pl to mysqld in 5.1 using "mixed" binlog format by default 2006-10-24 23:39:46 +02:00
d4bfae38ac Merge siva.hindu.god:/usr/home/tim/m/bk/g50
into  siva.hindu.god:/usr/home/tim/m/bk/50


configure.in:
  Auto merged
mysql-test/r/rename.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
mysys/mf_iocache.c:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/table.cc:
  Auto merged
myisam/sort.c:
  Manual merge
mysql-test/r/innodb_mysql.result:
  Manual merge
mysql-test/t/innodb_mysql.test:
  Manual merge
2006-10-24 14:42:08 -06:00
80bd3e3856 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/etc/ignore:
  auto-union
configure.in:
  Auto merged
include/mysql.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
include/Makefile.am:
  Merge, SUPERCLEANFILES and CLEANFILES has dissapeared in 5.0
2006-10-24 21:05:35 +02:00
f89efeb5f6 Pass --core-file option to mysqld when bootstrapping
BitKeeper/etc/ignore:
  Added mysql-test/r/blackhole.log to the ignore list
2006-10-24 21:02:04 +02:00
fa6d7c505c Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-24 19:22:48 +02:00
c7cedcd645 Remove debug printout 2006-10-24 19:22:27 +02:00
01290beefb Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
tests/mysql_client_test.c:
  Remove the fflush(NULL) and instead explicitly fflush stdout and then stderr
2006-10-24 18:51:07 +02:00
297d968a8c Run mysql_client_test without --silent
Flush both stdout and stderr before abort'ing mysql_client_test


mysql-test/mysql-test-run.pl:
  Run mysql_client_test wihtout --silent flag
tests/mysql_client_test.c:
  Before aborting mysql_client_test in die, make sure
  to first flush stdout and finally after the error message 
  has been printed also fflush stderr
2006-10-24 18:49:19 +02:00
0dac6c35c9 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-24 18:08:38 +02:00
1023e01058 Fix spelling errors in test files
mysql-test/r/mysqldump-max.result:
  Update test result after fix of spelling error
mysql-test/r/rpl_trigger.result:
  Update test result after fix of spelling error
mysql-test/r/type_newdecimal.result:
  Update test result after fix of spelling error
mysql-test/t/mysqldump-max.test:
  Fix spelling error "disable_warnings"
  Write shorter "drop table..."
mysql-test/t/rpl_trigger.test:
  Fix spelling error, there is no --ignore_warnings
mysql-test/t/type_newdecimal.test:
  Fix spelling error
2006-10-24 17:54:45 +02:00
e3936b1065 Add analyze_testcase_failure which is called when mysqltest has failed
with error 1 and we are running with --force
The specific "analyze" code is enclosed in a .test file fwich can easily
be modified to be more advanced 


mysql-test/mysql-test-run.pl:
  Attempt to run some quick queries to analyze the failure when mysqltest returns 1 indicating test has failed
  Initially only code to analyze "could not sync with master" is added as that is a blackbox
  and all problems looks the same
mysql-test/include/analyze_failure_sync_with_master.test:
  New BitKeeper file ``mysql-test/include/analyze_failure_sync_with_master.test''
2006-10-24 17:36:46 +02:00
5a20c5fd48 fix result file for ndb_multi
mysql-test/r/ndb_multi.result:
  update result file for new behaviour of correcting the 241 error on ha_open
mysql-test/t/ndb_multi.test:
  no longer errors on ha_open with 241
2006-10-25 00:41:55 +10:00
c9ef0344f8 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysqltest.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-24 16:00:42 +02:00
f51d0812a7 Bug #21809: Error 1356 while selecting from view with grouping though underlying
select OK.
The SQL parser was using Item::name to transfer user defined function attributes
to the user defined function (udf). It was not distinguishing between user defined 
function call arguments and stored procedure call arguments. Setting Item::name 
was causing Item_ref::print() method to print the argument as quoted identifiers 
and caused views that reference aggregate functions as udf call arguments (and 
rely on Item::print() for the text of the view to store) to throw an undefined 
identifier error.
Overloaded Item_ref::print to print aggregate functions as such when printing
the references to aggregate functions taken out of context by split_sum_func2()
Fixed the parser to properly detect using AS clause in stored procedure arguments
as an error.
Fixed printing the arguments of udf call to print properly the udf attribute.


mysql-test/r/udf.result:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - test cases
mysql-test/t/udf.test:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - test cases
sql/item.cc:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - Don't print the refs to SUM functions as refs.
sql/item_func.cc:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - print the aliases in the udf calls
sql/item_func.h:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - print the aliases in the udf calls
sql/sql_lex.cc:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - disable aliases for arguments in stored routine calls
sql/sql_lex.h:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - disable aliases for arguments in stored routine calls
sql/sql_yacc.yy:
  Bug #21809: Error 1356 while selecting from view with grouping though underlying
              select OK.
   - disable aliases for arguments in stored routine calls
   - fix bison duplicate symbol warnings
2006-10-24 15:26:41 +03:00
7a44896f3a Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/w3475/my50-w3475
2006-10-24 16:51:53 +05:00
df77391f64 Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/w3475/my41-w3475
2006-10-24 16:50:27 +05:00
f9ff7472a2 Avoid matching the trailing carriage return when parsing the mysqld.spec file
This fixes problem where --replace_result failed in rpl000015 because the MYSQL_TCP_PORT variable was "3306\r"


mysql-test/mysql-test-run.pl:
  Avoid matching the trailing carriage return when parsing the mysqld.spec file
2006-10-23 20:36:44 +02:00
13c55f3c17 The vardir trick can only bge used on platforms with native symlinks - otherwise opt_vardir need to be set to default value. 2006-10-23 16:51:48 +02:00
7cd0f1a629 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  example.com:/work/bug23037/my50


sql/sql_show.cc:
  Auto merged
2006-10-23 15:21:23 +02:00
bda4032fa4 Merge mysql.com:/home/hf/work/w3475/my41-w3475
into  mysql.com:/home/hf/work/w3475/my50-w3475


mysql-test/t/flush.test:
  Auto merged
mysql-test/t/flush_block_commit.test:
  Auto merged
mysql-test/t/innodb-deadlock.test:
  Auto merged
mysql-test/t/innodb-lock.test:
  Auto merged
mysql-test/t/lock_multi.test:
  Auto merged
mysql-test/t/rename.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysql-test/t/status.test:
  Auto merged
client/mysqltest.c:
  merging
libmysql/libmysql.c:
  merging
2006-10-23 16:50:01 +05:00
edf668e8fa Don't use the "4.1 vardir trick" on OS that does not have native symlink(i.e windows) 2006-10-23 13:32:20 +02:00
29947efc62 Fix for bug#23037 Bug in field "Default" of query "SHOW COLUMNS FROM table"
To the documentor: The DEFAULT value in SHOW COLUMNS/SELECT FROM I_S.COLUMNS
was truncated to NAME_LEN (which effectively is 64) characters.


mysql-test/r/information_schema.result:
  Update result
  
  Because the length of I_S.COLUMNS.COLUMN_DEFAULT was increased to
  65535 the column changed it's type from varchar(64) to longtext
  The type is longtext if the length is > 65532 (the max varchar len)
mysql-test/t/information_schema.test:
  test case for bug#23037: Bug in field "Default" of
  query "SHOW COLUMNS FROM table"
  
  Both SHOW COLUMNS and I_S.COLUMNS is TESTED as well the
  value returned by both. Using --replace_regex is unfeasible
  as the repetition value cannot be > 255.
  --replace_regex /A{256}/VALUE/ doesn't work, not to talk about
    /A{65532}/VALUE/
  /(A{255}){255}/VALUE/ is awfully slow. Thus, simple function with
  cursor is used to extract the value.
sql/sql_show.cc:
  Default value can have TIMESTAMP, CHAR, VARCHAR, ENUM
  VARCHAR can have the longest value, up to 65535. However, because
  of table handler limitations the actual limit is 65532 characters,
  latin1 charset. However, here is used MAX_FIELD_VARCHARLENGTH macro,
  because there could be a storage engine without such limitation.
2006-10-23 13:12:30 +02:00
6ef7516f3e Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/mysql-test-run.pl:
  Auto merged
2006-10-23 12:19:52 +02:00
67bd2842bb Merge bk-internal:/home/bk/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-10-23 12:17:15 +02:00
788968a61b If "var" is a symlink which does not point to anything, remove it before creating real var
mysql-test/mysql-test-run.pl:
  If "var" is a symlink which does not point to anything, remove it
2006-10-23 12:16:40 +02:00
e78a193179 As both ndb and im are components that may be disabled as well as the binaries may not exist. Look for
their binaries in a separate function and produce test casea failures for the test thet needs these components
2006-10-23 12:02:56 +02:00
4ddb48c619 WL#3475 (Threads for the embedded server in mysqltest)
Necessary code added to mysqltest.c.
Disabled tests are available now.


client/mysqltest.c:
  do_send_query function implemented, so now 'send' command will be
  run in separate thread for the embedded server.
  Mutex and condition added to the 'connection' struct for syncronisation
  purposes. Yes it'd be easier if we had pthread_join() command
libmysql/libmysql.c:
  this isn't actually needed and causes problems in embedded server
mysql-test/t/bdb-deadlock.test:
  test is available for the embedded server now
mysql-test/t/flush.test:
  test is available for the embedded server now
mysql-test/t/flush_block_commit.test:
  test is available for the embedded server now
mysql-test/t/innodb-deadlock.test:
  test is available for the embedded server now
mysql-test/t/innodb-lock.test:
  test is available for the embedded server now
mysql-test/t/lock_multi.test:
  test is available for the embedded server now
mysql-test/t/rename.test:
  test is available for the embedded server now
mysql-test/t/show_check.test:
  test is available for the embedded server now
mysql-test/t/status.test:
  test is available for the embedded server now
2006-10-23 15:02:51 +05:00
6831ea7da7 A post-merge fix. 2006-10-23 13:55:29 +04:00