[ 
https://issues.apache.org/jira/browse/TAJO-928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14088859#comment-14088859
 ] 

ASF GitHub Bot commented on TAJO-928:
-------------------------------------

Github user hyunsik commented on the pull request:

    https://github.com/apache/tajo/pull/98#issuecomment-51433096
  
    I've described some changes.
    
    The current way is to set some keys in TajoConf.ConfVars. I deprecated the 
way, but the way still works for a while. If you use the old way, you can see 
the deprecation warning.
    ```
    Try \? for help.
    default> \set tajo.dist-query.join.broadcast.threshold-bytes 50000
    Warning: deprecated to directly use config key in TajoConf.ConfVars. Please 
execute '\help set'.
    ```
    
    But, the conf key automatically is replaced by new key corresponding to the 
conf key.
    
    ```
    default> \set
    'BROADCAST_TABLE_SIZE_LIMIT'='50000'
    'CURRENT_DATABASE'='default'
    'SESSION_ID'='1a104a50-3f8d-4bac-a8a2-5a8efc936298'
    'USERNAME'='hyunsik'
    'SESSION_LAST_ACCESS_TIME'='1407388966573'
    ```
    
    Also, I've added the help command and its alias. So you can use ```\? 
[command name]``` or ```\help [command name]```. I've extended some method for 
help to ```TajoShellCommand``` interface. The following is the help of set 
command.
    ```
    default> \help set
    
    Available Session Variables:
    
    \set SESSION_EXPIRY_TIME [int value] - session expiry time (secs)
    \set CLI_COLUMNS [int value] - Sets the width for the wrapped format
    \set CLI_FORMATTER_CLASS [text value] - Sets the output format class to 
display results
    \set CLI_NULL_CHAR [text value] - Sets the string to be printed in place of 
a null value.
    \set CLI_PAGE_ROWS [int value] - Sets the number of rows for paging
    \set CLI_PAGING_ENABLED [true or false] - Enable paging of result display
    \set CLI_DISPLAY_ERROR_TRACE [true or false] - Enable display of error trace
    \set ON_ERROR_STOP [true or false] - tsql will exist if an error occurs.
    \set TZ [text value] - Sets timezone
    \set DATE_ORDER [text value] - date order (default is YMD)
    \set LANG [text value] - Language
    \set LC_ALL [text value] - String sort order
    \set LC_COLLATE [text value] - String sort order
    \set LC_CTYPE [text value] - Character classification (What is a letter? 
Its upper-case equivalent?)
    \set LC_MESSAGES [text value] - Language of messages
    \set LC_MONETARY [text value] - Formatting of currency amounts
    \set LC_NUMERIC [text value] - Formatting of numbers
    \set LC_TIME [text value] - Formatting of dates and times
    \set BROADCAST_TABLE_SIZE_LIMIT [long value] - limited size (bytes) of 
broadcast table
    \set JOIN_TASK_INPUT_SIZE [int value] - join task input size (mb) 
    \set SORT_TASK_INPUT_SIZE [int value] - sort task input size (mb)
    \set GROUPBY_TASK_INPUT_SIZE [int value] - group by task input size (mb)
    \set JOIN_PER_SHUFFLE_SIZE [int value] - shuffle output size for join (mb)
    \set GROUPBY_PER_SHUFFLE_SIZE [int value] - shuffle output size for sort 
(mb)
    \set TABLE_PARTITION_PER_SHUFFLE_SIZE [int value] - shuffle output size for 
partition table write (mb)
    \set EXTSORT_BUFFER_SIZE [long value] - sort buffer size for external sort 
(mb)
    \set HASH_JOIN_SIZE_LIMIT [long value] - limited size for hash join (mb)
    \set INNER_HASH_JOIN_SIZE_LIMIT [long value] - limited size for hash inner 
join (mb)
    \set OUTER_HASH_JOIN_SIZE_LIMIT [long value] - limited size for hash outer 
join (mb)
    \set HASH_GROUPBY_SIZE_LIMIT [long value] - limited size for hash groupby 
(mb)
    \set MAX_OUTPUT_FILE_SIZE [int value] - Maximum per-output file size (mb). 
0 means infinite.
    \set NULL_CHAR [text value] - null char of text file output
    \set ARITHABORT [true or false] - If true, a running query will be 
terminated when an overflow or divide-by-zero occurs.
    \set DEBUG_ENABLED [true or false] - (debug only) debug mode enabled
    ```
    
    Also, I've updated querydetail.jsp file to show session variables applied 
to the query.
    
    I believe that this patch is ready to be committed. Please review this.


> Session variables should override query configs in TajoConf.
> ------------------------------------------------------------
>
>                 Key: TAJO-928
>                 URL: https://issues.apache.org/jira/browse/TAJO-928
>             Project: Tajo
>          Issue Type: Improvement
>          Components: distributed query plan, planner/optimizer
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.9.0
>
>
> Currently, we should use tajo-site in order to change the configurations 
> related queries, such as optimization option or some parameters. It is never 
> practical because we need to restart a Tajo cluster in order to change the 
> config.
> The main purpose of this issue is to refactor the system of session variable 
> and some part to recognize query configs to accept the session variables. 
> Also, when there are duplicated configs in session and TajoConf, session 
> variables should override the existing config of TajoConf.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to