You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/02/03 07:09:00 UTC
[jira] [Commented] (DRILL-8393) Allow parameters to be passed to headers through SQL in WHERE clause
[ https://issues.apache.org/jira/browse/DRILL-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17683705#comment-17683705 ]
ASF GitHub Bot commented on DRILL-8393:
---------------------------------------
LYCJeff opened a new pull request, #2747:
URL: https://github.com/apache/drill/pull/2747
# [DRILL-8393](https://issues.apache.org/jira/browse/DRILL-8393): Allow parameters to be passed to headers through SQL in WHERE clause
## Description
Allow parameters to be passed to headers through SQL in WHERE clause. Use the _params_ configuration item to control what parameters are allowed in, passing them into the body and header depending on the prefix.
Config:
`{ "url": "https://api.sunrise-sunset.org/json", "requireTail": false, "params": ["body.lat", "body.lng", "body.date", "header.header1"], "parameterLocation": "json_body" }`
SQL Query:
```
SELECT * FROM api.sunrise
WHERE `body.lat` = 36.7201600
AND `body.lng` = -4.4203400
AND `body.date` = '2019-10-02'
AND `header.header1` = 'value1';
```
Post body:
`{ "lat": 36.7201600, "lng": -4.4203400, "date": "2019-10-02"}`
Headers:
`{ "header1": "value1", ……}`
## Documentation
The _params_ configuration mode and SQL parameter passing mode need to be described in the document.
## Testing
The _params_ configuration and SQL in the original unit test have been changed and have passed this part of the unit test.
> Allow parameters to be passed to headers through SQL in WHERE clause
> --------------------------------------------------------------------
>
> Key: DRILL-8393
> URL: https://issues.apache.org/jira/browse/DRILL-8393
> Project: Apache Drill
> Issue Type: Improvement
> Components: Storage - HTTP
> Affects Versions: 1.20.0
> Reporter: Yuchen Liang
> Priority: Major
> Fix For: 1.21.0
>
>
> Some APIs require parameters (e.g. digital signature) in the headers to be generated at access time.So I'm wondering if we can pass it in through filter statement.
> Perhaps we could design it like the params field in connections parameter. For example:
>
> Config:
> { "url": "https://api.sunrise-sunset.org/json", "requireTail": false, "params": ["body.lat", "body.lng", "body.date", "header.header1"], "parameterLocation": "json_body" }
>
> SQL Query:
> SELECT * FROM api.sunrise
> WHERE `body.lat` = 36.7201600
> AND `body.lng` = -4.4203400
> AND `body.date` = '2019-10-02'
> AND `header.header1` = 'value1';
>
> Post body:
> { "lat": 36.7201600, "lng": -4.4203400, "date": "2019-10-02"}
>
> Headers:
> { "header1": "value1", ……}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)