[
https://issues.apache.org/jira/browse/DRILL-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17694879#comment-17694879
]
ASF GitHub Bot commented on DRILL-8393:
---------------------------------------
LYCJeff commented on PR #2747:
URL: https://github.com/apache/drill/pull/2747#issuecomment-1449446242
> @LYCJeff I really like the functionality here, but I am concerned that
this is a breaking change and will affect existing Drill users. Also, it adds
effectively new syntax to the SQL queries.
@cgivre At this point, I can pass the unprefixed parameters in their place
by default, the way they were. This minimizes the impact on existing users,
except in the following cases. For example, the argument that the user passed
into the request body was called `header.xxx`, but now needs to be rewritten as
`body.header.xxx`, otherwise the argument will be passed into the request
header.
In addition, a problem that had been fixed would reappear. The argument that
is passed to the url path is also passed to the end of the url, which has been
clearly distinguished since I changed it.
Let me know if you think this is more friendly to existing users, then I'll
move in this direction.
> 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
>
> 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)