Commit 0ff984fd authored by unknown's avatar unknown

Fixed that IF is case insensitive if 2 and 3 arguments are case insensitive.

Added copyright messages to some files that was missing it.


Docs/manual.texi:
  Changelog
dbug/Makefile.am:
  Added missing dbug_analyze.c
dbug/monty.doc:
  Added copyright message
mysql-test/t/func_test.test:
  Moved test of IF to new file
sql/item_cmpfunc.cc:
  Fixed that IF is case insensitive if 2 and 3 arguments are case insensitive.
strings/bfill.c:
  Added copyright message
strings/bmove.c:
  Added copyright message
strings/ctype-ujis.c:
  Added copyright message
strings/strend.c:
  Added copyright message
strings/strstr.c:
  Added copyright message
strings/strxmov.c:
  Added copyright message
strings/strxnmov.c:
  Added copyright message
parent 8855c5c7
...@@ -29916,6 +29916,9 @@ stored into a temporary table) is calculated in MySQL Version ...@@ -29916,6 +29916,9 @@ stored into a temporary table) is calculated in MySQL Version
@item expr2 or expr3 returns an integer @tab integer @item expr2 or expr3 returns an integer @tab integer
@end multitable @end multitable
If expr2 and expr3 are strings, then the result is case sensitive if
both strings are case sensitive. (Starting from 3.23.51)
@findex CASE @findex CASE
@item CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END @item CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
@item CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END @item CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
...@@ -46854,6 +46857,7 @@ users use this code as the rest of the code and because of this we are ...@@ -46854,6 +46857,7 @@ users use this code as the rest of the code and because of this we are
not yet 100% confident in this code. not yet 100% confident in this code.
@menu @menu
* News-3.23.51::
* News-3.23.50:: Changes in release 3.23.50 * News-3.23.50:: Changes in release 3.23.50
* News-3.23.49:: Changes in release 3.23.49 * News-3.23.49:: Changes in release 3.23.49
* News-3.23.48:: Changes in release 3.23.48 * News-3.23.48:: Changes in release 3.23.48
...@@ -46908,9 +46912,15 @@ not yet 100% confident in this code. ...@@ -46908,9 +46912,15 @@ not yet 100% confident in this code.
* News-3.23.0:: Changes in release 3.23.0 * News-3.23.0:: Changes in release 3.23.0
@end menu @end menu
@node News-3.23.50, News-3.23.49, News-3.23.x, News-3.23.x @node News-3.23.51, News-3.23.50, News-3.23.x, News-3.23.x
@appendixsubsec Changes in release 3.23.50 @appendixsubsec Changes in release 3.23.51
@itemize @bullet
Fixed the result from @code{IF()} is case in-sensitive if the 2 and
third arguments are case sensitive.
@end itemize
@node News-3.23.50, News-3.23.49, News-3.23.51, News-3.23.x
@appendixsubsec Changes in release 3.23.50
@itemize @bullet @itemize @bullet
@item @item
Fixed problem with @code{crash-me} and gcc 3.0.4. Fixed problem with @code{crash-me} and gcc 3.0.4.
...@@ -20,8 +20,9 @@ LDADD = libdbug.a ../strings/libmystrings.a ...@@ -20,8 +20,9 @@ LDADD = libdbug.a ../strings/libmystrings.a
pkglib_LIBRARIES = libdbug.a pkglib_LIBRARIES = libdbug.a
noinst_HEADERS = dbug_long.h noinst_HEADERS = dbug_long.h
libdbug_a_SOURCES = dbug.c sanity.c libdbug_a_SOURCES = dbug.c sanity.c
EXTRA_DIST = example1.c example2.c example3.c user.r monty.doc readme.prof \ EXTRA_DIST = example1.c example2.c example3.c \
main.c factorial.c user.r monty.doc readme.prof \
main.c factorial.c dbug_analyze.c
OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\ OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\
__math.h time.h __time.h unistd.h __unistd.h types.h \ __math.h time.h __time.h unistd.h __unistd.h types.h \
...@@ -32,7 +33,7 @@ OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\ ...@@ -32,7 +33,7 @@ OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\
sleep.h specific.h version.h pwd.h timers.h uio.h \ sleep.h specific.h version.h pwd.h timers.h uio.h \
cdefs.h machdep.h signal.h __signal.h util.h cdefs.h machdep.h signal.h __signal.h util.h
# Must be linked with libs thta are not compiled yet # Must be linked with libs that are not compiled yet
extra_progs: factorial dbug_analyze extra_progs: factorial dbug_analyze
factorial: main.o factorial.o factorial: main.o factorial.o
......
...@@ -10,3 +10,11 @@ giving a double ':'. (As in "O,c::\tmp\log") ...@@ -10,3 +10,11 @@ giving a double ':'. (As in "O,c::\tmp\log")
DBUG_DUMP("keyword",memory-position,length) writes a hexdump of the DBUG_DUMP("keyword",memory-position,length) writes a hexdump of the
given memory-area to the outputfile. given memory-area to the outputfile.
All changes that I or other people at MySQL AB have done to all files
in the dbug library (Mainly in dbug.c, dbug_analyze.c, dbug_long.h,
dbug.h) are put in public domain, as the rest of the dbug.c library)
To my knowledge, all code in dbug library are in public domain.
Michael Widenius
...@@ -11,7 +11,6 @@ select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" li ...@@ -11,7 +11,6 @@ select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" li
select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$"; select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
select "aba" regexp concat("^","a"); select "aba" regexp concat("^","a");
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0; select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3; select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
select 'b' between 'a' and 'c', 'B' between 'a' and 'c'; select 'b' between 'a' and 'c', 'B' between 'a' and 'c';
select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0); select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0);
...@@ -24,13 +23,3 @@ select -1.49 or -1.49,0.6 or 0.6; ...@@ -24,13 +23,3 @@ select -1.49 or -1.49,0.6 or 0.6;
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1; select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1; select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
select 1 and 0 or 2, 2 or 1 and 0; select 1 and 0 or 2, 2 or 1 and 0;
#
# Problem with IF()
#
drop table if exists t1;
create table t1 (num double(12,2));
insert into t1 values (144.54);
select sum(if(num is null,0.00,num)) from t1;
drop table t1;
...@@ -490,8 +490,12 @@ Item_func_if::fix_length_and_dec() ...@@ -490,8 +490,12 @@ Item_func_if::fix_length_and_dec()
decimals=max(args[1]->decimals,args[2]->decimals); decimals=max(args[1]->decimals,args[2]->decimals);
enum Item_result arg1_type=args[1]->result_type(); enum Item_result arg1_type=args[1]->result_type();
enum Item_result arg2_type=args[2]->result_type(); enum Item_result arg2_type=args[2]->result_type();
binary=1;
if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT) if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT)
{
cached_result_type = STRING_RESULT; cached_result_type = STRING_RESULT;
binary=args[1]->binary | args[2]->binary;
}
else if (arg1_type == REAL_RESULT || arg2_type == REAL_RESULT) else if (arg1_type == REAL_RESULT || arg2_type == REAL_RESULT)
cached_result_type = REAL_RESULT; cached_result_type = REAL_RESULT;
else else
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : bfill.c /* File : bfill.c
Author : Richard A. O'Keefe. Author : Richard A. O'Keefe.
Michael Widenius; ifdef MC68000 Michael Widenius; ifdef MC68000
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : bmove.c /* File : bmove.c
Author : Richard A. O'Keefe. Author : Richard A. O'Keefe.
Michael Widenius; ifdef MC68000 Michael Widenius; ifdef MC68000
......
/* Copyright (C) 2002 MySQL AB & tommy@valley.ne.jp.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* This file is for Japanese EUC charset, and created by tommy@valley.ne.jp. /* This file is for Japanese EUC charset, and created by tommy@valley.ne.jp.
*/ */
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : strend.c /* File : strend.c
Author : Richard A. O'Keefe. Author : Richard A. O'Keefe.
Updated: 23 April 1984 Updated: 23 April 1984
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : strstr.c /* File : strstr.c
Author : Monty Author : Monty
Updated: 1986.11.24 Updated: 1986.11.24
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : strxmov.c /* File : strxmov.c
Author : Richard A. O'Keefe. Author : Richard A. O'Keefe.
Updated: 25 may 1984 Updated: 25 may 1984
......
/* Copyright (C) 2002 MySQL AB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA */
/* File : strxnmov.c /* File : strxnmov.c
Author : Richard A. O'Keefe. Author : Richard A. O'Keefe.
Updated: 2 June 1984 Updated: 2 June 1984
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment