From 4f0a996934bc6b6b366155cf8a78bd2d4079cf97 Mon Sep 17 00:00:00 2001 From: pranavchaurasia18 Date: Thu, 24 Apr 2025 14:42:37 +0530 Subject: [PATCH 1/2] Cassandra-18837 Tab complete datacenter values in cqlsh --- pylib/cqlshlib/cql3handling.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py index 5b61331f7b..29694097d1 100644 --- a/pylib/cqlshlib/cql3handling.py +++ b/pylib/cqlshlib/cql3handling.py @@ -461,6 +461,7 @@ def ks_prop_val_completer(ctxt, cass): def ks_prop_val_mapkey_completer(ctxt, cass): + session = cass.session if hasattr(cass, 'session') else cass optname = ctxt.get_binding('propname')[-1] if optname != 'replication': return () @@ -475,7 +476,24 @@ def ks_prop_val_mapkey_completer(ctxt, cass): if repclass == 'SimpleStrategy': opts = {'replication_factor'} elif repclass == 'NetworkTopologyStrategy': - return [Hint('')] + try: + resultLocal = session.execute("SELECT data_center FROM system.local") + row = resultLocal.one() + local_dc = row['data_center'] if row else None + + resultPeer = session.execute("SELECT data_center FROM system.peers") + peer_dc = [row['data_center'] for row in resultPeer if row['data_center']] + + dummy_dcs = ['dc_dummy1', 'dc_dummy2', 'dc_dummy3'] + dc_list = sorted(set([dc for dc in [local_dc] + peer_dc + dummy_dcs if dc])) + +# dc_list = sorted(set([dc for dc in [local_dc] + peer_dc if dc])) + + return list(map(escape_value, dc_list)) if dc_list else [Hint('')] + + except Exception as e: + print(f"Query failed: {e}") + return [Hint('')] return list(map(escape_value, opts.difference(keysseen))) From 9cd20fe67755212b323f5a9e78bc33f1ad11f59a Mon Sep 17 00:00:00 2001 From: pranavchaurasia18 Date: Thu, 24 Apr 2025 15:04:02 +0530 Subject: [PATCH 2/2] Cassandra-18837 Tab complete datacenter values in cqlsh --- pylib/cqlshlib/cql3handling.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py index 29694097d1..11a9f045d0 100644 --- a/pylib/cqlshlib/cql3handling.py +++ b/pylib/cqlshlib/cql3handling.py @@ -484,10 +484,10 @@ def ks_prop_val_mapkey_completer(ctxt, cass): resultPeer = session.execute("SELECT data_center FROM system.peers") peer_dc = [row['data_center'] for row in resultPeer if row['data_center']] - dummy_dcs = ['dc_dummy1', 'dc_dummy2', 'dc_dummy3'] - dc_list = sorted(set([dc for dc in [local_dc] + peer_dc + dummy_dcs if dc])) +# dummy_dcs = ['dc_dummy1', 'dc_dummy2', 'dc_dummy3'] +# dc_list = sorted(set([dc for dc in [local_dc] + peer_dc + dummy_dcs if dc])) -# dc_list = sorted(set([dc for dc in [local_dc] + peer_dc if dc])) + dc_list = sorted(set([dc for dc in [local_dc] + peer_dc if dc])) return list(map(escape_value, dc_list)) if dc_list else [Hint('')]