Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • An interactive command shell

  • Execute SQL queries and non-queries, show tables, functions, schema, etc.

  • Execute SQL files

  • Set environment variables interactively and/or via configuration file to configure behavior of shell

  • Command editing, history, highlight and auto-completion

  • Display SQL query in a streaming friendly way

  • List status of submitted non-query SQL statements and be able to stop them

  • Apart from Samza SQL, support other streaming SQLs and data sources by letting user implement their own plugins

Proposed Changes

Terminal: Choice of Programming Language and Libraries

Any shell is essentially a REPL (Repeat-Evaluate-Print Loop), yet any non-trivial one is much more than that. Features like highlighting, history, command line editing, auto completion and rich data presentation require the capability of full control of the terminal. Terminal programming is a messy area, however, with the complexity coming from the long history and the vast variety of terminal types and operating systems. C/C++ is ideal for terminal IO programming, but for easier interoperation with data sources and other systems, Java is chosen.

...

terminal.puts(InfoCmp.Capability.enter_ca_mode); // tput smcup
terminal.puts(InfoCmp.Capability.exit_ca_mode); // tput rmcup

Accessing Samza


Public Interfaces


Implementation and Test Plan

...