OmniSciDB  b28c0d5765
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RelAlgDagSerializer.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2022 HEAVY.AI, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
18 
28  public:
30 
32 
33  private:
35 };
36 
37 // Keep a thread-local deserialize state context
38 thread_local std::unique_ptr<RelAlgDagSerializer::RelAlgDagDeserializeContext>
40 
43  CHECK(!rel_alg_dag_deserialize_context) << std::this_thread::get_id();
44 
45  // build up a thread-local deserialization context. This currently consists of only a
46  // catalog for table descriptor lookups for certain nodes.
47  rel_alg_dag_deserialize_context = std::make_unique<RelAlgDagDeserializeContext>(cat);
48  ScopeGuard release_context = [&] { rel_alg_dag_deserialize_context = nullptr; };
49  return release_context;
50 }
51 
54  return rel_alg_dag_deserialize_context->getCatalog();
55 }
std::string cat(Ts &&...args)
class for a per-database catalog. also includes metadata for the current database and the current use...
Definition: Catalog.h:132
static const Catalog_Namespace::Catalog & getCatalog()
const Catalog_Namespace::Catalog & getCatalog()
RelAlgDagDeserializeContext(const Catalog_Namespace::Catalog &cat)
#define CHECK(condition)
Definition: Logger.h:222
static thread_local std::unique_ptr< RelAlgDagDeserializeContext > rel_alg_dag_deserialize_context
static ScopeGuard createContextScopeGuard(const Catalog_Namespace::Catalog &cat)