Skip to content
This repository was archived by the owner on Oct 10, 2025. It is now read-only.

Commit 3e87d45

Browse files
authored
refactor table function constructor (#4664)
* refactor table function constructor * Run clang-format --------- Co-authored-by: CI Bot <[email protected]>
1 parent c93bbd9 commit 3e87d45

File tree

32 files changed

+210
-113
lines changed

32 files changed

+210
-113
lines changed

extension/delta/src/function/delta_scan.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,13 @@ std::unique_ptr<TableFuncLocalState> initEmptyLocalState(TableFunctionInitInput&
7373

7474
function_set DeltaScanFunction::getFunctionSet() {
7575
function_set functionSet;
76-
functionSet.push_back(
77-
std::make_unique<TableFunction>(name, tableFunc, bindFunc, initDeltaScanSharedState,
78-
initEmptyLocalState, std::vector<LogicalTypeID>{LogicalTypeID::STRING}));
76+
auto function =
77+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING});
78+
function->tableFunc = tableFunc;
79+
function->bindFunc = bindFunc;
80+
function->initSharedStateFunc = initDeltaScanSharedState;
81+
function->initLocalStateFunc = initEmptyLocalState;
82+
functionSet.push_back(std::move(function));
7983
return functionSet;
8084
}
8185

extension/duckdb/src/function/clear_cache.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ static std::unique_ptr<TableFuncBindData> clearCacheBindFunc(ClientContext* cont
3636
1 /* maxOffset */);
3737
}
3838

39-
ClearCacheFunction::ClearCacheFunction()
40-
: TableFunction{name, clearCacheTableFunc, clearCacheBindFunc,
41-
function::SimpleTableFunction::initSharedState,
42-
function::SimpleTableFunction::initEmptyLocalState, std::vector<LogicalTypeID>{}} {}
39+
ClearCacheFunction::ClearCacheFunction() : TableFunction{name, std::vector<LogicalTypeID>{}} {
40+
tableFunc = clearCacheTableFunc;
41+
bindFunc = clearCacheBindFunc;
42+
initSharedStateFunc = SimpleTableFunction::initSharedState;
43+
initLocalStateFunc = SimpleTableFunction::initEmptyLocalState;
44+
}
4345

4446
} // namespace duckdb_extension
4547
} // namespace kuzu

extension/duckdb/src/function/duckdb_scan.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,14 @@ std::unique_ptr<function::TableFuncBindData> DuckDBScanFunction::bindFunc(
112112
}
113113

114114
TableFunction getScanFunction(DuckDBScanBindData bindData) {
115-
return TableFunction(DuckDBScanFunction::DUCKDB_SCAN_FUNC_NAME, DuckDBScanFunction::tableFunc,
116-
std::bind(DuckDBScanFunction::bindFunc, std::move(bindData), std::placeholders::_1,
117-
std::placeholders::_2),
118-
DuckDBScanFunction::initSharedState, DuckDBScanFunction::initLocalState,
119-
std::vector<LogicalTypeID>{});
115+
auto function =
116+
TableFunction(DuckDBScanFunction::DUCKDB_SCAN_FUNC_NAME, std::vector<LogicalTypeID>{});
117+
function.tableFunc = DuckDBScanFunction::tableFunc;
118+
function.bindFunc = std::bind(DuckDBScanFunction::bindFunc, std::move(bindData),
119+
std::placeholders::_1, std::placeholders::_2);
120+
function.initSharedStateFunc = DuckDBScanFunction::initSharedState;
121+
function.initLocalStateFunc = DuckDBScanFunction::initLocalState;
122+
return function;
120123
}
121124

122125
} // namespace duckdb_extension

