#![allow(non_camel_case_types, non_snake_case, non_upper_case_globals)]
pub type ULONG = ::core::ffi::c_ulong;
pub type BOOL = ::core::ffi::c_int;
pub type BYTE = ::core::ffi::c_uchar;
pub type CHAR = ::core::ffi::c_char;
pub type WCHAR = u16;
pub type LPCWCH = *const WCHAR;
pub type LPCWSTR = *const WCHAR;
pub type LPCSTR = *const CHAR;
pub type HRESULT = ::core::ffi::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GUID {
pub Data1: ::core::ffi::c_ulong,
pub Data2: ::core::ffi::c_ushort,
pub Data3: ::core::ffi::c_ushort,
pub Data4: [::core::ffi::c_uchar; 8usize],
}
pub type GUID = _GUID;
pub type IID = GUID;
#[repr(C)]
pub struct IUnknown__bindgen_vtable(::core::ffi::c_void);
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUnknown {
pub vtable_: *const IUnknown__bindgen_vtable,
}
pub const QueryPlanInteropPartitionKind_Hash: QueryPlanInteropPartitionKind = 0;
pub const QueryPlanInteropPartitionKind_Range: QueryPlanInteropPartitionKind = 1;
pub const QueryPlanInteropPartitionKind_MultiHash: QueryPlanInteropPartitionKind = 2;
pub type QueryPlanInteropPartitionKind = i32;
pub const QueryPlanInteropGeospatialType_Geography: QueryPlanInteropGeospatialType = 0;
pub const QueryPlanInteropGeospatialType_Geometry: QueryPlanInteropGeospatialType = 1;
pub type QueryPlanInteropGeospatialType = i32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct QueryPlanInteropPartitionKeyRangesApiOptions {
pub bRequireFormattableOrderByQuery: BOOL,
pub bIsContinuationExpected: BOOL,
pub bAllowNonValueAggregateQuery: BOOL,
pub bHasLogicalPartitionKey: BOOL,
pub bAllowDCount: BOOL,
pub bUseSystemPrefix: BOOL,
pub ePartitionKind: QueryPlanInteropPartitionKind,
pub eGeospatialType: QueryPlanInteropGeospatialType,
pub bHybridSearchSkipOrderByRewrite: BOOL,
pub rgbyReserved: [BYTE; 28usize],
}
unsafe extern "C" {
pub fn CreateServiceProvider(
pszConfigJson: LPCSTR,
ppServiceProviderOut: *mut *mut IUnknown,
) -> HRESULT;
}
unsafe extern "C" {
pub fn UpdateServiceProvider(pServiceProvider: *mut IUnknown, pszConfigJson: LPCSTR)
-> HRESULT;
}
unsafe extern "C" {
pub fn GetPartitionKeyRangesFromQuery4(
pServiceProvider: *mut IUnknown,
pwszQuerySpec: LPCWSTR,
options: QueryPlanInteropPartitionKeyRangesApiOptions,
pPartitionKeyPathTokens: *mut LPCWSTR,
rgPartitionKeyPathTokensLengths: *mut ULONG,
nPartitionKeyCount: ULONG,
pwchVectorEmbeddingPolicy: LPCWCH,
nVectorEmbeddingPolicyLength: ULONG,
pbySerializedPartitionedQueryExecutionInfoBuffer: *mut BYTE,
nSerializedPartitionedQueryExecutionInfoBufferLength: ULONG,
pnSerializedPartitionedQueryExecutionInfoResultLength: *mut ULONG,
) -> HRESULT;
}