MCPcopy Create free account
hub / github.com/TileDB-Inc/TileDB / write_dense_string

Method write_dense_string

test/src/test-cppapi-aggregates.cc:434–483  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

432
433template <class T>
434void CppAggregatesFx<T>::write_dense_string(
435 std::vector<std::string> a,
436 uint64_t dim1_min,
437 uint64_t dim1_max,
438 uint64_t dim2_min,
439 uint64_t dim2_max,
440 uint64_t timestamp,
441 optional<std::vector<uint8_t>> a_validity) {
442 // Open array.
443 Array array(
444 ctx_,
445 ARRAY_NAME,
446 TILEDB_WRITE,
447 TemporalPolicy(TimestampStartEnd, 0, timestamp));
448
449 std::string a_data;
450 std::vector<uint64_t> a_offsets;
451 uint64_t offset = 0;
452 for (auto& v : a) {
453 a_data += v;
454 a_offsets.emplace_back(offset);
455 offset += v.length();
456 }
457
458 // Create the subarray.
459 Subarray subarray(ctx_, array);
460 subarray.add_range(0, dim1_min, dim1_max).add_range(1, dim2_min, dim2_max);
461
462 // Create query.
463 Query query(ctx_, array, TILEDB_WRITE);
464 query.set_layout(TILEDB_ROW_MAJOR);
465 query.set_subarray(subarray);
466 query.set_offsets_buffer("a1", a_offsets);
467 query.set_data_buffer("a1", a_data);
468 if (a_validity.has_value()) {
469 query.set_validity_buffer("a1", a_validity.value());
470 }
471 query.set_offsets_buffer("a2", a_offsets);
472 query.set_data_buffer("a2", a_data);
473 if (a_validity.has_value()) {
474 query.set_validity_buffer("a2", a_validity.value());
475 }
476
477 // Submit/finalize the query.
478 query.submit();
479 query.finalize();
480
481 // Close array.
482 array.close();
483}
484
485template <class T>
486std::vector<uint8_t> CppAggregatesFx<T>::make_data_buff(

Callers

nothing calls this directly

Calls 12

TemporalPolicyClass · 0.85
has_valueMethod · 0.80
add_rangeMethod · 0.45
set_layoutMethod · 0.45
set_subarrayMethod · 0.45
set_offsets_bufferMethod · 0.45
set_data_bufferMethod · 0.45
set_validity_bufferMethod · 0.45
valueMethod · 0.45
submitMethod · 0.45
finalizeMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected