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

Brad Schoening edited comment on CASSANDRA-19105 at 11/20/24 4:54 AM:
----------------------------------------------------------------------

[~gautamg]  thanks, the pytest and pycodestyle look great, and the capture 
works as it should.

{_}However{_}, I was looking at the reason this odd double array indexing code 
was needed 
{quote}if parsed.matched[1][0] == 'identifier' and parsed.matched[1][1].upper() 
== 'OFF':
{quote}
The reasons is the BNF production rule in cqlshhandling.py for CAPTURE is 
poorly done because it separates the fname from the OFF value and doesn't 
provide a name to bind on:
{quote}<captureCommand> ::= "CAPTURE" ( fname=( <stringLiteral>) | "OFF" )?
{quote}
Instead, this should be done switch style with two values: fname/OFF, so 
{quote}<captureCommand> ::= "CAPTURE" ( switch=( <stringLiteral> | "OFF" ))?
{quote}
with this, cqlshmain can be simplified to 
{color:#4c9aff}parsed.get_binding('switch'){color} and the switch value will be 
either a filename, Off or None.


was (Author: bschoeni):
[~gautamg]  thanks, the pytest and pycodestyle look great, and the capture 
works as it should.

{_}However{_}, I was looking at the reason this odd double array indexing code 
was needed 
{quote}if parsed.matched[1][0] == 'identifier' and parsed.matched[1][1].upper() 
== 'OFF':
{quote}
The reasons is the BNR production rule in cqlshhandling.py for CAPTURE is 
poorly done because it separates the fname from the OFF value and doesn't 
provide a name to bind on:
{quote}<captureCommand> ::= "CAPTURE" ( fname=( <stringLiteral>) | "OFF" )?
{quote}
Instead, this should be done switch style with two values: fname/OFF, so 
{quote}<captureCommand> ::= "CAPTURE" ( switch=( <stringLiteral> | "OFF" ))?
{quote}
with this, cqlshmain can be simplified to 
{color:#4c9aff}parsed.get_binding('switch'){color} and the switch value will be 
either a filename, Off or None.

> Fix CQLSH Capture to save query results only and not trace details when 
> Tracing is on
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19105
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19105
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Interpreter
>            Reporter: Brad Schoening
>            Assignee: Gautam G
>            Priority: Normal
>         Attachments: test_results.txt, trunk_test_results.txt
>
>
> When using *Tracing* in CQLSH, it's sometimes helpful to use *Capture* to 
> avoid paging through output when you want to see the trace results.  However, 
> the trace results are also incorrectly captured to the output file.
> According to *Help Capture* (below), only the query result should be saved. 
> The correct behavior should display the trace results and only capture the 
> query results.
>         {_}Help capture message{_}:  Only query result output is captured. 
> Errors and output from cqlsh-only commands will still be shown in the cqlsh 
> session.
> Example:
> {quote}> TRACING ON;
> > select * from system_schema.columns LIMIT 1;
> > CAPTURE 'foo'
> {quote}
> this should display only the tracing information
> {quote}> CAPTURE OFF
> {quote}
> displays results and then the tracing
> {quote}> TRACING OFF
> {quote}
> displays only the results



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to