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)