apache / apache/pinot

Add endpoint for external to get information about UDFs

Open
#5,919 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
1d 21h
Merged PRs (30d)
189

Description

Currently we have implemented some Pinot UDFs, however they are not transparently pushdown-able from external query engines like Presto.

The proposed change will add a new endpoint in PinotController. The endpoint will provide information of Pinot UDFs, so that we will have a generic way to understand what can be pushed down to pinot.

In general I'm thinking of the fields we need are:
```
`function_name`
`function_type`
`arguments_types`
`return_type`
```

e.g.
```
[
{
"function_name": "segmentPartitionedDistinctCount",
"function_type": "AGGREGATION",
"arguments_types": [ "ANY" ],
"return_type": [ "LONG" ]
},
...
]
```

Contributor guide

Open the contributing guide

Research direction

Start in PinotController and trace how existing controller endpoints expose metadata. Define the endpoint response around the listed function_name, function_type, arguments_types, and return_type fields, using the provided UDF example as a reference. Done means external query engines can retrieve Pinot UDF information in the proposed format.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.