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

Function tiledb_buffer_arrow_fmt

tiledb/sm/cpp_api/arrow_io_impl.h:156–273  ·  view source on GitHub ↗

Get Arrow format from TileDB BufferInfo

Source from the content-addressed store, hash-verified

154
155// Get Arrow format from TileDB BufferInfo
156ArrowInfo tiledb_buffer_arrow_fmt(BufferInfo bufferinfo, bool use_list = true) {
157 auto typeinfo = bufferinfo.tdbtype;
158 auto cell_val_num = typeinfo.cell_val_num;
159
160 // TODO support List<T> for simple scalar T
161 (void)use_list;
162 /*
163 if (use_list && cell_val_num == TILEDB_VAR_NUM) {
164 switch(typeinfo.type) {
165 case TILEDB_STRING_UTF8:
166 case TILEDB_STRING_ASCII:
167 break;
168 case TILEDB_BLOB:
169 case TILEDB_INT8:
170 case TILEDB_INT16:
171 case TILEDB_INT32:
172 case TILEDB_INT64:
173 case TILEDB_UINT8:
174 case TILEDB_UINT16:
175 case TILEDB_UINT32:
176 case TILEDB_UINT64:
177 case TILEDB_FLOAT32:
178 case TILEDB_FLOAT64:
179 return ArrowInfo("+l");
180 default:
181 throw TDB_LERROR(
182 "TileDB-Arrow: List<T> translation not yet supported for var-length
183 TileDB type ('"
184 + tiledb::impl::type_to_str(typeinfo.type) + "')");
185 }
186 }
187 */
188
189 switch (typeinfo.type) {
190 ////////////////////////////////////////////////////////////////////////
191 case TILEDB_STRING_ASCII:
192 case TILEDB_STRING_UTF8:
193 if (bufferinfo.offsets_elem_size == 4) {
194 return ArrowInfo("u");
195 } else {
196 return ArrowInfo("U");
197 }
198 case TILEDB_CHAR:
199 if (bufferinfo.offsets_elem_size == 4) {
200 return ArrowInfo("z");
201 } else {
202 return ArrowInfo("Z");
203 }
204 case TILEDB_INT32:
205 return ArrowInfo("i");
206 case TILEDB_INT64:
207 return ArrowInfo("l");
208 case TILEDB_FLOAT32:
209 return ArrowInfo("f");
210 case TILEDB_FLOAT64:
211 return ArrowInfo("g");
212 case TILEDB_BLOB:
213 return ArrowInfo("B");

Callers 1

export_Method · 0.85

Calls 2

ArrowInfoClass · 0.85
type_to_strFunction · 0.85

Tested by

no test coverage detected