extension/fts/src/function/create_fts_index.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,13 @@ static common::offset_t tableFunc(TableFuncInput& input, TableFuncOutput& /*outp
228228

229229
function_set CreateFTSFunction::getFunctionSet() {
230230
function_set functionSet;
231-
auto func = std::make_unique<TableFunction>(name, tableFunc, bindFunc, initSharedState,
232-
initEmptyLocalState,
233-
std::vector<LogicalTypeID>{LogicalTypeID::STRING, LogicalTypeID::STRING,
234-
LogicalTypeID::LIST});
231+
auto func =
232+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING,
233+
LogicalTypeID::STRING, LogicalTypeID::LIST});
234+
func->tableFunc = tableFunc;
235+
func->bindFunc = bindFunc;
236+
func->initSharedStateFunc = initSharedState;
237+
func->initLocalStateFunc = initEmptyLocalState;
235238
func->rewriteFunc = createFTSIndexQuery;
236239
func->canParallelFunc = []() { return false; };
237240
functionSet.push_back(std::move(func));

extension/fts/src/function/drop_fts_index.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,12 @@ static common::offset_t tableFunc(TableFuncInput& input, TableFuncOutput& /*outp
4949

5050
function_set DropFTSFunction::getFunctionSet() {
5151
function_set functionSet;
52-
auto func = std::make_unique<TableFunction>(name, tableFunc, bindFunc, initSharedState,
53-
initEmptyLocalState,
52+
auto func = std::make_unique<TableFunction>(name,
5453
std::vector<LogicalTypeID>{LogicalTypeID::STRING, LogicalTypeID::STRING});
54+
func->tableFunc = tableFunc;
55+
func->bindFunc = bindFunc;
56+
func->initSharedStateFunc = initSharedState;
57+
func->initLocalStateFunc = initEmptyLocalState;
5558
func->rewriteFunc = dropFTSIndexQuery;
5659
func->canParallelFunc = []() { return false; };
5760
functionSet.push_back(std::move(func));

extension/iceberg/src/function/iceberg_metadata.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ std::unique_ptr<TableFuncBindData> metadataBindFunc(main::ClientContext* context
1313

1414
function_set IcebergMetadataFunction::getFunctionSet() {
1515
function_set functionSet;
16-
functionSet.push_back(std::make_unique<TableFunction>(name, delta_extension::tableFunc,
17-
metadataBindFunc, delta_extension::initDeltaScanSharedState,
18-
delta_extension::initEmptyLocalState, std::vector<LogicalTypeID>{LogicalTypeID::STRING}));
16+
auto function =
17+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING});
18+
function->tableFunc = delta_extension::tableFunc;
19+
function->bindFunc = metadataBindFunc;
20+
function->initSharedStateFunc = delta_extension::initDeltaScanSharedState;
21+
function->initLocalStateFunc = delta_extension::initEmptyLocalState;
22+
functionSet.push_back(std::move(function));
1923
return functionSet;
2024
}
2125

extension/iceberg/src/function/iceberg_scan.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ std::unique_ptr<TableFuncBindData> scanBindFunc(main::ClientContext* context,
1313

1414
function_set IcebergScanFunction::getFunctionSet() {
1515
function_set functionSet;
16-
functionSet.push_back(std::make_unique<TableFunction>(name, delta_extension::tableFunc,
17-
scanBindFunc, delta_extension::initDeltaScanSharedState,
18-
delta_extension::initEmptyLocalState, std::vector<LogicalTypeID>{LogicalTypeID::STRING}));
16+
auto function =
17+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING});
18+
function->tableFunc = delta_extension::tableFunc;
19+
function->bindFunc = scanBindFunc;
20+
function->initSharedStateFunc = delta_extension::initDeltaScanSharedState;
21+
function->initLocalStateFunc = delta_extension::initEmptyLocalState;
22+
functionSet.push_back(std::move(function));
1923
return functionSet;
2024
}
2125

extension/iceberg/src/function/iceberg_snapshots.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ static std::unique_ptr<TableFuncBindData> snapshotBindFunc(main::ClientContext*
1313

1414
function_set IcebergSnapshotsFunction::getFunctionSet() {
1515
function_set functionSet;
16-
functionSet.push_back(std::make_unique<TableFunction>(name, delta_extension::tableFunc,
17-
snapshotBindFunc, delta_extension::initDeltaScanSharedState,
18-
delta_extension::initEmptyLocalState, std::vector<LogicalTypeID>{LogicalTypeID::STRING}));
16+
auto function =
17+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING});
18+
function->tableFunc = delta_extension::tableFunc;
19+
function->bindFunc = snapshotBindFunc;
20+
function->initSharedStateFunc = delta_extension::initDeltaScanSharedState;
21+
function->initLocalStateFunc = delta_extension::initEmptyLocalState;
22+
functionSet.push_back(std::move(function));
1923
return functionSet;
2024
}
2125

extension/json/src/functions/table_functions/json_scan.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -899,8 +899,13 @@ static void finalizeFunc(processor::ExecutionContext* ctx, TableFuncSharedState*
899899

900900
std::unique_ptr<TableFunction> JsonScan::getFunction() {
901901
auto func =
902-
std::make_unique<TableFunction>(name, tableFunc, bindFunc, initSharedState, initLocalState,
903-
progressFunc, std::vector<LogicalTypeID>{LogicalTypeID::STRING}, finalizeFunc);
902+
std::make_unique<TableFunction>(name, std::vector<LogicalTypeID>{LogicalTypeID::STRING});
903+
func->tableFunc = tableFunc;
904+
func->bindFunc = bindFunc;
905+
func->initSharedStateFunc = initSharedState;
906+
func->initLocalStateFunc = initLocalState;
907+
func->progressFunc = progressFunc;
908+
func->finalizeFunc = finalizeFunc;
904909
return func;
905910
}
906911

src/function/table/call/bm_info.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,12 @@ static std::unique_ptr<TableFuncBindData> bindFunc(main::ClientContext* context,
4646

4747
function_set BMInfoFunction::getFunctionSet() {
4848
function_set functionSet;
49-
functionSet.push_back(std::make_unique<TableFunction>(name, tableFunc, bindFunc,
50-
initSharedState, initEmptyLocalState, std::vector<common::LogicalTypeID>{}));
49+
auto function = std::make_unique<TableFunction>(name, std::vector<common::LogicalTypeID>{});
50+
function->tableFunc = tableFunc;
51+
function->bindFunc = bindFunc;
52+
function->initSharedStateFunc = initSharedState;
53+
function->initLocalStateFunc = initEmptyLocalState;
54+
functionSet.push_back(std::move(function));
5155
return functionSet;
5256
}
5357

0 commit comments

Comments
 (0)