1 | /* |
2 | * This Source Code Form is subject to the terms of the Mozilla Public |
3 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
4 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
5 | * |
6 | * Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V. |
7 | */ |
8 | |
9 | #ifndef _REL_SELECT_H_ |
10 | #define _REL_SELECT_H_ |
11 | |
12 | #include "rel_semantic.h" |
13 | #include "sql_semantic.h" |
14 | #include "sql_query.h" |
15 | |
16 | extern sql_rel *rel_selects(sql_query *query, symbol *sym); |
17 | extern sql_rel *schema_selects(sql_query *query, sql_schema *s, symbol *sym); |
18 | extern sql_rel * rel_subquery(sql_query *query, sql_rel *rel, symbol *sq, exp_kind ek); |
19 | extern sql_rel * rel_logical_exp(sql_query *query, sql_rel *rel, symbol *sc, int f); |
20 | extern sql_exp * rel_logical_value_exp(sql_query *query, sql_rel **rel, symbol *sc, int f); |
21 | |
22 | extern sql_exp *rel_column_exp(sql_query *query, sql_rel **rel, symbol *column_e, int f); |
23 | extern sql_exp * rel_value_exp(sql_query *query, sql_rel **rel, symbol *se, int f, exp_kind ek); |
24 | extern sql_exp * rel_value_exp2(sql_query *query, sql_rel **rel, symbol *se, int f, exp_kind ek, int *is_last); |
25 | |
26 | /* TODO rename to exp_check_type + move to rel_exp.c */ |
27 | extern sql_exp *rel_check_type(mvc *sql, sql_subtype *t, sql_rel *rel, sql_exp *exp, check_type tpe); |
28 | |
29 | extern sql_exp *rel_unop_(mvc *sql, sql_rel *rel, sql_exp *e, sql_schema *s, char *fname, int card); |
30 | extern sql_exp *rel_binop_(mvc *sql, sql_rel *rel, sql_exp *l, sql_exp *r, sql_schema *s, char *fname, int card); |
31 | extern sql_exp *rel_nop_(mvc *sql, sql_rel *rel, sql_exp *l, sql_exp *r, sql_exp *r2, sql_exp *r3, sql_schema *s, |
32 | char *fname, int card); |
33 | extern sql_rel *rel_with_query(sql_query *query, symbol *q); |
34 | extern sql_rel *table_ref(sql_query *query, sql_rel *rel, symbol *tableref, int lateral); |
35 | |
36 | extern sql_rel *rel_loader_function(sql_query* query, symbol* s, list *fexps, sql_subfunc **loader_function); |
37 | |
38 | #endif /*_REL_SELECT_H_*/ |
39 | |