Commit 49aebb98 authored by unknown's avatar unknown

cleanup for Item_func_regex (Bug #4199)


mysql-test/r/func_regexp.result:
  test of cleaning regex in PS
mysql-test/t/func_regexp.test:
  test of cleaning regex in PS
sql/item_cmpfunc.cc:
  cleanup for Item_func_regex
sql/item_cmpfunc.h:
  cleanup for Item_func_regex
parent 94f36589
......@@ -81,3 +81,20 @@ _latin1'a' regexp _latin1'A' collate latin1_general_ci
select _latin1'a' regexp _latin1'A' collate latin1_bin;
_latin1'a' regexp _latin1'A' collate latin1_bin
0
create table t1 (a varchar(40));
insert into t1 values ('C1'),('C2'),('R1'),('C3'),('R2'),('R3');
prepare stmt1 from 'select a from t1 where a rlike ? order by a';
set @a="^C.*";
execute stmt1 using @a;
a
C1
C2
C3
set @a="^R.*";
execute stmt1 using @a;
a
R1
R2
R3
deallocate prepare stmt1;
drop table t1;
......@@ -60,3 +60,16 @@ select _koi8r 0xF7 regexp _koi8r '[[:alpha:]]';
select _latin1'a' regexp _latin1'A' collate latin1_general_ci;
select _latin1'a' regexp _latin1'A' collate latin1_bin;
#
# regexp cleanup()
#
create table t1 (a varchar(40));
insert into t1 values ('C1'),('C2'),('R1'),('C3'),('R2'),('R3');
prepare stmt1 from 'select a from t1 where a rlike ? order by a';
set @a="^C.*";
execute stmt1 using @a;
set @a="^R.*";
execute stmt1 using @a;
deallocate prepare stmt1;
drop table t1;
......@@ -2298,15 +2298,19 @@ longlong Item_func_regex::val_int()
}
Item_func_regex::~Item_func_regex()
void Item_func_regex::cleanup()
{
DBUG_ENTER("Item_func_regex::cleanup");
Item_bool_func::cleanup();
if (regex_compiled)
{
regfree(&preg);
regex_compiled=0;
}
DBUG_VOID_RETURN;
}
#endif /* USE_REGEX */
......
......@@ -869,7 +869,7 @@ class Item_func_regex :public Item_bool_func
public:
Item_func_regex(Item *a,Item *b) :Item_bool_func(a,b),
regex_compiled(0),regex_is_const(0) {}
~Item_func_regex();
void cleanup();
longlong val_int();
bool fix_fields(THD *thd, struct st_table_list *tlist, Item **ref);
const char *func_name() const { return "regexp"; }
......
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