Add endpoint for external to get information about UDFs
- 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
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