Crashes with stored procedure return non-string values
  Also fixes Bug#2773


mysql-test/r/information_schema.result:
  Bug#3788
    Fix results for bugfix
mysql-test/r/sp.result:
  Bug#3788
    Tests for Bug
    Fix results for bugfix
mysql-test/t/sp.test:
  Bug#3788
    New tests for bug
sql/item.cc:
  Fix unrelated crash in view test with --ps-protocol.
sql/item_func.cc:
  Bug#3788
    Alter how SP function result types are handled.
sql/item_func.h:
  Bug#3788
    Alter how SP function result types are handled.
sql/mysql_priv.h:
  Bug#3788
    Prototypes for new global functions
sql/sp.cc:
  Bug#3788
    Alter how function return type is reported
sql/sp_head.cc:
  Bug#3788
    Change how function return types are stored for SPs
sql/sp_head.h:
  Bug#3788
    Change how function return types are stored for SPs
sql/sql_parse.cc:
  Bug#3788
    Split out field construction into its own function
sql/sql_table.cc:
  Bug#3788
    Split out field preparation code into its own function
sql/sql_yacc.yy:
  Bug#3788
    Change how function return types are stored for SPs
sql/unireg.cc:
  Bug#3788
    Add assertion check
This commit is contained in:
unknown 2005-03-04 21:14:35 +00:00
commit 1220069c53
14 changed files with 469 additions and 217 deletions

View file

@ -1250,8 +1250,13 @@ class Item_func_sp :public Item_func
private:
sp_name *m_name;
mutable sp_head *m_sp;
mutable struct {
TABLE table;
TABLE_SHARE share;
} dummy_table;
int execute(Item **itp);
Field *sp_result_field(void) const;
public:
@ -1266,6 +1271,10 @@ public:
enum enum_field_types field_type() const;
Field *tmp_table_field(TABLE *t_arg);
void make_field(Send_field *tmp_field);
Item_result result_type() const;
longlong val_int()