Commit graph

294 commits

Author SHA1 Message Date
gkodinov/kgeorge@magare.gmz
a5b04a3ba9 Bug #28492: subselect returns LONG in >5.0.24a and LONGLONG in <=5.0.24a
Integer values with 10 digits may or may not fit into an int column 
(e.g. 2147483647 vs 6147483647).
Thus when creating a temp table column for such an int we must
use bigint instead.
Fixed to use bigint.
Also subsituted a "magic number" with a named constant.
2007-05-30 09:55:38 +03:00
ibabaev@bk-internal.mysql.com
040e46fc1c Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
2007-05-28 00:05:38 +02:00
gshchepa/uchum@gleb.loc
1f0e116cf9 field.h:
Warnings elimination.
2007-05-26 00:44:13 +05:00
mhansson@dl145s.mysql.com
6530f6806a bug#23856 2007-05-21 10:27:33 +02:00
msvensson@pilot.blaudden
a65d12a830 Backport of TIME->MYSQL_TIME / Y2K fixset
Made year 2000 handling more uniform
Removed year 2000 handling out from calc_days()
The above removes some bugs in date/datetimes with year between 0 and 200
Now we get a note when we insert a datetime value into a date column
For default values to CREATE, don't give errors for warning level NOTE
Fixed some compiler failures
Added library ws2_32 for windows compilation (needed if we want to compile with IOCP support)
Removed duplicate typedef TIME and replaced it with MYSQL_TIME

Better (more complete) fix for: Bug#21103 "DATE column not compared as DATE"
Fixed properly Bug#18997 "DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value"
Fixed Bug#23093 "Implicit conversion of 9912101 to date does not match cast(9912101 as date)"
2007-05-16 10:44:59 +02:00
gshchepa/uchum@gshchepa.loc
85d70a9652 Merge gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt
into  gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt-13191
2007-04-29 08:51:51 +05:00
gshchepa/uchum@gshchepa.loc
3adcb94ede Fixed bug #13191.
INSERT...ON DUPLICATE KEY UPDATE may cause error 1032: 
"Can't find record in ..." if we are inserting into
InnoDB table unique index of partial key with
underlying UTF-8 string field.

This error occurs because INSERT...ON DUPLICATE uses a wrong
procedure to copy string fields of multi-byte character sets
for index search.
2007-04-29 04:16:17 +05:00
msvensson@pilot.blaudden
bb9a601829 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-04-02 10:50:39 +02:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
73f0c5d7c6 Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b26359/b26359.5.0
2007-03-29 11:06:15 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
e3c34c9cbf Fix for bugs
#27176: Assigning a string to an year column has unexpected results
#26359: Strings becoming truncated and converted to numbers under STRICT mode

Problems: 
1. storing a string to an integer field we don't check 
   if strntoull10rnd() returns MY_ERRNO_EDOM error.
   Fix: check for MY_ERRNO_EDOM.
2. storing a string to an year field we use my_strntol() function.
   Fix: use strntoull10rnd() instead.
2007-03-29 09:08:30 +05:00
gkodinov/kgeorge@magare.gmz
a65bc60d1a Merge magare.gmz:/home/kgeorge/mysql/work/B27164-4.1-opt
into  magare.gmz:/home/kgeorge/mysql/work/B27164-5.0-opt
2007-03-26 14:14:23 +03:00
gkodinov/kgeorge@magare.gmz[kgeorge]
e6d81ad338 Bug #27164: not reseting the data pointer
to 0 causes wrong (large) length to be read
 from the row in _mi_calc_blob_length() when 
 storing NULL values in (e.g) POINT columns.
 This large length is then used to allocate
 a block of memory that (on some OSes) causes
 trouble.
 Fixed by calling the base class's 
 Field_blob::reset() from Field_geom::reset()
 that is called when storing a NULL value into
 the column.
2007-03-26 13:17:40 +03:00
mhansson/martin@linux-st28.site
749976ee5e Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt
into  linux-st28.site:/home/martin/mysql/src/5.0o-bug24791
2007-03-22 10:58:16 +01:00
mhansson/martin@linux-st28.site
50077b6db9 Bug #24791: Union with AVG-groups generates wrong results
The problem in this bug is when we create temporary tables. When
temporary tables are created for unions, there is some 
inferrence being carried out regarding the type of the column.
Whenever this column type is inferred to be REAL (i.e. FLOAT or
DOUBLE), MySQL will always try to maintain exact precision, and
if that is not possible (there are hardware limits, since FLOAT
and DOUBLE are stored as approximate values) will switch to
using approximate values. The problem here is that at this point
the information about number of significant digits is not 
available. Furthermore, the number of significant digits should
be increased for the AVG function, however, this was not properly 
handled. There are 4 parts to the problem:

