diff options
author | unknown <malff/marcsql@weblab.(none)> | 2007-08-22 15:38:32 -0600 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2007-08-22 15:38:32 -0600 |
commit | 5dc3e88947d55e23dd0419938d4cb671e400a6f3 (patch) | |
tree | 4d47b4acc13f3c844ff3f11e4a196a060f1390ef /sql/sql_lex.h | |
parent | 49fea65f2bab0853f4c2217777fe2563f771a044 (diff) | |
download | mariadb-git-5dc3e88947d55e23dd0419938d4cb671e400a6f3.tar.gz |
Bug#30333 (Performance, expressions lists in the parser)
Before this patch, the parser would execute:
- Select->expr_list.push_front()
- Select->expr_list.pop()
when parsing expressions lists, in the following rules:
- udf_expr_list
- expr_list
- ident_list
This is unnecessary, and introduces overhead due to the memory allocations
performed with Select->expr_list
With this patch, this code has been removed.
The list being parsed is maintained in the parser stack instead.
Also, 'udf_expr_list' has been renamed 'opt_udf_expr_list', since this
production can be empty.
sql/sql_lex.cc:
Removed unused attribute expr_list
sql/sql_lex.h:
Removed unused attribute expr_list
sql/sql_yacc.yy:
Improved performances when parsing expression lists
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r-- | sql/sql_lex.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 2e72a87c35d..f80ddfb8339 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -596,7 +596,6 @@ public: const char *type; /* type of select for EXPLAIN */ SQL_LIST order_list; /* ORDER clause */ - List<List_item> expr_list; SQL_LIST *gorder_list; Item *select_limit, *offset_limit; /* LIMIT clause parameters */ // Arrays of pointers to top elements of all_fields list |