OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RelAlgDagSerializer.h File Reference
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/access.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/unique_ptr.hpp>
#include <boost/serialization/unordered_map.hpp>
#include <boost/serialization/variant.hpp>
#include <boost/serialization/vector.hpp>
#include "QueryEngine/RelAlgDag.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/ExecutionResultSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/QueryHintSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/RexWindowBoundSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/SQLTypeInfoSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/SortFieldSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/StdOptionalSerializer.h"
#include "QueryEngine/RelAlgDagSerializer/serialization/TargetMetaInfoSerializer.h"
#include "Shared/scope.h"
+ Include dependency graph for RelAlgDagSerializer.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  anonymous_namespace{RelAlgDagSerializer.h}::is_any_class< T, Ts >
 
struct  anonymous_namespace{RelAlgDagSerializer.h}::all_serializable_rel_alg_classes< T >
 
struct  RelAlgDagSerializer
 
struct  boost::serialization::is_catalog_rel_alg_node< T >
 
struct  boost::serialization::is_modify_target_rel_alg_node< T >
 

Namespaces

 anonymous_namespace{RelAlgDagSerializer.h}
 
 boost
 
 boost::serialization
 

Macros

#define REL_ALG_NODE_DERIVED_CLASSES
 
#define REX_DERIVED_CLASSES
 

Typedefs

template<class T >
using anonymous_namespace{RelAlgDagSerializer.h}::is_rel_alg_node_class = is_any_class< T, RelAlgNode, ModifyManipulationTarget, REL_ALG_NODE_DERIVED_CLASSES >
 
template<class T >
using anonymous_namespace{RelAlgDagSerializer.h}::is_rex_class = is_any_class< T, Rex, RexScalar, REX_DERIVED_CLASSES >
 

Functions

template<class RelAlgType , typename std::enable_if_t< all_serializable_rel_alg_classes_v< RelAlgType >> * = nullptr>
void boost::serialization::serialize (boost::archive::text_iarchive &ar, RelAlgType &obj, const unsigned int version)
 
template<class RelAlgType , typename std::enable_if_t< all_serializable_rel_alg_classes_v< RelAlgType >> * = nullptr>
void boost::serialization::serialize (boost::archive::text_oarchive &ar, RelAlgType &obj, const unsigned int version)
 
template<class Archive >
void boost::serialization::serialize (Archive &ar, boost::blank &blank, const unsigned int version)
 
template<class RelAlgNodeType , typename std::enable_if_t< is_catalog_rel_alg_node_v< RelAlgNodeType >> * = nullptr>
void boost::serialization::save_construct_data (boost::archive::text_oarchive &ar, const RelAlgNodeType *node, const unsigned int version)
 
template<class RelAlgNodeType >
void boost::serialization::construct_catalog_rel_alg_node (RelAlgNodeType *node, const Catalog_Namespace::Catalog *cat, const TableDescriptor *td)
 
void boost::serialization::construct_catalog_rel_alg_node (RelModify *node, const Catalog_Namespace::Catalog &cat, const TableDescriptor *td)
 
void boost::serialization::construct_catalog_rel_alg_node (RelScan *node, const Catalog_Namespace::Catalog &cat, const TableDescriptor *td)
 
template<class RelAlgNodeType , typename std::enable_if_t< is_catalog_rel_alg_node< RelAlgNodeType >::value > * = nullptr>
void boost::serialization::load_construct_data (boost::archive::text_iarchive &ar, RelAlgNodeType *node, const unsigned int version)
 

Variables

template<class T >
constexpr bool anonymous_namespace{RelAlgDagSerializer.h}::is_rel_alg_node_class_v = is_rel_alg_node_class<T>::value
 
template<class T >
constexpr bool anonymous_namespace{RelAlgDagSerializer.h}::is_rex_class_v = is_rex_class<T>::value
 
template<class T >
constexpr bool anonymous_namespace{RelAlgDagSerializer.h}::all_serializable_rel_alg_classes_v
 
template<class T >
constexpr bool boost::serialization::is_catalog_rel_alg_node_v = is_catalog_rel_alg_node<T>::value
 
template<class T >
constexpr bool boost::serialization::is_modify_target_rel_alg_node_v
 

Macro Definition Documentation

#define REL_ALG_NODE_DERIVED_CLASSES
Value:

Simple macros defining a list of derived classes for RelAlgNode and Rex/RexScalar base classes respectively. Derived classes are intended to be leaf-level classes, meaning they themselves should not be inherited. If new derived classes are added that require serialization, then it should be as simple as adding that class name in one of these respective lists here and providing a specialization in its appropriate RelAlgDagSerializer::serialize() static method.

Definition at line 51 of file RelAlgDagSerializer.h.

#define REX_DERIVED_CLASSES