1 #ifndef SQL_TREE_H 2 #define SQL_TREE_H 3 4 #include "sql_parser.h" 5 6 /* statements */ 7 sql_statement *sql_statement_build (sql_statement_type type, void *statement); 8 sql_select_statement *sql_select_statement_build (int distinct, 9 GList * fields, 10 GList * from, 11 sql_where * where, 12 GList * order, 13 GList * group); 14 sql_insert_statement *sql_insert_statement_build (sql_table * table, 15 GList * fields, 16 GList * values); 17 sql_update_statement *sql_update_statement_build (sql_table * table, 18 GList * set, 19 sql_where * where); 20 sql_delete_statement *sql_delete_statement_build (sql_table * table, 21 sql_where * where); 22 23 /* field item */ 24 sql_field_item *sql_field_item_build (GList * name); 25 sql_field_item *sql_field_item_build_equation (sql_field_item * left, 26 sql_field_item * right, 27 sql_field_operator op); 28 sql_field_item *sql_field_item_build_select (sql_select_statement * select); 29 sql_field_item *sql_field_build_function (gchar * funcname, 30 GList * funcarglist); 31 32 /* field */ 33 sql_field *sql_field_build (sql_field_item * item); 34 sql_field *sql_field_set_as (sql_field * field, char *as); 35 sql_field *sql_field_set_param_spec (sql_field * field, GList * param_spec); 36 37 /* table */ 38 sql_table *sql_table_build (char *tablename); 39 sql_table *sql_table_set_join (sql_table * table, sql_join_type join_type, sql_where * cond); 40 sql_table *sql_table_build_select (sql_select_statement * select); 41 sql_table *sql_table_set_as (sql_table * table, char *as); 42 43 /* where */ 44 sql_where *sql_where_build_single (sql_condition * cond); 45 sql_where *sql_where_build_negated (sql_where * where); 46 sql_where *sql_where_build_pair (sql_where * left, sql_where * right, 47 sql_logic_operator op); 48 /* condition */ 49 sql_condition *sql_build_condition (sql_field * left, sql_field * right, 50 sql_condition_operator op); 51 sql_condition *sql_build_condition_between (sql_field * field, 52 sql_field * lower, 53 sql_field * upper); 54 /* field order */ 55 sql_order_field *sql_order_field_build (GList * name, sql_ordertype order_type); 56 57 58 /* param spec */ 59 param_spec *param_spec_build (param_spec_type type, char *content); 60 61 #endif /* SQL_TREE_H */ 62