Apache Ignite C++ Client
Loading...
Searching...
No Matches
sql_statement.h
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#include "ignite/common/primitive.h"
21
22#include <chrono>
23#include <cstdint>
24#include <string>
25#include <unordered_map>
26
27namespace ignite {
28
32class sql_statement {
33public:
35 static constexpr std::string_view DEFAULT_SCHEMA{"PUBLIC"};
36
38 static constexpr std::int32_t DEFAULT_PAGE_SIZE{1024};
39
41 static constexpr std::chrono::milliseconds DEFAULT_TIMEOUT{0};
42
43 // Default
44 sql_statement() = default;
45
56 sql_statement( // NOLINT(google-explicit-constructor)
57 std::string query, std::chrono::milliseconds timeout = DEFAULT_TIMEOUT, std::string schema = DEFAULT_SCHEMA.data(),
58 std::int32_t page_size = DEFAULT_PAGE_SIZE,
59 std::initializer_list<std::pair<const std::string, primitive>> properties = {}, std::string timezone_id = {})
60 : m_query(std::move(query))
61 , m_timeout(timeout)
62 , m_schema(std::move(schema))
63 , m_page_size(page_size)
64 , m_properties(properties)
65 , m_timezone_id(std::move(timezone_id)) {}
66
72 [[nodiscard]] const std::string &query() const { return m_query; }
73
79 void query(std::string val) { m_query = std::move(val); }
80
86 [[nodiscard]] std::chrono::milliseconds timeout() const { return m_timeout; }
87
93 void timeout(std::chrono::milliseconds val) { m_timeout = val; }
94
100 [[nodiscard]] const std::string &schema() const { return m_schema; }
101
107 void schema(std::string val) { m_schema = std::move(val); }
108
114 [[nodiscard]] std::int32_t page_size() const { return m_page_size; }
115
121 void page_size(std::int32_t val) { m_page_size = val; }
122
128 [[nodiscard]] const std::unordered_map<std::string, primitive> &properties() const { return m_properties; }
129
135 void properties(std::initializer_list<std::pair<const std::string, primitive>> val) { m_properties = val; }
136
142 [[nodiscard]] const std::string &timezone_id() const { return m_timezone_id; }
143
155 void timezone_id(std::string val) { m_timezone_id = std::move(val); }
156
157private:
159 std::string m_query;
160
162 std::chrono::milliseconds m_timeout{DEFAULT_TIMEOUT};
163
165 std::string m_schema{DEFAULT_SCHEMA};
166
168 std::int32_t m_page_size{DEFAULT_PAGE_SIZE};
169
171 std::unordered_map<std::string, primitive> m_properties;
172
174 std::string m_timezone_id;
175};
176
177} // namespace ignite
Definition sql_statement.h:32
void properties(std::initializer_list< std::pair< const std::string, primitive > > val)
Definition sql_statement.h:135
static constexpr std::chrono::milliseconds DEFAULT_TIMEOUT
Definition sql_statement.h:41
std::int32_t page_size() const
Definition sql_statement.h:114
std::chrono::milliseconds timeout() const
Definition sql_statement.h:86
static constexpr std::string_view DEFAULT_SCHEMA
Definition sql_statement.h:35
const std::string & query() const
Definition sql_statement.h:72
void page_size(std::int32_t val)
Definition sql_statement.h:121
const std::string & schema() const
Definition sql_statement.h:100
void timezone_id(std::string val)
Definition sql_statement.h:155
const std::unordered_map< std::string, primitive > & properties() const
Definition sql_statement.h:128
void schema(std::string val)
Definition sql_statement.h:107
void query(std::string val)
Definition sql_statement.h:79
void timeout(std::chrono::milliseconds val)
Definition sql_statement.h:93
sql_statement(std::string query, std::chrono::milliseconds timeout=DEFAULT_TIMEOUT, std::string schema=DEFAULT_SCHEMA.data(), std::int32_t page_size=DEFAULT_PAGE_SIZE, std::initializer_list< std::pair< const std::string, primitive > > properties={}, std::string timezone_id={})
Definition sql_statement.h:56
static constexpr std::int32_t DEFAULT_PAGE_SIZE
Definition sql_statement.h:38
const std::string & timezone_id() const
Definition sql_statement.h:142