1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-18 07:48:43 +03:00
Commit Graph

18094 Commits

Author SHA1 Message Date
monty@mysql.com/nosik.monty.fi
eeaa3adb03 Added sql_mode PAD_CHAR_TO_FULL_LENGTH (WL#921)
This pads the value of CHAR columns with spaces up to full column length (according to ANSI)
It's not makde part of oracle or ansi mode yet, as this would cause a notable behaviour change.
Added uuid_short(), a generator for increasing 'unique' longlong integers (8 bytes)
2007-04-27 01:12:09 +03:00
evgen@moonbone.local
7a1c61efb6 Bug#16377: Wrong DATE/DATETIME comparison in BETWEEN function.
The BETWEEN function was comparing DATE/DATETIME values either as ints or as
strings. Both methods have their disadvantages and may lead to a wrong
result.

Now BETWEEN function checks whether all of its arguments has the STRING result
types and at least one of them is a DATE/DATETIME item. If so it sets up
two Arg_comparator obects to compare with the compare_datetime() comparator
and uses them to compare such items.

Added two Arg_comparator object members and one flag to the
Item_func_between class for the correct DATE/DATETIME comparison.
The Item_func_between::fix_length_and_dec() function now detects whether
it's used for DATE/DATETIME comparison and sets up newly added Arg_comparator
objects to do this.
The Item_func_between::val_int() now uses Arg_comparator objects to perform
correct DATE/DATETIME comparison.
The owner variable of the Arg_comparator class now can be set to NULL if the
caller wants to handle NULL values by itself.
Now the Item_date_add_interval::get_date() function ajusts cached_field type according to the detected type.
2007-04-27 00:40:35 +04:00
svoj@april.(none)
640b3e4e74 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.1-engines
2007-04-27 01:33:16 +05:00
evgen@moonbone.local
84c47ae08f Merge moonbone.local:/mnt/gentoo64/work/27590-bug-5.0-opt-mysql
into  moonbone.local:/mnt/gentoo64/work/16377-bug-5.0-opt-mysql
2007-04-27 00:13:13 +04:00
evgen@moonbone.local
4747fa0c03 Bug#27590: Wrong DATE/DATETIME comparison.
DATE and DATETIME can be compared either as strings or as int. Both
methods have their disadvantages. Strings can contain valid DATETIME value
but have insignificant zeros omitted thus became non-comparable with
other DATETIME strings. The comparison as int usually will require conversion
from the string representation and the automatic conversion in most cases is
carried out in a wrong way thus producing wrong comparison result. Another
problem occurs when one tries to compare DATE field with a DATETIME constant.
The constant is converted to DATE losing its precision i.e. losing time part.

This fix addresses the problems described above by adding a special
DATE/DATETIME comparator. The comparator correctly converts DATE/DATETIME
string values to int when it's necessary, adds zero time part (00:00:00)
to DATE values to compare them correctly to DATETIME values. Due to correct
conversion malformed DATETIME string values are correctly compared to other
DATE/DATETIME values.

As of this patch a DATE value equals to DATETIME value with zero time part.
For example '2001-01-01' equals to '2001-01-01 00:00:00'.

The compare_datetime() function is added to the Arg_comparator class.
It implements the correct comparator for DATE/DATETIME values.
Two supplementary functions called get_date_from_str() and get_datetime_value()
are added. The first one extracts DATE/DATETIME value from a string and the
second one retrieves the correct DATE/DATETIME value from an item.
The new Arg_comparator::can_compare_as_dates() function is added and used
to check whether two given items can be compared by the compare_datetime()
comparator.
Two caching variables were added to the Arg_comparator class to speedup the
DATE/DATETIME comparison.
One more store() method was added to the Item_cache_int class to cache int
values.
The new is_datetime() function was added to the Item class. It indicates
whether the item returns a DATE/DATETIME value.
2007-04-27 00:12:09 +04:00
svoj@mysql.com/april.(none)
ce55046fbd Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
2007-04-27 00:56:50 +05:00
tomas@whalegate.ndb.mysql.com
3261e57049 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-04-26 21:33:07 +02:00
svoj@mysql.com/april.(none)
f698977298 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-04-27 00:32:51 +05:00
tomas@whalegate.ndb.mysql.com
cfbb8672ab correction of result file 2007-04-26 21:32:02 +02:00
kaa@polly.local
02f2616ee3 Merge polly.local:/home/kaa/src/maint/bug22364/my50-bug22364
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2007-04-26 20:51:02 +04:00
mleich@four.local.lan
44f02c570a Minor improvement to save some testing runtime (~ 2 minutes).
Reason:
   This test executes DML statements on a NDB table to detect if some SQL statements of special interest commits the ongoing transaction.
   When running in MIXED mode, automatic switching from statement-based to row-based replication takes place when a DML statement
   updates an NDB table.
   That means running this test on NDB with binlog-format=mixed and binlog-format=row mostly checks the same routines twice.
   Therefore we skip the variant with binlog-format=mixed.
2007-04-26 17:49:50 +02:00
joerg@trift-lap.fambruehe
044f2e110e Merge trift-lap.fambruehe:/MySQL/M50/push-5.0
into  trift-lap.fambruehe:/MySQL/M51/push-5.1
2007-04-26 17:11:33 +02:00
joerg@trift-lap.fambruehe
03f4492b5b Merge trift-lap.fambruehe:/MySQL/M50/clone-5.0
into  trift-lap.fambruehe:/MySQL/M50/push-5.0
2007-04-26 16:48:53 +02:00
joerg@trift-lap.fambruehe
69d39592b9 Merge trift-lap.fambruehe:/MySQL/M41/mysql-4.1
into  trift-lap.fambruehe:/MySQL/M41/push-4.1
2007-04-26 16:09:19 +02:00
joerg@trift-lap.fambruehe
2ed383302f Merge trift-lap.fambruehe:/MySQL/M50/mysql-5.0
into  trift-lap.fambruehe:/MySQL/M50/push-5.0
2007-04-26 16:06:44 +02:00
joerg@trift-lap.fambruehe
f723388b18 Merge trift-lap.fambruehe:/MySQL/M51/mysql-5.1
into  trift-lap.fambruehe:/MySQL/M51/push-5.1
2007-04-26 16:03:02 +02:00
tomas@whalegate.ndb.mysql.com
86cd5c7603 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-04-26 13:59:57 +02:00
tomas@whalegate.ndb.mysql.com
0326179d10 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-telco-gca
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user
2007-04-26 13:50:04 +02:00
tomas@whalegate.ndb.mysql.com
8dd90e8817 WL#1190 preparatory work needed for compatability with future online add column 2007-04-26 13:36:51 +02:00
msvensson@pilot.blaudden
667cb17942 Merge bk-internal:/home/bk/mysql-5.1-new-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
2007-04-26 13:18:19 +02:00
gkodinov/kgeorge@magare.gmz
f4ec0f1cbe Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B27363-5.0-opt
2007-04-26 11:16:01 +03:00
gkodinov/kgeorge@magare.gmz
bfa29e175e Bug #27363:
Validity checks for nested set functions
were not taking into account that the enclosed
set function may be on a nest level that is
lower than the nest level of the enclosing set
function.
Fixed by :
 - propagating max_sum_func_level
up the enclosing set functions chain.
 - updating the max_sum_func_level of the 
   enclosing set function when the enclosed set
   function is aggregated above or on the same
   nest level of as the level of the enclosing 
   set function.
 - updating the max_arg_level of the enclosing
   set function on a reference that refers to
   an item above or on the same nest level
   as the level of the enclosing set function.
 - Treating both Item_field and Item_ref as possibly
   referencing items from outer nest levels.
2007-04-26 11:12:17 +03:00
df@pippilotta.erinye.com
d384d67af2 Two test cases didn't work without Blackhole compiled into the server. 2007-04-26 08:22:05 +02:00
gshchepa/uchum@gshchepa.loc
5983038a66 Fixed bug #27650:
INSERT into InnoDB table may cause "ERROR 1062 (23000): Duplicate entry..."
errors or lost records after multi-row INSERT of the form:
"INSERT INTO t (id...) VALUES (NULL...) ON DUPLICATE KEY UPDATE id=VALUES(id)",
where "id" is an AUTO_INCREMENT column.

It happens because InnoDB handler forgets to save next insert id after
updating of auto_increment column with new values. As result of that
last insert id stored inside InnoDB dictionary tables differs from it's
cached thd->next_insert_id value.
2007-04-26 02:01:23 +05:00
tsmith@quadxeon.mysql.com
c6f625bdbc Add --symbolic-links=1 for partition_not_windows-master.opt. 2007-04-25 22:55:19 +02:00
df@pippilotta.erinye.com
b353df7474 Fix test case that was broken for builds without InnoDB.
---
Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build-work-vanilla-building
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build-work-vanilla-building
---
Fix test cases to pass for a plain ./configure && make build. This includes disabling two test cases when certain features are not present in the server. We're not losing coverage from this because these features are usually present, and disabling them here only serves the purpose to make the test cases work in the unlikely case that they aren't.
---
fixes
2007-04-25 21:33:18 +02:00
df@pippilotta.erinye.com
e0f148d5f0 Fix test case that was broken for builds without InnoDB. 2007-04-25 20:23:19 +02:00
tsmith@quadxeon.mysql.com
43b4b044f7 Fix for valgrind errors in test: require symlink support for partition_not_windows.test 2007-04-25 20:21:55 +02:00
msvensson@pilot.blaudden
9f1aac76ce Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
2007-04-25 13:09:26 +02:00
msvensson@pilot.blaudden
6e4acae645 Merge pilot.blaudden:/home/msvensson/mysql/bug25262/my50-bug25262
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-04-25 12:08:39 +02:00
mleich@four.local.lan
7b0b6b350c The combination NDB and statement based replication is extreme slow and this fails usually because of testing timeout. 2007-04-25 11:23:41 +02:00
msvensson@pilot.blaudden
5fdd4112eb Merge pilot.blaudden:/home/msvensson/mysql/bug25262/my51-bug25262
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
2007-04-25 11:13:41 +02:00
iggy@recycle.(none)
08ea692a7f - Resolved conflict between fixes for bugs 25141 and 26074.
- Use the 25141 fix.
- 26074 is duplicate, as 25141 has more comprehensive test
2007-04-24 16:07:52 -04:00
evgen@moonbone.local
b77a85ef22 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/27874-bug-5.0-opt-mysql
2007-04-24 22:43:30 +04:00
evgen@moonbone.local
5cd1f992ce Bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode.
When fields are inserted instead of * in the select list they were not marked
for check for the ONLY_FULL_GROUP_BY mode.

The Field_iterator_table::create_item() function now marks newly created
items for check when in the ONLY_FULL_GROUP_BY mode.
The setup_wild() and the insert_fields() functions now maintain the
cur_pos_in_select_list counter for the ONLY_FULL_GROUP_BY mode.
2007-04-24 22:35:57 +04:00
iggy@recycle.(none)
0dfb49b0a6 - Removing mistake. 2007-04-24 14:26:49 -04:00
iggy@recycle.(none)
8e11fe899e Cset exclude: iggy@alf.|ChangeSet|20070330021852|19466 2007-04-24 13:51:59 -04:00
mleich@four.local.lan
a0991b9ab6 The fix for Bug#18946: Test case rpl_ndb_ddl disabled pushed around end of March 2007 enabled this testcase.
It was later disabled because the test failed with timeout on one testing box.
The reason for this failing test could not be found because we do not have informations about the conditions on the box during this test.
Jeb and I tried this test on other boxes and it passed.
My experience is that
- tests using NDB need in general often significant more runtime
  than comparable tests of other storage engines
- the actual load of the box where the test is running and the
  filesystem (nfs could be extreme slow) where the tests are
  executed might have a huge impact on the test performance 
  (runtime * 2 till 3)
- there are sometimes problems with the ports most probably
  caused by OS properties (NDB+RPL need many ports) or
  parallel tests accidently running with the same ports.
AFAIK these are the reasons why the NDB tests fail sometimes with timeout.
Conclusion: We enable rpl_ndb_ddl again because the failure happens in rare cases
and seems not to be caused by errors within the server or test code.
2007-04-24 19:05:19 +02:00
iggy@alf.
b2bf19354c Merge alf.:D:/src/mysql-5.1-maint
into  alf.:D:/src/mysql-5.1-maint_pt
2007-04-24 12:50:28 -04:00
gni@dev3-221.dev.cn.tlan
1869b2c4d0 Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.1/mysql-5.1-new-ndb-bj
into  dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.1/bug18676
2007-04-24 17:34:36 +08:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
1d0f9bed85 Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:33:15 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
250ae972e7 Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:20:28 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
49b187034d Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b27515/b27515.5.0
2007-04-24 14:08:03 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
244c192347 after-merge fix 2007-04-24 13:53:12 +05:00
jonas@perch.ndb.mysql.com
da8931cb98 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
2007-04-24 09:53:32 +02:00
ramil/ram@ramil.myoffice.izhnet.ru
3935e22459 Merge mysql.com:/home/ram/work/b27515/b27515.5.0
into  mysql.com:/home/ram/work/b27515/b27515.5.1
2007-04-24 11:28:18 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
d13861546e after-merge fix 2007-04-24 11:26:40 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
bb3b6ae72c Merge mysql.com:/home/ram/work/b27515/b27515.4.1
into  mysql.com:/home/ram/work/b27515/b27515.5.0
2007-04-24 10:27:59 +05:00
iggy@alf.
2c955476f8 Merge alf.:D:/src/mysql-5.1-maint
into  alf.:D:/src/mysql-5.1-maint_pt
2007-04-23 23:24:24 -04:00
iggy@recycle.(none)
e251139c80 Merge recycle.(none):/src/mysql-5.1-maint
into  recycle.(none):/src/mysql-5.1-maint_25141
2007-04-23 17:04:24 -04:00