WL#4745: Remove PROCEDURE ANALYZE
Remove the PROCEDURE ANALYZE clause.
We propose to add a deprecation warnings in 5.7 maintenance releases, and remove in 8.0. This should leave enough time for users to change their application since it is not a commonly used syntax.
Scope: refactoring initiative.
Reasoning: it was discussed many times that the PROCEDURE ANALYZE syntax is an anachronism and almost unused non-standard syntax extension.
Note: it would be nice to reimplement PROCEDURE ANALYZE functionality with a stored procedure as a replacement for possible PROCEDURE ANALYZE's users (if any).
User Documentation
5.7 (deprecation)
- NFR-1: No change in the data output: valid PROCEDURE ANALYSE clauses work as before.
- FR-1: Every valid occurrence of the PROCEDURE ANALYSE clause rises a deprecation warning.
8.0 (removal)
- NFR-2: ANALYSE is not a non-reserved keyword any more. (Since it was a non-reserved keyword before, there is no visible change in behavior.)
- FR-2: From now query expressions fail with a syntax error on PROCEDURE ANALYSE clauses instead of printing table statistics.
5.7
- Every reference to the PROCEDURE ANALYSE[(...)] clause (including EXPLAIN) executes as usual but output an extra warning:
'PROCEDURE ANALYSE' is deprecated and will be removed in a future release.
8.0
- PROCEDURE ANALYZE is not a valid clause (syntax error) in the query specification any more.
- ANALYSE is not a keyword any more. (Note: the ANALYZE TABLE statements uses a different keyword: ANALYZE.)
Contents |
5.7 (deprecation)
The parser outputs a deprecation warning with the help of push_deprecated_warn_no_replacement() function on syntactically-valid PROCEDURE ANALYSE clauses, then it executes as before.
8.0 (removal)
Removed files
- Tests: func_analyse.
- Sources: sql/sql_analyse.{h,cc}.
Note: sql_analyse.cc had the append_escaped() function definition which was used as an API function is other parts of the server code and storage engines. Since append_espaced() accepts String objects as an input-output parameters, this is logical to convert the function into a part of the String class and sql_string.{h,cc} files.
Changes in the parser
- Removal of the ANALYSE_SYM token: replaced with the OBSOLETE_TOKEN_271 dummy to save token numbers.
- query_expression: removal of the PROCEDURE ANALYSE clause.
- Removal of grammar rules:
- opt_procedure_analyse_clause,
- opt_procedure_analyse_params.
Changes in the executor
Dead code removal after changes in the parser.