Commit graph

42112 commits

Author SHA1 Message Date
unknown
f094fe551a Fixed bug#16861: User defined variable can have a wrong value if a tmp table was
used.

The Item::save_in_field() function is called from fill_record() to fill the 
new row with data while execution of the CREATE TABLE ... SELECT statement.
Item::save_in_field() calls val_xxx() methods in order to get values.
val_xxx() methods do not take into account the result field. Due to this
Item_func_set_user_var::val_xxx() methods returns values from the original
table, not from the temporary one.

The save_in_field() member function is added to the Item_func_set_user_var
class. It detects whether the result field should be used and properly updates
the value of the user variable.


sql/item_func.cc:
  Bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Added the save_in_field() member function to the Item_func_set_user_var class.
sql/item_func.h:
  Bug#16861: User defined variable can have a wrong value if a tmp table was used.
  Added the save_in_field() member function to the Item_func_set_user_var class.
mysql-test/r/user_var.result:
  Extended the test case for bug#18681: User defined variable can have a wrong value if
  a tmp table was used.
mysql-test/t/user_var.test:
  Extended the test case for bug#18681: User defined variable can have a wrong value if
  a tmp table was used.
2007-01-09 23:24:56 +03:00
unknown
15bb22c0a8 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt


sql/item_cmpfunc.cc:
  Auto merged
2007-01-09 12:07:13 -08:00
unknown
78dff026af Bug#14171: Wrong internal default value for a BINARY field.
A BINARY field is represented by the Field_string class. The space character
is used as the filler for unused characters in such a field. But a BINARY field 
should use \x00 instead.

Field_string:reset() now detects whether the current field is a BINARY one
and if so uses the \x00 character as a default value filler.


sql/field.h:
  Bug#14171: Wrong internal default value for a BINARY field.
  Field_string:reset() now detects whether the current field is a BINARY one
  and if so uses the \x00 character as a default value filler.
mysql-test/r/type_binary.result:
  Added a test case for the bug#14171: Wrong internal default value for a BINARY field.
mysql-test/t/type_binary.test:
  Added a test case for the bug#14171: Wrong internal default value for a BINARY field.
2007-01-09 22:35:30 +03:00
unknown
be32c01161 Bug#24660: "enum" field type definition problem
ENUMs weren't allowed to have character 0xff, a perfectly good character in many locales.
This was circumvented by mapping 0xff in ENUMs to ',', thereby prevent actual commas from
being used (because they too would get converted to 0xff on load). Now if 0xff makes an
appearance, we find a character not used in the enum and use that as a separator. If no
such character exists, we throw an error.

Any solution would have broken some sort of existing behaviour. This solution should
serve both fractions (those with 0xff and those with ',' in their enums), but
WILL REQUIRE A DUMP/RESTORE CYCLE FROM THOSE WITH 0xff IN THEIR ENUMS. :-/
That is, mysqldump with their current server, and restore when upgrading to one with
this patch.

(port of the original 4.1 patch. incorporates some suggestions by kaamos.)


mysql-test/r/type_enum.result:
  Bug#24660: "enum" field type definition problem
  
  Show that enums can now contain NAMES_SEP_CHAR (0xff, which is a perfectly respectable
  char in some locales), or ',', or both.
mysql-test/t/type_enum.test:
  Bug#24660: "enum" field type definition problem
  
  Show that enums can now contain NAMES_SEP_CHAR (0xff, which is a perfectly respectable
  char in some locales), or ',', or both.
sql/table.cc:
  Bug#24660: "enum" field type definition problem
  
  Revert fix for Bug#20922.
sql/unireg.cc:
  Bug#24660: "enum" field type definition problem
  
  Use a field-separator for ENUM-values that is not part of those values. If impossible,
  throw error.
2007-01-09 20:23:12 +01:00
unknown
f831f46ab2 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
2007-01-09 22:14:11 +03:00
unknown
eca431f3f3 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25027


sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
2007-01-09 10:26:28 -08:00
unknown
8a7c1142db Version 4.0 is in "extended maintenance" by now, and so
no future build of it will include Berkeley DB:
Remove it from the Windows VC++ project files.
2007-01-09 17:21:54 +01:00
unknown
2afe42d3e3 Fix for bug#25026 information_schema.KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME returns garbage
Unencode internal db & table name


mysql-test/r/information_schema_inno.result:
  test result
mysql-test/t/information_schema_inno.test:
  test case
storage/innobase/handler/ha_innodb.cc:
  Unencode internal db & table name
