quasardb 3.14.2.dev1__cp39-cp39-macosx_11_0_arm64.whl → 3.14.2.dev4__cp39-cp39-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of quasardb might be problematic. Click here for more details.
- quasardb/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/Makefile +20 -20
- quasardb/__init__.py +33 -4
- quasardb/cmake_install.cmake +7 -1
- quasardb/date/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/date/CMakeFiles/Export/a52b05f964b070ee926bcad51d3288af/dateTargets.cmake +13 -13
- quasardb/date/Makefile +20 -20
- quasardb/date/cmake_install.cmake +7 -1
- quasardb/date/dateConfigVersion.cmake +9 -2
- quasardb/date/dateTargets.cmake +4 -8
- quasardb/libqdb_api.dylib +0 -0
- quasardb/numpy/__init__.py +58 -10
- quasardb/pandas/__init__.py +58 -102
- quasardb/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/pybind11/Makefile +20 -20
- quasardb/pybind11/cmake_install.cmake +7 -1
- quasardb/quasardb.cpython-39-darwin.so +0 -0
- quasardb/range-v3/CMakeFiles/CMakeDirectoryInformation.cmake +1 -1
- quasardb/range-v3/CMakeFiles/Export/d94ef200eca10a819b5858b33e808f5b/range-v3-targets.cmake +13 -13
- quasardb/range-v3/CMakeFiles/range.v3.headers.dir/DependInfo.cmake +6 -2
- quasardb/range-v3/CMakeFiles/range.v3.headers.dir/build.make +7 -4
- quasardb/range-v3/Makefile +20 -20
- quasardb/range-v3/cmake_install.cmake +19 -1
- quasardb/range-v3/range-v3-config-version.cmake +9 -2
- quasardb/range-v3/range-v3-config.cmake +4 -8
- {quasardb-3.14.2.dev1.dist-info → quasardb-3.14.2.dev4.dist-info}/METADATA +15 -10
- quasardb-3.14.2.dev4.dist-info/RECORD +45 -0
- {quasardb-3.14.2.dev1.dist-info → quasardb-3.14.2.dev4.dist-info}/WHEEL +1 -1
- quasardb/CMakeLists.txt +0 -510
- quasardb/batch_column.hpp +0 -80
- quasardb/batch_inserter.hpp +0 -248
- quasardb/blob.hpp +0 -150
- quasardb/cluster.cpp +0 -89
- quasardb/cluster.hpp +0 -551
- quasardb/concepts.hpp +0 -278
- quasardb/continuous.cpp +0 -149
- quasardb/continuous.hpp +0 -106
- quasardb/convert/array.hpp +0 -282
- quasardb/convert/point.hpp +0 -330
- quasardb/convert/range.hpp +0 -282
- quasardb/convert/unicode.hpp +0 -598
- quasardb/convert/util.hpp +0 -22
- quasardb/convert/value.hpp +0 -711
- quasardb/convert.hpp +0 -38
- quasardb/detail/qdb_resource.hpp +0 -129
- quasardb/detail/ts_column.hpp +0 -224
- quasardb/direct_blob.hpp +0 -108
- quasardb/direct_handle.hpp +0 -83
- quasardb/direct_integer.hpp +0 -94
- quasardb/dispatch.hpp +0 -157
- quasardb/double.hpp +0 -87
- quasardb/entry.hpp +0 -273
- quasardb/error.hpp +0 -318
- quasardb/handle.cpp +0 -29
- quasardb/handle.hpp +0 -98
- quasardb/integer.hpp +0 -88
- quasardb/logger.cpp +0 -106
- quasardb/logger.hpp +0 -228
- quasardb/masked_array.hpp +0 -651
- quasardb/metrics.cpp +0 -103
- quasardb/metrics.hpp +0 -112
- quasardb/module.cpp +0 -76
- quasardb/module.hpp +0 -24
- quasardb/node.hpp +0 -123
- quasardb/numpy.cpp +0 -6
- quasardb/numpy.hpp +0 -489
- quasardb/object_tracker.hpp +0 -283
- quasardb/options.hpp +0 -244
- quasardb/perf.hpp +0 -336
- quasardb/pytypes.hpp +0 -221
- quasardb/query.cpp +0 -420
- quasardb/query.hpp +0 -92
- quasardb/reader/ts_row.hpp +0 -281
- quasardb/reader/ts_value.hpp +0 -245
- quasardb/remove_cvref.hpp +0 -31
- quasardb/string.hpp +0 -160
- quasardb/table.cpp +0 -289
- quasardb/table.hpp +0 -325
- quasardb/table_reader.hpp +0 -220
- quasardb/tag.hpp +0 -77
- quasardb/timestamp.hpp +0 -97
- quasardb/traits.hpp +0 -619
- quasardb/ts_iterator.hpp +0 -193
- quasardb/utils/blob_deque.hpp +0 -96
- quasardb/utils/ostream.hpp +0 -17
- quasardb/utils/permutation.hpp +0 -50
- quasardb/utils/stable_sort.hpp +0 -25
- quasardb/utils/unzip_view.hpp +0 -89
- quasardb/utils.cpp +0 -28
- quasardb/utils.hpp +0 -174
- quasardb/writer.cpp +0 -534
- quasardb/writer.hpp +0 -396
- quasardb-3.14.2.dev1.dist-info/RECORD +0 -109
- {quasardb-3.14.2.dev1.dist-info → quasardb-3.14.2.dev4.dist-info}/LICENSE.md +0 -0
- {quasardb-3.14.2.dev1.dist-info → quasardb-3.14.2.dev4.dist-info}/top_level.txt +0 -0
quasardb/writer.hpp
DELETED
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
*
|
|
3
|
-
* Official Python API
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) 2009-2024, quasardb SAS. All rights reserved.
|
|
6
|
-
* All rights reserved.
|
|
7
|
-
*
|
|
8
|
-
* Redistribution and use in source and binary forms, with or without
|
|
9
|
-
* modification, are permitted provided that the following conditions are met:
|
|
10
|
-
*
|
|
11
|
-
* * Redistributions of source code must retain the above copyright
|
|
12
|
-
* notice, this list of conditions and the following disclaimer.
|
|
13
|
-
* * Redistributions in binary form must reproduce the above copyright
|
|
14
|
-
* notice, this list of conditions and the following disclaimer in the
|
|
15
|
-
* documentation and/or other materials provided with the distribution.
|
|
16
|
-
* * Neither the name of quasardb nor the names of its contributors may
|
|
17
|
-
* be used to endorse or promote products derived from this software
|
|
18
|
-
* without specific prior written permission.
|
|
19
|
-
*
|
|
20
|
-
* THIS SOFTWARE IS PROVIDED BY QUASARDB AND CONTRIBUTORS ``AS IS'' AND ANY
|
|
21
|
-
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
22
|
-
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
-
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
|
|
24
|
-
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
25
|
-
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
27
|
-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
28
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
29
|
-
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
-
*/
|
|
31
|
-
#pragma once
|
|
32
|
-
|
|
33
|
-
#include "batch_column.hpp"
|
|
34
|
-
#include "dispatch.hpp"
|
|
35
|
-
#include "error.hpp"
|
|
36
|
-
#include "logger.hpp"
|
|
37
|
-
#include "object_tracker.hpp"
|
|
38
|
-
#include "table.hpp"
|
|
39
|
-
#include "utils.hpp"
|
|
40
|
-
#include <variant>
|
|
41
|
-
#include <vector>
|
|
42
|
-
|
|
43
|
-
namespace qdb
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
namespace detail
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
using deduplicate = std::variant<std::vector<std::string>, bool>;
|
|
50
|
-
|
|
51
|
-
enum deduplication_mode_t
|
|
52
|
-
{
|
|
53
|
-
deduplication_mode_drop,
|
|
54
|
-
deduplication_mode_upsert
|
|
55
|
-
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
constexpr inline qdb_exp_batch_push_options_t to_push_options(enum detail::deduplication_mode_t mode)
|
|
59
|
-
{
|
|
60
|
-
switch (mode)
|
|
61
|
-
{
|
|
62
|
-
case deduplication_mode_drop:
|
|
63
|
-
return qdb_exp_batch_option_unique_drop;
|
|
64
|
-
case deduplication_mode_upsert:
|
|
65
|
-
return qdb_exp_batch_option_unique_upsert;
|
|
66
|
-
default:
|
|
67
|
-
return qdb_exp_batch_option_standard;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
struct deduplicate_options
|
|
72
|
-
{
|
|
73
|
-
detail::deduplicate columns_;
|
|
74
|
-
deduplication_mode_t mode_;
|
|
75
|
-
|
|
76
|
-
deduplicate_options()
|
|
77
|
-
{
|
|
78
|
-
columns_ = false;
|
|
79
|
-
mode_ = deduplication_mode_drop;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
deduplicate_options(deduplication_mode_t mode, detail::deduplicate columns)
|
|
83
|
-
: columns_{columns}
|
|
84
|
-
, mode_{mode} {};
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
using int64_column = std::vector<qdb_int_t>;
|
|
88
|
-
using double_column = std::vector<double>;
|
|
89
|
-
using timestamp_column = std::vector<qdb_timespec_t>;
|
|
90
|
-
using blob_column = std::vector<qdb_blob_t>;
|
|
91
|
-
using string_column = std::vector<qdb_string_t>;
|
|
92
|
-
|
|
93
|
-
using any_column =
|
|
94
|
-
std::variant<int64_column, double_column, timestamp_column, blob_column, string_column>;
|
|
95
|
-
|
|
96
|
-
template <qdb_ts_column_type_t T>
|
|
97
|
-
struct column_of_type;
|
|
98
|
-
|
|
99
|
-
template <qdb_ts_column_type_t T>
|
|
100
|
-
struct make_column;
|
|
101
|
-
|
|
102
|
-
#define COLUMN_OF_TYPE_DECL(TYPE, COLUMN) \
|
|
103
|
-
template <> \
|
|
104
|
-
struct column_of_type<TYPE> \
|
|
105
|
-
{ \
|
|
106
|
-
using value_type = COLUMN; \
|
|
107
|
-
}; \
|
|
108
|
-
\
|
|
109
|
-
template <> \
|
|
110
|
-
struct make_column<TYPE> \
|
|
111
|
-
{ \
|
|
112
|
-
any_column inline operator()() \
|
|
113
|
-
{ \
|
|
114
|
-
return COLUMN{}; \
|
|
115
|
-
}; \
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_int64, int64_column);
|
|
119
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_double, double_column);
|
|
120
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_timestamp, timestamp_column);
|
|
121
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_blob, blob_column);
|
|
122
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_string, string_column);
|
|
123
|
-
COLUMN_OF_TYPE_DECL(qdb_ts_column_symbol, string_column);
|
|
124
|
-
|
|
125
|
-
#undef COLUMN_OF_TYPE_DECL
|
|
126
|
-
|
|
127
|
-
template <qdb_ts_column_type_t T>
|
|
128
|
-
std::vector<typename traits::qdb_column<T>::value_type> & access_column(
|
|
129
|
-
std::vector<any_column> & columns, size_t index)
|
|
130
|
-
{
|
|
131
|
-
using column_type = typename column_of_type<T>::value_type;
|
|
132
|
-
try
|
|
133
|
-
{
|
|
134
|
-
return std::get<column_type>(columns[index]);
|
|
135
|
-
}
|
|
136
|
-
catch (std::bad_variant_access const & /*e*/)
|
|
137
|
-
{
|
|
138
|
-
throw qdb::incompatible_type_exception{};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
template <qdb_ts_column_type_t T>
|
|
143
|
-
std::size_t column_size(std::vector<any_column> & columns, size_t index)
|
|
144
|
-
{
|
|
145
|
-
return access_column<T>(columns, index).size();
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
template <qdb_ts_column_type_t T>
|
|
149
|
-
struct clear_column
|
|
150
|
-
{
|
|
151
|
-
void operator()(any_column & xs)
|
|
152
|
-
{
|
|
153
|
-
using value_type = typename detail::column_of_type<T>::value_type;
|
|
154
|
-
std::get<value_type>(xs).clear();
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
class staged_table
|
|
159
|
-
{
|
|
160
|
-
public:
|
|
161
|
-
staged_table(qdb::table const & table)
|
|
162
|
-
: _logger("quasardb.writer")
|
|
163
|
-
, _table_name(table.get_name())
|
|
164
|
-
{
|
|
165
|
-
_column_infos = table.list_columns();
|
|
166
|
-
|
|
167
|
-
std::transform(std::cbegin(_column_infos), std::cend(_column_infos),
|
|
168
|
-
std::back_inserter(_columns),
|
|
169
|
-
|
|
170
|
-
[](auto const & col) { return dispatch::by_column_type<detail::make_column>(col.type); });
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
~staged_table()
|
|
174
|
-
{
|
|
175
|
-
clear();
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
void set_index(py::array const & timestamps);
|
|
179
|
-
void set_blob_column(std::size_t index, const masked_array & xs);
|
|
180
|
-
void set_string_column(std::size_t index, const masked_array & xs);
|
|
181
|
-
void set_double_column(std::size_t index, masked_array_t<traits::float64_dtype> const & xs);
|
|
182
|
-
void set_int64_column(std::size_t index, masked_array_t<traits::int64_dtype> const & xs);
|
|
183
|
-
void set_timestamp_column(
|
|
184
|
-
std::size_t index, masked_array_t<traits::datetime64_ns_dtype> const & xs);
|
|
185
|
-
|
|
186
|
-
std::vector<qdb_exp_batch_push_column_t> const & prepare_columns();
|
|
187
|
-
|
|
188
|
-
void prepare_table_data(qdb_exp_batch_push_table_data_t & table_data);
|
|
189
|
-
|
|
190
|
-
void prepare_batch(qdb_exp_batch_push_mode_t mode,
|
|
191
|
-
detail::deduplicate_options const & deduplicate_options,
|
|
192
|
-
qdb_ts_range_t * ranges,
|
|
193
|
-
qdb_exp_batch_push_table_t & batch);
|
|
194
|
-
|
|
195
|
-
static inline void _set_push_options(
|
|
196
|
-
enum detail::deduplication_mode_t mode, bool columns, qdb_exp_batch_push_table_t & out)
|
|
197
|
-
{
|
|
198
|
-
out.options = (columns == true ? detail::to_push_options(mode) : qdb_exp_batch_option_standard);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
static inline void _set_push_options(enum detail::deduplication_mode_t mode,
|
|
202
|
-
std::vector<std::string> const & columns,
|
|
203
|
-
qdb_exp_batch_push_table_t & out)
|
|
204
|
-
{
|
|
205
|
-
auto where_duplicate = std::make_unique<qdb_string_t[]>(columns.size());
|
|
206
|
-
|
|
207
|
-
std::transform(std::cbegin(columns), std::cend(columns), where_duplicate.get(),
|
|
208
|
-
[](std::string const & column) -> qdb_string_t {
|
|
209
|
-
// Note, we're not copying any strings here. This works,
|
|
210
|
-
// because we pass the vector by reference, and it is "owned"
|
|
211
|
-
// by _push_impl, so the lifetime is longer.
|
|
212
|
-
return qdb_string_t{column.c_str(), column.size()};
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
out.options = detail::to_push_options(mode);
|
|
216
|
-
out.where_duplicate = where_duplicate.release();
|
|
217
|
-
out.where_duplicate_count = columns.size();
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
inline void clear()
|
|
221
|
-
{
|
|
222
|
-
_index.clear();
|
|
223
|
-
for (size_t index = 0; index < _columns.size(); ++index)
|
|
224
|
-
{
|
|
225
|
-
dispatch::by_column_type<detail::clear_column>(_column_infos[index].type, _columns[index]);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
_table_name.clear();
|
|
229
|
-
_column_infos.clear();
|
|
230
|
-
_columns_data.clear();
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
inline qdb_ts_range_t time_range() const
|
|
234
|
-
{
|
|
235
|
-
qdb_ts_range_t tr{_index.front(), _index.back()};
|
|
236
|
-
// our range is end-exclusive, so let's move the pointer one nanosecond
|
|
237
|
-
// *after* the last element in this batch.
|
|
238
|
-
//
|
|
239
|
-
// XXX(leon): this overflows if we're at exactly the last nanosecond of a second
|
|
240
|
-
tr.end.tv_nsec++;
|
|
241
|
-
|
|
242
|
-
return tr;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
inline bool empty() const
|
|
246
|
-
{
|
|
247
|
-
return _index.empty();
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
private:
|
|
251
|
-
private:
|
|
252
|
-
qdb::logger _logger;
|
|
253
|
-
|
|
254
|
-
std::string _table_name;
|
|
255
|
-
std::vector<detail::column_info> _column_infos;
|
|
256
|
-
std::vector<qdb_timespec_t> _index;
|
|
257
|
-
std::vector<any_column> _columns;
|
|
258
|
-
|
|
259
|
-
std::vector<qdb_exp_batch_push_column_t> _columns_data;
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
} // namespace detail
|
|
263
|
-
|
|
264
|
-
class writer
|
|
265
|
-
{
|
|
266
|
-
|
|
267
|
-
using int64_column = detail::int64_column;
|
|
268
|
-
using double_column = detail::double_column;
|
|
269
|
-
using timestamp_column = detail::timestamp_column;
|
|
270
|
-
using blob_column = detail::blob_column;
|
|
271
|
-
using string_column = detail::string_column;
|
|
272
|
-
using any_column = detail::any_column;
|
|
273
|
-
using staged_tables_t = std::map<std::string, detail::staged_table>;
|
|
274
|
-
|
|
275
|
-
public:
|
|
276
|
-
/**
|
|
277
|
-
* Convenience class that holds data that can be pushed to the writer. Makes it
|
|
278
|
-
* easier for the end-user to provide the data in the correct format, in a single
|
|
279
|
-
* function call, if they decide to use the low-level writer API themselves.
|
|
280
|
-
*/
|
|
281
|
-
class data
|
|
282
|
-
{
|
|
283
|
-
friend class writer;
|
|
284
|
-
|
|
285
|
-
protected:
|
|
286
|
-
struct value_type
|
|
287
|
-
{
|
|
288
|
-
qdb::table table;
|
|
289
|
-
py::array index;
|
|
290
|
-
py::list column_data;
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
public:
|
|
294
|
-
void append(qdb::table const & table, py::handle const & index, py::list const & column_data);
|
|
295
|
-
|
|
296
|
-
inline bool empty() const noexcept
|
|
297
|
-
{
|
|
298
|
-
return xs_.empty();
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
inline value_type const & front() const noexcept
|
|
302
|
-
{
|
|
303
|
-
assert(empty() == false);
|
|
304
|
-
|
|
305
|
-
return xs_.front();
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
inline value_type const & back() const noexcept
|
|
309
|
-
{
|
|
310
|
-
assert(empty() == false);
|
|
311
|
-
|
|
312
|
-
return xs_.back();
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
std::vector<value_type> xs() const
|
|
316
|
-
{
|
|
317
|
-
return xs_;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
private:
|
|
321
|
-
std::vector<value_type> xs_;
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
public:
|
|
325
|
-
writer(qdb::handle_ptr h)
|
|
326
|
-
: _logger("quasardb.writer")
|
|
327
|
-
, _handle{h}
|
|
328
|
-
{}
|
|
329
|
-
|
|
330
|
-
// prevent copy because of the table object, use a unique_ptr of the batch in cluster
|
|
331
|
-
// to return the object
|
|
332
|
-
writer(const writer &) = delete;
|
|
333
|
-
|
|
334
|
-
~writer()
|
|
335
|
-
{}
|
|
336
|
-
|
|
337
|
-
const std::vector<qdb_exp_batch_push_column_t> & prepare_columns();
|
|
338
|
-
|
|
339
|
-
void push(writer::data const & data, py::kwargs args);
|
|
340
|
-
void push_async(writer::data const & data, py::kwargs args);
|
|
341
|
-
void push_fast(writer::data const & data, py::kwargs args);
|
|
342
|
-
void push_truncate(writer::data const & data, py::kwargs args);
|
|
343
|
-
|
|
344
|
-
private:
|
|
345
|
-
static inline detail::staged_table & _get_staged_table(
|
|
346
|
-
qdb::table const & table, staged_tables_t & staged_tables)
|
|
347
|
-
{
|
|
348
|
-
std::string table_name = table.get_name();
|
|
349
|
-
|
|
350
|
-
auto pos = staged_tables.lower_bound(table_name);
|
|
351
|
-
|
|
352
|
-
// XXX(leon): can be optimized by using lower_bound and reusing the `pos` for insertion into
|
|
353
|
-
// the correct place.
|
|
354
|
-
if (pos == staged_tables.end() || pos->first != table_name) [[unlikely]]
|
|
355
|
-
{
|
|
356
|
-
// The table was not yet found
|
|
357
|
-
pos = staged_tables.emplace_hint(pos, table_name, table);
|
|
358
|
-
assert(pos->second.empty());
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
assert(pos != staged_tables.end());
|
|
362
|
-
assert(pos->first == table_name);
|
|
363
|
-
|
|
364
|
-
return pos->second;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
static staged_tables_t _stage_tables(writer::data const & data);
|
|
368
|
-
|
|
369
|
-
void _push_impl(staged_tables_t & staged_tables,
|
|
370
|
-
qdb_exp_batch_push_mode_t mode,
|
|
371
|
-
detail::deduplicate_options deduplicate_options,
|
|
372
|
-
qdb_ts_range_t * ranges = nullptr);
|
|
373
|
-
|
|
374
|
-
detail::deduplicate_options _deduplicate_from_args(py::kwargs args);
|
|
375
|
-
|
|
376
|
-
private:
|
|
377
|
-
qdb::logger _logger;
|
|
378
|
-
qdb::handle_ptr _handle;
|
|
379
|
-
|
|
380
|
-
qdb::object_tracker::scoped_repository _object_tracker;
|
|
381
|
-
|
|
382
|
-
public:
|
|
383
|
-
// the 'legacy' API needs some state attached to the pinned writer; monkey patching
|
|
384
|
-
// the pinned writer purely in python for this is possible, but annoying to do right;
|
|
385
|
-
// it's much easier to just have it live here (for now), until the batch writer is
|
|
386
|
-
// fully deprecated.
|
|
387
|
-
py::dict legacy_state_;
|
|
388
|
-
};
|
|
389
|
-
|
|
390
|
-
// don't use shared_ptr, let Python do the reference counting, otherwise you will have an undefined
|
|
391
|
-
// behavior
|
|
392
|
-
using writer_ptr = std::unique_ptr<writer>;
|
|
393
|
-
|
|
394
|
-
void register_writer(py::module_ & m);
|
|
395
|
-
|
|
396
|
-
} // namespace qdb
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
quasardb/CMakeLists.txt,sha256=dD10FmWEVzOyVXMNlbYavP9a5usPIqa7oJzS63yw3aU,14997
|
|
2
|
-
quasardb/Makefile,sha256=2-GCl1wuJabuY0HHldtDbExmmPjYmoHkusE-_JhzdJw,7394
|
|
3
|
-
quasardb/__init__.py,sha256=JLNtV7P81HLi_OXqumJ1dq3fDUiUnR3Ktmf-e7wtalo,3707
|
|
4
|
-
quasardb/batch_column.hpp,sha256=PuZEM78TNxyqtNm4OcuhqMTiconRDG6qdWIvKBIpO8s,3308
|
|
5
|
-
quasardb/batch_inserter.hpp,sha256=QUmVPKu1ffF6Ee_9eyBG2-QDDqtF2TLAFZqxG28HL6w,9555
|
|
6
|
-
quasardb/blob.hpp,sha256=YirJQeZu0sGfd-66Vc57G7DLRIU9wm_SbaA8jeXXz_8,5696
|
|
7
|
-
quasardb/cluster.cpp,sha256=jMaqH-xL5EMSM2GM8JgZTqAlC3UY38YvZDw8cNDf-Xw,2411
|
|
8
|
-
quasardb/cluster.hpp,sha256=64TzCkifDcX2pN2CUwgyEIoWEs_wOUbO5wp4tAEmAWQ,18854
|
|
9
|
-
quasardb/cmake_install.cmake,sha256=hXwTSChMB0Oeb4X8tSPHjcNihq1nNHKyLU9eeJ_DMpc,1670
|
|
10
|
-
quasardb/concepts.hpp,sha256=bdfPkYLtcf0s-fc0QDz05c2dTm_gj7y2BMSceIY4dHA,9296
|
|
11
|
-
quasardb/continuous.cpp,sha256=vNWtyingRC9g_2OQ7KjWm0L62fguQILXvQ14zu9OlLE,4417
|
|
12
|
-
quasardb/continuous.hpp,sha256=9viS4tTGUHn3OVZJiZFXhZKEIFBEvHvy77KoNlSdtmg,4221
|
|
13
|
-
quasardb/convert.hpp,sha256=xZF8j7tD84p8jiBMJjqw2lAcert2Zjc8XitI2OU81zc,1792
|
|
14
|
-
quasardb/direct_blob.hpp,sha256=xCcVLj_iuZOO2V2F_jVAYJ5W7f9jWtKrR_9SEcis5rU,3809
|
|
15
|
-
quasardb/direct_handle.hpp,sha256=MS4leMysKFf_20ydlsFfyh7l_BpVhNdgPP_ta_nVjPs,2699
|
|
16
|
-
quasardb/direct_integer.hpp,sha256=eedoutY2wb3W7C3RVATtOFKc-wigris04P62-cCKSV8,3239
|
|
17
|
-
quasardb/dispatch.hpp,sha256=Xo7WdNaXc3R9KghWTZHRzxqlXDpNVG5iyaGW5Qd7ej4,5351
|
|
18
|
-
quasardb/double.hpp,sha256=WcB2xqgXAvZAs_ADUNIVWR9-v0Lf7KCK5mnvl_k4nG0,3152
|
|
19
|
-
quasardb/entry.hpp,sha256=WGEWd8Wj4ZIDGFwiHPqK_RkUoNYHRlSHW_M_TERqL_k,9178
|
|
20
|
-
quasardb/error.hpp,sha256=VD1lT0E_a-l_DR_gOU0-Nb4jzTJpzz_d-wCXNAS1oko,10489
|
|
21
|
-
quasardb/firehose.py,sha256=HO0GjCDg3x4cpzVSH3KZ1AJhV8lK2HJyXr9tpfnNSGI,3492
|
|
22
|
-
quasardb/handle.cpp,sha256=6x7qPFvIzGNralz7MFbUtCEXi26Q2RKzNhIywoVIOKM,507
|
|
23
|
-
quasardb/handle.hpp,sha256=OoaSROIDbJMrcHQr8dy5RLJCKrObg68dVUvb-eNBr0Y,2953
|
|
24
|
-
quasardb/integer.hpp,sha256=od5QaIC262o_5JSk5vkbmNDUX3K7tFir1u5FmEPs8GE,3216
|
|
25
|
-
quasardb/libqdb_api.dylib,sha256=cx_U4RcLXQowyKP5GhtgjIdL6QqO9t00dxNjTumueDY,31593488
|
|
26
|
-
quasardb/logger.cpp,sha256=UT2dGHF_sk-UIFUAOWxdse8JlcaLnnARsZDu5AP_v4E,2950
|
|
27
|
-
quasardb/logger.hpp,sha256=CrQoHtAHsaovArH6kp_c4up0fVbj7lm4uPcSRnU9VKU,7050
|
|
28
|
-
quasardb/masked_array.hpp,sha256=QSDaKgj5PhmXJg6efPL9qSu69aEXgCmWhmshzhOLt3w,18337
|
|
29
|
-
quasardb/metrics.cpp,sha256=7xbg65UUQysbT8AIsnLOaVbBlwxQqB8sMzFgcOw4BMI,2839
|
|
30
|
-
quasardb/metrics.hpp,sha256=8LV0XOfqH0gc_gSycZlh4u_zDMXuDX3eQRGtIEhyk9Y,3421
|
|
31
|
-
quasardb/module.cpp,sha256=f705GwIRdmNO6hb_Yx-3z6QJo5WiRrRvsr54VK7iWH4,2160
|
|
32
|
-
quasardb/module.hpp,sha256=NQYsuOMyTnhSufJyAFQOXiL9znXea_ch2CnDgEKm1dY,580
|
|
33
|
-
quasardb/node.hpp,sha256=Cg8X5jp_JQnjjM47M08yQtahnelmx_agSKeLyzpiVwQ,4648
|
|
34
|
-
quasardb/numpy.cpp,sha256=U1lazDCBCCKRR3ubLCf5OaHbK-kLQAZz7jLlHWSr1gw,183
|
|
35
|
-
quasardb/numpy.hpp,sha256=u3TXtkbjxClieDPXw55oGLXxeJStU8O-wIPW9o_4T28,15179
|
|
36
|
-
quasardb/object_tracker.hpp,sha256=6TyqWLe3h1g4Uq2Cw1pG53kTnmjDiYZS6h43u4jUWiU,7426
|
|
37
|
-
quasardb/options.hpp,sha256=ufMlL8w5cxa81QiUgWaIpGaPKS7KbyGEBtg6MT7NPyc,9914
|
|
38
|
-
quasardb/perf.hpp,sha256=ctcI8tF07Pp6uEPGx1Hhw_3m3UCgRrVyeHxUW7W7ST4,11028
|
|
39
|
-
quasardb/pool.py,sha256=4IFwot-U8GEHo8h86264uVTWge44bOH_TUkoVy3Hjac,8449
|
|
40
|
-
quasardb/pytypes.hpp,sha256=Y1XmY8VeC_ePLS4IpXXDX5ulfYQ9070u4as8Ke9vP-o,6673
|
|
41
|
-
quasardb/quasardb.cpython-39-darwin.so,sha256=eKiOZhvQjfyvfuYnlahw9L7Uo52eUpmWKmj2MRYdkik,1133824
|
|
42
|
-
quasardb/query.cpp,sha256=coSAZRM7WGgT6hfq5lPQF9jMde7x6x4u8Q-LRmRF9B4,12332
|
|
43
|
-
quasardb/query.hpp,sha256=kKy9qUdRS_ibzEgrFYThrgViqH99-ixctl-Hv2dd-Ns,3265
|
|
44
|
-
quasardb/remove_cvref.hpp,sha256=kGW27WE2GvUL9sWvVdFD6NgnVF40bzeNl74ecTlyG9c,580
|
|
45
|
-
quasardb/stats.py,sha256=DKvurzur-4c5nVPjr29_Stu9mvwCynM5gGnw0gVQlt8,7387
|
|
46
|
-
quasardb/string.hpp,sha256=GU96yYyyselpq53Vib0g087YEL9-RWVaEclQnDalYuk,5911
|
|
47
|
-
quasardb/table.cpp,sha256=yj_zEXMWDi-QDhnyn48PxQ8p4qEG-yONTbzXatU_Uzw,10604
|
|
48
|
-
quasardb/table.hpp,sha256=HAt1a6_eg-L47DHiJhcKFszgcJnqrtLpNqCzHJXK7fw,12175
|
|
49
|
-
quasardb/table_cache.py,sha256=RgLOYEcgmlc5fVeOBOyjZImtYKoM1UEdzyzPc8EriQI,1507
|
|
50
|
-
quasardb/table_reader.hpp,sha256=p-YGE6vMZBa2Ujv6UkpPSabSCIKTu9zksDL1FMcARm0,6721
|
|
51
|
-
quasardb/tag.hpp,sha256=1x_EXjKEJGYTpKt-5lq77hHecNJexvxvuAX-aOIPWZ0,2655
|
|
52
|
-
quasardb/timestamp.hpp,sha256=3o3-_vOAlRAEHEv8rXjfIOHIsgEPcVFps5B-rzdOFkY,3792
|
|
53
|
-
quasardb/traits.hpp,sha256=JBF1ySxuoUM9DdSb1tZyB_lDHCXw8DEC1HlTaEXzkWQ,15764
|
|
54
|
-
quasardb/ts_iterator.hpp,sha256=tiO5dqPpQrhOT0j6v2AUY5kRYDYj-gki2eBzCiYUDSs,4202
|
|
55
|
-
quasardb/utils.cpp,sha256=QzmxqyTWPZ0XwxVS_wtTzfffZs3HI8MwwvW9vAHiT-Q,606
|
|
56
|
-
quasardb/utils.hpp,sha256=PIy4q3c70eUkMPLRX_XJZsH9D8P-zY8SzKF6sGYi9ME,4550
|
|
57
|
-
quasardb/writer.cpp,sha256=lBy9j75n-gQfb-ufJAUBDwlrpcCYZ6eve6MNDnjuIYU,19037
|
|
58
|
-
quasardb/writer.hpp,sha256=QlVuVbHg4Ld4_TsesxpyggHufb7868idQQtCu21bA0Q,12537
|
|
59
|
-
quasardb/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=m2h3_0tj3YWd7W-Ml2ve0C3MKhBxZ_HlCJQMeD_HahE,731
|
|
60
|
-
quasardb/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
|
|
61
|
-
quasardb/convert/array.hpp,sha256=25a6szW3h6By99PgLlbJLrJkwmAjn70qjGDc6TZjoOU,8879
|
|
62
|
-
quasardb/convert/point.hpp,sha256=CDAtOCbx9q6-hhPIIoa6SGM6Aj9bHiJ6tnxsMvPOC4A,11470
|
|
63
|
-
quasardb/convert/range.hpp,sha256=TgNZCgf1OwUQPKgsfLu-VzEiazFqUvMD8LYwkXwGCkU,10894
|
|
64
|
-
quasardb/convert/unicode.hpp,sha256=WZcLiC-tRTYS-IAKZ6l2AVbk9AUv3DBbEWbCiwh8MIY,15002
|
|
65
|
-
quasardb/convert/util.hpp,sha256=eJhQGs0ymPn3CT48HGHndaChJg_SCOI5U1QkLccXLdQ,560
|
|
66
|
-
quasardb/convert/value.hpp,sha256=aoMb40BcnigooffRsKd_5s6i8cFyIPhDfBLzn1Hc-gE,22685
|
|
67
|
-
quasardb/date/Makefile,sha256=JLC3ptDkypIjjtkzvufIJ3AvC7piV7avvspAIoy_sak,7419
|
|
68
|
-
quasardb/date/cmake_install.cmake,sha256=dhbSgVGBmKu_rDu3t8gNDMH0AnTgvWfrgW010oo0TWU,3246
|
|
69
|
-
quasardb/date/dateConfigVersion.cmake,sha256=PLnZWf4r8BmNkw645Jb7mJrIe2QWSJioM6O4nY0Nwj8,2418
|
|
70
|
-
quasardb/date/dateTargets.cmake,sha256=YJ_GPXSFeDNN7iShTy1Q0kkv5wdBDVkUnhBqDaq4xOg,3000
|
|
71
|
-
quasardb/date/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=m2h3_0tj3YWd7W-Ml2ve0C3MKhBxZ_HlCJQMeD_HahE,731
|
|
72
|
-
quasardb/date/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
|
|
73
|
-
quasardb/date/CMakeFiles/Export/a52b05f964b070ee926bcad51d3288af/dateTargets.cmake,sha256=aSVH_ARNZMTBnVvb3Ep8XBfBKNzo7rY_DlrjGXcWnWs,4124
|
|
74
|
-
quasardb/detail/qdb_resource.hpp,sha256=-bWSUmFB-WyUInBwcy_g0VCigOk6qeqj1pfN-vmerEs,3190
|
|
75
|
-
quasardb/detail/ts_column.hpp,sha256=SkeuudVqwIWxPEEP3cAtUjgovvEItQeCQ3EyRx1LOVo,7331
|
|
76
|
-
quasardb/extensions/__init__.py,sha256=FUHR0i62qt5NkOXn7eiMZrzWXo9mQNr1xVz3VSCa9QU,112
|
|
77
|
-
quasardb/extensions/writer.py,sha256=ZH6ldQrbH-DimuQTyk3mXS1OyaJIhvCmZTzFtG4hRfY,5735
|
|
78
|
-
quasardb/numpy/__init__.py,sha256=DKIe8702OedqPxSxgiOze15ulf7XZT4HL9X7Zif-j5c,28226
|
|
79
|
-
quasardb/pandas/__init__.py,sha256=_PBUGHATNKtIJu5F-4bW9dPfhQGnXyBKwAgq_ykXFVo,16126
|
|
80
|
-
quasardb/pybind11/Makefile,sha256=PxISfACFD3Cko-MH0P-EdFIka6dOtDpF6X30Z8iUmYw,7439
|
|
81
|
-
quasardb/pybind11/cmake_install.cmake,sha256=b9uFDssIxtpKwp4oiOF937lN6D2fmOettcCHAdbU244,1169
|
|
82
|
-
quasardb/pybind11/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=m2h3_0tj3YWd7W-Ml2ve0C3MKhBxZ_HlCJQMeD_HahE,731
|
|
83
|
-
quasardb/pybind11/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
|
|
84
|
-
quasardb/range-v3/Makefile,sha256=asPaw3DqRb72e5Fp6QWdc-XvXQGIVDI96WSfHJlGLQs,8800
|
|
85
|
-
quasardb/range-v3/cmake_install.cmake,sha256=eErTh523DewJd3fFYkOgLwO2Vexo5LjRMMpR1jjMA_w,3355
|
|
86
|
-
quasardb/range-v3/range-v3-config-version.cmake,sha256=X3UrazWN6YOziV7sKMXfydMMV1_8BziHjYAu0HMFEek,2908
|
|
87
|
-
quasardb/range-v3/range-v3-config.cmake,sha256=BZrbOr8d2SSoaASpmre_rE_3YIsZrWQF8H51o9_dqEY,3554
|
|
88
|
-
quasardb/range-v3/CMakeFiles/CMakeDirectoryInformation.cmake,sha256=m2h3_0tj3YWd7W-Ml2ve0C3MKhBxZ_HlCJQMeD_HahE,731
|
|
89
|
-
quasardb/range-v3/CMakeFiles/progress.marks,sha256=micfKpFrC27mzsskJvCzIG7wdFeL5V2byU9vP-Orhqo,2
|
|
90
|
-
quasardb/range-v3/CMakeFiles/Export/d94ef200eca10a819b5858b33e808f5b/range-v3-targets.cmake,sha256=Tj1qvJzoU1be1XbR3lp3hC3zuchFI1NrjNcFBuXR6bg,5178
|
|
91
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/DependInfo.cmake,sha256=vlXHUX5E1gZJnT4TbtAMVQT3jCwts0EmUVBA0TQaFCk,423
|
|
92
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/build.make,sha256=yxSAP80NnCa3S0RZ6jU96vPu2DeGdbX_HSXokUK0TgI,3959
|
|
93
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/cmake_clean.cmake,sha256=3b0pZoiofoRzAiY1l7OLw203ZXp-mm1FUlQHob6i7aU,160
|
|
94
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.make,sha256=Oge9eptzOB-hllw_Tye4o5wiXsIsdq1xm1GGCe0oGFM,126
|
|
95
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/compiler_depend.ts,sha256=orKrKpvHulgFBjBgzdeRvCpv0fV7cTffTdaHNqijFJg,120
|
|
96
|
-
quasardb/range-v3/CMakeFiles/range.v3.headers.dir/progress.make,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
97
|
-
quasardb/range-v3/include/range/v3/version.hpp,sha256=d-ToEdR3GnC_p_0RAeS77xL-SVx6EKHgTlWJ9PUQlSQ,586
|
|
98
|
-
quasardb/reader/ts_row.hpp,sha256=KGVjhgSS6PVHc-LSoknEWCHsclM2PazuPyNIXbek_jc,9409
|
|
99
|
-
quasardb/reader/ts_value.hpp,sha256=GnMH8SjeXY0UBffQUudgakQDMgwemgEXMbokSq-dLVI,6803
|
|
100
|
-
quasardb/utils/blob_deque.hpp,sha256=PdfYNE_wjXRd5w0OJv-qxoPixmUfEk6sL88jbBd10kM,2445
|
|
101
|
-
quasardb/utils/ostream.hpp,sha256=oqnyxurnnbiStXuFTZEewEM_SsYzB-RdUft-q2y1JcI,374
|
|
102
|
-
quasardb/utils/permutation.hpp,sha256=7iyUNZQLxUEyOliRKwoVzO9pzG_b5Id4JjAHXAy5I50,1502
|
|
103
|
-
quasardb/utils/stable_sort.hpp,sha256=Z1R3mWl78_Zh4O4bxCXQJHBCd7m71G-qFRcK-ll07qc,465
|
|
104
|
-
quasardb/utils/unzip_view.hpp,sha256=pkwk_BTYOm_9HOjyf6Z2W2Udc9he5EJKcIbbrYcUzok,2387
|
|
105
|
-
quasardb-3.14.2.dev1.dist-info/LICENSE.md,sha256=_drOadIrIX8mzUZcnTJBTpUQih5gwdRAGK8ZKanYD6k,1467
|
|
106
|
-
quasardb-3.14.2.dev1.dist-info/METADATA,sha256=vChxMwzIDrM_UlCOWA4VENjRpwwvZ9rdJp5p8kPDBzM,1461
|
|
107
|
-
quasardb-3.14.2.dev1.dist-info/WHEEL,sha256=C_UN2A-Q94yg5uF00Lizg2aQEZjfzpeyFE_wdLoeYLk,108
|
|
108
|
-
quasardb-3.14.2.dev1.dist-info/top_level.txt,sha256=wlprix4hCywuF1PkgKWYdZeJKq_kgJOqkAvukm_sZQ8,9
|
|
109
|
-
quasardb-3.14.2.dev1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|