Skip to content

Commit a4c8c71

Browse files
committed
Merge remote-tracking branch 'origin/dev' into yt/sc-48774/fragment_list_consolidation
2 parents c0a099c + f84be6c commit a4c8c71

File tree

124 files changed

+5765
-4628
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+5765
-4628
lines changed

.github/workflows/build-ubuntu20.04-backwards-compatibility.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
- ubuntu-20.04
6060
# Note: v2_1_0 arrays were never created so its currently skipped
6161
# Note: This matrix is used to set the value of TILEDB_COMPATIBILITY_VERSION
62-
tiledb_version: ["v1_4_0", "v1_5_0", "v1_6_0", "v1_7_0", "v2_0_0", "v2_2_0", "v2_2_3", "v2_3_0", "v2_4_0", "v2_5_0", "v2_6_0", "v2_7_0", "v2_8_3", "v2_9_1", "v2_10_0", "v2_11_0", "v2_12_3", "v2_13_2", "v2_14_0", "v2_15_0", "v2_16_3", "v2_17_5", "v2_18_3", "v2_19_1", "v2_20_1", "v2_21_1", "v2_22_0", "v2_23_0", "v2_24_0"]
62+
tiledb_version: ["v1_4_0", "v1_5_0", "v1_6_0", "v1_7_0", "v2_0_0", "v2_2_0", "v2_2_3", "v2_3_0", "v2_4_0", "v2_5_0", "v2_6_0", "v2_7_0", "v2_8_3", "v2_9_1", "v2_10_0", "v2_11_0", "v2_12_3", "v2_13_2", "v2_14_0", "v2_15_0", "v2_16_3", "v2_17_5", "v2_18_3", "v2_19_1", "v2_20_1", "v2_21_1", "v2_22_0", "v2_23_0", "v2_24_0", "v2_25_0"]
6363
timeout-minutes: 30
6464
name: ${{ matrix.tiledb_version }}
6565
steps:

.github/workflows/build-windows.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ jobs:
136136
uses: seanmiddleditch/gha-setup-ninja@v4
137137
- name: Prevent vcpkg from building debug variants
138138
run: python $env:GITHUB_WORKSPACE/scripts/ci/patch_vcpkg_triplets.py
139+
- name: Install dependencies from pip
140+
run: python -m pip install pybind11[global]
139141

140142
- name: Configure TileDB
141143
shell: pwsh

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,5 +208,5 @@ jobs:
208208
uses: TileDB-Inc/github-actions/open-issue@main
209209
with:
210210
name: Release failed
211-
label: bug
211+
label: release
212212
assignee: KiterLuc,teo-tsirpanis,davisp

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,12 @@ endif()
286286