2007-01-09 18:14:04 +04:00
unknown
ada9d3f2c8 Merge kpdesk.mysql.com:/home/thek/dev/test23010/my40-bug23010
into  kpdesk.mysql.com:/home/thek/dev/mysql-4.0
2007-01-09 14:37:52 +01:00
unknown
9e30f5cb30 Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my41-bug23010
into  kpdesk.mysql.com:/home/thek/dev/mysql-4.1-build
2007-01-09 14:36:28 +01:00
unknown
29dcdbcbdf Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.0-build
2007-01-09 14:35:16 +01:00
unknown
89177e6ed3 Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my51-bug23010
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.1-build
2007-01-09 14:34:04 +01:00
unknown
2cbc02f3d6 Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my51-bug23010
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.1-maint
2007-01-09 12:53:59 +01:00
unknown
48451b86bd Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/d2/hf/opt/my50-opt
2007-01-09 15:37:31 +04:00
unknown
3a879e76c6 Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010
into  kpdesk.mysql.com:/home/thek/dev/bug23010/my51-bug23010


mysys/mf_iocache.c:
  Auto merged
mysys/my_seek.c:
  SCCS merged
2007-01-09 12:37:11 +01:00
unknown
72268a3b88 Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my41-bug23010
into  kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010


mysys/mf_iocache.c:
  Auto merged
mysys/my_seek.c:
  Auto merged
2007-01-09 12:33:02 +01:00
unknown
7b95184ae3 Merge kpdesk.mysql.com:/home/thek/dev/test23010/my40-bug23010
into  kpdesk.mysql.com:/home/thek/dev/bug23010/my41-fix23010


mysys/mf_iocache.c:
  Auto merged
mysys/my_seek.c:
  Auto merged
2007-01-09 12:30:57 +01:00
unknown
d7e9fd07ef Cset exclude: thek@kpdesk.mysql.com|ChangeSet|20061106104152|07628
mysys/mf_iocache.c:
  Exclude
mysys/my_seek.c:
  Exclude
2007-01-09 12:28:46 +01:00
unknown
9ca3f7c945 configure.in : Fix a wrong comment.
configure.in:
  Fix a wrong comment (as of 5.1, there is no separate keeping of NDB version numbers).
2007-01-09 12:21:06 +01:00
unknown
4b8d44ef69 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt


sql/filesort.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql-common/my_time.c:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
strings/decimal.c:
  Auto merged
2007-01-09 13:12:35 +03:00
unknown
c12dfbe81d Fix after manual merge.
storage/heap/hp_write.c:
  Fix after manial merge: do cast _after_ pointer substruction.
2007-01-09 13:07:39 +03:00
unknown
21311e992d Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug23443
2007-01-09 12:47:10 +03:00
unknown
e5c1d4784d Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-runtime
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-bug23443
2007-01-09 12:47:03 +03:00
unknown
2dab449fc7 Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.0
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-4.0-bug23443
2007-01-09 12:46:35 +03:00
unknown
ca83b54732 Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug23443
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1-bug23443


sql/item_func.cc:
  Auto merged
storage/heap/hp_block.c:
  Auto merged
storage/heap/hp_write.c:
  Manual merge.
2007-01-09 12:44:16 +03:00
unknown
19b95ca206 Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-bug23443
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug23443


heap/hp_write.c:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-01-09 12:40:34 +03:00
unknown
beac4a6f8a Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-4.0-bug23443
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-4.1-bug23443


heap/hp_block.c:
  Auto merged
sql/item_func.cc:
  Auto merged
heap/hp_write.c:
  Manual merge.
2007-01-09 12:39:05 +03:00
unknown
4fe1561f98 BUG#23443: user-defined variables can consume too much memory in the
server

The problem was that when memory was exhausted HEAP engine could crash
(GROUP BY uses HEAP TABLE).  Alternatively, if SET was used, it could
report an error "You may only use constant expressions with SET" instead
of "Out of memory (Needed NNNNNN bytes)".

The solution is:
 - pass MY_WME to (some) calls to my_malloc() to get correct message.
 - fix heap_write() so that the first key is skipped during cleanup
   on ENOMEM because it wasn't inserted and doesn't have to be
   deleted.

No test case is provided because we can't test out-of-memory behaviour
in our current test framework.


heap/hp_block.c:
  If allocation fails, write an error message.
heap/hp_write.c:
  On ENOMEM, skip the first key in cleanup, as it wasn't inserted yet.
sql/item_func.cc:
  Add MY_WME so that OOM error will be reported.
2007-01-09 12:24:25 +03:00
unknown
8395192592 Merge bk@192.168.21.1:mysql-5.1
into  mysql.com:/d2/hf/opt/my51-opt


mysql-test/t/csv.test:
  Auto merged
2007-01-09 12:55:11 +04:00
unknown
470ea99c42 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24345


