| 39 | namespace tiledb::api { |
| 40 | |
| 41 | capi_return_t tiledb_subarray_alloc( |
| 42 | tiledb_ctx_t* ctx, |
| 43 | const tiledb_array_t* array, |
| 44 | tiledb_subarray_t** subarray) { |
| 45 | ensure_array_is_valid(array); |
| 46 | ensure_output_pointer_is_valid(subarray); |
| 47 | |
| 48 | // Error if array is not open |
| 49 | if (!array->is_open()) { |
| 50 | throw CAPIException("Cannot create subarray; array is not open"); |
| 51 | } |
| 52 | |
| 53 | // Create Subarray object |
| 54 | *subarray = tiledb_subarray_t::make_handle( |
| 55 | array->array().get(), |
| 56 | (tiledb::sm::stats::Stats*)nullptr, |
| 57 | ctx->resources().logger(), |
| 58 | true); |
| 59 | return TILEDB_OK; |
| 60 | } |
| 61 | |
| 62 | void tiledb_subarray_free(tiledb_subarray_t** subarray) { |
| 63 | ensure_output_pointer_is_valid(subarray); |