Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
This commit is contained in:
commit
c6d9cf1b12
@ -673,6 +673,22 @@ POINT(10 10)
|
|||||||
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
||||||
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))))
|
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))))
|
||||||
POINT(10 10)
|
POINT(10 10)
|
||||||
|
create table t1 (g GEOMETRY);
|
||||||
|
select * from t1;
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def test t1 t1 g g 255 4294967295 0 Y 144 0 63
|
||||||
|
g
|
||||||
|
select asbinary(g) from t1;
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def asbinary(g) 252 16777216 0 Y 128 0 63
|
||||||
|
asbinary(g)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
|
||||||
|
alter table t1 disable keys;
|
||||||
|
load data infile '../std_data_ln/bad_gis_data.dat' into table t1;
|
||||||
|
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'b' at row 1
|
||||||
|
alter table t1 enable keys;
|
||||||
|
drop table t1;
|
||||||
create table t1 (s1 geometry not null,s2 char(100));
|
create table t1 (s1 geometry not null,s2 char(100));
|
||||||
create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
||||||
insert into t1 values (null,null);
|
insert into t1 values (null,null);
|
||||||
@ -697,16 +713,6 @@ alter table t1 add primary key pti(pt);
|
|||||||
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
|
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
|
||||||
alter table t1 add primary key pti(pt(20));
|
alter table t1 add primary key pti(pt(20));
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (g GEOMETRY);
|
|
||||||
select * from t1;
|
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
|
||||||
def test t1 t1 g g 255 4294967295 0 Y 144 0 63
|
|
||||||
g
|
|
||||||
select asbinary(g) from t1;
|
|
||||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
|
||||||
def asbinary(g) 252 16777216 0 Y 128 0 63
|
|
||||||
asbinary(g)
|
|
||||||
drop table t1;
|
|
||||||
create table t1 select GeomFromText('point(1 1)');
|
create table t1 select GeomFromText('point(1 1)');
|
||||||
desc t1;
|
desc t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
|
@ -3592,3 +3592,9 @@ FROM t1) t;
|
|||||||
COUNT(*)
|
COUNT(*)
|
||||||
3000
|
3000
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (s1 char(1));
|
||||||
|
INSERT INTO t1 VALUES ('a');
|
||||||
|
SELECT * FROM t1 WHERE _utf8'a' = ANY (SELECT s1 FROM t1);
|
||||||
|
s1
|
||||||
|
a
|
||||||
|
DROP TABLE t1;
|
||||||
|
1
mysql-test/std_data/bad_gis_data.dat
Normal file
1
mysql-test/std_data/bad_gis_data.dat
Normal file
@ -0,0 +1 @@
|
|||||||
|
foo
|
@ -375,6 +375,20 @@ drop table t1;
|
|||||||
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
|
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
|
||||||
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
||||||
|
|
||||||
|
--enable_metadata
|
||||||
|
create table t1 (g GEOMETRY);
|
||||||
|
select * from t1;
|
||||||
|
select asbinary(g) from t1;
|
||||||
|
--disable_metadata
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
|
||||||
|
alter table t1 disable keys;
|
||||||
|
--error 1263
|
||||||
|
load data infile '../std_data_ln/bad_gis_data.dat' into table t1;
|
||||||
|
alter table t1 enable keys;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -410,15 +424,7 @@ alter table t1 add primary key pti(pt);
|
|||||||
alter table t1 add primary key pti(pt(20));
|
alter table t1 add primary key pti(pt(20));
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--enable_metadata
|
|
||||||
create table t1 (g GEOMETRY);
|
|
||||||
select * from t1;
|
|
||||||
select asbinary(g) from t1;
|
|
||||||
--disable_metadata
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
|
|
||||||
create table t1 select GeomFromText('point(1 1)');
|
create table t1 select GeomFromText('point(1 1)');
|
||||||
desc t1;
|
desc t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
@ -2496,3 +2496,11 @@ SELECT SQL_NO_CACHE COUNT(*)
|
|||||||
FROM t1) t;
|
FROM t1) t;
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#20835 (literal string with =any values)
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (s1 char(1));
|
||||||
|
INSERT INTO t1 VALUES ('a');
|
||||||
|
SELECT * FROM t1 WHERE _utf8'a' = ANY (SELECT s1 FROM t1);
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1609,10 +1609,11 @@ void Field_null::sql_type(String &res) const
|
|||||||
This is an number stored as a pre-space (or pre-zero) string
|
This is an number stored as a pre-space (or pre-zero) string
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void
|
int
|
||||||
Field_decimal::reset(void)
|
Field_decimal::reset(void)
|
||||||
{
|
{
|
||||||
Field_decimal::store(STRING_WITH_LEN("0"),&my_charset_bin);
|
Field_decimal::store(STRING_WITH_LEN("0"),&my_charset_bin);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Field_decimal::overflow(bool negative)
|
void Field_decimal::overflow(bool negative)
|
||||||
@ -2257,9 +2258,10 @@ Field_new_decimal::Field_new_decimal(uint32 len_arg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Field_new_decimal::reset(void)
|
int Field_new_decimal::reset(void)
|
||||||
{
|
{
|
||||||
store_value(&decimal_zero);
|
store_value(&decimal_zero);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
115
sql/field.h
115
sql/field.h
@ -155,7 +155,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual uint32 data_length() { return pack_length(); }
|
virtual uint32 data_length() { return pack_length(); }
|
||||||
virtual uint32 sort_length() const { return pack_length(); }
|
virtual uint32 sort_length() const { return pack_length(); }
|
||||||
virtual void reset(void) { bzero(ptr,pack_length()); }
|
virtual int reset(void) { bzero(ptr,pack_length()); return 0; }
|
||||||
virtual void reset_fields() {}
|
virtual void reset_fields() {}
|
||||||
virtual void set_default()
|
virtual void set_default()
|
||||||
{
|
{
|
||||||
@ -521,10 +521,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_DECIMAL;}
|
enum_field_types type() const { return FIELD_TYPE_DECIMAL;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return zerofill ? HA_KEYTYPE_BINARY : HA_KEYTYPE_NUM; }
|
{ return zerofill ? HA_KEYTYPE_BINARY : HA_KEYTYPE_NUM; }
|
||||||
void reset(void);
|
int reset(void);
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -559,7 +559,7 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_NEWDECIMAL;}
|
enum_field_types type() const { return FIELD_TYPE_NEWDECIMAL;}
|
||||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; }
|
enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; }
|
||||||
Item_result result_type () const { return DECIMAL_RESULT; }
|
Item_result result_type () const { return DECIMAL_RESULT; }
|
||||||
void reset(void);
|
int reset(void);
|
||||||
bool store_value(const my_decimal *decimal_value);
|
bool store_value(const my_decimal *decimal_value);
|
||||||
void set_value_on_overflow(my_decimal *decimal_value, bool sign);
|
void set_value_on_overflow(my_decimal *decimal_value, bool sign);
|
||||||
int store(const char *to, uint length, CHARSET_INFO *charset);
|
int store(const char *to, uint length, CHARSET_INFO *charset);
|
||||||
@ -596,10 +596,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_TINY;}
|
enum_field_types type() const { return FIELD_TYPE_TINY;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
|
{ return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=0; }
|
int reset(void) { ptr[0]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -631,10 +631,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_SHORT;}
|
enum_field_types type() const { return FIELD_TYPE_SHORT;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return unsigned_flag ? HA_KEYTYPE_USHORT_INT : HA_KEYTYPE_SHORT_INT;}
|
{ return unsigned_flag ? HA_KEYTYPE_USHORT_INT : HA_KEYTYPE_SHORT_INT;}
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=0; }
|
int reset(void) { ptr[0]=ptr[1]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -661,10 +661,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_INT24;}
|
enum_field_types type() const { return FIELD_TYPE_INT24;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return unsigned_flag ? HA_KEYTYPE_UINT24 : HA_KEYTYPE_INT24; }
|
{ return unsigned_flag ? HA_KEYTYPE_UINT24 : HA_KEYTYPE_INT24; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -696,10 +696,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_LONG;}
|
enum_field_types type() const { return FIELD_TYPE_LONG;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return unsigned_flag ? HA_KEYTYPE_ULONG_INT : HA_KEYTYPE_LONG_INT; }
|
{ return unsigned_flag ? HA_KEYTYPE_ULONG_INT : HA_KEYTYPE_LONG_INT; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
bool send_binary(Protocol *protocol);
|
bool send_binary(Protocol *protocol);
|
||||||
@ -733,10 +733,14 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_LONGLONG;}
|
enum_field_types type() const { return FIELD_TYPE_LONGLONG;}
|
||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return unsigned_flag ? HA_KEYTYPE_ULONGLONG : HA_KEYTYPE_LONGLONG; }
|
{ return unsigned_flag ? HA_KEYTYPE_ULONGLONG : HA_KEYTYPE_LONGLONG; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
|
int reset(void)
|
||||||
|
{
|
||||||
|
ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -768,10 +772,10 @@ public:
|
|||||||
{}
|
{}
|
||||||
enum_field_types type() const { return FIELD_TYPE_FLOAT;}
|
enum_field_types type() const { return FIELD_TYPE_FLOAT;}
|
||||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_FLOAT; }
|
enum ha_base_keytype key_type() const { return HA_KEYTYPE_FLOAT; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { bzero(ptr,sizeof(float)); }
|
int reset(void) { bzero(ptr,sizeof(float)); return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -804,7 +808,7 @@ public:
|
|||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { bzero(ptr,sizeof(double)); }
|
int reset(void) { bzero(ptr,sizeof(double)); return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -831,10 +835,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_NULL;}
|
enum_field_types type() const { return FIELD_TYPE_NULL;}
|
||||||
int store(const char *to, uint length, CHARSET_INFO *cs)
|
int store(const char *to, uint length, CHARSET_INFO *cs)
|
||||||
{ null[0]=1; return 0; }
|
{ null[0]=1; return 0; }
|
||||||
int store(double nr) { null[0]=1; return 0; }
|
int store(double nr) { null[0]=1; return 0; }
|
||||||
int store(longlong nr, bool unsigned_val) { null[0]=1; return 0; }
|
int store(longlong nr, bool unsigned_val) { null[0]=1; return 0; }
|
||||||
int store_decimal(const my_decimal *d) { null[0]=1; return 0; }
|
int store_decimal(const my_decimal *d) { null[0]=1; return 0; }
|
||||||
void reset(void) {}
|
int reset(void) { return 0; }
|
||||||
double val_real(void) { return 0.0;}
|
double val_real(void) { return 0.0;}
|
||||||
longlong val_int(void) { return 0;}
|
longlong val_int(void) { return 0;}
|
||||||
my_decimal *val_decimal(my_decimal *) { return 0; }
|
my_decimal *val_decimal(my_decimal *) { return 0; }
|
||||||
@ -863,7 +867,7 @@ public:
|
|||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -938,10 +942,10 @@ public:
|
|||||||
enum_field_types type() const { return FIELD_TYPE_DATE;}
|
enum_field_types type() const { return FIELD_TYPE_DATE;}
|
||||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
|
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
|
||||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -971,7 +975,7 @@ public:
|
|||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
int store_time(TIME *ltime, timestamp_type type);
|
int store_time(TIME *ltime, timestamp_type type);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -1003,10 +1007,10 @@ public:
|
|||||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_INT24; }
|
enum ha_base_keytype key_type() const { return HA_KEYTYPE_INT24; }
|
||||||
enum Item_result cmp_type () const { return INT_RESULT; }
|
enum Item_result cmp_type () const { return INT_RESULT; }
|
||||||
int store_time(TIME *ltime, timestamp_type type);
|
int store_time(TIME *ltime, timestamp_type type);
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; }
|
int reset(void) { ptr[0]=ptr[1]=ptr[2]=0; return 0; }
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -1044,7 +1048,11 @@ public:
|
|||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
int store_time(TIME *ltime, timestamp_type type);
|
int store_time(TIME *ltime, timestamp_type type);
|
||||||
void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; }
|
int reset(void)
|
||||||
|
{
|
||||||
|
ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
String *val_str(String*,String *);
|
String *val_str(String*,String *);
|
||||||
@ -1087,9 +1095,13 @@ public:
|
|||||||
enum ha_base_keytype key_type() const
|
enum ha_base_keytype key_type() const
|
||||||
{ return binary() ? HA_KEYTYPE_BINARY : HA_KEYTYPE_TEXT; }
|
{ return binary() ? HA_KEYTYPE_BINARY : HA_KEYTYPE_TEXT; }
|
||||||
bool zero_pack() const { return 0; }
|
bool zero_pack() const { return 0; }
|
||||||
void reset(void) { charset()->cset->fill(charset(),ptr,field_length,' '); }
|
int reset(void)
|
||||||
int store(const char *to,uint length,CHARSET_INFO *charset);
|
{
|
||||||
int store(longlong nr, bool unsigned_val);
|
charset()->cset->fill(charset(),ptr,field_length,' ');
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int store(const char *to,uint length,CHARSET_INFO *charset);
|
||||||
|
int store(longlong nr, bool unsigned_val);
|
||||||
int store(double nr) { return Field_str::store(nr); } /* QQ: To be deleted */
|
int store(double nr) { return Field_str::store(nr); } /* QQ: To be deleted */
|
||||||
double val_real(void);
|
double val_real(void);
|
||||||
longlong val_int(void);
|
longlong val_int(void);
|
||||||
@ -1141,7 +1153,7 @@ public:
|
|||||||
enum_field_types type() const { return MYSQL_TYPE_VARCHAR; }
|
enum_field_types type() const { return MYSQL_TYPE_VARCHAR; }
|
||||||
enum ha_base_keytype key_type() const;
|
enum ha_base_keytype key_type() const;
|
||||||
bool zero_pack() const { return 0; }
|
bool zero_pack() const { return 0; }
|
||||||
void reset(void) { bzero(ptr,field_length+length_bytes); }
|
int reset(void) { bzero(ptr,field_length+length_bytes); return 0; }
|
||||||
uint32 pack_length() const { return (uint32) field_length+length_bytes; }
|
uint32 pack_length() const { return (uint32) field_length+length_bytes; }
|
||||||
uint32 key_length() const { return (uint32) field_length; }
|
uint32 key_length() const { return (uint32) field_length; }
|
||||||
uint32 sort_length() const
|
uint32 sort_length() const
|
||||||
@ -1249,7 +1261,7 @@ public:
|
|||||||
{
|
{
|
||||||
return (uint32) (((ulonglong) 1 << (packlength*8)) -1);
|
return (uint32) (((ulonglong) 1 << (packlength*8)) -1);
|
||||||
}
|
}
|
||||||
void reset(void) { bzero(ptr, packlength+sizeof(char*)); }
|
int reset(void) { bzero(ptr, packlength+sizeof(char*)); return 0; }
|
||||||
void reset_fields() { bzero((char*) &value,sizeof(value)); }
|
void reset_fields() { bzero((char*) &value,sizeof(value)); }
|
||||||
void store_length(uint32 number);
|
void store_length(uint32 number);
|
||||||
inline uint32 get_length(uint row_offset=0)
|
inline uint32 get_length(uint row_offset=0)
|
||||||
@ -1333,6 +1345,7 @@ public:
|
|||||||
int store_decimal(const my_decimal *);
|
int store_decimal(const my_decimal *);
|
||||||
void get_key_image(char *buff,uint length,imagetype type);
|
void get_key_image(char *buff,uint length,imagetype type);
|
||||||
uint size_of() const { return sizeof(*this); }
|
uint size_of() const { return sizeof(*this); }
|
||||||
|
int reset(void) { return !maybe_null(); }
|
||||||
};
|
};
|
||||||
#endif /*HAVE_SPATIAL*/
|
#endif /*HAVE_SPATIAL*/
|
||||||
|
|
||||||
@ -1434,7 +1447,7 @@ public:
|
|||||||
uint32 max_length() { return field_length; }
|
uint32 max_length() { return field_length; }
|
||||||
uint size_of() const { return sizeof(*this); }
|
uint size_of() const { return sizeof(*this); }
|
||||||
Item_result result_type () const { return INT_RESULT; }
|
Item_result result_type () const { return INT_RESULT; }
|
||||||
void reset(void) { bzero(ptr, bytes_in_rec); }
|
int reset(void) { bzero(ptr, bytes_in_rec); return 0; }
|
||||||
int store(const char *to, uint length, CHARSET_INFO *charset);
|
int store(const char *to, uint length, CHARSET_INFO *charset);
|
||||||
int store(double nr);
|
int store(double nr);
|
||||||
int store(longlong nr, bool unsigned_val);
|
int store(longlong nr, bool unsigned_val);
|
||||||
|
@ -797,7 +797,8 @@ bool Item_in_optimizer::fix_left(THD *thd, Item **ref)
|
|||||||
}
|
}
|
||||||
not_null_tables_cache= args[0]->not_null_tables();
|
not_null_tables_cache= args[0]->not_null_tables();
|
||||||
with_sum_func= args[0]->with_sum_func;
|
with_sum_func= args[0]->with_sum_func;
|
||||||
const_item_cache= args[0]->const_item();
|
if ((const_item_cache= args[0]->const_item()))
|
||||||
|
cache->store(args[0]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,7 +710,12 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
|||||||
if (item->type() == Item::FIELD_ITEM)
|
if (item->type() == Item::FIELD_ITEM)
|
||||||
{
|
{
|
||||||
Field *field= ((Item_field *)item)->field;
|
Field *field= ((Item_field *)item)->field;
|
||||||
field->reset();
|
if (field->reset())
|
||||||
|
{
|
||||||
|
my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0), field->field_name,
|
||||||
|
thd->row_count);
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
field->set_null();
|
field->set_null();
|
||||||
if (field == table->next_number_field)
|
if (field == table->next_number_field)
|
||||||
table->auto_increment_field_not_null= TRUE;
|
table->auto_increment_field_not_null= TRUE;
|
||||||
@ -759,6 +764,13 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
|||||||
{
|
{
|
||||||
if (item->type() == Item::FIELD_ITEM)
|
if (item->type() == Item::FIELD_ITEM)
|
||||||
{
|
{
|
||||||
|
Field *field= ((Item_field *)item)->field;
|
||||||
|
if (field->reset())
|
||||||
|
{
|
||||||
|
my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0),field->field_name,
|
||||||
|
thd->row_count);
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
QQ: We probably should not throw warning for each field.
|
QQ: We probably should not throw warning for each field.
|
||||||
But how about intention to always have the same number
|
But how about intention to always have the same number
|
||||||
|
@ -458,7 +458,7 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name,
|
|||||||
Since we now possibly no real_path, we will use it instead if it exists.
|
Since we now possibly no real_path, we will use it instead if it exists.
|
||||||
*/
|
*/
|
||||||
if (*share->real_path)
|
if (*share->real_path)
|
||||||
fn_format(share->data_file_name, share->real_path, "", ARZ,
|
fn_format(share->data_file_name, table_name, share->real_path, ARZ,
|
||||||
MY_REPLACE_EXT|MY_UNPACK_FILENAME);
|
MY_REPLACE_EXT|MY_UNPACK_FILENAME);
|
||||||
VOID(my_hash_insert(&archive_open_tables, (byte*) share));
|
VOID(my_hash_insert(&archive_open_tables, (byte*) share));
|
||||||
thr_lock_init(&share->lock);
|
thr_lock_init(&share->lock);
|
||||||
@ -686,9 +686,13 @@ int ha_archive::create(const char *name, TABLE *table_arg,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
We reuse name_buff since it is available.
|
||||||
|
*/
|
||||||
write_meta_file(create_file, 0, stats.auto_increment_value, 0,
|
write_meta_file(create_file, 0, stats.auto_increment_value, 0,
|
||||||
(char *)create_info->data_file_name,
|
(create_info->data_file_name &&
|
||||||
FALSE);
|
dirname_part(name_buff, (char*)create_info->data_file_name))
|
||||||
|
? name_buff : 0, FALSE);
|
||||||
my_close(create_file,MYF(0));
|
my_close(create_file,MYF(0));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user