Skip to content

npenkov/gcqlsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gcqlsh

Cassandra command line shell written in Golang

Motivation

Having a cassandra command line shell utility in one binary distributable.

Where it comes in hand?

  • Building docker images for cassandra from Alpine with no Python.
  • Running cql shell on all platforms.
  • Automating cassandra schema creation without need to install python dependencies.

Building

go build -o gocqlsh src/github.com/npenkov/gcqlsh/cmd/gcqlsh.go

Fatures

  • Running DDL script files from command line
  • Support for Cassandra 2.1+/ScyllaDB
  • CQL Support
  • Statement tracing
  • desc command with
    • keyspaces - simple list
    • tables - simple list
    • table - simple list of columns and types
  • Auto completition for commands:
    • use - keyspaces
    • desc - tables
    • select - tables
    • update - tables and columns
    • delete - tables
    • insert - tables

Still missing

  • Paging in interactive results
  • DDL Statements when describing Keyspaces and tables
  • Expanded rows
  • Code assistance for different keyspaces
  • Node token awareness

Command line help

gcqlsh -h
Usage of gcqlsh:
  -f string
        Execute file containing cql statements instead of having interacive session
  -fail-on-error
        Stop execution if statement from file fails.
  -host string
        Cassandra host to connect to (default "127.0.0.1")
  -k string
        Default keyspace to connect to (default "system")
  -no-color
        Console without colors
  -password string
        Password used for the connection
  -port int
        Cassandra RPC port (default 9042)
  -print-confirmation
        Print 'ok' on successfuly executed cql statement from the file
  -print-cql
        Print Statements that are executed from a file
  -username string
        Username used for the connection
  -v    Version information

Planned features

  • desc for table
  • Column code assistance for
    • select
    • update
    • delete
    • insert

Package dependencies


Written with vim-go

License

Copyright (c) 2016-2019 Nick Penkov. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.