diff options
author | unknown <timour@askmonty.org> | 2012-03-11 14:39:20 +0200 |
---|---|---|
committer | unknown <timour@askmonty.org> | 2012-03-11 14:39:20 +0200 |
commit | 8aebd44e0ea9c4ae6f573f1ece27b276452122b8 (patch) | |
tree | e2907ea46e4680c18b85dace99b5ea00d5735043 /sql/sql_lex.h | |
parent | f92cfdb8a9ff7f8287239c39ce4735789a23e3df (diff) | |
download | mariadb-git-8aebd44e0ea9c4ae6f573f1ece27b276452122b8.tar.gz |
Implementation of MDEV-28 LIMIT ROWS EXAMINED
https://mariadb.atlassian.net/browse/MDEV-28
This task implements a new clause LIMIT ROWS EXAMINED <num>
as an extention to the ANSI LIMIT clause. This extension
allows to limit the number of rows and/or keys a query
would access (read and/or write) during query execution.
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r-- | sql/sql_lex.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h index cefa092a874..87b213b0db5 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -1947,6 +1947,22 @@ typedef struct st_lex : public Query_tables_list into the select_lex. */ table_map used_tables; + /** + Maximum number of rows and/or keys examined by the query, both read, + changed or written. This is the argument of LIMIT ROWS EXAMINED. + The limit is represented by two variables - the Item is needed because + in case of parameters we have to delay its evaluation until execution. + Once evaluated, its value is stored in examined_rows_limit_cnt. + */ + Item *limit_rows_examined; + ulonglong limit_rows_examined_cnt; + inline void set_limit_rows_examined() + { + if (limit_rows_examined) + limit_rows_examined_cnt= limit_rows_examined->val_uint(); + else + limit_rows_examined_cnt= ULONGLONG_MAX; + } st_lex(); |