1/*****************************************************************************
2
3Copyright (c) 1998, 2016, Oracle and/or its affiliates. All Rights Reserved.
4
5This program is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License as published by the Free Software
7Foundation; version 2 of the License.
8
9This program is distributed in the hope that it will be useful, but WITHOUT
10ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License along with
14this program; if not, write to the Free Software Foundation, Inc.,
1551 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
16
17*****************************************************************************/
18
19/**************************************************//**
20@file include/eval0proc.h
21Executes SQL stored procedures and their control structures
22
23Created 1/20/1998 Heikki Tuuri
24*******************************************************/
25
26#ifndef eval0proc_h
27#define eval0proc_h
28
29#include "univ.i"
30#include "que0types.h"
31#include "pars0sym.h"
32#include "pars0pars.h"
33
34/**********************************************************************//**
35Performs an execution step of a procedure node.
36@return query thread to run next or NULL */
37UNIV_INLINE
38que_thr_t*
39proc_step(
40/*======*/
41 que_thr_t* thr); /*!< in: query thread */
42/**********************************************************************//**
43Performs an execution step of an if-statement node.
44@return query thread to run next or NULL */
45que_thr_t*
46if_step(
47/*====*/
48 que_thr_t* thr); /*!< in: query thread */
49/**********************************************************************//**
50Performs an execution step of a while-statement node.
51@return query thread to run next or NULL */
52que_thr_t*
53while_step(
54/*=======*/
55 que_thr_t* thr); /*!< in: query thread */
56/**********************************************************************//**
57Performs an execution step of a for-loop node.
58@return query thread to run next or NULL */
59que_thr_t*
60for_step(
61/*=====*/
62 que_thr_t* thr); /*!< in: query thread */
63/**********************************************************************//**
64Performs an execution step of an assignment statement node.
65@return query thread to run next or NULL */
66que_thr_t*
67assign_step(
68/*========*/
69 que_thr_t* thr); /*!< in: query thread */
70/**********************************************************************//**
71Performs an execution step of a procedure call node.
72@return query thread to run next or NULL */
73UNIV_INLINE
74que_thr_t*
75proc_eval_step(
76/*===========*/
77 que_thr_t* thr); /*!< in: query thread */
78/**********************************************************************//**
79Performs an execution step of an exit statement node.
80@return query thread to run next or NULL */
81que_thr_t*
82exit_step(
83/*======*/
84 que_thr_t* thr); /*!< in: query thread */
85/**********************************************************************//**
86Performs an execution step of a return-statement node.
87@return query thread to run next or NULL */
88que_thr_t*
89return_step(
90/*========*/
91 que_thr_t* thr); /*!< in: query thread */
92
93#include "eval0proc.ic"
94
95#endif
96