#1: DOUBLE and FLOAT fields don't display their proper display 
lengths in max_display_length(). This is hard-coded as 53 for 
DOUBLE and 24 for FLOAT. Now changed to instead return the 
field_length.

#2: Type holders for temporary tables do not preserve the 
max_length of the Item's from which they are created, and is 
instead reverted to the 53 and 24 from above. This causes 
*all* fields to get non-fixed significant digits.

#3: AVG function does not update max_length (display length)
when updating number of decimals.

#4: The function that switches to non-fixed number of 
significant digits should use DBL_DIG + 2 or FLT_DIG + 2 as 
cut-off values (Since fixed precision does not use the 'e' 
notation)

Of these points, #1 is the controversial one, but this 
change is preferred and has been cleared with Monty. The 
function causes quite a few unit tests to blow up and they had
to b changed, but each one is annotated and motivated. We 
frequently see the magical 53 and 24 give way to more relevant
numbers.
2007-03-22 10:56:47 +01:00
svoj@mysql.com/april.(none)
11384fece2 Merge mysql.com:/home/svoj/devel/bk/mysql-5.0
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-5.0-engines
2007-03-13 16:58:52 +04:00
svoj@mysql.com/june.mysql.com
aae6e1aba4 BUG#26238 - inserted delayed always inserts 0 for BIT columns
INSERT DELAYED inserts garbage for BIT columns.

When delayed thread clones TABLE object, it didn't adjusted bit_ptr
to newly created record (though it correctly adjusts ptr and null_ptr).

This is fixed by correctly adjusting bit_ptr when performing a clone.
With this fix BIT values are stored correctly by INSERT DELAYED.
2007-02-28 18:34:35 +04:00
monty@mysql.com/narttu.mysql.fi
26aa385bc5 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-02-21 14:07:08 +02:00
ibabaev@bk-internal.mysql.com
266300142e Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
2007-02-13 23:35:06 +01:00
gkodinov/kgeorge@macbook.gmz
5092f7ab26 Bug #22344: InnoDB keys act strange on datetime vs timestamp comparison
Ignoring error codes from type conversion allows default (wrong) values to
 go unnoticed in the formation of index search conditions.
 Fixed by correctly checking for conversion errors.
2007-02-06 11:08:57 +02:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
2c45e72e04 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/ram/work/b26012/b26012.4.1
2007-02-01 19:56:14 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
ac0cab1589 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into  mysql.com:/home/ram/work/b26012/b26012.5.0
2007-02-01 19:55:11 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
7bcf2bf338 Merge mysql.com:/home/ram/work/b26012/b26012.4.1
into  mysql.com:/home/ram/work/b26012/b26012.5.0
2007-02-01 19:51:45 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
d710853fb8 Fix for bug #26012: missed Field_double::size_of()
As we have Field_double::not_fixed we must have Field_double::size_of().
2007-02-01 19:51:02 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
f0f83a36bc Merge mysql.com:/home/ram/work/b19690/b19690.4.1
into  mysql.com:/home/ram/work/b19690/b19690.5.0
2007-01-31 10:07:56 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
eb415e4920 fix for bug #19690: ORDER BY eliminates rows from the result
Depending on the queries we use different data processing methods
and can lose some data in case of double (and decimal in 4.1) fields.

The fix consists of two parts:
1. double comparison changed, now double a is equal to double b 
if (a-b) is less than 5*0.1^(1 + max(a->decimals, b->decimals)). 
For example, if a->decimals==1, b->decimals==2, a==b if (a-b)<0.005
2. if we use a temporary table, store double values there as is 
to avoid any data conversion (rounding).
2007-01-31 09:51:05 +04:00
monty@mysql.com/narttu.mysql.fi
a04157fbb3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-01-22 14:04:40 +02:00
msvensson@pilot.mysql.com
51292deb36 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint
2007-01-17 11:53:00 +01:00
cmiller@zippy.cornsilk.net
896e2623eb Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2007-01-11 09:43:44 -05:00
evgen@moonbone.local
ac48c8bae1 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.
2007-01-09 22:35:30 +03:00
kent@mysql.com/kent-amd64.(none)
6523aca729 my_strtoll10-x86.s:
Corrected spelling in copyright text
Makefile.am:
  Don't update the files from BitKeeper
Many files:
  Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
  Adjusted year(s) in copyright header 
Many files:
  Added GPL copyright text
