duckdb 0.3.2-dev597.0 → 0.3.2-dev633.0
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.
- package/package.json +1 -1
- package/src/duckdb.cpp +285 -576
- package/src/duckdb.hpp +15 -13
package/src/duckdb.cpp
CHANGED
|
@@ -24857,7 +24857,7 @@ public:
|
|
|
24857
24857
|
idx_t AppendToBlock(RowDataBlock &block, BufferHandle &handle, vector<BlockAppendEntry> &append_entries,
|
|
24858
24858
|
idx_t remaining, idx_t entry_sizes[]);
|
|
24859
24859
|
vector<unique_ptr<BufferHandle>> Build(idx_t added_count, data_ptr_t key_locations[], idx_t entry_sizes[],
|
|
24860
|
-
const SelectionVector *sel =
|
|
24860
|
+
const SelectionVector *sel = FlatVector::IncrementalSelectionVector());
|
|
24861
24861
|
|
|
24862
24862
|
void Merge(RowDataCollection &other);
|
|
24863
24863
|
|
|
@@ -25172,7 +25172,7 @@ static void HeapGatherListVector(Vector &v, const idx_t vcount, const SelectionV
|
|
|
25172
25172
|
}
|
|
25173
25173
|
|
|
25174
25174
|
// now deserialize and add to listvector
|
|
25175
|
-
RowOperations::HeapGather(list_vec_to_append, next, FlatVector::
|
|
25175
|
+
RowOperations::HeapGather(list_vec_to_append, next, *FlatVector::IncrementalSelectionVector(), 0,
|
|
25176
25176
|
list_entry_locations, nullptr);
|
|
25177
25177
|
ListVector::Append(v, list_vec_to_append, next);
|
|
25178
25178
|
|
|
@@ -25339,7 +25339,7 @@ static void ComputeListEntrySizes(Vector &v, VectorData &vdata, idx_t entry_size
|
|
|
25339
25339
|
// compute and add to the total
|
|
25340
25340
|
std::fill_n(list_entry_sizes, next, 0);
|
|
25341
25341
|
RowOperations::ComputeEntrySizes(child_vector, list_entry_sizes, next, next,
|
|
25342
|
-
FlatVector::
|
|
25342
|
+
*FlatVector::IncrementalSelectionVector(), entry_offset);
|
|
25343
25343
|
for (idx_t list_idx = 0; list_idx < next; list_idx++) {
|
|
25344
25344
|
entry_sizes[i] += list_entry_sizes[list_idx];
|
|
25345
25345
|
}
|
|
@@ -25601,7 +25601,7 @@ static void HeapScatterListVector(Vector &v, idx_t vcount, const SelectionVector
|
|
|
25601
25601
|
// variable size list entries: compute entry sizes and set list entry locations
|
|
25602
25602
|
std::fill_n(list_entry_sizes, next, 0);
|
|
25603
25603
|
RowOperations::ComputeEntrySizes(child_vector, list_entry_sizes, next, next,
|
|
25604
|
-
FlatVector::
|
|
25604
|
+
*FlatVector::IncrementalSelectionVector(), entry_offset);
|
|
25605
25605
|
for (idx_t entry_idx = 0; entry_idx < next; entry_idx++) {
|
|
25606
25606
|
list_entry_locations[entry_idx] = key_locations[i];
|
|
25607
25607
|
key_locations[i] += list_entry_sizes[entry_idx];
|
|
@@ -25612,8 +25612,8 @@ static void HeapScatterListVector(Vector &v, idx_t vcount, const SelectionVector
|
|
|
25612
25612
|
|
|
25613
25613
|
// now serialize to the locations
|
|
25614
25614
|
RowOperations::HeapScatter(child_vector, ListVector::GetListSize(v),
|
|
25615
|
-
FlatVector::
|
|
25616
|
-
entry_offset);
|
|
25615
|
+
*FlatVector::IncrementalSelectionVector(), next, 0, list_entry_locations,
|
|
25616
|
+
nullptr, entry_offset);
|
|
25617
25617
|
|
|
25618
25618
|
// update for next iteration
|
|
25619
25619
|
entry_remaining -= next;
|
|
@@ -26084,7 +26084,7 @@ void RadixScatterListVector(Vector &v, VectorData &vdata, const SelectionVector
|
|
|
26084
26084
|
// denote that the list is not empty with a 1
|
|
26085
26085
|
key_locations[i][0] = 1;
|
|
26086
26086
|
key_locations[i]++;
|
|
26087
|
-
RowOperations::RadixScatter(child_vector, list_size, FlatVector::
|
|
26087
|
+
RowOperations::RadixScatter(child_vector, list_size, *FlatVector::IncrementalSelectionVector(), 1,
|
|
26088
26088
|
key_locations + i, false, true, false, prefix_len, width - 1,
|
|
26089
26089
|
list_entry.offset);
|
|
26090
26090
|
} else {
|
|
@@ -26115,7 +26115,7 @@ void RadixScatterListVector(Vector &v, VectorData &vdata, const SelectionVector
|
|
|
26115
26115
|
// denote that the list is not empty with a 1
|
|
26116
26116
|
key_locations[i][0] = 1;
|
|
26117
26117
|
key_locations[i]++;
|
|
26118
|
-
RowOperations::RadixScatter(child_vector, list_size, FlatVector::
|
|
26118
|
+
RowOperations::RadixScatter(child_vector, list_size, *FlatVector::IncrementalSelectionVector(), 1,
|
|
26119
26119
|
key_locations + i, false, true, false, prefix_len, width - 1,
|
|
26120
26120
|
list_entry.offset);
|
|
26121
26121
|
} else {
|
|
@@ -26158,7 +26158,7 @@ void RadixScatterStructVector(Vector &v, VectorData &vdata, idx_t vcount, const
|
|
|
26158
26158
|
}
|
|
26159
26159
|
// serialize the struct
|
|
26160
26160
|
auto &child_vector = *StructVector::GetEntries(v)[0];
|
|
26161
|
-
RowOperations::RadixScatter(child_vector, vcount, FlatVector::
|
|
26161
|
+
RowOperations::RadixScatter(child_vector, vcount, *FlatVector::IncrementalSelectionVector(), add_count,
|
|
26162
26162
|
key_locations, false, true, false, prefix_len, width, offset);
|
|
26163
26163
|
// invert bits if desc
|
|
26164
26164
|
if (desc) {
|
|
@@ -27779,7 +27779,7 @@ public:
|
|
|
27779
27779
|
|
|
27780
27780
|
private:
|
|
27781
27781
|
//! Selection vector and addresses for scattering the data to rows
|
|
27782
|
-
const SelectionVector &sel_ptr = FlatVector::
|
|
27782
|
+
const SelectionVector &sel_ptr = *FlatVector::IncrementalSelectionVector();
|
|
27783
27783
|
Vector addresses = Vector(LogicalType::POINTER);
|
|
27784
27784
|
};
|
|
27785
27785
|
|
|
@@ -30060,8 +30060,8 @@ void PayloadScanner::Scan(DataChunk &chunk) {
|
|
|
30060
30060
|
// Deserialize the payload data
|
|
30061
30061
|
for (idx_t col_idx = 0; col_idx < sorted_data.layout.ColumnCount(); col_idx++) {
|
|
30062
30062
|
const auto col_offset = sorted_data.layout.GetOffsets()[col_idx];
|
|
30063
|
-
RowOperations::Gather(addresses, FlatVector::
|
|
30064
|
-
FlatVector::
|
|
30063
|
+
RowOperations::Gather(addresses, *FlatVector::IncrementalSelectionVector(), chunk.data[col_idx],
|
|
30064
|
+
*FlatVector::IncrementalSelectionVector(), count, col_offset, col_idx);
|
|
30065
30065
|
}
|
|
30066
30066
|
chunk.SetCardinality(count);
|
|
30067
30067
|
chunk.Verify();
|
|
@@ -35179,7 +35179,9 @@ enum class DatePartSpecifier : uint8_t {
|
|
|
35179
35179
|
WEEK,
|
|
35180
35180
|
QUARTER,
|
|
35181
35181
|
DOY,
|
|
35182
|
-
YEARWEEK
|
|
35182
|
+
YEARWEEK,
|
|
35183
|
+
ERA,
|
|
35184
|
+
OFFSET
|
|
35183
35185
|
};
|
|
35184
35186
|
|
|
35185
35187
|
DUCKDB_API bool TryGetDatePartSpecifier(const string &specifier, DatePartSpecifier &result);
|
|
@@ -39226,7 +39228,7 @@ void Vector::Orrify(idx_t count, VectorData &data) {
|
|
|
39226
39228
|
break;
|
|
39227
39229
|
default:
|
|
39228
39230
|
Normalify(count);
|
|
39229
|
-
data.sel =
|
|
39231
|
+
data.sel = FlatVector::IncrementalSelectionVector(count, data.owned_sel);
|
|
39230
39232
|
data.data = FlatVector::GetData(*this);
|
|
39231
39233
|
data.validity = FlatVector::Validity(*this);
|
|
39232
39234
|
break;
|
|
@@ -39417,7 +39419,10 @@ void Vector::UTFVerify(const SelectionVector &sel, idx_t count) {
|
|
|
39417
39419
|
}
|
|
39418
39420
|
|
|
39419
39421
|
void Vector::UTFVerify(idx_t count) {
|
|
39420
|
-
|
|
39422
|
+
SelectionVector owned_sel;
|
|
39423
|
+
auto flat_sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
39424
|
+
|
|
39425
|
+
UTFVerify(*flat_sel, count);
|
|
39421
39426
|
}
|
|
39422
39427
|
|
|
39423
39428
|
void Vector::Verify(const SelectionVector &sel, idx_t count) {
|
|
@@ -39557,15 +39562,9 @@ void Vector::Verify(const SelectionVector &sel, idx_t count) {
|
|
|
39557
39562
|
}
|
|
39558
39563
|
|
|
39559
39564
|
void Vector::Verify(idx_t count) {
|
|
39560
|
-
|
|
39561
|
-
|
|
39562
|
-
|
|
39563
|
-
selection_vector.set_index(i, i);
|
|
39564
|
-
}
|
|
39565
|
-
Verify(selection_vector, count);
|
|
39566
|
-
} else {
|
|
39567
|
-
Verify(FlatVector::INCREMENTAL_SELECTION_VECTOR, count);
|
|
39568
|
-
}
|
|
39565
|
+
SelectionVector owned_sel;
|
|
39566
|
+
auto flat_sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
39567
|
+
Verify(*flat_sel, count);
|
|
39569
39568
|
}
|
|
39570
39569
|
|
|
39571
39570
|
void FlatVector::SetNull(Vector &vector, idx_t idx, bool is_null) {
|
|
@@ -39593,9 +39592,20 @@ void ConstantVector::SetNull(Vector &vector, bool is_null) {
|
|
|
39593
39592
|
}
|
|
39594
39593
|
}
|
|
39595
39594
|
|
|
39595
|
+
const SelectionVector *FlatVector::IncrementalSelectionVector(idx_t count, SelectionVector &owned_sel) {
|
|
39596
|
+
if (count <= STANDARD_VECTOR_SIZE) {
|
|
39597
|
+
return FlatVector::IncrementalSelectionVector();
|
|
39598
|
+
}
|
|
39599
|
+
owned_sel.Initialize(count);
|
|
39600
|
+
for (idx_t i = 0; i < count; i++) {
|
|
39601
|
+
owned_sel.set_index(i, i);
|
|
39602
|
+
}
|
|
39603
|
+
return &owned_sel;
|
|
39604
|
+
}
|
|
39605
|
+
|
|
39596
39606
|
const SelectionVector *ConstantVector::ZeroSelectionVector(idx_t count, SelectionVector &owned_sel) {
|
|
39597
39607
|
if (count <= STANDARD_VECTOR_SIZE) {
|
|
39598
|
-
return
|
|
39608
|
+
return ConstantVector::ZeroSelectionVector();
|
|
39599
39609
|
}
|
|
39600
39610
|
owned_sel.Initialize(count);
|
|
39601
39611
|
for (idx_t i = 0; i < count; i++) {
|
|
@@ -40208,459 +40218,31 @@ const LogicalType &VectorCache::GetType() const {
|
|
|
40208
40218
|
|
|
40209
40219
|
namespace duckdb {
|
|
40210
40220
|
|
|
40211
|
-
|
|
40212
|
-
|
|
40221
|
+
// We disable Wexit-time-destructors here
|
|
40222
|
+
// Otherwise we get a warning about the two selection vectors (ZERO/INCREMENTAL_SELECTION_VECTOR)
|
|
40223
|
+
// While the SelectionVector does have a non-trivial destructor
|
|
40224
|
+
// This only does a memory de-allocation if the selection vectors own their data (i.e. selection_data is not null)
|
|
40225
|
+
// In the case of the FlatVector/ConstantVector, they point towards static regions of memory
|
|
40226
|
+
// Hence in this case these cause no problems, as the destructors are non-trivial but effectively nops
|
|
40227
|
+
#ifdef __clang__
|
|
40228
|
+
#pragma clang diagnostic push
|
|
40229
|
+
#pragma clang diagnostic ignored "-Wexit-time-destructors"
|
|
40230
|
+
#endif
|
|
40231
|
+
|
|
40232
|
+
const SelectionVector *ConstantVector::ZeroSelectionVector() {
|
|
40233
|
+
static const SelectionVector ZERO_SELECTION_VECTOR = SelectionVector((sel_t *)ConstantVector::ZERO_VECTOR);
|
|
40234
|
+
return &ZERO_SELECTION_VECTOR;
|
|
40235
|
+
}
|
|
40236
|
+
|
|
40237
|
+
const SelectionVector *FlatVector::IncrementalSelectionVector() {
|
|
40238
|
+
static const SelectionVector INCREMENTAL_SELECTION_VECTOR;
|
|
40239
|
+
return &INCREMENTAL_SELECTION_VECTOR;
|
|
40240
|
+
}
|
|
40241
|
+
|
|
40213
40242
|
const sel_t ConstantVector::ZERO_VECTOR[STANDARD_VECTOR_SIZE] = {0};
|
|
40214
40243
|
|
|
40215
|
-
#
|
|
40216
|
-
|
|
40217
|
-
#elif STANDARD_VECTOR_SIZE == 4
|
|
40218
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {0, 1, 2, 3};
|
|
40219
|
-
#elif STANDARD_VECTOR_SIZE == 8
|
|
40220
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {0, 1, 2, 3, 4, 5, 6, 7};
|
|
40221
|
-
#elif STANDARD_VECTOR_SIZE == 16
|
|
40222
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
|
|
40223
|
-
#elif STANDARD_VECTOR_SIZE == 32
|
|
40224
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
40225
|
-
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
|
|
40226
|
-
#elif STANDARD_VECTOR_SIZE == 64
|
|
40227
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
40228
|
-
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
|
40229
|
-
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
|
40230
|
-
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63};
|
|
40231
|
-
#elif STANDARD_VECTOR_SIZE == 128
|
|
40232
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40233
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
|
40234
|
-
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
|
|
40235
|
-
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
|
|
40236
|
-
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
|
|
40237
|
-
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
|
|
40238
|
-
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127};
|
|
40239
|
-
#elif STANDARD_VECTOR_SIZE == 256
|
|
40240
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40241
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
|
40242
|
-
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
|
|
40243
|
-
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
|
|
40244
|
-
66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
|
|
40245
|
-
88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
|
|
40246
|
-
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
|
|
40247
|
-
132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
|
|
40248
|
-
154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
|
|
40249
|
-
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
|
|
40250
|
-
198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
|
|
40251
|
-
220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
|
|
40252
|
-
242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255};
|
|
40253
|
-
#elif STANDARD_VECTOR_SIZE == 512
|
|
40254
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40255
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
|
40256
|
-
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
|
|
40257
|
-
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
|
|
40258
|
-
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
|
|
40259
|
-
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
|
|
40260
|
-
115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
|
|
40261
|
-
138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
|
|
40262
|
-
161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
|
|
40263
|
-
184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
|
|
40264
|
-
207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
|
|
40265
|
-
230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
|
|
40266
|
-
253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
|
|
40267
|
-
276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
|
|
40268
|
-
299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
|
|
40269
|
-
322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
|
|
40270
|
-
345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
|
|
40271
|
-
368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
|
|
40272
|
-
391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
|
|
40273
|
-
414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
|
|
40274
|
-
437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
|
|
40275
|
-
460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
|
|
40276
|
-
483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
|
|
40277
|
-
506, 507, 508, 509, 510, 511};
|
|
40278
|
-
#elif STANDARD_VECTOR_SIZE == 1024
|
|
40279
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40280
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
|
|
40281
|
-
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
40282
|
-
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
|
|
40283
|
-
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
|
|
40284
|
-
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
|
|
40285
|
-
95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
|
|
40286
|
-
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
|
|
40287
|
-
133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
|
|
40288
|
-
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
|
|
40289
|
-
171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
|
|
40290
|
-
190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
|
|
40291
|
-
209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
|
|
40292
|
-
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
|
|
40293
|
-
247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
|
|
40294
|
-
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
|
40295
|
-
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
|
|
40296
|
-
304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
|
|
40297
|
-
323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
|
|
40298
|
-
342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
|
|
40299
|
-
361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
|
|
40300
|
-
380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
|
|
40301
|
-
399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
|
|
40302
|
-
418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
|
|
40303
|
-
437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
|
|
40304
|
-
456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
|
|
40305
|
-
475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
|
|
40306
|
-
494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
|
40307
|
-
513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
|
|
40308
|
-
532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
|
|
40309
|
-
551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
|
|
40310
|
-
570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
|
|
40311
|
-
589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
|
|
40312
|
-
608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
|
|
40313
|
-
627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
|
|
40314
|
-
646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
|
|
40315
|
-
665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683,
|
|
40316
|
-
684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
|
|
40317
|
-
703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721,
|
|
40318
|
-
722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
|
|
40319
|
-
741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
|
|
40320
|
-
760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778,
|
|
40321
|
-
779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
|
|
40322
|
-
798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816,
|
|
40323
|
-
817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835,
|
|
40324
|
-
836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
|
|
40325
|
-
855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
|
|
40326
|
-
874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
|
|
40327
|
-
893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
|
|
40328
|
-
912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930,
|
|
40329
|
-
931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
|
|
40330
|
-
950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
|
|
40331
|
-
969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
|
|
40332
|
-
988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
|
|
40333
|
-
1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023};
|
|
40334
|
-
#elif STANDARD_VECTOR_SIZE == 2048
|
|
40335
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40336
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
|
|
40337
|
-
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
40338
|
-
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
|
|
40339
|
-
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
|
|
40340
|
-
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
|
|
40341
|
-
95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
|
|
40342
|
-
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
|
|
40343
|
-
133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
|
|
40344
|
-
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
|
|
40345
|
-
171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
|
|
40346
|
-
190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
|
|
40347
|
-
209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
|
|
40348
|
-
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
|
|
40349
|
-
247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
|
|
40350
|
-
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
|
40351
|
-
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
|
|
40352
|
-
304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
|
|
40353
|
-
323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
|
|
40354
|
-
342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
|
|
40355
|
-
361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
|
|
40356
|
-
380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
|
|
40357
|
-
399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
|
|
40358
|
-
418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
|
|
40359
|
-
437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
|
|
40360
|
-
456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
|
|
40361
|
-
475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
|
|
40362
|
-
494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
|
40363
|
-
513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
|
|
40364
|
-
532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
|
|
40365
|
-
551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
|
|
40366
|
-
570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
|
|
40367
|
-
589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
|
|
40368
|
-
608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
|
|
40369
|
-
627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
|
|
40370
|
-
646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
|
|
40371
|
-
665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683,
|
|
40372
|
-
684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
|
|
40373
|
-
703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721,
|
|
40374
|
-
722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
|
|
40375
|
-
741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
|
|
40376
|
-
760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778,
|
|
40377
|
-
779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
|
|
40378
|
-
798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816,
|
|
40379
|
-
817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835,
|
|
40380
|
-
836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
|
|
40381
|
-
855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
|
|
40382
|
-
874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
|
|
40383
|
-
893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
|
|
40384
|
-
912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930,
|
|
40385
|
-
931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
|
|
40386
|
-
950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
|
|
40387
|
-
969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
|
|
40388
|
-
988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
|
|
40389
|
-
1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
|
|
40390
|
-
1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
|
|
40391
|
-
1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
|
|
40392
|
-
1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
|
|
40393
|
-
1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
|
|
40394
|
-
1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
|
|
40395
|
-
1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
|
|
40396
|
-
1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158,
|
|
40397
|
-
1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
|
|
40398
|
-
1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
|
|
40399
|
-
1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
|
|
40400
|
-
1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234,
|
|
40401
|
-
1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
|
|
40402
|
-
1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
|
|
40403
|
-
1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
|
|
40404
|
-
1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
|
|
40405
|
-
1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
|
|
40406
|
-
1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
|
|
40407
|
-
1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
|
|
40408
|
-
1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
|
|
40409
|
-
1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
|
|
40410
|
-
1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
|
|
40411
|
-
1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443,
|
|
40412
|
-
1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462,
|
|
40413
|
-
1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481,
|
|
40414
|
-
1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
|
|
40415
|
-
1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
|
|
40416
|
-
1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538,
|
|
40417
|
-
1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557,
|
|
40418
|
-
1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
|
|
40419
|
-
1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
|
|
40420
|
-
1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
|
|
40421
|
-
1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
|
|
40422
|
-
1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
|
|
40423
|
-
1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
|
|
40424
|
-
1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
|
|
40425
|
-
1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709,
|
|
40426
|
-
1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
|
|
40427
|
-
1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
|
|
40428
|
-
1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
|
|
40429
|
-
1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
|
|
40430
|
-
1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804,
|
|
40431
|
-
1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
|
|
40432
|
-
1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842,
|
|
40433
|
-
1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
|
|
40434
|
-
1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
|
|
40435
|
-
1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
|
|
40436
|
-
1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
|
|
40437
|
-
1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
|
|
40438
|
-
1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
|
|
40439
|
-
1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
|
|
40440
|
-
1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
|
40441
|
-
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
|
|
40442
|
-
2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,
|
|
40443
|
-
2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047};
|
|
40444
|
-
#elif STANDARD_VECTOR_SIZE == 4096
|
|
40445
|
-
const sel_t FlatVector::INCREMENTAL_VECTOR[] = {
|
|
40446
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
|
|
40447
|
-
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
|
40448
|
-
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
|
|
40449
|
-
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
|
|
40450
|
-
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
|
|
40451
|
-
95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
|
|
40452
|
-
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
|
|
40453
|
-
133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
|
|
40454
|
-
152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
|
|
40455
|
-
171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
|
|
40456
|
-
190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
|
|
40457
|
-
209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
|
|
40458
|
-
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
|
|
40459
|
-
247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
|
|
40460
|
-
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
|
40461
|
-
285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
|
|
40462
|
-
304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
|
|
40463
|
-
323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
|
|
40464
|
-
342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
|
|
40465
|
-
361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
|
|
40466
|
-
380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
|
|
40467
|
-
399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
|
|
40468
|
-
418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
|
|
40469
|
-
437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
|
|
40470
|
-
456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
|
|
40471
|
-
475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
|
|
40472
|
-
494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
|
40473
|
-
513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
|
|
40474
|
-
532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
|
|
40475
|
-
551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
|
|
40476
|
-
570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
|
|
40477
|
-
589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
|
|
40478
|
-
608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
|
|
40479
|
-
627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
|
|
40480
|
-
646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
|
|
40481
|
-
665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683,
|
|
40482
|
-
684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
|
|
40483
|
-
703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721,
|
|
40484
|
-
722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
|
|
40485
|
-
741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759,
|
|
40486
|
-
760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778,
|
|
40487
|
-
779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
|
|
40488
|
-
798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816,
|
|
40489
|
-
817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835,
|
|
40490
|
-
836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
|
|
40491
|
-
855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
|
|
40492
|
-
874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
|
|
40493
|
-
893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
|
|
40494
|
-
912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930,
|
|
40495
|
-
931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
|
|
40496
|
-
950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
|
|
40497
|
-
969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
|
|
40498
|
-
988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
|
|
40499
|
-
1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
|
|
40500
|
-
1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
|
|
40501
|
-
1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
|
|
40502
|
-
1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
|
|
40503
|
-
1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
|
|
40504
|
-
1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
|
|
40505
|
-
1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
|
|
40506
|
-
1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158,
|
|
40507
|
-
1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
|
|
40508
|
-
1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
|
|
40509
|
-
1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
|
|
40510
|
-
1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234,
|
|
40511
|
-
1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
|
|
40512
|
-
1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
|
|
40513
|
-
1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
|
|
40514
|
-
1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
|
|
40515
|
-
1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
|
|
40516
|
-
1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
|
|
40517
|
-
1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
|
|
40518
|
-
1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
|
|
40519
|
-
1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
|
|
40520
|
-
1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
|
|
40521
|
-
1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443,
|
|
40522
|
-
1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462,
|
|
40523
|
-
1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481,
|
|
40524
|
-
1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
|
|
40525
|
-
1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
|
|
40526
|
-
1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538,
|
|
40527
|
-
1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557,
|
|
40528
|
-
1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
|
|
40529
|
-
1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
|
|
40530
|
-
1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
|
|
40531
|
-
1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
|
|
40532
|
-
1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
|
|
40533
|
-
1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
|
|
40534
|
-
1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
|
|
40535
|
-
1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709,
|
|
40536
|
-
1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
|
|
40537
|
-
1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
|
|
40538
|
-
1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
|
|
40539
|
-
1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
|
|
40540
|
-
1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804,
|
|
40541
|
-
1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
|
|
40542
|
-
1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842,
|
|
40543
|
-
1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
|
|
40544
|
-
1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
|
|
40545
|
-
1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
|
|
40546
|
-
1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
|
|
40547
|
-
1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
|
|
40548
|
-
1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
|
|
40549
|
-
1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
|
|
40550
|
-
1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
|
|
40551
|
-
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
|
|
40552
|
-
2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,
|
|
40553
|
-
2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051,
|
|
40554
|
-
2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070,
|
|
40555
|
-
2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089,
|
|
40556
|
-
2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
|
|
40557
|
-
2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
|
|
40558
|
-
2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
|
|
40559
|
-
2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
|
|
40560
|
-
2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184,
|
|
40561
|
-
2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203,
|
|
40562
|
-
2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222,
|
|
40563
|
-
2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241,
|
|
40564
|
-
2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260,
|
|
40565
|
-
2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279,
|
|
40566
|
-
2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298,
|
|
40567
|
-
2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317,
|
|
40568
|
-
2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336,
|
|
40569
|
-
2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355,
|
|
40570
|
-
2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374,
|
|
40571
|
-
2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393,
|
|
40572
|
-
2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412,
|
|
40573
|
-
2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431,
|
|
40574
|
-
2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450,
|
|
40575
|
-
2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469,
|
|
40576
|
-
2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488,
|
|
40577
|
-
2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507,
|
|
40578
|
-
2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526,
|
|
40579
|
-
2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545,
|
|
40580
|
-
2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564,
|
|
40581
|
-
2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
|
|
40582
|
-
2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602,
|
|
40583
|
-
2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621,
|
|
40584
|
-
2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640,
|
|
40585
|
-
2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659,
|
|
40586
|
-
2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678,
|
|
40587
|
-
2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697,
|
|
40588
|
-
2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716,
|
|
40589
|
-
2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735,
|
|
40590
|
-
2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754,
|
|
40591
|
-
2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773,
|
|
40592
|
-
2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792,
|
|
40593
|
-
2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811,
|
|
40594
|
-
2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830,
|
|
40595
|
-
2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849,
|
|
40596
|
-
2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868,
|
|
40597
|
-
2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887,
|
|
40598
|
-
2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906,
|
|
40599
|
-
2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925,
|
|
40600
|
-
2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944,
|
|
40601
|
-
2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963,
|
|
40602
|
-
2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982,
|
|
40603
|
-
2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001,
|
|
40604
|
-
3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020,
|
|
40605
|
-
3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039,
|
|
40606
|
-
3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058,
|
|
40607
|
-
3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077,
|
|
40608
|
-
3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096,
|
|
40609
|
-
3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115,
|
|
40610
|
-
3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134,
|
|
40611
|
-
3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153,
|
|
40612
|
-
3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172,
|
|
40613
|
-
3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191,
|
|
40614
|
-
3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210,
|
|
40615
|
-
3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229,
|
|
40616
|
-
3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248,
|
|
40617
|
-
3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267,
|
|
40618
|
-
3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286,
|
|
40619
|
-
3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305,
|
|
40620
|
-
3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324,
|
|
40621
|
-
3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343,
|
|
40622
|
-
3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362,
|
|
40623
|
-
3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381,
|
|
40624
|
-
3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400,
|
|
40625
|
-
3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419,
|
|
40626
|
-
3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438,
|
|
40627
|
-
3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457,
|
|
40628
|
-
3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476,
|
|
40629
|
-
3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495,
|
|
40630
|
-
3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514,
|
|
40631
|
-
3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533,
|
|
40632
|
-
3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552,
|
|
40633
|
-
3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571,
|
|
40634
|
-
3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590,
|
|
40635
|
-
3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609,
|
|
40636
|
-
3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628,
|
|
40637
|
-
3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647,
|
|
40638
|
-
3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666,
|
|
40639
|
-
3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685,
|
|
40640
|
-
3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704,
|
|
40641
|
-
3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723,
|
|
40642
|
-
3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742,
|
|
40643
|
-
3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761,
|
|
40644
|
-
3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780,
|
|
40645
|
-
3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799,
|
|
40646
|
-
3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818,
|
|
40647
|
-
3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837,
|
|
40648
|
-
3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856,
|
|
40649
|
-
3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875,
|
|
40650
|
-
3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894,
|
|
40651
|
-
3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913,
|
|
40652
|
-
3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932,
|
|
40653
|
-
3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951,
|
|
40654
|
-
3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970,
|
|
40655
|
-
3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989,
|
|
40656
|
-
3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008,
|
|
40657
|
-
4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027,
|
|
40658
|
-
4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046,
|
|
40659
|
-
4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
|
|
40660
|
-
4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084,
|
|
40661
|
-
4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095};
|
|
40662
|
-
#else
|
|
40663
|
-
#error Unsupported VECTOR_SIZE!
|
|
40244
|
+
#ifdef __clang__
|
|
40245
|
+
#pragma clang diagnostic pop
|
|
40664
40246
|
#endif
|
|
40665
40247
|
|
|
40666
40248
|
} // namespace duckdb
|
|
@@ -40839,31 +40421,40 @@ constexpr const LogicalTypeId LogicalType::VARCHAR;
|
|
|
40839
40421
|
|
|
40840
40422
|
constexpr const LogicalTypeId LogicalType::BLOB;
|
|
40841
40423
|
constexpr const LogicalTypeId LogicalType::INTERVAL;
|
|
40424
|
+
constexpr const LogicalTypeId LogicalType::ROW_TYPE;
|
|
40842
40425
|
|
|
40843
40426
|
// TODO these are incomplete and should maybe not exist as such
|
|
40844
40427
|
constexpr const LogicalTypeId LogicalType::TABLE;
|
|
40845
40428
|
|
|
40846
40429
|
constexpr const LogicalTypeId LogicalType::ANY;
|
|
40847
40430
|
|
|
40848
|
-
const vector<LogicalType> LogicalType::
|
|
40849
|
-
|
|
40850
|
-
|
|
40851
|
-
|
|
40852
|
-
|
|
40853
|
-
|
|
40854
|
-
|
|
40855
|
-
|
|
40856
|
-
|
|
40857
|
-
|
|
40858
|
-
|
|
40859
|
-
|
|
40860
|
-
|
|
40861
|
-
|
|
40862
|
-
|
|
40863
|
-
|
|
40864
|
-
|
|
40865
|
-
|
|
40866
|
-
|
|
40431
|
+
const vector<LogicalType> LogicalType::Numeric() {
|
|
40432
|
+
vector<LogicalType> types = {LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER,
|
|
40433
|
+
LogicalType::BIGINT, LogicalType::HUGEINT, LogicalType::FLOAT,
|
|
40434
|
+
LogicalType::DOUBLE, LogicalTypeId::DECIMAL, LogicalType::UTINYINT,
|
|
40435
|
+
LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT};
|
|
40436
|
+
return types;
|
|
40437
|
+
}
|
|
40438
|
+
|
|
40439
|
+
const vector<LogicalType> LogicalType::Integral() {
|
|
40440
|
+
vector<LogicalType> types = {LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER,
|
|
40441
|
+
LogicalType::BIGINT, LogicalType::HUGEINT, LogicalType::UTINYINT,
|
|
40442
|
+
LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT};
|
|
40443
|
+
return types;
|
|
40444
|
+
}
|
|
40445
|
+
|
|
40446
|
+
const vector<LogicalType> LogicalType::AllTypes() {
|
|
40447
|
+
vector<LogicalType> types = {
|
|
40448
|
+
LogicalType::BOOLEAN, LogicalType::TINYINT, LogicalType::SMALLINT, LogicalType::INTEGER,
|
|
40449
|
+
LogicalType::BIGINT, LogicalType::DATE, LogicalType::TIMESTAMP, LogicalType::DOUBLE,
|
|
40450
|
+
LogicalType::FLOAT, LogicalType::VARCHAR, LogicalType::BLOB, LogicalType::INTERVAL,
|
|
40451
|
+
LogicalType::HUGEINT, LogicalTypeId::DECIMAL, LogicalType::UTINYINT, LogicalType::USMALLINT,
|
|
40452
|
+
LogicalType::UINTEGER, LogicalType::UBIGINT, LogicalType::TIME, LogicalTypeId::LIST,
|
|
40453
|
+
LogicalTypeId::STRUCT, LogicalType::DATE_TZ, LogicalType::TIME_TZ, LogicalType::TIMESTAMP_TZ,
|
|
40454
|
+
LogicalTypeId::MAP, LogicalType::UUID};
|
|
40455
|
+
return types;
|
|
40456
|
+
}
|
|
40457
|
+
|
|
40867
40458
|
const PhysicalType ROW_TYPE = PhysicalType::INT64;
|
|
40868
40459
|
|
|
40869
40460
|
// LCOV_EXCL_START
|
|
@@ -43232,8 +42823,9 @@ static idx_t DistinctSelectConstant(Vector &left, Vector &right, const Selection
|
|
|
43232
42823
|
template <class LEFT_TYPE, class RIGHT_TYPE, class OP, bool DENSE>
|
|
43233
42824
|
static idx_t DistinctSelect(Vector &left, Vector &right, idx_t vcount, const SelectionVector *sel, idx_t count,
|
|
43234
42825
|
SelectionVector *true_sel, SelectionVector *false_sel) {
|
|
42826
|
+
SelectionVector owned_sel;
|
|
43235
42827
|
if (!sel) {
|
|
43236
|
-
sel =
|
|
42828
|
+
sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
43237
42829
|
}
|
|
43238
42830
|
if (left.GetVectorType() == VectorType::CONSTANT_VECTOR && right.GetVectorType() == VectorType::CONSTANT_VECTOR) {
|
|
43239
42831
|
return DistinctSelectConstant<LEFT_TYPE, RIGHT_TYPE, OP>(left, right, sel, count, true_sel, false_sel);
|
|
@@ -43569,8 +43161,9 @@ template <class OP, bool DENSE, class OPNESTED>
|
|
|
43569
43161
|
static idx_t DistinctSelectNested(Vector &left, Vector &right, idx_t vcount, const SelectionVector *sel, idx_t count,
|
|
43570
43162
|
SelectionVector *true_sel, SelectionVector *false_sel) {
|
|
43571
43163
|
// We need multiple, real selections
|
|
43164
|
+
SelectionVector owned_sel;
|
|
43572
43165
|
if (!sel) {
|
|
43573
|
-
sel =
|
|
43166
|
+
sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
43574
43167
|
}
|
|
43575
43168
|
|
|
43576
43169
|
SelectionVector true_vec;
|
|
@@ -45497,8 +45090,9 @@ void VectorOperations::Copy(const Vector &source, Vector &target, idx_t source_c
|
|
|
45497
45090
|
break;
|
|
45498
45091
|
}
|
|
45499
45092
|
case VectorType::FLAT_VECTOR: {
|
|
45500
|
-
|
|
45501
|
-
|
|
45093
|
+
SelectionVector owned_sel;
|
|
45094
|
+
auto sel = FlatVector::IncrementalSelectionVector(source_count, owned_sel);
|
|
45095
|
+
VectorOperations::Copy(source, target, *sel, source_count, source_offset, target_offset);
|
|
45502
45096
|
break;
|
|
45503
45097
|
}
|
|
45504
45098
|
case VectorType::SEQUENCE_VECTOR: {
|
|
@@ -45507,8 +45101,9 @@ void VectorOperations::Copy(const Vector &source, Vector &target, idx_t source_c
|
|
|
45507
45101
|
Vector flattened(source.GetType());
|
|
45508
45102
|
VectorOperations::GenerateSequence(flattened, source_count, start, increment);
|
|
45509
45103
|
|
|
45510
|
-
|
|
45511
|
-
|
|
45104
|
+
SelectionVector owned_sel;
|
|
45105
|
+
auto sel = FlatVector::IncrementalSelectionVector(source_count, owned_sel);
|
|
45106
|
+
VectorOperations::Copy(flattened, target, *sel, source_count, source_offset, target_offset);
|
|
45512
45107
|
break;
|
|
45513
45108
|
}
|
|
45514
45109
|
default:
|
|
@@ -46737,7 +46332,7 @@ idx_t GroupedAggregateHashTable::FindOrCreateGroupsInternal(DataChunk &groups, V
|
|
|
46737
46332
|
auto hash_salts_ptr = FlatVector::GetData<uint16_t>(hash_salts);
|
|
46738
46333
|
|
|
46739
46334
|
// we start out with all entries [0, 1, 2, ..., groups.size()]
|
|
46740
|
-
const SelectionVector *sel_vector =
|
|
46335
|
+
const SelectionVector *sel_vector = FlatVector::IncrementalSelectionVector();
|
|
46741
46336
|
|
|
46742
46337
|
idx_t remaining_entries = groups.size();
|
|
46743
46338
|
|
|
@@ -46868,8 +46463,8 @@ void GroupedAggregateHashTable::FlushMove(Vector &source_addresses, Vector &sour
|
|
|
46868
46463
|
for (idx_t i = 0; i < groups.ColumnCount(); i++) {
|
|
46869
46464
|
auto &column = groups.data[i];
|
|
46870
46465
|
const auto col_offset = layout.GetOffsets()[i];
|
|
46871
|
-
RowOperations::Gather(source_addresses, FlatVector::
|
|
46872
|
-
FlatVector::
|
|
46466
|
+
RowOperations::Gather(source_addresses, *FlatVector::IncrementalSelectionVector(), column,
|
|
46467
|
+
*FlatVector::IncrementalSelectionVector(), count, col_offset, i);
|
|
46873
46468
|
}
|
|
46874
46469
|
|
|
46875
46470
|
SelectionVector new_groups(STANDARD_VECTOR_SIZE);
|
|
@@ -46996,8 +46591,8 @@ idx_t GroupedAggregateHashTable::Scan(idx_t &scan_position, DataChunk &result) {
|
|
|
46996
46591
|
for (idx_t i = 0; i < group_cols; i++) {
|
|
46997
46592
|
auto &column = result.data[i];
|
|
46998
46593
|
const auto col_offset = layout.GetOffsets()[i];
|
|
46999
|
-
RowOperations::Gather(addresses, FlatVector::
|
|
47000
|
-
FlatVector::
|
|
46594
|
+
RowOperations::Gather(addresses, *FlatVector::IncrementalSelectionVector(), column,
|
|
46595
|
+
*FlatVector::IncrementalSelectionVector(), result.size(), col_offset, i);
|
|
47001
46596
|
}
|
|
47002
46597
|
|
|
47003
46598
|
RowOperations::FinalizeStates(layout, addresses, result, group_cols);
|
|
@@ -48004,8 +47599,9 @@ static idx_t NestedSelectOperation(Vector &left, Vector &right, const SelectionV
|
|
|
48004
47599
|
// a selection vector in a single pass. But to implement progressive comparisons,
|
|
48005
47600
|
// we have to make multiple passes, so we need to keep track of the original input positions
|
|
48006
47601
|
// and then scatter the output selections when we are done.
|
|
47602
|
+
SelectionVector owned_sel;
|
|
48007
47603
|
if (!sel) {
|
|
48008
|
-
sel =
|
|
47604
|
+
sel = FlatVector::IncrementalSelectionVector(vcount, owned_sel);
|
|
48009
47605
|
}
|
|
48010
47606
|
|
|
48011
47607
|
VectorData lvdata, rvdata;
|
|
@@ -48025,7 +47621,9 @@ static idx_t NestedSelectOperation(Vector &left, Vector &right, const SelectionV
|
|
|
48025
47621
|
|
|
48026
47622
|
// If everything was NULL, fill in false_sel with sel
|
|
48027
47623
|
if (count == 0) {
|
|
48028
|
-
|
|
47624
|
+
SelectionVector owned_flat_sel;
|
|
47625
|
+
auto flat_sel = FlatVector::IncrementalSelectionVector(vcount, owned_sel);
|
|
47626
|
+
ScatterSelection(false_sel, no_match_count, sel, *flat_sel);
|
|
48029
47627
|
return count;
|
|
48030
47628
|
}
|
|
48031
47629
|
|
|
@@ -48759,8 +48357,10 @@ idx_t ExpressionExecutor::DefaultSelect(const Expression &expr, ExpressionState
|
|
|
48759
48357
|
|
|
48760
48358
|
VectorData idata;
|
|
48761
48359
|
intermediate.Orrify(count, idata);
|
|
48360
|
+
|
|
48361
|
+
SelectionVector owned_sel;
|
|
48762
48362
|
if (!sel) {
|
|
48763
|
-
sel =
|
|
48363
|
+
sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
48764
48364
|
}
|
|
48765
48365
|
if (!idata.validity.AllValid()) {
|
|
48766
48366
|
return DefaultSelectSwitch<false>(idata, sel, count, true_sel, false_sel);
|
|
@@ -50634,7 +50234,7 @@ idx_t JoinHashTable::PrepareKeys(DataChunk &keys, unique_ptr<VectorData[]> &key_
|
|
|
50634
50234
|
key_data = keys.Orrify();
|
|
50635
50235
|
|
|
50636
50236
|
// figure out which keys are NULL, and create a selection vector out of them
|
|
50637
|
-
current_sel =
|
|
50237
|
+
current_sel = FlatVector::IncrementalSelectionVector();
|
|
50638
50238
|
idx_t added_count = keys.size();
|
|
50639
50239
|
if (build_side && IsRightOuterJoin(join_type)) {
|
|
50640
50240
|
// in case of a right or full outer join, we cannot remove NULL keys from the build side
|
|
@@ -50942,7 +50542,7 @@ void ScanStructure::GatherResult(Vector &result, const SelectionVector &result_v
|
|
|
50942
50542
|
|
|
50943
50543
|
void ScanStructure::GatherResult(Vector &result, const SelectionVector &sel_vector, const idx_t count,
|
|
50944
50544
|
const idx_t col_idx) {
|
|
50945
|
-
GatherResult(result, FlatVector::
|
|
50545
|
+
GatherResult(result, *FlatVector::IncrementalSelectionVector(), sel_vector, count, col_idx);
|
|
50946
50546
|
}
|
|
50947
50547
|
|
|
50948
50548
|
void ScanStructure::NextInnerJoin(DataChunk &keys, DataChunk &left, DataChunk &result) {
|
|
@@ -51265,7 +50865,7 @@ void JoinHashTable::ScanFullOuter(DataChunk &result, JoinHTScanState &state) {
|
|
|
51265
50865
|
result.SetCardinality(found_entries);
|
|
51266
50866
|
if (found_entries > 0) {
|
|
51267
50867
|
idx_t left_column_count = result.ColumnCount() - build_types.size();
|
|
51268
|
-
const auto &sel_vector = FlatVector::
|
|
50868
|
+
const auto &sel_vector = *FlatVector::IncrementalSelectionVector();
|
|
51269
50869
|
// set the left side as a constant NULL
|
|
51270
50870
|
for (idx_t i = 0; i < left_column_count; i++) {
|
|
51271
50871
|
Vector &vec = result.data[i];
|
|
@@ -55410,7 +55010,10 @@ public:
|
|
|
55410
55010
|
static void LoadExternalExtension(DatabaseInstance &db, const string &extension);
|
|
55411
55011
|
|
|
55412
55012
|
private:
|
|
55413
|
-
static const vector<string>
|
|
55013
|
+
static const vector<string> PathComponents();
|
|
55014
|
+
|
|
55015
|
+
private:
|
|
55016
|
+
static ExtensionLoadResult LoadExtensionInternal(DuckDB &db, const std::string &extension, bool initial_load);
|
|
55414
55017
|
};
|
|
55415
55018
|
|
|
55416
55019
|
} // namespace duckdb
|
|
@@ -58079,7 +57682,7 @@ void PhysicalIndexJoin::Output(ExecutionContext &context, DataChunk &input, Data
|
|
|
58079
57682
|
}
|
|
58080
57683
|
state.rhs_chunk.Reset();
|
|
58081
57684
|
ColumnFetchState fetch_state;
|
|
58082
|
-
Vector row_ids(
|
|
57685
|
+
Vector row_ids(LogicalType::ROW_TYPE, (data_ptr_t)&fetch_rows[0]);
|
|
58083
57686
|
tbl->Fetch(transaction, state.rhs_chunk, fetch_ids, row_ids, output_sel_idx, fetch_state);
|
|
58084
57687
|
}
|
|
58085
57688
|
|
|
@@ -65221,7 +64824,7 @@ void PerfectAggregateHashTable::Combine(PerfectAggregateHashTable &other) {
|
|
|
65221
64824
|
data_ptr_t target_ptr = data;
|
|
65222
64825
|
idx_t combine_count = 0;
|
|
65223
64826
|
idx_t reinit_count = 0;
|
|
65224
|
-
const auto &reinit_sel = FlatVector::
|
|
64827
|
+
const auto &reinit_sel = *FlatVector::IncrementalSelectionVector();
|
|
65225
64828
|
for (idx_t i = 0; i < total_groups; i++) {
|
|
65226
64829
|
auto has_entry_source = other.group_is_set[i];
|
|
65227
64830
|
// we only have any work to do if the source has an entry for this group
|
|
@@ -71373,7 +70976,7 @@ struct BitAndOperation {
|
|
|
71373
70976
|
|
|
71374
70977
|
void BitAndFun::RegisterFunction(BuiltinFunctions &set) {
|
|
71375
70978
|
AggregateFunctionSet bit_and("bit_and");
|
|
71376
|
-
for (auto &type : LogicalType::
|
|
70979
|
+
for (auto &type : LogicalType::Integral()) {
|
|
71377
70980
|
bit_and.AddFunction(GetBitfieldUnaryAggregate<BitAndOperation>(type));
|
|
71378
70981
|
}
|
|
71379
70982
|
set.AddFunction(bit_and);
|
|
@@ -71433,7 +71036,7 @@ struct BitOrOperation {
|
|
|
71433
71036
|
|
|
71434
71037
|
void BitOrFun::RegisterFunction(BuiltinFunctions &set) {
|
|
71435
71038
|
AggregateFunctionSet bit_or("bit_or");
|
|
71436
|
-
for (auto &type : LogicalType::
|
|
71039
|
+
for (auto &type : LogicalType::Integral()) {
|
|
71437
71040
|
bit_or.AddFunction(GetBitfieldUnaryAggregate<BitOrOperation>(type));
|
|
71438
71041
|
}
|
|
71439
71042
|
set.AddFunction(bit_or);
|
|
@@ -71493,7 +71096,7 @@ struct BitXorOperation {
|
|
|
71493
71096
|
|
|
71494
71097
|
void BitXorFun::RegisterFunction(BuiltinFunctions &set) {
|
|
71495
71098
|
AggregateFunctionSet bit_xor("bit_xor");
|
|
71496
|
-
for (auto &type : LogicalType::
|
|
71099
|
+
for (auto &type : LogicalType::Integral()) {
|
|
71497
71100
|
bit_xor.AddFunction(GetBitfieldUnaryAggregate<BitXorOperation>(type));
|
|
71498
71101
|
}
|
|
71499
71102
|
set.AddFunction(bit_xor);
|
|
@@ -72191,7 +71794,7 @@ unique_ptr<FunctionData> BindDecimalFirst(ClientContext &context, AggregateFunct
|
|
|
72191
71794
|
void FirstFun::RegisterFunction(BuiltinFunctions &set) {
|
|
72192
71795
|
AggregateFunctionSet first("first");
|
|
72193
71796
|
AggregateFunctionSet last("last");
|
|
72194
|
-
for (auto &type : LogicalType::
|
|
71797
|
+
for (auto &type : LogicalType::AllTypes()) {
|
|
72195
71798
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
72196
71799
|
first.AddFunction(AggregateFunction({type}, type, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
|
72197
71800
|
BindDecimalFirst<false>, nullptr, nullptr, nullptr));
|
|
@@ -72831,7 +72434,7 @@ static AggregateFunction GetMinMaxFunction(const LogicalType &type) {
|
|
|
72831
72434
|
|
|
72832
72435
|
template <class OP, class OP_STRING, class OP_VECTOR>
|
|
72833
72436
|
static void AddMinMaxOperator(AggregateFunctionSet &set) {
|
|
72834
|
-
for (auto &type : LogicalType::
|
|
72437
|
+
for (auto &type : LogicalType::AllTypes()) {
|
|
72835
72438
|
if (type.id() == LogicalTypeId::VARCHAR || type.id() == LogicalTypeId::BLOB) {
|
|
72836
72439
|
set.AddFunction(
|
|
72837
72440
|
AggregateFunction::UnaryAggregateDestructor<MinMaxState<string_t>, string_t, string_t, OP_STRING>(
|
|
@@ -74556,7 +74159,7 @@ void ModeFun::RegisterFunction(BuiltinFunctions &set) {
|
|
|
74556
74159
|
mode.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr,
|
|
74557
74160
|
nullptr, nullptr, nullptr, BindModeDecimal));
|
|
74558
74161
|
|
|
74559
|
-
for (const auto &type : LogicalType::
|
|
74162
|
+
for (const auto &type : LogicalType::Numeric()) {
|
|
74560
74163
|
if (type.id() != LogicalTypeId::DECIMAL) {
|
|
74561
74164
|
mode.AddFunction(GetModeAggregate(type));
|
|
74562
74165
|
}
|
|
@@ -79428,7 +79031,7 @@ bool TryGetDatePartSpecifier(const string &specifier_p, DatePartSpecifier &resul
|
|
|
79428
79031
|
result = DatePartSpecifier::YEAR;
|
|
79429
79032
|
} else if (specifier == "month" || specifier == "mon" || specifier == "months" || specifier == "mons") {
|
|
79430
79033
|
result = DatePartSpecifier::MONTH;
|
|
79431
|
-
} else if (specifier == "day" || specifier == "days" || specifier == "d") {
|
|
79034
|
+
} else if (specifier == "day" || specifier == "days" || specifier == "d" || specifier == "dayofmonth") {
|
|
79432
79035
|
result = DatePartSpecifier::DAY;
|
|
79433
79036
|
} else if (specifier == "decade" || specifier == "decades") {
|
|
79434
79037
|
result = DatePartSpecifier::DECADE;
|
|
@@ -79450,13 +79053,13 @@ bool TryGetDatePartSpecifier(const string &specifier_p, DatePartSpecifier &resul
|
|
|
79450
79053
|
} else if (specifier == "epoch") {
|
|
79451
79054
|
// seconds since 1970-01-01
|
|
79452
79055
|
result = DatePartSpecifier::EPOCH;
|
|
79453
|
-
} else if (specifier == "dow" || specifier == "dayofweek") {
|
|
79056
|
+
} else if (specifier == "dow" || specifier == "dayofweek" || specifier == "weekday") {
|
|
79454
79057
|
// day of the week (Sunday = 0, Saturday = 6)
|
|
79455
79058
|
result = DatePartSpecifier::DOW;
|
|
79456
79059
|
} else if (specifier == "isodow") {
|
|
79457
79060
|
// isodow (Monday = 1, Sunday = 7)
|
|
79458
79061
|
result = DatePartSpecifier::ISODOW;
|
|
79459
|
-
} else if (specifier == "week" || specifier == "weeks" || specifier == "w") {
|
|
79062
|
+
} else if (specifier == "week" || specifier == "weeks" || specifier == "w" || specifier == "weekofyear") {
|
|
79460
79063
|
// week number
|
|
79461
79064
|
result = DatePartSpecifier::WEEK;
|
|
79462
79065
|
} else if (specifier == "doy" || specifier == "dayofyear") {
|
|
@@ -79468,6 +79071,10 @@ bool TryGetDatePartSpecifier(const string &specifier_p, DatePartSpecifier &resul
|
|
|
79468
79071
|
} else if (specifier == "yearweek") {
|
|
79469
79072
|
// Combined year and week YYYYWW
|
|
79470
79073
|
result = DatePartSpecifier::YEARWEEK;
|
|
79074
|
+
} else if (specifier == "era") {
|
|
79075
|
+
result = DatePartSpecifier::ERA;
|
|
79076
|
+
} else if (specifier == "offset") {
|
|
79077
|
+
result = DatePartSpecifier::OFFSET;
|
|
79471
79078
|
} else {
|
|
79472
79079
|
return false;
|
|
79473
79080
|
}
|
|
@@ -79786,6 +79393,35 @@ struct DatePart {
|
|
|
79786
79393
|
return PropagateDatePartStatistics<T, EpochOperator>(child_stats);
|
|
79787
79394
|
}
|
|
79788
79395
|
};
|
|
79396
|
+
|
|
79397
|
+
struct EraOperator {
|
|
79398
|
+
template <class TA, class TR>
|
|
79399
|
+
static inline TR Operation(TA input) {
|
|
79400
|
+
return Date::ExtractYear(input) > 0 ? 1 : 0;
|
|
79401
|
+
}
|
|
79402
|
+
|
|
79403
|
+
template <class T>
|
|
79404
|
+
static unique_ptr<BaseStatistics> PropagateStatistics(ClientContext &context, BoundFunctionExpression &expr,
|
|
79405
|
+
FunctionData *bind_data,
|
|
79406
|
+
vector<unique_ptr<BaseStatistics>> &child_stats) {
|
|
79407
|
+
return PropagateSimpleDatePartStatistics<0, 1>(child_stats);
|
|
79408
|
+
}
|
|
79409
|
+
};
|
|
79410
|
+
|
|
79411
|
+
struct OffsetOperator {
|
|
79412
|
+
template <class TA, class TR>
|
|
79413
|
+
static inline TR Operation(TA input) {
|
|
79414
|
+
// Regular timestamps are UTC.
|
|
79415
|
+
return 0;
|
|
79416
|
+
}
|
|
79417
|
+
|
|
79418
|
+
template <class T>
|
|
79419
|
+
static unique_ptr<BaseStatistics> PropagateStatistics(ClientContext &context, BoundFunctionExpression &expr,
|
|
79420
|
+
FunctionData *bind_data,
|
|
79421
|
+
vector<unique_ptr<BaseStatistics>> &child_stats) {
|
|
79422
|
+
return PropagateSimpleDatePartStatistics<0, 0>(child_stats);
|
|
79423
|
+
}
|
|
79424
|
+
};
|
|
79789
79425
|
};
|
|
79790
79426
|
|
|
79791
79427
|
template <>
|
|
@@ -80060,6 +79696,36 @@ DatePart::EpochOperator::PropagateStatistics<dtime_t>(ClientContext &context, Bo
|
|
|
80060
79696
|
return PropagateSimpleDatePartStatistics<0, 86400>(child_stats);
|
|
80061
79697
|
}
|
|
80062
79698
|
|
|
79699
|
+
template <>
|
|
79700
|
+
int64_t DatePart::EraOperator::Operation(timestamp_t input) {
|
|
79701
|
+
return EraOperator::Operation<date_t, int64_t>(Timestamp::GetDate(input));
|
|
79702
|
+
}
|
|
79703
|
+
|
|
79704
|
+
template <>
|
|
79705
|
+
int64_t DatePart::EraOperator::Operation(interval_t input) {
|
|
79706
|
+
throw NotImplementedException("interval units \"era\" not recognized");
|
|
79707
|
+
}
|
|
79708
|
+
|
|
79709
|
+
template <>
|
|
79710
|
+
int64_t DatePart::EraOperator::Operation(dtime_t input) {
|
|
79711
|
+
throw NotImplementedException("\"time\" units \"era\" not recognized");
|
|
79712
|
+
}
|
|
79713
|
+
|
|
79714
|
+
template <>
|
|
79715
|
+
int64_t DatePart::OffsetOperator::Operation(timestamp_t input) {
|
|
79716
|
+
return 0;
|
|
79717
|
+
}
|
|
79718
|
+
|
|
79719
|
+
template <>
|
|
79720
|
+
int64_t DatePart::OffsetOperator::Operation(interval_t input) {
|
|
79721
|
+
return 0;
|
|
79722
|
+
}
|
|
79723
|
+
|
|
79724
|
+
template <>
|
|
79725
|
+
int64_t DatePart::OffsetOperator::Operation(dtime_t input) {
|
|
79726
|
+
return 0;
|
|
79727
|
+
}
|
|
79728
|
+
|
|
80063
79729
|
template <class T>
|
|
80064
79730
|
static int64_t ExtractElement(DatePartSpecifier type, T element) {
|
|
80065
79731
|
switch (type) {
|
|
@@ -80099,6 +79765,10 @@ static int64_t ExtractElement(DatePartSpecifier type, T element) {
|
|
|
80099
79765
|
return DatePart::MinutesOperator::template Operation<T, int64_t>(element);
|
|
80100
79766
|
case DatePartSpecifier::HOUR:
|
|
80101
79767
|
return DatePart::HoursOperator::template Operation<T, int64_t>(element);
|
|
79768
|
+
case DatePartSpecifier::ERA:
|
|
79769
|
+
return DatePart::EraOperator::template Operation<T, int64_t>(element);
|
|
79770
|
+
case DatePartSpecifier::OFFSET:
|
|
79771
|
+
return DatePart::OffsetOperator::template Operation<T, int64_t>(element);
|
|
80102
79772
|
default:
|
|
80103
79773
|
throw NotImplementedException("Specifier type not implemented for DATEPART");
|
|
80104
79774
|
}
|
|
@@ -80212,6 +79882,7 @@ void DatePartFun::RegisterFunction(BuiltinFunctions &set) {
|
|
|
80212
79882
|
AddDatePartOperator<DatePart::ISODayOfWeekOperator>(set, "isodow");
|
|
80213
79883
|
AddDatePartOperator<DatePart::DayOfYearOperator>(set, "dayofyear");
|
|
80214
79884
|
AddDatePartOperator<DatePart::WeekOperator>(set, "week");
|
|
79885
|
+
AddDatePartOperator<DatePart::EraOperator>(set, "era");
|
|
80215
79886
|
AddTimePartOperator<DatePart::EpochOperator>(set, "epoch");
|
|
80216
79887
|
AddTimePartOperator<DatePart::MicrosecondsOperator>(set, "microsecond");
|
|
80217
79888
|
AddTimePartOperator<DatePart::MillisecondsOperator>(set, "millisecond");
|
|
@@ -84265,7 +83936,7 @@ unique_ptr<FunctionData> DecimalUnaryOpBind(ClientContext &context, ScalarFuncti
|
|
|
84265
83936
|
|
|
84266
83937
|
void AbsFun::RegisterFunction(BuiltinFunctions &set) {
|
|
84267
83938
|
ScalarFunctionSet abs("abs");
|
|
84268
|
-
for (auto &type : LogicalType::
|
|
83939
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
84269
83940
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
84270
83941
|
abs.AddFunction(ScalarFunction({type}, type, nullptr, false, DecimalUnaryOpBind<AbsOperator>));
|
|
84271
83942
|
} else {
|
|
@@ -84323,7 +83994,7 @@ struct SignOperator {
|
|
|
84323
83994
|
|
|
84324
83995
|
void SignFun::RegisterFunction(BuiltinFunctions &set) {
|
|
84325
83996
|
ScalarFunctionSet sign("sign");
|
|
84326
|
-
for (auto &type : LogicalType::
|
|
83997
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
84327
83998
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
84328
83999
|
continue;
|
|
84329
84000
|
} else {
|
|
@@ -84399,7 +84070,7 @@ struct CeilDecimalOperator {
|
|
|
84399
84070
|
|
|
84400
84071
|
void CeilFun::RegisterFunction(BuiltinFunctions &set) {
|
|
84401
84072
|
ScalarFunctionSet ceil("ceil");
|
|
84402
|
-
for (auto &type : LogicalType::
|
|
84073
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
84403
84074
|
scalar_function_t func = nullptr;
|
|
84404
84075
|
bind_scalar_function_t bind_func = nullptr;
|
|
84405
84076
|
if (type.IsIntegral()) {
|
|
@@ -84455,7 +84126,7 @@ struct FloorDecimalOperator {
|
|
|
84455
84126
|
|
|
84456
84127
|
void FloorFun::RegisterFunction(BuiltinFunctions &set) {
|
|
84457
84128
|
ScalarFunctionSet floor("floor");
|
|
84458
|
-
for (auto &type : LogicalType::
|
|
84129
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
84459
84130
|
scalar_function_t func = nullptr;
|
|
84460
84131
|
bind_scalar_function_t bind_func = nullptr;
|
|
84461
84132
|
if (type.IsIntegral()) {
|
|
@@ -84657,7 +84328,7 @@ unique_ptr<FunctionData> BindDecimalRoundPrecision(ClientContext &context, Scala
|
|
|
84657
84328
|
|
|
84658
84329
|
void RoundFun::RegisterFunction(BuiltinFunctions &set) {
|
|
84659
84330
|
ScalarFunctionSet round("round");
|
|
84660
|
-
for (auto &type : LogicalType::
|
|
84331
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
84661
84332
|
scalar_function_t round_prec_func = nullptr;
|
|
84662
84333
|
scalar_function_t round_func = nullptr;
|
|
84663
84334
|
bind_scalar_function_t bind_func = nullptr;
|
|
@@ -85802,7 +85473,7 @@ ScalarFunction AddFun::GetFunction(const LogicalType &left_type, const LogicalTy
|
|
|
85802
85473
|
|
|
85803
85474
|
void AddFun::RegisterFunction(BuiltinFunctions &set) {
|
|
85804
85475
|
ScalarFunctionSet functions("+");
|
|
85805
|
-
for (auto &type : LogicalType::
|
|
85476
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
85806
85477
|
// unary add function is a nop, but only exists for numeric types
|
|
85807
85478
|
functions.AddFunction(GetFunction(type));
|
|
85808
85479
|
// binary add function adds two numbers together
|
|
@@ -86003,7 +85674,7 @@ ScalarFunction SubtractFun::GetFunction(const LogicalType &left_type, const Logi
|
|
|
86003
85674
|
|
|
86004
85675
|
void SubtractFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86005
85676
|
ScalarFunctionSet functions("-");
|
|
86006
|
-
for (auto &type : LogicalType::
|
|
85677
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
86007
85678
|
// unary subtract function, negates the input (i.e. multiplies by -1)
|
|
86008
85679
|
functions.AddFunction(GetFunction(type));
|
|
86009
85680
|
// binary subtract function "a - b", subtracts b from a
|
|
@@ -86138,7 +85809,7 @@ unique_ptr<FunctionData> BindDecimalMultiply(ClientContext &context, ScalarFunct
|
|
|
86138
85809
|
|
|
86139
85810
|
void MultiplyFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86140
85811
|
ScalarFunctionSet functions("*");
|
|
86141
|
-
for (auto &type : LogicalType::
|
|
85812
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
86142
85813
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
86143
85814
|
functions.AddFunction(ScalarFunction({type, type}, type, nullptr, false, BindDecimalMultiply));
|
|
86144
85815
|
} else if (TypeIsIntegral(type.InternalType()) && type.id() != LogicalTypeId::HUGEINT) {
|
|
@@ -86266,7 +85937,7 @@ static scalar_function_t GetBinaryFunctionIgnoreZero(const LogicalType &type) {
|
|
|
86266
85937
|
|
|
86267
85938
|
void DivideFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86268
85939
|
ScalarFunctionSet functions("/");
|
|
86269
|
-
for (auto &type : LogicalType::
|
|
85940
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
86270
85941
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
86271
85942
|
continue;
|
|
86272
85943
|
} else {
|
|
@@ -86306,7 +85977,7 @@ hugeint_t ModuloOperator::Operation(hugeint_t left, hugeint_t right) {
|
|
|
86306
85977
|
|
|
86307
85978
|
void ModFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86308
85979
|
ScalarFunctionSet functions("%");
|
|
86309
|
-
for (auto &type : LogicalType::
|
|
85980
|
+
for (auto &type : LogicalType::Numeric()) {
|
|
86310
85981
|
if (type.id() == LogicalTypeId::DECIMAL) {
|
|
86311
85982
|
continue;
|
|
86312
85983
|
} else {
|
|
@@ -86411,7 +86082,7 @@ struct BitwiseANDOperator {
|
|
|
86411
86082
|
|
|
86412
86083
|
void BitwiseAndFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86413
86084
|
ScalarFunctionSet functions("&");
|
|
86414
|
-
for (auto &type : LogicalType::
|
|
86085
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86415
86086
|
functions.AddFunction(
|
|
86416
86087
|
ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseANDOperator>(type)));
|
|
86417
86088
|
}
|
|
@@ -86430,7 +86101,7 @@ struct BitwiseOROperator {
|
|
|
86430
86101
|
|
|
86431
86102
|
void BitwiseOrFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86432
86103
|
ScalarFunctionSet functions("|");
|
|
86433
|
-
for (auto &type : LogicalType::
|
|
86104
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86434
86105
|
functions.AddFunction(
|
|
86435
86106
|
ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseOROperator>(type)));
|
|
86436
86107
|
}
|
|
@@ -86449,7 +86120,7 @@ struct BitwiseXOROperator {
|
|
|
86449
86120
|
|
|
86450
86121
|
void BitwiseXorFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86451
86122
|
ScalarFunctionSet functions("xor");
|
|
86452
|
-
for (auto &type : LogicalType::
|
|
86123
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86453
86124
|
functions.AddFunction(
|
|
86454
86125
|
ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseXOROperator>(type)));
|
|
86455
86126
|
}
|
|
@@ -86473,7 +86144,7 @@ struct BitwiseShiftLeftOperator {
|
|
|
86473
86144
|
|
|
86474
86145
|
void LeftShiftFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86475
86146
|
ScalarFunctionSet functions("<<");
|
|
86476
|
-
for (auto &type : LogicalType::
|
|
86147
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86477
86148
|
functions.AddFunction(
|
|
86478
86149
|
ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseShiftLeftOperator>(type)));
|
|
86479
86150
|
}
|
|
@@ -86492,7 +86163,7 @@ struct BitwiseShiftRightOperator {
|
|
|
86492
86163
|
|
|
86493
86164
|
void RightShiftFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86494
86165
|
ScalarFunctionSet functions(">>");
|
|
86495
|
-
for (auto &type : LogicalType::
|
|
86166
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86496
86167
|
functions.AddFunction(
|
|
86497
86168
|
ScalarFunction({type, type}, type, GetScalarIntegerBinaryFunction<BitwiseShiftRightOperator>(type)));
|
|
86498
86169
|
}
|
|
@@ -86511,7 +86182,7 @@ struct BitwiseNotOperator {
|
|
|
86511
86182
|
|
|
86512
86183
|
void BitwiseNotFun::RegisterFunction(BuiltinFunctions &set) {
|
|
86513
86184
|
ScalarFunctionSet functions("~");
|
|
86514
|
-
for (auto &type : LogicalType::
|
|
86185
|
+
for (auto &type : LogicalType::Integral()) {
|
|
86515
86186
|
functions.AddFunction(ScalarFunction({type}, type, GetScalarIntegerUnaryFunction<BitwiseNotOperator>(type)));
|
|
86516
86187
|
}
|
|
86517
86188
|
set.AddFunction(functions);
|
|
@@ -87615,7 +87286,7 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
|
|
|
87615
87286
|
}
|
|
87616
87287
|
}
|
|
87617
87288
|
switch (separator.GetVectorType()) {
|
|
87618
|
-
case VectorType::CONSTANT_VECTOR:
|
|
87289
|
+
case VectorType::CONSTANT_VECTOR: {
|
|
87619
87290
|
if (ConstantVector::IsNull(separator)) {
|
|
87620
87291
|
// constant NULL as separator: return constant NULL vector
|
|
87621
87292
|
result.SetVectorType(VectorType::CONSTANT_VECTOR);
|
|
@@ -87623,9 +87294,11 @@ static void ConcatWSFunction(DataChunk &args, ExpressionState &state, Vector &re
|
|
|
87623
87294
|
return;
|
|
87624
87295
|
}
|
|
87625
87296
|
// no null values
|
|
87626
|
-
|
|
87627
|
-
|
|
87297
|
+
SelectionVector owned_sel;
|
|
87298
|
+
auto sel = FlatVector::IncrementalSelectionVector(args.size(), owned_sel);
|
|
87299
|
+
TemplatedConcatWS(args, (string_t *)vdata.data, *vdata.sel, *sel, args.size(), result);
|
|
87628
87300
|
return;
|
|
87301
|
+
}
|
|
87629
87302
|
default: {
|
|
87630
87303
|
// default case: loop over nullmask and create a non-null selection vector
|
|
87631
87304
|
idx_t not_null_count = 0;
|
|
@@ -97137,7 +96810,7 @@ static unique_ptr<FunctionData> DuckDBTypesBind(ClientContext &context, vector<V
|
|
|
97137
96810
|
unique_ptr<FunctionOperatorData> DuckDBTypesInit(ClientContext &context, const FunctionData *bind_data,
|
|
97138
96811
|
const vector<column_t> &column_ids, TableFilterCollection *filters) {
|
|
97139
96812
|
auto result = make_unique<DuckDBTypesData>();
|
|
97140
|
-
result->types = LogicalType::
|
|
96813
|
+
result->types = LogicalType::AllTypes();
|
|
97141
96814
|
// FIXME: add user-defined types here (when we have them)
|
|
97142
96815
|
return move(result);
|
|
97143
96816
|
}
|
|
@@ -98494,7 +98167,7 @@ unique_ptr<NodeStatistics> TableScanCardinality(ClientContext &context, const Fu
|
|
|
98494
98167
|
// Index Scan
|
|
98495
98168
|
//===--------------------------------------------------------------------===//
|
|
98496
98169
|
struct IndexScanOperatorData : public FunctionOperatorData {
|
|
98497
|
-
explicit IndexScanOperatorData(data_ptr_t row_id_data) : row_ids(
|
|
98170
|
+
explicit IndexScanOperatorData(data_ptr_t row_id_data) : row_ids(LogicalType::ROW_TYPE, row_id_data) {
|
|
98498
98171
|
}
|
|
98499
98172
|
|
|
98500
98173
|
Vector row_ids;
|
|
@@ -103373,6 +103046,7 @@ void DuckDB::SetExtensionLoaded(const std::string &name) {
|
|
|
103373
103046
|
|
|
103374
103047
|
|
|
103375
103048
|
|
|
103049
|
+
|
|
103376
103050
|
#ifdef BUILD_ICU_EXTENSION
|
|
103377
103051
|
#include "icu-extension.hpp"
|
|
103378
103052
|
#endif
|
|
@@ -103406,7 +103080,7 @@ namespace duckdb {
|
|
|
103406
103080
|
void ExtensionHelper::LoadAllExtensions(DuckDB &db) {
|
|
103407
103081
|
unordered_set<string> extensions {"parquet", "icu", "tpch", "tpcds", "fts", "httpfs", "visualizer"};
|
|
103408
103082
|
for (auto &ext : extensions) {
|
|
103409
|
-
|
|
103083
|
+
LoadExtensionInternal(db, ext, true);
|
|
103410
103084
|
}
|
|
103411
103085
|
}
|
|
103412
103086
|
|
|
@@ -103414,6 +103088,27 @@ void ExtensionHelper::LoadAllExtensions(DuckDB &db) {
|
|
|
103414
103088
|
// Load Statically Compiled Extension
|
|
103415
103089
|
//===--------------------------------------------------------------------===//
|
|
103416
103090
|
ExtensionLoadResult ExtensionHelper::LoadExtension(DuckDB &db, const std::string &extension) {
|
|
103091
|
+
return LoadExtensionInternal(db, extension, false);
|
|
103092
|
+
}
|
|
103093
|
+
|
|
103094
|
+
ExtensionLoadResult ExtensionHelper::LoadExtensionInternal(DuckDB &db, const std::string &extension,
|
|
103095
|
+
bool initial_load) {
|
|
103096
|
+
#ifdef DUCKDB_TEST_REMOTE_INSTALL
|
|
103097
|
+
if (!initial_load && StringUtil::Contains(DUCKDB_TEST_REMOTE_INSTALL, extension)) {
|
|
103098
|
+
Connection con(db);
|
|
103099
|
+
auto result = con.Query("INSTALL " + extension);
|
|
103100
|
+
if (!result->success) {
|
|
103101
|
+
result->Print();
|
|
103102
|
+
return ExtensionLoadResult::EXTENSION_UNKNOWN;
|
|
103103
|
+
}
|
|
103104
|
+
result = con.Query("LOAD " + extension);
|
|
103105
|
+
if (!result->success) {
|
|
103106
|
+
result->Print();
|
|
103107
|
+
return ExtensionLoadResult::EXTENSION_UNKNOWN;
|
|
103108
|
+
}
|
|
103109
|
+
return ExtensionLoadResult::LOADED_EXTENSION;
|
|
103110
|
+
}
|
|
103111
|
+
#endif
|
|
103417
103112
|
if (extension == "parquet") {
|
|
103418
103113
|
#ifdef BUILD_PARQUET_EXTENSION
|
|
103419
103114
|
db.LoadExtension<ParquetExtension>();
|
|
@@ -103725,6 +103420,11 @@ inline const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *asn1) {
|
|
|
103725
103420
|
#include <brotli/encode.h>
|
|
103726
103421
|
#endif
|
|
103727
103422
|
|
|
103423
|
+
#ifdef __clang__
|
|
103424
|
+
#pragma clang diagnostic push
|
|
103425
|
+
#pragma clang diagnostic ignored "-Wexit-time-destructors"
|
|
103426
|
+
#endif
|
|
103427
|
+
|
|
103728
103428
|
/*
|
|
103729
103429
|
* Declaration
|
|
103730
103430
|
*/
|
|
@@ -110901,6 +110601,10 @@ inline SSL_CTX *Client::ssl_context() const {
|
|
|
110901
110601
|
|
|
110902
110602
|
} // namespace CPPHTTPLIB_NAMESPACE
|
|
110903
110603
|
|
|
110604
|
+
#ifdef __clang__
|
|
110605
|
+
#pragma clang diagnostic pop
|
|
110606
|
+
#endif
|
|
110607
|
+
|
|
110904
110608
|
#endif // CPPHTTPLIB_HTTPLIB_H
|
|
110905
110609
|
|
|
110906
110610
|
|
|
@@ -110912,12 +110616,13 @@ inline SSL_CTX *Client::ssl_context() const {
|
|
|
110912
110616
|
|
|
110913
110617
|
namespace duckdb {
|
|
110914
110618
|
|
|
110915
|
-
const vector<string> ExtensionHelper::PATH_COMPONENTS = {".duckdb", "extensions", DuckDB::SourceID(),
|
|
110916
|
-
DuckDB::Platform()};
|
|
110917
|
-
|
|
110918
110619
|
//===--------------------------------------------------------------------===//
|
|
110919
110620
|
// Install Extension
|
|
110920
110621
|
//===--------------------------------------------------------------------===//
|
|
110622
|
+
const vector<string> ExtensionHelper::PathComponents() {
|
|
110623
|
+
return vector<string> {".duckdb", "extensions", DuckDB::SourceID(), DuckDB::Platform()};
|
|
110624
|
+
}
|
|
110625
|
+
|
|
110921
110626
|
void ExtensionHelper::InstallExtension(DatabaseInstance &db, const string &extension, bool force_install) {
|
|
110922
110627
|
auto &config = DBConfig::GetConfig(db);
|
|
110923
110628
|
if (!config.enable_external_access) {
|
|
@@ -110929,7 +110634,8 @@ void ExtensionHelper::InstallExtension(DatabaseInstance &db, const string &exten
|
|
|
110929
110634
|
if (!fs.DirectoryExists(local_path)) {
|
|
110930
110635
|
throw InternalException("Can't find the home directory at " + local_path);
|
|
110931
110636
|
}
|
|
110932
|
-
|
|
110637
|
+
auto path_components = PathComponents();
|
|
110638
|
+
for (auto &path_ele : path_components) {
|
|
110933
110639
|
local_path = fs.JoinPath(local_path, path_ele);
|
|
110934
110640
|
if (!fs.DirectoryExists(local_path)) {
|
|
110935
110641
|
fs.CreateDirectory(local_path);
|
|
@@ -111068,7 +110774,8 @@ void ExtensionHelper::LoadExternalExtension(DatabaseInstance &db, const string &
|
|
|
111068
110774
|
// shorthand case
|
|
111069
110775
|
if (!StringUtil::Contains(extension, ".") && !StringUtil::Contains(extension, fs.PathSeparator())) {
|
|
111070
110776
|
string local_path = fs.GetHomeDirectory();
|
|
111071
|
-
|
|
110777
|
+
auto path_components = PathComponents();
|
|
110778
|
+
for (auto &path_ele : path_components) {
|
|
111072
110779
|
local_path = fs.JoinPath(local_path, path_ele);
|
|
111073
110780
|
}
|
|
111074
110781
|
filename = fs.JoinPath(local_path, extension + ".duckdb_extension");
|
|
@@ -148969,8 +148676,8 @@ BoundStatement Binder::Bind(DeleteStatement &stmt) {
|
|
|
148969
148676
|
del->AddChild(move(root));
|
|
148970
148677
|
|
|
148971
148678
|
// set up the delete expression
|
|
148972
|
-
del->expressions.push_back(
|
|
148973
|
-
|
|
148679
|
+
del->expressions.push_back(make_unique<BoundColumnRefExpression>(
|
|
148680
|
+
LogicalType::ROW_TYPE, ColumnBinding(get.table_index, get.column_ids.size())));
|
|
148974
148681
|
get.column_ids.push_back(COLUMN_IDENTIFIER_ROW_ID);
|
|
148975
148682
|
|
|
148976
148683
|
result.plan = move(del);
|
|
@@ -149910,7 +149617,7 @@ BoundStatement Binder::Bind(UpdateStatement &stmt) {
|
|
|
149910
149617
|
|
|
149911
149618
|
// finally add the row id column to the projection list
|
|
149912
149619
|
proj->expressions.push_back(make_unique<BoundColumnRefExpression>(
|
|
149913
|
-
|
|
149620
|
+
LogicalType::ROW_TYPE, ColumnBinding(get->table_index, get->column_ids.size())));
|
|
149914
149621
|
get->column_ids.push_back(COLUMN_IDENTIFIER_ROW_ID);
|
|
149915
149622
|
|
|
149916
149623
|
// set the projection as child of the update node and finalize the result
|
|
@@ -154643,7 +154350,7 @@ void LogicalGet::ResolveTypes() {
|
|
|
154643
154350
|
}
|
|
154644
154351
|
for (auto &index : column_ids) {
|
|
154645
154352
|
if (index == COLUMN_IDENTIFIER_ROW_ID) {
|
|
154646
|
-
types.
|
|
154353
|
+
types.emplace_back(LogicalType::ROW_TYPE);
|
|
154647
154354
|
} else {
|
|
154648
154355
|
types.push_back(returned_types[index]);
|
|
154649
154356
|
}
|
|
@@ -161516,7 +161223,7 @@ DataTable::DataTable(ClientContext &context, DataTable &parent, idx_t changed_id
|
|
|
161516
161223
|
vector<LogicalType> scan_types;
|
|
161517
161224
|
for (idx_t i = 0; i < bound_columns.size(); i++) {
|
|
161518
161225
|
if (bound_columns[i] == COLUMN_IDENTIFIER_ROW_ID) {
|
|
161519
|
-
scan_types.
|
|
161226
|
+
scan_types.emplace_back(LogicalType::ROW_TYPE);
|
|
161520
161227
|
} else {
|
|
161521
161228
|
scan_types.push_back(parent.column_definitions[bound_columns[i]].type);
|
|
161522
161229
|
}
|
|
@@ -161983,7 +161690,7 @@ void DataTable::RevertAppend(idx_t start_row, idx_t count) {
|
|
|
161983
161690
|
if (!info->indexes.Empty()) {
|
|
161984
161691
|
idx_t current_row_base = start_row;
|
|
161985
161692
|
row_t row_data[STANDARD_VECTOR_SIZE];
|
|
161986
|
-
Vector row_identifiers(
|
|
161693
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, (data_ptr_t)row_data);
|
|
161987
161694
|
ScanTableSegment(start_row, count, [&](DataChunk &chunk) {
|
|
161988
161695
|
for (idx_t i = 0; i < chunk.size(); i++) {
|
|
161989
161696
|
row_data[i] = current_row_base + i;
|
|
@@ -162007,7 +161714,7 @@ bool DataTable::AppendToIndexes(TableAppendState &state, DataChunk &chunk, row_t
|
|
|
162007
161714
|
return true;
|
|
162008
161715
|
}
|
|
162009
161716
|
// first generate the vector of row identifiers
|
|
162010
|
-
Vector row_identifiers(
|
|
161717
|
+
Vector row_identifiers(LogicalType::ROW_TYPE);
|
|
162011
161718
|
VectorOperations::GenerateSequence(row_identifiers, chunk.size(), row_start, 1);
|
|
162012
161719
|
|
|
162013
161720
|
vector<Index *> already_appended;
|
|
@@ -162041,7 +161748,7 @@ void DataTable::RemoveFromIndexes(TableAppendState &state, DataChunk &chunk, row
|
|
|
162041
161748
|
return;
|
|
162042
161749
|
}
|
|
162043
161750
|
// first generate the vector of row identifiers
|
|
162044
|
-
Vector row_identifiers(
|
|
161751
|
+
Vector row_identifiers(LogicalType::ROW_TYPE);
|
|
162045
161752
|
VectorOperations::GenerateSequence(row_identifiers, chunk.size(), row_start, 1);
|
|
162046
161753
|
|
|
162047
161754
|
// now remove the entries from the indices
|
|
@@ -162352,7 +162059,7 @@ void DataTable::AddIndex(unique_ptr<Index> index, const vector<unique_ptr<Expres
|
|
|
162352
162059
|
for (auto &id : index->column_ids) {
|
|
162353
162060
|
intermediate_types.push_back(column_definitions[id].type);
|
|
162354
162061
|
}
|
|
162355
|
-
intermediate_types.
|
|
162062
|
+
intermediate_types.emplace_back(LogicalType::ROW_TYPE);
|
|
162356
162063
|
intermediate.Initialize(intermediate_types);
|
|
162357
162064
|
|
|
162358
162065
|
// initialize an index scan
|
|
@@ -162666,7 +162373,7 @@ void LocalStorage::Scan(LocalScanState &state, const vector<column_t> &column_id
|
|
|
162666
162373
|
if (count != chunk_count) {
|
|
162667
162374
|
sel.Initialize(valid_sel);
|
|
162668
162375
|
} else {
|
|
162669
|
-
sel.Initialize(
|
|
162376
|
+
sel.Initialize(nullptr);
|
|
162670
162377
|
}
|
|
162671
162378
|
// now scan the vectors of the chunk
|
|
162672
162379
|
for (idx_t i = 0; i < column_ids.size(); i++) {
|
|
@@ -162718,7 +162425,7 @@ void LocalStorage::Append(DataTable *table, DataChunk &chunk) {
|
|
|
162718
162425
|
idx_t base_id = MAX_ROW_ID + storage->collection.Count();
|
|
162719
162426
|
|
|
162720
162427
|
// first generate the vector of row identifiers
|
|
162721
|
-
Vector row_ids(
|
|
162428
|
+
Vector row_ids(LogicalType::ROW_TYPE);
|
|
162722
162429
|
VectorOperations::GenerateSequence(row_ids, chunk.size(), base_id, 1);
|
|
162723
162430
|
|
|
162724
162431
|
// now append the entries to the indices
|
|
@@ -162837,7 +162544,7 @@ static void TemplatedUpdateLoop(Vector &data_vector, Vector &update_vector, Vect
|
|
|
162837
162544
|
|
|
162838
162545
|
static void UpdateChunk(Vector &data, Vector &updates, Vector &row_ids, idx_t count, idx_t base_index) {
|
|
162839
162546
|
D_ASSERT(data.GetType() == updates.GetType());
|
|
162840
|
-
D_ASSERT(row_ids.GetType() ==
|
|
162547
|
+
D_ASSERT(row_ids.GetType() == LogicalType::ROW_TYPE);
|
|
162841
162548
|
|
|
162842
162549
|
switch (data.GetType().InternalType()) {
|
|
162843
162550
|
case PhysicalType::INT8:
|
|
@@ -163760,7 +163467,9 @@ void BaseStatistics::Verify(Vector &vector, const SelectionVector &sel, idx_t co
|
|
|
163760
163467
|
}
|
|
163761
163468
|
|
|
163762
163469
|
void BaseStatistics::Verify(Vector &vector, idx_t count) {
|
|
163763
|
-
|
|
163470
|
+
SelectionVector owned_sel;
|
|
163471
|
+
auto sel = FlatVector::IncrementalSelectionVector(count, owned_sel);
|
|
163472
|
+
Verify(vector, *sel, count);
|
|
163764
163473
|
}
|
|
163765
163474
|
|
|
163766
163475
|
} // namespace duckdb
|
|
@@ -166799,7 +166508,7 @@ void ListColumnData::Append(BaseStatistics &stats_p, ColumnAppendState &state, V
|
|
|
166799
166508
|
|
|
166800
166509
|
VectorData vdata;
|
|
166801
166510
|
vdata.validity = list_validity;
|
|
166802
|
-
vdata.sel =
|
|
166511
|
+
vdata.sel = FlatVector::IncrementalSelectionVector(count, vdata.owned_sel);
|
|
166803
166512
|
vdata.data = (data_ptr_t)append_offsets.get();
|
|
166804
166513
|
|
|
166805
166514
|
// append the list offsets
|
|
@@ -167311,7 +167020,7 @@ void RowGroup::TemplatedScan(Transaction *transaction, RowGroupScanState &state,
|
|
|
167311
167020
|
if (count != max_count) {
|
|
167312
167021
|
sel.Initialize(valid_sel);
|
|
167313
167022
|
} else {
|
|
167314
|
-
sel.Initialize(
|
|
167023
|
+
sel.Initialize(nullptr);
|
|
167315
167024
|
}
|
|
167316
167025
|
//! first, we scan the columns with filters, fetch their data and generate a selection vector.
|
|
167317
167026
|
//! get runtime statistics
|
|
@@ -169356,7 +169065,7 @@ idx_t UpdateValidityStatistics(UpdateSegment *segment, SegmentStatistics &stats,
|
|
|
169356
169065
|
}
|
|
169357
169066
|
}
|
|
169358
169067
|
}
|
|
169359
|
-
sel.Initialize(
|
|
169068
|
+
sel.Initialize(nullptr);
|
|
169360
169069
|
return count;
|
|
169361
169070
|
}
|
|
169362
169071
|
|
|
@@ -169370,7 +169079,7 @@ idx_t TemplatedUpdateNumericStatistics(UpdateSegment *segment, SegmentStatistics
|
|
|
169370
169079
|
for (idx_t i = 0; i < count; i++) {
|
|
169371
169080
|
NumericStatistics::Update<T>(stats, update_data[i]);
|
|
169372
169081
|
}
|
|
169373
|
-
sel.Initialize(
|
|
169082
|
+
sel.Initialize(nullptr);
|
|
169374
169083
|
return count;
|
|
169375
169084
|
} else {
|
|
169376
169085
|
idx_t not_null_count = 0;
|
|
@@ -169396,7 +169105,7 @@ idx_t UpdateStringStatistics(UpdateSegment *segment, SegmentStatistics &stats, V
|
|
|
169396
169105
|
update_data[i] = segment->GetStringHeap().AddString(update_data[i]);
|
|
169397
169106
|
}
|
|
169398
169107
|
}
|
|
169399
|
-
sel.Initialize(
|
|
169108
|
+
sel.Initialize(nullptr);
|
|
169400
169109
|
return count;
|
|
169401
169110
|
} else {
|
|
169402
169111
|
idx_t not_null_count = 0;
|
|
@@ -170116,9 +169825,9 @@ void ReplayState::ReplayDelete() {
|
|
|
170116
169825
|
throw InternalException("Corrupt WAL: delete without table");
|
|
170117
169826
|
}
|
|
170118
169827
|
|
|
170119
|
-
D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() ==
|
|
169828
|
+
D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() == LogicalType::ROW_TYPE);
|
|
170120
169829
|
row_t row_ids[1];
|
|
170121
|
-
Vector row_identifiers(
|
|
169830
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, (data_ptr_t)row_ids);
|
|
170122
169831
|
|
|
170123
169832
|
auto source_ids = FlatVector::GetData<row_t>(chunk.data[0]);
|
|
170124
169833
|
// delete the tuples from the current table
|
|
@@ -170383,7 +170092,7 @@ void WriteAheadLog::WriteDelete(DataChunk &chunk) {
|
|
|
170383
170092
|
return;
|
|
170384
170093
|
}
|
|
170385
170094
|
D_ASSERT(chunk.size() > 0);
|
|
170386
|
-
D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() ==
|
|
170095
|
+
D_ASSERT(chunk.ColumnCount() == 1 && chunk.data[0].GetType() == LogicalType::ROW_TYPE);
|
|
170387
170096
|
chunk.Verify();
|
|
170388
170097
|
|
|
170389
170098
|
writer->Write<WALType>(WALType::DELETE_TUPLE);
|
|
@@ -170396,7 +170105,7 @@ void WriteAheadLog::WriteUpdate(DataChunk &chunk, const vector<column_t> &column
|
|
|
170396
170105
|
}
|
|
170397
170106
|
D_ASSERT(chunk.size() > 0);
|
|
170398
170107
|
D_ASSERT(chunk.ColumnCount() == 2);
|
|
170399
|
-
D_ASSERT(chunk.data[1].GetType().id() ==
|
|
170108
|
+
D_ASSERT(chunk.data[1].GetType().id() == LogicalType::ROW_TYPE);
|
|
170400
170109
|
chunk.Verify();
|
|
170401
170110
|
|
|
170402
170111
|
writer->Write<WALType>(WALType::UPDATE_TUPLE);
|
|
@@ -170574,7 +170283,7 @@ void CleanupState::Flush() {
|
|
|
170574
170283
|
}
|
|
170575
170284
|
|
|
170576
170285
|
// set up the row identifiers vector
|
|
170577
|
-
Vector row_identifiers(
|
|
170286
|
+
Vector row_identifiers(LogicalType::ROW_TYPE, (data_ptr_t)row_numbers);
|
|
170578
170287
|
|
|
170579
170288
|
// delete the tuples from all the indexes
|
|
170580
170289
|
current_table->RemoveFromIndexes(row_identifiers, count);
|
|
@@ -170796,7 +170505,7 @@ void CommitState::WriteDelete(DeleteInfo *info) {
|
|
|
170796
170505
|
|
|
170797
170506
|
if (!delete_chunk) {
|
|
170798
170507
|
delete_chunk = make_unique<DataChunk>();
|
|
170799
|
-
vector<LogicalType> delete_types = {
|
|
170508
|
+
vector<LogicalType> delete_types = {LogicalType::ROW_TYPE};
|
|
170800
170509
|
delete_chunk->Initialize(delete_types);
|
|
170801
170510
|
}
|
|
170802
170511
|
auto rows = FlatVector::GetData<row_t>(delete_chunk->data[0]);
|
|
@@ -170822,7 +170531,7 @@ void CommitState::WriteUpdate(UpdateInfo *info) {
|
|
|
170822
170531
|
} else {
|
|
170823
170532
|
update_types.push_back(column_data.type);
|
|
170824
170533
|
}
|
|
170825
|
-
update_types.
|
|
170534
|
+
update_types.emplace_back(LogicalType::ROW_TYPE);
|
|
170826
170535
|
|
|
170827
170536
|
update_chunk = make_unique<DataChunk>();
|
|
170828
170537
|
update_chunk->Initialize(update_types);
|