Add deltaLakeCluster variant functions

This commit is contained in:
Smita Kulkarni
2025-08-13 15:30:43 +02:00
parent 101bd4c337
commit 8e0765a014
6 changed files with 126 additions and 44 deletions
@@ -152,19 +152,37 @@ void registerTableFunctionIcebergCluster(TableFunctionFactory & factory)
}
#endif
#if USE_AWS_S3
#if USE_PARQUET && USE_DELTA_KERNEL_RS
#if USE_PARQUET
void registerTableFunctionDeltaLakeCluster(TableFunctionFactory & factory)
{
#if USE_AWS_S3 && USE_DELTA_KERNEL_RS
factory.registerFunction<TableFunctionDeltaLakeCluster>(
{.documentation
= {.description = R"(The table function can be used to read the DeltaLake table stored on object store in parallel for many nodes in a specified cluster.)",
= {.description = R"(The table function can be used to read the DeltaLake table stored on S3 object store in parallel for many nodes in a specified cluster.)",
.examples{{DeltaLakeClusterDefinition::name, "SELECT * FROM deltaLakeCluster(cluster, url, access_key_id, secret_access_key)", ""}},
.category = FunctionDocumentation::Category::TableFunction},
.allow_readonly = false});
factory.registerFunction<TableFunctionDeltaLakeS3Cluster>(
{.documentation
= {.description = R"(The table function can be used to read the DeltaLake table stored on S3 object store in parallel for many nodes in a specified cluster.)",
.examples{{DeltaLakeClusterDefinition::name, "SELECT * FROM deltaLakeS3Cluster(cluster, url, access_key_id, secret_access_key)", ""}},
.category = FunctionDocumentation::Category::TableFunction},
.allow_readonly = false});
#endif
#if USE_AZURE_BLOB_STORAGE
factory.registerFunction<TableFunctionDeltaLakeAzureCluster>(
{.documentation
= {.description = R"(The table function can be used to read the Iceberg table stored on Azure object store in parallel for many nodes in a specified cluster.)",
.examples{{DeltaLakeAzureClusterDefinition::name, "SELECT * FROM deltaLakeAzureCluster(cluster, connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])", ""}},
.category = FunctionDocumentation::Category::TableFunction},
.allow_readonly = false});
#endif
}
#endif
#if USE_AWS_S3
void registerTableFunctionHudiCluster(TableFunctionFactory & factory)
{
factory.registerFunction<TableFunctionHudiCluster>(
@@ -182,10 +200,10 @@ void registerDataLakeClusterTableFunctions(TableFunctionFactory & factory)
#if USE_AVRO
registerTableFunctionIcebergCluster(factory);
#endif
#if USE_AWS_S3
#if USE_PARQUET && USE_DELTA_KERNEL_RS
#if USE_PARQUET
registerTableFunctionDeltaLakeCluster(factory);
#endif
#if USE_AWS_S3
registerTableFunctionHudiCluster(factory);
#endif
}