[
https://issues.apache.org/jira/browse/CASSANDRA-18547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brad Schoening updated CASSANDRA-18547:
---------------------------------------
Description:
This change refactors the On/Off switch implemented in the class SwitchCommand
and subclass SwitchCommandWithValue of cqlshmain.py to use an Enum with static
methods instead of custom classes.
The body of on_off_switch requires just 15 lines of code vs 33
The existing code is hard to read, including the usage in the code, which
instantiates a SwitchCommand object in-order to invoke the execute method:
{code:java}
self.tracing_enabled = SwitchCommand("TRACING",
"Tracing").execute(self.tracing_enabled, parsed, self.printerr){code}
this can be replaced by a more familiar direct function call:
{code:java}
self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing",
self.tracing_enabled, parsed.get_binding('switch')){code}
The refactoring would rework the command output for consistency. Instead of the
current:
{code:java}
> tracing on
Now Tracing is enabled
> paging on
Query paging is already enabled. Use PAGING OFF to disable.
> expand on
Now Expanded output is enabled
{code}
replace with more succinct and consistent, using 'ON/OFF' instead of
enabled/disabled and removing the redundant 'Now':
{code:java}
> tracing on
TRACING set to ON
> paging on
PAGING is already ON
> expand on
EXPAND set to ON
{code}
was:
This change refactors the On/Off switch implemented in the class and subclass
SwitchCommand and SwitchCommandWithValue of cqlshmain.py to use an Enum with
static methods instead of custom classes.
The body of on_off_switch requires just 15 lines of code vs 33
The existing code is hard to read, including the usage in the code, which
instantiates a SwitchCommand object in-order to invoke the execute method:
{code:java}
self.tracing_enabled = SwitchCommand("TRACING",
"Tracing").execute(self.tracing_enabled, parsed, self.printerr){code}
this can be replaced by a more familiar direct function call:
{code:java}
self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing",
self.tracing_enabled, parsed.get_binding('switch')){code}
The refactoring would rework the command output for consistency. Instead of the
current:
{code:java}
> tracing on
Now Tracing is enabled
> paging on
Query paging is already enabled. Use PAGING OFF to disable.
> expand on
Now Expanded output is enabled
{code}
replace with more succinct and consistent, using 'ON/OFF' instead of
enabled/disabled and removing the redundant 'Now':
{code:java}
> tracing on
TRACING set to ON
> paging on
PAGING is already ON
> expand on
EXPAND set to ON
{code}
> Refactor cqlsh On/Off switch implementation
> -------------------------------------------
>
> Key: CASSANDRA-18547
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18547
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL/Interpreter
> Reporter: Brad Schoening
> Assignee: Brad Schoening
> Priority: Normal
> Fix For: 5.x
>
>
> This change refactors the On/Off switch implemented in the class
> SwitchCommand and subclass SwitchCommandWithValue of cqlshmain.py to use an
> Enum with static methods instead of custom classes.
> The body of on_off_switch requires just 15 lines of code vs 33
> The existing code is hard to read, including the usage in the code, which
> instantiates a SwitchCommand object in-order to invoke the execute method:
>
> {code:java}
> self.tracing_enabled = SwitchCommand("TRACING",
> "Tracing").execute(self.tracing_enabled, parsed, self.printerr){code}
> this can be replaced by a more familiar direct function call:
> {code:java}
> self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing",
> self.tracing_enabled, parsed.get_binding('switch')){code}
>
> The refactoring would rework the command output for consistency. Instead of
> the current:
> {code:java}
> > tracing on
> Now Tracing is enabled
> > paging on
> Query paging is already enabled. Use PAGING OFF to disable.
> > expand on
> Now Expanded output is enabled
> {code}
> replace with more succinct and consistent, using 'ON/OFF' instead of
> enabled/disabled and removing the redundant 'Now':
> {code:java}
> > tracing on
> TRACING set to ON
> > paging on
> PAGING is already ON
> > expand on
> EXPAND set to ON
> {code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]