MySQL 8.4.2
Source Code Documentation
|
Parse tree node for a single of a window extent's borders, cf. More...
#include <parse_tree_nodes.h>
Public Member Functions | |
PT_border (const POS &pos, enum_window_border_type type) | |
< For unbounded border More... | |
PT_border (const POS &pos, enum_window_border_type type, Item *value) | |
For bounded INTERVAL 2 DAYS, 'value' is 2, int_type is DAYS. More... | |
PT_border (const POS &pos, enum_window_border_type type, Item *value, interval_type int_type) | |
Item * | border () const |
Item ** | border_ptr () |
Need such low-level access so that fix_fields updates the right pointer. More... | |
Item * | build_addop (Item_cache *order_expr, bool prec, bool asc, const Window *window) |
bool | do_contextualize (Parse_context *pc) override |
Public Member Functions inherited from Parse_tree_node_tmpl< Context > | |
virtual | ~Parse_tree_node_tmpl ()=default |
bool | is_contextualized () const |
virtual bool | contextualize (Context *pc) final |
void | error (Context *pc, const POS &pos) const |
syntax_error() function replacement for deferred reporting of syntax errors More... | |
void | error (Context *pc, const POS &pos, const char *msg) const |
syntax_error() function replacement for deferred reporting of syntax errors More... | |
void | errorf (Context *pc, const POS &pos, const char *format,...) const |
syntax_error() function replacement for deferred reporting of syntax errors More... | |
Public Attributes | |
enum_window_border_type | m_border_type |
const bool | m_date_time |
interval_type | m_int_type = INTERVAL_LAST |
Public Attributes inherited from Parse_tree_node_tmpl< Context > | |
POS | m_pos |
Private Attributes | |
Item * | m_value {nullptr} |
only relevant iff m_border_type == WBT_VALUE_* More... | |
Friends | |
class | Window |
Additional Inherited Members | |
Public Types inherited from Parse_tree_node_tmpl< Context > | |
typedef Context | context_t |
Static Public Member Functions inherited from Parse_tree_node_tmpl< Context > | |
static void * | operator new (size_t size, MEM_ROOT *mem_root, const std::nothrow_t &arg=std::nothrow) noexcept |
static void | operator delete (void *ptr, size_t size) |
static void | operator delete (void *, MEM_ROOT *, const std::nothrow_t &) noexcept |
Protected Member Functions inherited from Parse_tree_node_tmpl< Context > | |
Parse_tree_node_tmpl ()=delete | |
Parse_tree_node_tmpl (const POS &pos) | |
Parse_tree_node_tmpl (const POS &start_pos, const POS &end_pos) | |
bool | begin_parse_tree (Show_parse_tree *tree) |
bool | end_parse_tree (Show_parse_tree *tree) |
virtual bool | do_contextualize (Context *pc) |
Do all context-sensitive things and mark the node as contextualized. More... | |
virtual void | add_json_info (Json_object *json_obj) |
Add all the node-specific json fields. More... | |
Parse tree node for a single of a window extent's borders, cf.
<window frame extent> in SQL 2003.
|
inline |
< For unbounded border
For bounded non-temporal border, e.g. 2 PRECEDING: 'value' is 2.
|
inline |
For bounded INTERVAL 2 DAYS, 'value' is 2, int_type is DAYS.
|
inline |
|
inline |
|
inline |
Need such low-level access so that fix_fields updates the right pointer.
Item * PT_border::build_addop | ( | Item_cache * | order_expr, |
bool | prec, | ||
bool | asc, | ||
const Window * | window | ||
) |
order_expr | Expression to add to/subtract from |
prec | true if PRECEDING |
asc | true if ASC |
window | only used for error generation |
|
override |
|
friend |
enum_window_border_type PT_border::m_border_type |
const bool PT_border::m_date_time |
interval_type PT_border::m_int_type = INTERVAL_LAST |