287287
list(APPEND TILEDB_C_API_RELATIVE_HEADERS
288288
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/api_external_common.h"
289+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array/array_api_external.h"
290+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array_schema/array_schema_api_deprecated.h"
291+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array_schema/array_schema_api_experimental.h"
292+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array_schema/array_schema_api_external.h"
293+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array_schema/array_type_enum.h"
294+
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/array_schema/layout_enum.h"
289295
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/attribute/attribute_api_external.h"
290296
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/attribute/attribute_api_external_experimental.h"
291297
"${CMAKE_SOURCE_DIR}/tiledb/api/c_api/buffer/buffer_api_external.h"
@@ -521,6 +527,7 @@ if (TILEDB_TESTS)
521527
# C API basics
522528
add_dependencies(tests unit_capi_config unit_capi_context)
523529
add_dependencies(tests unit_capi_array)
530+
add_dependencies(tests unit_capi_array_schema)
524531
add_dependencies(tests unit_capi_buffer)
525532
add_dependencies(tests unit_capi_buffer_list)
526533
add_dependencies(tests unit_capi_data_order)

HISTORY.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,67 @@
1+
# TileDB v2.25.0 Release Notes
2+
3+
## Announcements
4+
5+
* TileDB 2.25, includes the new current domain feature which allows to specify an area of the domain that is considered to be active for sparse arrays.
6+
7+
## Deprecation announcements
8+
9+
* The HDFS backend is no longer officially tested by TileDB. As announced before, it is scheduled to be removed in version 2.28, to be released in Q4 2024. [#5085](https://github.com/TileDB-Inc/TileDB/pull/5085)
10+
* Support for reading sparse fragments in dense arrays will be removed in version 2.27. Writting sparse fragments in dense arrays was removed in version 2.5. [#5116](https://github.com/TileDB-Inc/TileDB/pull/5116)
11+
* Support for returning the same results multiple times in sparse reads when ranges overlap will be removed in version 2.27. This was possible by setting `sm.merge_overlapping_ranges_experimental` to `false`, but the default `true` behavior has been there since version 2.17.
12+
13+
## New features
14+
15+
* REST support for current domain. [#5136](https://github.com/TileDB-Inc/TileDB/pull/5136)
16+
* Disallow writing outside of the current domain. [#5165](https://github.com/TileDB-Inc/TileDB/pull/5165)
17+
* Current domain: disallow reading outside of current domain. [#5168](https://github.com/TileDB-Inc/TileDB/pull/5168)
18+
19+
## Improvements
20+
21+
* Improve memory consumption for tile structures in dense reader. [#5046](https://github.com/TileDB-Inc/TileDB/pull/5046)
22+
23+
## Defects removed
24+
25+
* Fail early when trying to add members with relative URIs in remote groups. [#5025](https://github.com/TileDB-Inc/TileDB/pull/5025)
26+
* Correct defective return value in `Posix::ls_with_sizes`. [#5037](https://github.com/TileDB-Inc/TileDB/pull/5037)
27+
* Prevent constructing attribute with invalid cell_val_num. [#4952](https://github.com/TileDB-Inc/TileDB/pull/4952)
28+
* Do not mask failures when listing a directory fails on POSIX. [#5043](https://github.com/TileDB-Inc/TileDB/pull/5043)
29+
* Fix write queries using `sm.var_offsets.extra_element=true`. [#5033](https://github.com/TileDB-Inc/TileDB/pull/5033)
30+
* Fix segfaults in WebP queries ran in parallel. [#5065](https://github.com/TileDB-Inc/TileDB/pull/5065)
31+
* Fix exceptions with message: ```unknown exception type; no further information```. [#5080](https://github.com/TileDB-Inc/TileDB/pull/5080)
32+
* Fix check for out of bounds dimension in Dimension::dimension_ptr. [#5094](https://github.com/TileDB-Inc/TileDB/pull/5094)
33+
* Fix array latest schema selection for same MS timestamps schemas. [#5143](https://github.com/TileDB-Inc/TileDB/pull/5143)
34+
* Fix serialization issue with schema evolution for query v3. [#5154](https://github.com/TileDB-Inc/TileDB/pull/5154)
35+
36+
## Configuration changes
37+
38+
* Add `vfs.s3.storage_class` config option to set the storage class of newly uploaded S3 objects. [#5053](https://github.com/TileDB-Inc/TileDB/pull/5053)
39+
* Add `rest.custom_headers.*` config option to set custom headers on REST requests. [#5104](https://github.com/TileDB-Inc/TileDB/pull/5104)
40+
* Add `rest.payer_namespace` config option to set the namespace to be charged for REST requests. [#5105](https://github.com/TileDB-Inc/TileDB/pull/5105)
41+
42+
## API changes
43+
44+
### C API
45+
46+
* Add CurrentDomain API support. [#5041](https://github.com/TileDB-Inc/TileDB/pull/5041)
47+
48+
### C++ API
49+
50+
* Current Domain CPP API implementation. [#5056](https://github.com/TileDB-Inc/TileDB/pull/5056)
51+
52+
## Build System Changes
53+
54+
* Backwards compatibility with older CMake versions for libfaketime. [#5049](https://github.com/TileDB-Inc/TileDB/pull/5049)
55+
* Automatic downloading of vcpkg can be disabled by enabling the `TILEDB_DISABLE_AUTO_VCPKG` CMake option, in addition to setting the environment variable with trhe same name. [#5048](https://github.com/TileDB-Inc/TileDB/pull/5048)
56+
* Improve embedding of `magic.mgc` and allow compiling with any libmagic version. [#4989](https://github.com/TileDB-Inc/TileDB/pull/4989)
57+
58+
## Internal Improvements
59+
60+
* Implement actualize function that orders data underlying `alt_var_length_view` [#5087](https://github.com/TileDB-Inc/TileDB/pull/5087)
61+
* Implement a partitioning function to partition cells to fit into fixed size bins [#5092](https://github.com/TileDB-Inc/TileDB/pull/5092)
62+
* Implementation of a `chunk_view` class to provide a subset of C++23 chunk_view, suitable for supporting external sort. [#5035](https://github.com/TileDB-Inc/TileDB/pull/5035)
63+
* Tests that the chunks in a `chunk_view` can be separately sorted. [#5052](https://github.com/TileDB-Inc/TileDB/pull/5052)
64+
165
# TileDB v2.24.2 Release Notes
266

367
## Defects removed

cmake/Options/TileDBToolchain.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
3636
# Inspired from https://github.com/Azure/azure-sdk-for-cpp/blob/azure-core_1.10.3/cmake-modules/AzureVcpkg.cmake
3737
message("TILEDB_DISABLE_AUTO_VCPKG is not defined. Fetch a local copy of vcpkg.")
3838
# To help with resolving conflicts, when you update the commit, also update its date.
39-
set(VCPKG_COMMIT_STRING 72010900b7cee36cea77aebb97695095c9358eaf) # 2023-12-05
39+
set(VCPKG_COMMIT_STRING 7aeffc91033ad35cc4e2c152f213a866ec6c11ac) # 2024-07-13
4040
message("Vcpkg commit string used: ${VCPKG_COMMIT_STRING}")
4141
include(FetchContent)
4242
FetchContent_Declare(

examples/c_api/current_domain.c

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void create_array() {
7474
tiledb_ndrectangle_set_range_for_name(ctx, ndrect, "d1", &range);
7575

7676
// Assign the rectangle to the current domain
77-
tiledb_current_domain_set_ndrectangle(current_domain, ndrect);
77+
tiledb_current_domain_set_ndrectangle(ctx, current_domain, ndrect);
7878

7979
// Create a single attribute "a" so each cell can store an integer
8080
tiledb_attribute_t* a;
@@ -119,21 +119,21 @@ void print_current_domain() {
119119

120120
// Check if current domain is empty
121121
uint32_t is_empty;
122-
tiledb_current_domain_get_is_empty(current_domain, &is_empty);
122+
tiledb_current_domain_get_is_empty(ctx, current_domain, &is_empty);
123123

124124
if (is_empty) {
125125
printf("Current domain: empty\n");
126126
} else {
127127
// Get current domain type
128128
tiledb_current_domain_type_t current_domain_type;
129-
tiledb_current_domain_get_type(current_domain, &current_domain_type);
129+
tiledb_current_domain_get_type(ctx, current_domain, &current_domain_type);
130130

131131
if (current_domain_type == TILEDB_NDRECTANGLE) {
132132
printf("Current domain type: NDRECTANGLE\n");
133133

134134
// Get the ND rectangle
135135
tiledb_ndrectangle_t* ndrect;
136-
tiledb_current_domain_get_ndrectangle(current_domain, &ndrect);
136+
tiledb_current_domain_get_ndrectangle(ctx, current_domain, &ndrect);
137137

138138
tiledb_range_t range;
139139
tiledb_ndrectangle_get_range_from_name(ctx, ndrect, "d1", &range);
@@ -143,6 +143,23 @@ void print_current_domain() {
143143
*(int*)range.min,
144144
*(int*)range.max);
145145

146+
// Get datatype of range
147+
tiledb_datatype_t dtype;
148+
tiledb_ndrectangle_get_dtype(ctx, ndrect, 0, &dtype);
149+
const char* dtype_str;
150+
tiledb_datatype_to_str(dtype, &dtype_str);
151+
printf("Range 0 dtype: %s\n", dtype_str);
152+
153+
// Get datatype of range by name
154+
tiledb_ndrectangle_get_dtype_from_name(ctx, ndrect, "d1", &dtype);
155+
tiledb_datatype_to_str(dtype, &dtype_str);
156+
printf("Range 0 dtype by name: %s\n", dtype_str);
157+
158+
// Get dim num
159+
uint32_t ndim;
160+
tiledb_ndrectangle_get_dim_num(ctx, ndrect, &ndim);
161+
printf("Range 0 dtype by name: %d\n", ndim);
162+
146163
// Clean up
147164
tiledb_ndrectangle_free(&ndrect);
148165
} else {
@@ -191,7 +208,7 @@ void expand_current_domain() {
191208
tiledb_ndrectangle_set_range_for_name(ctx, ndrect, "d1", &range);
192209

193210
// Set the rectangle to the current domain
194-
tiledb_current_domain_set_ndrectangle(new_current_domain, ndrect);
211+
tiledb_current_domain_set_ndrectangle(ctx, new_current_domain, ndrect);
195212

196213
// Expand the current domain
197214
tiledb_array_schema_evolution_expand_current_domain(

examples/cpp_api/current_domain.cc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ void print_current_domain(Context& ctx) {
113113
// Print the range
114114
std::cout << "Current domain range: [" << range[0] << ", " << range[1] << "]"
115115
<< std::endl;
116+
117+
// Print datatype of range 0
118+
std::cout << "Current domain range 0 datatype: "
119+
<< tiledb::impl::type_to_str(ndrect.range_dtype(0)) << std::endl;
120+
121+
// Print datatype of range d1
122+
std::cout << "Current domain range 0 datatype: "
123+
<< tiledb::impl::type_to_str(ndrect.range_dtype("d1")) << std::endl;
124+
125+
// Print dim num
126+
std::cout << "Current domain dim num: " << ndrect.dim_num() << std::endl;
116127
}
117128

118129
void expand_current_domain(Context& ctx) {

ports/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ $ git commit
2626

2727
After copying the port, add an entry to the table below. You should also contribute your changes to vcpkg and/or the upstream package repository.
2828

29+
For ease of review when patching existing ports, you are recommended to make one commit that copies the upstream port unchanged, and another commit that makes the changes you need.
30+
2931
## List of port overlays
3032

31-
| Port | Reason |
32-
|----------------------------|---------------------------------------------------------------------------------------------------------|
33-
| `libmagic` | Updating to the upstream port deferred due to failures. |
34-
| `pcre2` | To be removed alongside libmagic. |
35-
| `azure-storage-common-cpp` | Patching to disable default features on libxml2 (https://github.com/Azure/azure-sdk-for-cpp/pull/5221). |
36-
| `libfaketime` | Port does not yet exist upstream |
37-
| `vcpkg-cmake-config` | Patching to fix build issues with CMake 3.29.1. (https://github.com/microsoft/vcpkg/pull/38017) |
38-
| `google-cloud-cpp` | Patching to remove dependency on GMock. (https://github.com/microsoft/vcpkg/pull/39802) |
33+
| Port | Reason |
34+
|---------------|----------------------------------------------------------------------------------------------------------------------------|
35+
| `aws-c-io` | Patching to fix MinGW build failures. (https://github.com/awslabs/aws-c-io/pull/664) |
36+
| `aws-sdk-cpp` | Patching to fix MinGW build failures, and to avoid building test-only SDKs (https://github.com/aws/aws-sdk-cpp/pull/3061). |
37+
| `libmagic` | Updating to the upstream port deferred due to failures. |
38+
| `libfaketime` | Port does not yet exist upstream |
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/source/windows/secure_channel_tls_handler.c b/source/windows/secure_channel_tls_handler.c
2+
index b62b1a0..48f4556 100644
3+
--- a/source/windows/secure_channel_tls_handler.c
4+
+++ b/source/windows/secure_channel_tls_handler.c
5+
@@ -53,7 +53,7 @@ struct secure_channel_ctx {
6+
struct aws_tls_ctx ctx;
7+
struct aws_string *alpn_list;
8+
SCHANNEL_CRED credentials;
9+
- PCERT_CONTEXT pcerts;
10+
+ PCCERT_CONTEXT pcerts;
11+
HCERTSTORE cert_store;
12+
HCERTSTORE custom_trust_store;
13+
HCRYPTPROV crypto_provider;
14+
@@ -188,7 +188,7 @@ static int s_manually_verify_peer_cert(struct aws_channel_handler *handler) {
15+
int result = AWS_OP_ERR;
16+
CERT_CONTEXT *peer_certificate = NULL;
17+
HCERTCHAINENGINE engine = NULL;
18+
- CERT_CHAIN_CONTEXT *cert_chain_ctx = NULL;
19+
+ PCCERT_CHAIN_CONTEXT cert_chain_ctx = NULL;
20+
21+
/* get the peer's certificate so we can validate it.*/
22+
SECURITY_STATUS status =

0 commit comments

Comments
 (0)