sql/sql_select.cc:
  Auto merged
2007-01-09 00:17:48 -08:00
unknown
e3d81238e4 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/d2/hf/opt/my50-opt
2007-01-09 11:19:17 +04:00
unknown
e1b0f07c74 Manual merge of the fix for BUG#19725 "Calls to SF in other database are not replicated
correctly in some cases", from 5.0.
In short, calls to a stored function located in another database
than the default database, may fail to replicate if the call was made
by SET, SELECT, or DO.
sp_head.cc automerged, only the test and test's result had to be hand-merged.


mysql-test/r/rpl_sp.result:
  manual merge of the result of the test for BUG#19725
mysql-test/r/rpl_switch_stm_row_mixed.result:
  the bugfix changes results as expected
mysql-test/t/rpl_sp.test:
  manual merge of the test for BUG#19725
2007-01-08 23:52:21 +01:00
unknown
d101463ef2 Merge gbichot3.local:/home/mysql_src/mysql-5.0-rpl-19725
into  gbichot3.local:/home/mysql_src/mysql-5.1-rpl-19725


sql/sp_head.cc:
  Auto merged
mysql-test/r/rpl_sp.result:
  using 5.1's version, will merge by hand after running the new test
mysql-test/t/rpl_sp.test:
  using 5.1's version, will re-insert the new test portion by hand
2007-01-08 22:06:19 +01:00
unknown
3a05847abb Fix for BUG#19725 "Calls to SF in other database are not replicated
correctly in some cases".
In short, calls to a stored function located in another database
than the default database, may fail to replicate if the call was made
by SET, SELECT, or DO.
Longer: when a stored function is called from a statement which does not go
to binlog ("SET @a=somedb.myfunc()", "SELECT somedb.myfunc()",
"DO somedb.myfunc()"), this crafted statement is binlogged:
"SELECT myfunc();" (accompanied with a mention of the default database
if there is one). So, if "somedb" is not the default database,
the slave would fail to find myfunc(). The fix is to specify the
function's database name in the crafted binlogged statement, like this:
"SELECT somedb.myfunc();". Test added in rpl_sp.test.


mysql-test/r/rpl_sp.result:
  Because I moved the SHOW BINLOG EVENTS down a bit, big portions of its
  output move. Also, the function's database name appears in
  SELECT statements.
mysql-test/t/rpl_sp.test:
  Adding test for BUG#19725.
  Moving the SHOW BINLOG EVENTS down, it is run at the very end to
  test everything.
