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

Function read_array_metadata

examples/cpp_api/array_metadata.cc:79–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79void read_array_metadata() {
80 // Create TileDB context
81 Context ctx;
82
83 // Open array for reading
84 Array array(ctx, array_name, TILEDB_READ);
85
86 // Read with key
87 tiledb_datatype_t v_type;
88 uint32_t v_num;
89 const void* v;
90 array.get_metadata("aaa", &v_type, &v_num, &v);
91 std::cout << "Details of item with key: aaa\n";
92 std::cout << "- Value type: "
93 << ((v_type == TILEDB_INT32) ? "INT32" : "something went wrong")
94 << "\n";
95 std::cout << "- Value num: " << v_num << "\n";
96 std::cout << "- Value: " << *(const int*)v << "\n";
97
98 array.get_metadata("bb", &v_type, &v_num, &v);
99 std::cout << "Details of item with key: bb\n";
100 std::cout << "- Value type: "
101 << ((v_type == TILEDB_FLOAT32) ? "FLOAT32" : "something went wrong")
102 << "\n";
103 std::cout << "- Value num: " << v_num << "\n";
104 std::cout << "- Value: " << ((const float*)v)[0] << " "
105 << ((const float*)v)[1] << "\n";
106
107 // Enumerate all metadata items
108 std::string key;
109 uint64_t num = array.metadata_num();
110 printf("Enumerate all metadata items:\n");
111 for (uint64_t i = 0; i < num; ++i) {
112 array.get_metadata_from_index(i, &key, &v_type, &v_num, &v);
113
114 std::cout << "# Item " << i << "\n";
115 const char* v_type_str = (v_type == TILEDB_INT32) ? "INT32" : "FLOAT32";
116 std::cout << "- Key: " << key << "\n";
117 std::cout << "- Value type: " << v_type_str << "\n";
118 std::cout << "- Value num: " << v_num << "\n";
119 std::cout << "- Value: ";
120 if (v_type == TILEDB_INT32) {
121 for (uint32_t j = 0; j < v_num; ++j)
122 std::cout << ((const int*)v)[j] << " ";
123 } else if (v_type == TILEDB_FLOAT32) {
124 for (uint32_t j = 0; j < v_num; ++j)
125 std::cout << ((const float*)v)[j] << " ";
126 }
127 std::cout << "\n";
128 }
129
130 // Close array
131 array.close();
132}
133
134int main() {
135 create_array();

Callers 1

mainFunction · 0.70

Calls 4

get_metadataMethod · 0.45
metadata_numMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected