diff options
Diffstat (limited to 'src/include/nodes')
| -rw-r--r-- | src/include/nodes/nodes.h | 1 | ||||
| -rw-r--r-- | src/include/nodes/parsenodes.h | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index 2051abbbf92..d9e417bcd70 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -321,6 +321,7 @@ typedef enum NodeTag T_DeleteStmt, T_UpdateStmt, T_SelectStmt, + T_ReturnStmt, T_PLAssignStmt, T_AlterTableStmt, T_AlterTableCmd, diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index acc093d6e0f..7a44bccdd3b 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -140,6 +140,8 @@ typedef struct Query bool hasForUpdate; /* FOR [KEY] UPDATE/SHARE was specified */ bool hasRowSecurity; /* rewriter has applied some RLS policy */ + bool isReturn; /* is a RETURN statement */ + List *cteList; /* WITH list (of CommonTableExpr's) */ List *rtable; /* list of range table entries */ @@ -1721,6 +1723,16 @@ typedef struct SetOperationStmt } SetOperationStmt; +/* + * RETURN statement (inside SQL function body) + */ +typedef struct ReturnStmt +{ + NodeTag type; + Node *returnval; +} ReturnStmt; + + /* ---------------------- * PL/pgSQL Assignment Statement * @@ -2924,6 +2936,7 @@ typedef struct CreateFunctionStmt List *parameters; /* a list of FunctionParameter */ TypeName *returnType; /* the return type */ List *options; /* a list of DefElem */ + Node *sql_body; } CreateFunctionStmt; typedef enum FunctionParameterMode |