sql/sp_head.cc:
  When binlogging a "SELECT myfunc()" (when a stored function is executed
  inside a statement which does not go to the binlog (like a SET,
  SELECT, DO), we need to write "SELECT db_of_myfunc().myfunc()",
  because the function may be in a database which is not the default
  database.
2007-01-08 22:01:06 +01:00
unknown
e6e7d0cf45 Changes necessary to build version 4.0.28:
- "make_binary_distribution" accepts a dummy "--platform=" argument.

- "MySQL-shared-compat.spec" uses a "version40" define symbol internally.


scripts/make_binary_distribution.sh:
  Newer versions of the release build tools call this with a "--platform=" argument
  which we seem not to need in 4.0, but which makes the tool crash (happened on SCO).
  
  Rather than add another version check into the build tools, just accept a "--platform="
  argument and ignore it, just give a message.
support-files/MySQL-shared-compat.spec.sh:
  The current version of "Do-shared-compat" needs two digits to identify the release families
  (to differ between 4.0 and 4.1), so the variable "version4" must get renamed to "version40".
2007-01-08 18:33:55 +01:00
unknown
7990ec32b3 mi_check.c:
added a missing DBUG_RETURN


storage/myisam/mi_check.c:
  added a missing DBUG_RETURN
2007-01-08 17:27:28 +02:00
unknown
d7c7060d67 Merge mjorgensen@bk-internal.mysql.com:/home/bk/mysql-5.1
into  thorsen-consulting.dk:/Users/mmj/bktrees/mysql-5.1-build
2007-01-08 12:46:57 +01:00
unknown
cea66abf7b Merge macbook.local:/Users/kgeorge/mysql/work/mysql-5.0-opt
into  macbook.local:/Users/kgeorge/mysql/work/merge-5.1-opt


mysql-test/r/distinct.result:
  Auto merged
mysql-test/r/gis-rtree.result:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/udf.result:
  Auto merged
mysql-test/t/gis-rtree.test:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/udf.test:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
storage/myisam/mi_check.c:
  Auto merged
sql/sql_udf.cc:
  SCCS merged
2007-01-08 12:32:48 +02:00
unknown
4d106e4c98 Post-merge cleanup and fix minor BUILD/... "="-equality syntax
error.


BUILD/SETUP.sh:
  Use POSIX "=" equality shell test.
mysql-test/r/view.result:
  Revert year drift.
2007-01-07 12:21:42 -05:00
unknown
0517aa59ed Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint-greener


Makefile.am:
  Auto merged
configure.in:
  Auto merged
include/mysql.h:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Auto merged
mysql-test/lib/mtr_process.pl:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
scripts/mysqlbug.sh:
  Auto merged
server-tools/instance-manager/Makefile.am:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_plugin.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
storage/federated/ha_federated.cc:
  Auto merged
mysql-test/r/warnings.result:
  Manual merge.
mysql-test/t/warnings.test:
  Manual merge.
strings/ctype-extra.c:
  Manual merge.
2007-01-07 09:31:49 -05:00
unknown
ead6b10557 Forgot to add result file to changeset. :( 2007-01-06 18:40:43 -05:00
unknown
539c4da16d Use relative dates so that the tests don't fail when the year
changes.
2007-01-06 18:32:55 -05:00
unknown
b3138ef74c A writability test in a prereq file polluted the binlog.
Reset the info after using those files.


mysql-test/t/ndb_binlog_ignore_db.test:
  Reset the binlog after we include several files that have little 
  to do with this test.
2007-01-06 12:34:16 -05:00
unknown
702a25ddb8 Fix for when shell version of mysql-test-run is called.
mysql-test/t/warnings-master.opt:
  Added skip-innodb option (which was what it once was...)
mysql-test/t/warnings.test:
  Removed un-needed variable setting. Bug only had to do with unterimated string.
2007-01-05 22:28:53 -08:00
unknown
1162af9f01 Cleaning up warning for windows. Innodb is compiled but disable on Windows, so it should be fine. NDB wasn't compiled in, which is what caused the issue.
mysql-test/r/warnings.result:
  Modified warning to work with Windows
mysql-test/t/warnings.test:
  Moved warning to use Innodb.
2007-01-05 20:20:53 -08:00
unknown
0e4155835c Merge siva.hindu.god:/home/tsmith/m/inno/jan04/51
into  siva.hindu.god:/home/tsmith/m/bk/51-build


storage/innobase/buf/buf0buf.c:
  Auto merged
storage/innobase/dict/dict0dict.c:
  Auto merged
storage/innobase/ha/ha0ha.c:
  Auto merged
storage/innobase/ha/hash0hash.c:
  Auto merged
storage/innobase/include/hash0hash.h:
  Auto merged
storage/innobase/lock/lock0lock.c:
  Auto merged
storage/innobase/log/log0recv.c:
  Auto merged
2007-01-05 16:05:48 -07:00
unknown
0275fa0eb2 Merge mysql.com:/home/kent/bk/tmp/mysql-5.0-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.1-build


scripts/make_binary_distribution.sh:
  Auto merged
support-files/mysql.spec.sh:
  - Put back "libmygcc.a", found no real reason it was removed.
  - Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
    correct "libgcc.a" path is returned for the 32/64 bit architecture.
2007-01-05 17:30:40 +01:00
unknown
6f3343eeb9 Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build


scripts/make_binary_distribution.sh:
  Auto merged
2007-01-05 16:57:23 +01:00
unknown
7fb6aa34a0 mysql.spec.sh, make_binary_distribution.sh:
Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
  correct "libgcc.a" path is returned for the 32/64 bit architecture


scripts/make_binary_distribution.sh:
  Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
  correct "libgcc.a" path is returned for the 32/64 bit architecture
support-files/mysql.spec.sh:
  Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
  correct "libgcc.a" path is returned for the 32/64 bit architecture
2007-01-05 16:53:03 +01:00
unknown
42e31f7a45 Bug #15881: cast problems
The optimizer removes expressions from GROUP BY/DISTINCT
  if they happen to participate in a <expression> = <const>
  predicates of the WHERE clause (the idea being that if
  it's always equal to a constant it can't have multiple 
  values).
  However for predicates where the expression and the 
  constant item are of different result type this is not
  valid (e.g. a string column compared to 0).
  Fixed by additional check of the result types of the 
  expression and the constant and if they differ the 
  expression don't get removed from the group by list.


mysql-test/r/distinct.result:
  Bug #15881: cast problems
    - test case
mysql-test/t/distinct.test:
  Bug #15881: cast problems
    - test case
sql/sql_select.cc:
  Bug #15881: cast problems
    - can't use <expr>=<const> to remove GROUP BY/DISTINCT cols
      if they're not of the same type.
2007-01-05 14:02:50 +02:00