Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support external udaf function #2825

Merged
merged 31 commits into from
Mar 22, 2023
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c18bc2c
feat: support external udaf
dl239 Nov 24, 2022
011c229
refact: update type_ir_builder
dl239 Nov 25, 2022
392b404
refact: refact
dl239 Nov 29, 2022
360438b
Merge branch 'main' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Nov 29, 2022
098e5a7
feat: add node
dl239 Nov 29, 2022
e0030c7
feat: build udaf call
dl239 Nov 30, 2022
66df39d
feat: add udaf registry
dl239 Nov 30, 2022
a98d7b3
feat: support drop
dl239 Dec 7, 2022
e823ad3
Merge branch 'main' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Dec 7, 2022
aed213e
refact: rm unused code
dl239 Dec 7, 2022
539bf6f
refact: rm unused code
dl239 Dec 7, 2022
d480f1c
docs: add udaf docs
dl239 Dec 8, 2022
2d2b319
docs: update
dl239 Dec 8, 2022
2bce9b6
feat: support null args
dl239 Dec 9, 2022
be68dbf
Merge branch 'feat/udaf' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Dec 9, 2022
4f50ac8
fix: fix test case
dl239 Dec 12, 2022
7f9e01c
feat: return result in arg if return_nullable is true
dl239 Dec 12, 2022
5ce768c
docs: update the docs
dl239 Dec 12, 2022
c7413cb
fix: fix test case
dl239 Dec 13, 2022
b89eeb1
Merge branch 'feat/udaf' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Dec 13, 2022
c31b2d8
Merge branch 'main' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Dec 13, 2022
5f99997
merge main
dl239 Dec 20, 2022
1483c9c
Merge branch 'feat/udaf' of github.com:dl239/OpenMLDB into feat/udaf
dl239 Dec 20, 2022
05a1b35
merge main
dl239 Mar 20, 2023
5e1a8c5
fix: fix compile
dl239 Mar 20, 2023
f583a41
fix: fix ExternalUdfUtil
dl239 Mar 20, 2023
497e527
fix: fix comment
dl239 Mar 21, 2023
cede5bd
fix: fix comment
dl239 Mar 21, 2023
d3719f8
fix: fix style
dl239 Mar 21, 2023
b2b8000
fix: fix compile
dl239 Mar 21, 2023
926d158
fix: fix compile
dl239 Mar 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: fix compile
dl239 committed Mar 21, 2023
commit b2b8000c827bce1b0ffb1f4330f76bab660129f1
1 change: 1 addition & 0 deletions hybridse/include/node/node_enum.h
Original file line number Diff line number Diff line change
@@ -93,6 +93,7 @@ enum SqlNodeType {
kDeleteStmt,
kCreateFunctionStmt,
kDynamicUdfFnDef,
kDynamicUdafFnDef, // deprecated
kWithClauseEntry,
kUnknow = -1
};
1 change: 1 addition & 0 deletions hybridse/src/udf/udf.h
Original file line number Diff line number Diff line change
@@ -35,6 +35,7 @@ namespace udf {
using openmldb::base::StringRef;
using openmldb::base::Date;
using openmldb::base::Timestamp;
using openmldb::base::UDFContext;

namespace v1 {

4 changes: 2 additions & 2 deletions hybridse/src/udf/udf_registry.cc
Original file line number Diff line number Diff line change
@@ -363,7 +363,7 @@ Status DynamicUdfRegistryHelper::Register() {
return Status(kCodegenError, "No return type specified for udf registry");;
}
std::string init_context_fn_name = "init_udfcontext.opaque";
auto type_node = node_manager()->MakeOpaqueType(sizeof(UDFContext));
auto type_node = node_manager()->MakeOpaqueType(sizeof(::openmldb::base::UDFContext));
auto init_context_node = node_manager()->MakeExternalFnDefNode(
init_context_fn_name, udfcontext_fun_ptr_, type_node, false, {}, {}, -1, true);
auto def = node_manager()->MakeDynamicUdfFnDefNode(
@@ -380,7 +380,7 @@ DynamicUdafRegistryHelperImpl::DynamicUdafRegistryHelperImpl(const std::string&
node::DataType return_type, bool return_nullable,
const std::vector<node::DataType>& arg_types, bool arg_nullable) : UdfRegistryHelper(name, library) {
auto nm = node_manager();
state_ty_ = nm->MakeOpaqueType(sizeof(UDFContext));
state_ty_ = nm->MakeOpaqueType(sizeof(::openmldb::base::UDFContext));
state_nullable_ = false;
update_tys_.push_back(state_ty_);
update_nullable_.push_back(state_nullable_);