Removed files:
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/xwf
2006-12-31 01:02:27 +01:00
tsmith/tim@siva.hindu.god
682596d7ce Merge siva.hindu.god:/usr/home/tim/m/bk/g50
into  siva.hindu.god:/usr/home/tim/m/bk/50
2006-12-26 22:28:28 -07:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
tsmith/tim@siva.hindu.god
f204db4dd1 Merge siva.hindu.god:/usr/home/tim/m/bk/g50
into  siva.hindu.god:/usr/home/tim/m/bk/50
2006-12-21 18:20:09 -07:00
monty@mysql.com/narttu.mysql.fi
a6481aa4c7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-12-15 01:01:52 +02:00
monty@mysql.com/narttu.mysql.fi
88dd873de0 Fixed compiler warnings detected by option -Wshadow and -Wunused:
- Removed not used variables and functions
- Added #ifdef around code that is not used
- Renamed variables and functions to avoid conflicts
- Removed some not used arguments

Fixed some class/struct warnings in ndb
Added define IS_LONGDATA() to simplify code in libmysql.c

I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
2006-12-15 00:51:37 +02:00
kaa@polly.local
feb0e3a0f2 Merge polly.local:/tmp/maint/bug24117/my50-bug24117
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2006-12-14 21:24:52 +03:00
kaa@polly.local
4162e009cb Fix for bug #24117 "server crash on a FETCH with a cursor on a table which is not in the table cache"
Problem:
When creating a temporary field for a temporary table in create_tmp_field_from_field(), a resulting field is created as an exact copy of an original one (in Field::new_field()). However, Field_enum and Field_set contain a pointer (typelib) to memory allocated in the parent table's MEM_ROOT, which under some circumstances may be deallocated later by the time a temporary table is used.

Solution:
Override the new_field() method for Field_enum and Field_set and create a separate copy of the typelib structure in there.
2006-12-14 20:58:07 +03:00
holyfoot/hf@mysql.com/deer.(none)
9e52ef1f9d Merge mysql.com:/home/hf/work/22372/my41-22372
into  mysql.com:/home/hf/work/22372/my50-22372
2006-12-06 22:02:39 +04:00
holyfoot/hf@mysql.com/deer.(none)
e83c682fb7 bug #22372 (LOAD DATA crashes the table with the geometry field)
The problem is that the GEOMETRY NOT NULL can't automatically set
any value as a default one. We always tried to complete LOAD DATA
command even if there's not enough data in file. That doesn't work
for GEOMETRY NOT NULL. Now Field_*::reset() returns an error sign
and it's checked in mysql_load()
2006-12-06 21:45:57 +04:00
holyfoot/hf@mysql.com/deer.(none)
e95e23b0f3 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/mysql-5.0-0mrg
2006-11-17 10:30:16 +04:00
bar@mysql.com/bar.intranet.mysql.r18.ru
aa1c8a5826 Bug#21505 Create view - illegal mix of collation for operation 'UNION'
The problem was that any VIEW columns had always implicit derivation.
  Fix: derivation is now copied from the original expression
  given in VIEW definition.
  For example:
  - a VIEW column which comes from a string constant
    in CREATE VIEW definition have now coercible derivation.
  - a VIEW column having COLLATE clause
    in CREATE VIEW definition have now explicit derivation.
2006-11-09 14:41:34 +04:00
holyfoot/hf@mysql.com/deer.(none)
5f42ec19b7 Merge mysql.com:/home/hf/work/19491/my50-19491
into  mysql.com:/home/hf/work/mysql-5.0.19491
2006-11-01 15:41:51 +04:00
holyfoot/hf@mysql.com/deer.(none)
4fb00857ca bug #19491 (CAST do DATETIME wrong result) 2006-10-25 20:14:39 +05:00
igor@rurik.mysql.com
2e2c5a20c0 Merge rurik.mysql.com:/home/igor/mysql-4.1-opt
into  rurik.mysql.com:/home/igor/mysql-5.0-opt
2006-09-20 09:47:36 -07:00
igor@rurik.mysql.com
d957636471 Fixed bug #20108.
Any default value for a enum fields over UCS2 charsets was corrupted
when we put it into the frm file, as it had been overwritten by its
HEX representation.
To fix it now we save a copy of structure that represents the enum
type and when putting the default values we use this copy.
2006-09-20 09:46:12 -07:00
acurtis/antony@xiphis.org/ltantony.xiphis.org
4c57a94b78 fix windows build 2006-08-15 01:54:14 -07:00
brian@zim.(none)
7429c871b9 Fix for bug#20648 We introduce a new field method for knowing "real size", and we now in archive null unused bits of a row to null before writing. 2006-08-14 03:29:17 -07:00
evgen@moonbone.local
67c85a170a Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  moonbone.local:/work/tmp_merge-5.0-opt-mysql
2006-08-02 16:44:56 +04:00
evgen@moonbone.local
edc2c4bb81 field.h:
Fixed typo.
2006-07-22 05:52:37 +04:00
evgen@moonbone.local
8540557457 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/autopush/12185-bug-5.0-opt-mysql
2006-07-22 02:15:36 +04:00