index 2ae2912b741884ed7ee2db8e7fa42f077756f8f5..41fb2179e805e5c1bbd9ea1e3a591b1a685735ae 100644 (file)
--- a/src/include/parser/ast.h
+++ b/src/include/parser/ast.h
/* type describes the type of the actual node */
int type;
+
+ /* data-type describes the type of the result value */
+ int data_type;
} sdb_ast_node_t;
#define SDB_AST_NODE(obj) ((sdb_ast_node_t *)(obj))
} sdb_ast_op_t;
#define SDB_AST_OP(obj) ((sdb_ast_op_t *)(obj))
#define SDB_AST_OP_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_OPERATOR }, -1, NULL, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_OPERATOR, -1 }, -1, NULL, NULL }
/*
* sdb_ast_iter_t represents an iterator.
} sdb_ast_iter_t;
#define SDB_AST_ITER(obj) ((sdb_ast_iter_t *)(obj))
#define SDB_AST_ITER_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_ITERATOR }, -1, NULL, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_ITERATOR, -1 }, -1, NULL, NULL }
/*
* sdb_ast_typed_t represents a typed value.
} sdb_ast_typed_t;
#define SDB_AST_TYPED(obj) ((sdb_ast_typed_t *)(obj))
#define SDB_AST_TYPED_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_TYPED }, -1, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_TYPED, -1 }, -1, NULL }
/*
* sdb_ast_const_t represents a constant value.
} sdb_ast_const_t;
#define SDB_AST_CONST(obj) ((sdb_ast_const_t *)(obj))
#define SDB_AST_CONST_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_CONST }, SDB_DATA_INIT }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_CONST, -1 }, SDB_DATA_INIT }
/*
* sdb_ast_value_t represents an object-specific value: sibling nodes,
} sdb_ast_value_t;
#define SDB_AST_VALUE(obj) ((sdb_ast_value_t *)(obj))
#define SDB_AST_VALUE_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_VALUE }, -1, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_VALUE, -1 }, -1, NULL }
/*
* sdb_ast_fetch_t represents a FETCH command.
} sdb_ast_fetch_t;
#define SDB_AST_FETCH(obj) ((sdb_ast_fetch_t *)(obj))
#define SDB_AST_FETCH_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_FETCH }, -1, NULL, NULL, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_FETCH, -1 }, -1, NULL, NULL, NULL }
/*
* sdb_ast_list_t represents a LIST command.
} sdb_ast_list_t;
#define SDB_AST_LIST(obj) ((sdb_ast_list_t *)(obj))
#define SDB_AST_LIST_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_LIST }, -1, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_LIST, -1 }, -1, NULL }
/*
* sdb_ast_lookup_t represents a LOOKUP command.
} sdb_ast_lookup_t;
#define SDB_AST_LOOKUP(obj) ((sdb_ast_lookup_t *)(obj))
#define SDB_AST_LOOKUP_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_LOOKUP }, -1, NULL, NULL }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_LOOKUP, -1 }, -1, NULL, NULL }
/*
* sdb_ast_store_t represents a STORE command.
} sdb_ast_store_t;
#define SDB_AST_STORE(obj) ((sdb_ast_store_t *)(obj))
#define SDB_AST_STORE_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_STORE }, \
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_STORE, -1 }, \
-1, NULL, -1, NULL, NULL, 0, NULL, NULL, SDB_DATA_INIT }
/*
} sdb_ast_timeseries_t;
#define SDB_AST_TIMESERIES(obj) ((sdb_ast_timeseries_t *)(obj))
#define SDB_AST_TIMESERIES_INIT \
- { { SDB_OBJECT_INIT, SDB_AST_TYPE_TIMESERIES }, NULL, NULL, 0, 0 }
+ { { SDB_OBJECT_INIT, SDB_AST_TYPE_TIMESERIES, -1 }, NULL, NULL, 0, 0 }
/*
* AST constructors: