mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixed bugs with create table from ITEM_FUNC and make it over
once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. Plus a fix for security flaw in database hash Docs/manual.texi: Fixed bugs with create table from ITEM_FUNC and make it over once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. mysql-test/r/create.result: Fixed bugs with create table from ITEM_FUNC and make it over once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. mysql-test/t/create.test: Fixed bugs with create table from ITEM_FUNC and make it over once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. sql/item_func.h: Fixed bugs with create table from ITEM_FUNC and make it over once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. sql/item_timefunc.h: Fixed bugs with create table from ITEM_FUNC and make it over once for all derived functions. I also reverted my patch for MONTH() and added a test case. My MONTH() patch was too specific. This is a general fix. sql/sql_acl.cc: Fixed a security flaw in database hash
This commit is contained in:
@ -50132,6 +50132,10 @@ each individual 4.0.x release.
|
|||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
@item
|
||||||
|
Fixed security bug in database hash
|
||||||
|
@item
|
||||||
|
Fixed create table from any ITEM_FUNC and reverted a patch for month()
|
||||||
|
@item
|
||||||
Fixed bug in multi-table update when updating a table confused do_select
|
Fixed bug in multi-table update when updating a table confused do_select
|
||||||
in reading records from a cache
|
in reading records from a cache
|
||||||
@item
|
@item
|
||||||
|
@ -134,3 +134,5 @@ t1 CREATE TABLE `t1` (
|
|||||||
KEY `b_31` (`b`)
|
KEY `b_31` (`b`)
|
||||||
) TYPE=MyISAM
|
) TYPE=MyISAM
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 select if(1,'1','0'), month("2002-08-02");
|
||||||
|
drop table t1;
|
||||||
|
@ -89,3 +89,5 @@ drop table t1,t2;
|
|||||||
create table t1 (a int not null, b int, primary key(a), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b));
|
create table t1 (a int not null, b int, primary key(a), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b));
|
||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 select if(1,'1','0'), month("2002-08-02");
|
||||||
|
drop table t1;
|
||||||
|
@ -122,6 +122,11 @@ public:
|
|||||||
bool is_null() { (void) val_int(); return null_value; }
|
bool is_null() { (void) val_int(); return null_value; }
|
||||||
friend class udf_handler;
|
friend class udf_handler;
|
||||||
unsigned int size_of() { return sizeof(*this);}
|
unsigned int size_of() { return sizeof(*this);}
|
||||||
|
Field *tmp_table_field(TABLE *t_arg)
|
||||||
|
{
|
||||||
|
if (!t_arg) return result_field;
|
||||||
|
return (Field *) new Field_string(max_length,maybe_null, name,t_arg, binary);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,11 +71,6 @@ public:
|
|||||||
const char *func_name() const { return "month"; }
|
const char *func_name() const { return "month"; }
|
||||||
enum Item_result result_type () const { return INT_RESULT; }
|
enum Item_result result_type () const { return INT_RESULT; }
|
||||||
void fix_length_and_dec() { decimals=0; max_length=2; maybe_null=1; }
|
void fix_length_and_dec() { decimals=0; max_length=2; maybe_null=1; }
|
||||||
Field *tmp_table_field(TABLE *t_arg)
|
|
||||||
{
|
|
||||||
if (!t_arg) return result_field;
|
|
||||||
return (Field *) new Field_string(max_length,maybe_null, name,t_arg, binary);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_monthname :public Item_func_month
|
class Item_func_monthname :public Item_func_month
|
||||||
|
@ -321,6 +321,8 @@ int acl_init(bool dont_read_acl_tables)
|
|||||||
ACL_DB db;
|
ACL_DB db;
|
||||||
update_hostname(&db.host,get_field(&mem, table,0));
|
update_hostname(&db.host,get_field(&mem, table,0));
|
||||||
db.db=get_field(&mem, table,1);
|
db.db=get_field(&mem, table,1);
|
||||||
|
if (!db.db || !db.db[0])
|
||||||
|
continue;
|
||||||
db.user=get_field(&mem, table,2);
|
db.user=get_field(&mem, table,2);
|
||||||
db.access=get_access(table,3);
|
db.access=get_access(table,3);
|
||||||
db.access=fix_rights_for_db(db.access);
|
db.access=fix_rights_for_db(db.access);
|
||||||
|
Reference in New Issue
Block a user