pars0opt.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /******************************************************
  2. Simple SQL optimizer
  3. (c) 1997 Innobase Oy
  4. Created 12/21/1997 Heikki Tuuri
  5. *******************************************************/
  6. #ifndef pars0opt_h
  7. #define pars0opt_h
  8. #include "univ.i"
  9. #include "que0types.h"
  10. #include "usr0types.h"
  11. #include "pars0sym.h"
  12. #include "dict0types.h"
  13. #include "row0sel.h"
  14. /***********************************************************************
  15. Optimizes a select. Decides which indexes to tables to use. The tables
  16. are accessed in the order that they were written to the FROM part in the
  17. select statement. */
  18. void
  19. opt_search_plan(
  20. /*============*/
  21. sel_node_t* sel_node); /* in: parsed select node */
  22. /***********************************************************************
  23. Looks for occurrences of the columns of the table in the query subgraph and
  24. adds them to the list of columns if an occurrence of the same column does not
  25. already exist in the list. If the column is already in the list, puts a value
  26. indirection to point to the occurrence in the column list, except if the
  27. column occurrence we are looking at is in the column list, in which case
  28. nothing is done. */
  29. void
  30. opt_find_all_cols(
  31. /*==============*/
  32. ibool copy_val, /* in: if TRUE, new found columns are
  33. added as columns to copy */
  34. dict_index_t* index, /* in: index to use */
  35. sym_node_list_t* col_list, /* in: base node of a list where
  36. to add new found columns */
  37. plan_t* plan, /* in: plan or NULL */
  38. que_node_t* exp); /* in: expression or condition */
  39. /************************************************************************
  40. Prints info of a query plan. */
  41. void
  42. opt_print_query_plan(
  43. /*=================*/
  44. sel_node_t* sel_node); /* in: select node */
  45. #ifndef UNIV_NONINL
  46. #include "pars0opt.ic"
  47. #endif
  48. #endif