Commit 4f4f20d4 authored by unknown's avatar unknown

MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)

remove explicit $<ulong_num>$ from sql_yacc.yy


mysql-test/r/fulltext.result:
  MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
mysql-test/t/fulltext.test:
  MATCH(a,b) AGAINST (... IN NATURAL LANGUAGE MODE)
parent 3649a68f
...@@ -41,6 +41,15 @@ a b ...@@ -41,6 +41,15 @@ a b
Full-text indexes are called collections Full-text indexes are called collections
Only MyISAM tables support collections Only MyISAM tables support collections
MySQL has now support for full-text search MySQL has now support for full-text search
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN NATURAL LANGUAGE MODE);
a b
Full-text indexes are called collections
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);
a b
Full-text indexes are called collections
Only MyISAM tables support collections
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN BOOLEAN MODE WITH QUERY EXPANSION);
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH QUERY EXPANSION)' at line 1
explain select * from t1 where MATCH(a,b) AGAINST ("collections"); explain select * from t1 where MATCH(a,b) AGAINST ("collections");
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 fulltext a a 0 1 Using where 1 SIMPLE t1 fulltext a a 0 1 Using where
......
...@@ -28,6 +28,12 @@ select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION); ...@@ -28,6 +28,12 @@ select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION); select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION); select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
# IN NATURAL LANGUAGE MODE
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN NATURAL LANGUAGE MODE);
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);
--error 1064
select * from t1 where MATCH(a,b) AGAINST ("indexes" IN BOOLEAN MODE WITH QUERY EXPANSION);
# add_ft_keys() tests # add_ft_keys() tests
explain select * from t1 where MATCH(a,b) AGAINST ("collections"); explain select * from t1 where MATCH(a,b) AGAINST ("collections");
......
...@@ -746,6 +746,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -746,6 +746,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
opt_ignore_leaves fulltext_options spatial_type union_option opt_ignore_leaves fulltext_options spatial_type union_option
start_transaction_opts opt_chain opt_release start_transaction_opts opt_chain opt_release
union_opt select_derived_init option_type2 union_opt select_derived_init option_type2
opt_natural_language_mode opt_query_expansion
opt_ev_status opt_ev_on_completion ev_on_completion opt_ev_comment
ev_alter_on_schedule_completion opt_ev_rename_to opt_ev_sql_stmt
%type <ulong_num> %type <ulong_num>
ulong_num merge_insert_types ulong_num merge_insert_types
...@@ -1451,13 +1454,13 @@ ev_schedule_time: EVERY_SYM expr interval ...@@ -1451,13 +1454,13 @@ ev_schedule_time: EVERY_SYM expr interval
} }
; ;
opt_ev_status: /* empty */ {$<ulong_num>$= 0;} opt_ev_status: /* empty */ { $$= 0; }
| ENABLE_SYM | ENABLE_SYM
{ {
LEX *lex=Lex; LEX *lex=Lex;
if (!lex->et_compile_phase) if (!lex->et_compile_phase)
lex->et->status= MYSQL_EVENT_ENABLED; lex->et->status= MYSQL_EVENT_ENABLED;
$<ulong_num>$= 1; $$= 1;
} }
| DISABLE_SYM | DISABLE_SYM
{ {
...@@ -1465,7 +1468,7 @@ opt_ev_status: /* empty */ {$<ulong_num>$= 0;} ...@@ -1465,7 +1468,7 @@ opt_ev_status: /* empty */ {$<ulong_num>$= 0;}
if (!lex->et_compile_phase) if (!lex->et_compile_phase)
lex->et->status= MYSQL_EVENT_DISABLED; lex->et->status= MYSQL_EVENT_DISABLED;
$<ulong_num>$= 1; $$= 1;
} }
; ;
...@@ -1516,7 +1519,7 @@ ev_ends: /* empty */ ...@@ -1516,7 +1519,7 @@ ev_ends: /* empty */
} }
; ;
opt_ev_on_completion: /* empty */ {$<ulong_num>$= 0;} opt_ev_on_completion: /* empty */ { $$= 0; }
| ev_on_completion | ev_on_completion
; ;
...@@ -1526,18 +1529,18 @@ ev_on_completion: ...@@ -1526,18 +1529,18 @@ ev_on_completion:
LEX *lex=Lex; LEX *lex=Lex;
if (!lex->et_compile_phase) if (!lex->et_compile_phase)
lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_PRESERVE; lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_PRESERVE;
$<ulong_num>$= 1; $$= 1;
} }
| ON COMPLETION_SYM NOT_SYM PRESERVE_SYM | ON COMPLETION_SYM NOT_SYM PRESERVE_SYM
{ {
LEX *lex=Lex; LEX *lex=Lex;
if (!lex->et_compile_phase) if (!lex->et_compile_phase)
lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_DROP; lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_DROP;
$<ulong_num>$= 1; $$= 1;
} }
; ;
opt_ev_comment: /* empty */ {$<ulong_num>$= 0;} opt_ev_comment: /* empty */ { $$= 0; }
| COMMENT_SYM TEXT_STRING_sys | COMMENT_SYM TEXT_STRING_sys
{ {
LEX *lex= Lex; LEX *lex= Lex;
...@@ -1546,7 +1549,7 @@ opt_ev_comment: /* empty */ {$<ulong_num>$= 0;} ...@@ -1546,7 +1549,7 @@ opt_ev_comment: /* empty */ {$<ulong_num>$= 0;}
lex->comment= $2; lex->comment= $2;
lex->et->init_comment(YYTHD, &$2); lex->et->init_comment(YYTHD, &$2);
} }
$<ulong_num>$= 1; $$= 1;
} }
; ;
...@@ -1607,7 +1610,7 @@ ev_sql_stmt_inner: ...@@ -1607,7 +1610,7 @@ ev_sql_stmt_inner:
| sp_proc_stmt_if | sp_proc_stmt_if
| sp_proc_stmt_case_simple | sp_proc_stmt_case_simple
| sp_proc_stmt_case | sp_proc_stmt_case
| sp_labeled_control {} | sp_labeled_control
| sp_proc_stmt_unlabeled | sp_proc_stmt_unlabeled
| sp_proc_stmt_leave | sp_proc_stmt_leave
| sp_proc_stmt_iterate | sp_proc_stmt_iterate
...@@ -2286,7 +2289,6 @@ sp_proc_stmt: ...@@ -2286,7 +2289,6 @@ sp_proc_stmt:
| sp_proc_stmt_case_simple | sp_proc_stmt_case_simple
| sp_proc_stmt_case | sp_proc_stmt_case
| sp_labeled_control | sp_labeled_control
{}
| sp_proc_stmt_unlabeled | sp_proc_stmt_unlabeled
| sp_proc_stmt_leave | sp_proc_stmt_leave
| sp_proc_stmt_iterate | sp_proc_stmt_iterate
...@@ -4853,8 +4855,7 @@ alter: ...@@ -4853,8 +4855,7 @@ alter:
sql_command is set here because some rules in ev_sql_stmt sql_command is set here because some rules in ev_sql_stmt
can overwrite it can overwrite it
*/ */
if (!($<ulong_num>5 || $<ulong_num>6 || $<ulong_num>7 || if (!($5 || $6 || $7 || $8 || $9))
$<ulong_num>8 || $<ulong_num>9))
{ {
yyerror(ER(ER_SYNTAX_ERROR)); yyerror(ER(ER_SYNTAX_ERROR));
YYABORT; YYABORT;
...@@ -4883,27 +4884,24 @@ alter: ...@@ -4883,27 +4884,24 @@ alter:
} }
; ;
ev_alter_on_schedule_completion: /* empty */ { $<ulong_num>$= 0;} ev_alter_on_schedule_completion: /* empty */ { $$= 0;}
| ON SCHEDULE_SYM ev_schedule_time { $<ulong_num>$= 1; } | ON SCHEDULE_SYM ev_schedule_time { $$= 1; }
| ev_on_completion { $<ulong_num>$= 1; } | ev_on_completion { $$= 1; }
| ON SCHEDULE_SYM ev_schedule_time ev_on_completion { $<ulong_num>$= 1; } | ON SCHEDULE_SYM ev_schedule_time ev_on_completion { $$= 1; }
; ;
opt_ev_rename_to: /* empty */ { $<ulong_num>$= 0;} opt_ev_rename_to: /* empty */ { $$= 0;}
| RENAME TO_SYM sp_name | RENAME TO_SYM sp_name
{ {
LEX *lex=Lex; LEX *lex=Lex;
lex->spname= $3; //use lex's spname to hold the new name lex->spname= $3; //use lex's spname to hold the new name
//the original name is in the event_timed object //the original name is in the event_timed object
$<ulong_num>$= 1; $$= 1;
} }
; ;
opt_ev_sql_stmt: /* empty*/ { $<ulong_num>$= 0;} opt_ev_sql_stmt: /* empty*/ { $$= 0;}
| DO_SYM ev_sql_stmt | DO_SYM ev_sql_stmt { $$= 1; }
{
$<ulong_num>$= 1;
}
; ;
...@@ -6625,9 +6623,20 @@ geometry_function: ...@@ -6625,9 +6623,20 @@ geometry_function:
; ;
fulltext_options: fulltext_options:
opt_natural_language_mode opt_query_expansion
{ $$= $1 | $2; }
| IN_SYM BOOLEAN_SYM MODE_SYM
{ $$= FT_BOOL; }
;
opt_natural_language_mode:
/* nothing */ { $$= FT_NL; } /* nothing */ { $$= FT_NL; }
| WITH QUERY_SYM EXPANSION_SYM { $$= FT_NL | FT_EXPAND; } | IN_SYM NATURAL LANGUAGE_SYM MODE_SYM { $$= FT_NL; }
| IN_SYM BOOLEAN_SYM MODE_SYM { $$= FT_BOOL; } ;
opt_query_expansion:
/* nothing */ { $$= 0; }
| WITH QUERY_SYM EXPANSION_SYM { $$= FT_EXPAND; }
; ;
udf_expr_list: udf_expr_list:
......
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