Skip to content

Latest commit

 

History

History
756 lines (670 loc) · 38.9 KB

HISTORY.md

File metadata and controls

756 lines (670 loc) · 38.9 KB

SQLLine release history and change log

For a full list of releases, see GitHub.

1.12.0 (2021-11-07)

Now sqlline works on Apple/M1 architecture SQLLINE-444.

This release requires Java version 8 or higher.

Bugs and functional changes:

  • [SQLLINE-447] Certain sequence of queries for JSON output format leads to ArrayIndexOutOfBoundsException
  • [SQLLINE-436] User configuration file for sqlline (Richard Antal)
  • [SQLLINE-432] Highlight decimal numbers when highlighting is on
  • [SQLLINE-431] Custom prompt handler should apply even if there is no connection The custom prompt handler is ignored until a connection is created; with no connection, prompt is always "sqlline> " (IceMimosa)

Other:

  • [SQLLINE-434] Support JDK 14, 15, 16
  • [SQLLINE-453] Rename 'master' git branch to 'main'
  • [SQLLINE-454] Enable jdk17 in Travis
  • [SQLLINE-444] Update JLine to 3.21.0
  • Upgrades:
    • checkstyle to 9.0.1
    • forbiddenapis to 3.2
    • junit to 5.8.1
    • maven-checkstyle-plugin to 3.1.2
    • maven-dependency-plugin to 3.2.0
    • maven-enforcer-plugin to 3.0.0
    • maven-javadoc-plugin to 3.3.1
    • maven-project-info-reports-plugin to 3.1.2
    • maven-gpg-plugin to 3.0.1

1.11.0 (2021-02-25)

A patch to release 1.10.0, fixing one issue.

This release requires Java version 8 or higher.

Bugs and functional changes:

1.10.0 (2021-02-21)

Pluggable scripting engines (to accommodate JDK 15).

This release requires Java version 8 or higher.

Bugs and functional changes:

  • [SQLLINE-394] Make script engine configurable via new scriptEngine property; compensates for the fact that Nashorn is not available on JDK 15 and above
  • [SQLLINE-419] Allow empty string after connection name in config
  • [SQLLINE-386] Support saved connections
  • [SQLLINE-415] Switch off highlighting in manual; ignore case while searching through manual
  • [SQLLINE-254] Live templates support
  • [SQLLINE-412] Autocompletion for all properties with FILE_PATH type
  • [SQLLINE-410] Respect line separator while column size calculations
  • [SQLLINE-157] Column types in header
  • [SQLLINE-391] Set error code when -e command fails
  • [SQLLINE-407] Autocompletion for !help command
  • [SQLLINE-336] and [SQLLINE-376] Support PL/SQL and PL/pgSQL queries, and ability to add similar support for other dialects
  • [SQLLINE-402] Table styles for table output format
  • [SQLLINE-361] Support patterns for tables, columns, procedures; add parameter support for !tables, !columns, !indexes, !primarykeys, and !procedures commands
  • [SQLLINE-378] Check for silent property before outputting info message; --no- prefix for string properties is handled as empty if empty value is allowed for that property; --silent as input parameter makes prompts empty
  • [SQLLINE-389] Respect all properties from properties file
  • [SQLLINE-395] Enable autopairing JLine feature
  • [SQLLINE-355] Colours in default and script prompts
  • [SQLLINE-388] Use outputstream instead of System.out
  • [SQLLINE-379] DB2 JDBC driver throws if SQLLine attempts to call ResultSet.next after last row
  • [SQLLINE-362] Add completion for !go command
  • [SQLLINE-367] !resize command and autoResize property

Build and tests:

  • Make SqlLineParserTest using parameterized tests
  • Make tests for [SQLLINE-354] work on Windows

Other:

  • Document that the promptscript property is broken in JDK 15, per [SQLLINE-394] (but see the new scriptEngine property)
  • [SQLLINE-392] Add JDBC url templates for Hiveserver2
  • Regenerate web site for sqlline-1.9.0
  • [SQLLINE-380] Add Maven wrapper, so that people may build using "./mvnw"
  • Upgrades:
    • [SQLLINE-417] Update JLine to 3.18.0, add geshi color scheme
    • [SQLLINE-421] Require Maven 3.2.3 or higher
    • [SQLLINE-382] Update JLine3 to 3.16.0
    • Bump checkstyle from 8.23 to 8.29

1.9.0 (2019-10-16)

There are several improvements regarding user interaction, such as line numbers support, long query editing which take more than a screen, and improvements for autocompletion (autocompletion for schema, table, column names and show description for completion candidates).

Now there is also a demo page for some of sqlline's features.

This release requires Java version 8 or higher.

Bugs and functional changes:

  • Autocompletion improvements
    • [SQLLINE-331] Autocompletion for schema, table, column names
    • [SQLLINE-314] Description for command name completion candidates depending on showCompletionDesc property value
  • [SQLLINE-326] Respect user, password properties in connection url; add connectInteractionMode property
  • [SQLLINE-354] Use minimum possible width if calculated is negative
  • [SQLLINE-332] Add historyFlags property to customize !history output
  • [SQLLINE-343] Use batches accordingly
  • [SQLLINE-337] Move connection information to debug level of tracing
  • Add setReadOnly connection option (iconeb)
  • [SQLLINE-248] !dropall for specific schemas
  • [SQLLINE-327] !reconnect should respect fastconnect property value
  • [SQLLINE-321] Ansiconsole outputformat
  • [SQLLINE-323] Add line numbers support
  • [SQLLINE-306] Turn off menu because of issue mentioned in #306
  • [SQLLINE-312] Show error if there are wrong arguments for !metadata methods
  • [SQLLINE-309] Fix highlighting of sqlline commands with quoted arguments
  • [SQLLINE-305] Posix compatibility for double quotes to allow spaces inside command arguments
  • [SQLLINE-310] !schemas command
  • [SQLLINE-318] Correct highlighting and line continuation for '/*/'
  • [SQLLINE-340] Rethrow SQLException from DatabaseMetaDataHandler if it is the cause

Other:

  • [SQLLINE-316] Link to demos page
  • [SQLLINE-302] Make tests run with their own sqlline.properties via propertiesFile property; remove all instantiations of SqlLine from PromptTest
  • [SQLLINE-210] Add property to skip doc generation
  • Upgrades:
    • Update JLine3 to 3.12.1
    • Update Checkstyle to 8.23
    • Update Jmockit to 1.48
    • Update Junit to 5.5.1
    • Update maven-jar-plugin to 3.1.2
    • Update maven-surefire-plugin to 2.22.2
    • Update hsqldb up to 2.5.0
    • Update h2 up to 1.4.199

1.8.0 (2019-05-30)

1.8 comes quite soon after 1.7, and the most significant change is fixing Ctrl-C to abort the current statement, not crash SQLLine. Among the improvements are allowing multiple statements on the same line, a more powerful !outputformat command, and allowing null values to be output as "null".

This release requires Java version 8 or higher.

Bugs and functional changes:

  • [SQLLINE-295] Find all db metadata methods including class hierarchy cases
  • [SQLLINE-284] Use proxy for DatabaseMetaData
  • [SQLLINE-237] Allow several SQL statements on the same line, separated by ';'
  • [SQLLINE-288] Output null value as null
  • [SQLLINE-298] Optional extra parameters for !outputformat command
  • Improve the hashCode of the key used in the internal table cache
  • [SQLLINE-292] Ctrl-C causes SQLLine to quit, but should just cancel current query (Volodymyr Vysotskyi)
  • Upgrades:

Other:

  • [SQLLINE-296] Replace class ColorBuffer with Jline3's class AttributedString

1.7.0 (2019-03-27)

Continuing the major changes in the previous release, this release adds more improvements to interactivity, including custom prompts (promptscript property and custom prompt handler), warnings before executing dangerous commands (confirm and confirmPattern properties), and improved validation for enum and integer properties.

Large result sets are formatted better, faster, and using less memory, due to two improvements: the default for the incremental prompty is now false, and a new incrementalBufferRows property is 1,000 by default. SQLLine will now read the first 1,000 rows of a query, set column widths accordingly, and adjust column widths if larger values are seen later.

This release requires Java version 8 or higher.

Bugs and functional changes:

  • Prompt customization:
    • [SQLLINE-278] Add 'promptscript' property, generating prompt from a JavaScript program
    • [SQLLINE-246] Custom prompt handler
  • [SQLLINE-276] Unable to submit password interactively
  • Column-widths
    • [SQLLINE-251] Enter "incremental" mode if a query returns more than incrementalBufferRows
    • [SQLLINE-228] Set incremental property to false by default (Cheng Lian)
  • [SQLLINE-239] Confirm before executing 'dangerous' SQL commands such as DROP and DELETE; controlled by new properties confirm and confirmPattern (Swaroopa Kadam)
  • [SQLLINE-258] Correct highlighting of numbers followed by ], !, *, |, &, ^
  • [SQLLINE-260] Validate given values for enum type properties (e.g. outputFormat, colorScheme) before setting
  • [SQLLINE-226] Correct highlighting and line continuation for quotes inside sqlline comments
  • [SQLLINE-186] In definitions of built-in properties, define available values for completion
  • [SQLLINE-236] Add error message if URL property is absent but user, password or driver is present
  • [SQLLINE-232] Use SqlLineParser for file parsing, the same parser as for interactive
  • [SQLLINE-242] Script command should not write itself to file when spooling ends
  • [SQLLINE-5] Use ServiceLoader to load drivers, rather than Class.forName
  • [SQLLINE-224] Print exception traces only in case of verbose on
  • [SQLLINE-224] Validate values for integer properties before setting
  • [SQLLINE-134] Reuse history object while resetting history, use -e option to hide prompt output
  • Upgrades:

Other:

  • [SQLLINE-279] Release 1.7
  • [SQLLINE-281] Remove temporary directory after test finishes
  • [SQLLINE-257] Separate the code that switches off SqlLineParser from the code that reads user answer
  • [SQLLINE-11] Add 'Command line options' and 'Prompting' sections to manual
  • [SQLLINE-270] Remove maven-compiler-plugin from pom.xml
  • [SQLLINE-273] Failed to generate javadoc on JDK 11 (Masayuki Takahashi)
  • Enable Travis CI on 'scratch' branch
  • [SQLLINE-255] Explicitly set incremental property inside sqlline.SqlLineArgsTest#testMultilineScriptWithH2Comments
  • [SQLLINE-217] Enable JDK 11 for AppVeyor
  • [SQLLINE-245] Example of launching SQLLine using a bash command-line, explaining how to quote special characters in the URL (Terence Namusonge)
  • [SQLLINE-221] Now require Java 8 or higher

1.6.0 (2018-11-26)

This is the most colorful and interactive SQLLine ever! Upgrading to jline3 and improved dialect support allowed us to add syntax highlighting, line continuation and multi-line editing. There are new commands !rerun, !/ and !reset, new properties colorScheme, escapeOutput, maxHistoryRows, maxHistoryFileRows, mode, prompt, rightPrompt, strictJdbc, useLineContinuation, version, and improvements to existing commands.

This release requires Java version 8 or higher. (Since the previous release, we have dropped support for JDK 1.6 and 1.7.)

WARNING: Between version 2 and 3, jline changed the format of its history file. After this change, you may need to remove your history file (~/.sqlline/history) or provide a --historyfile argument before SQLLine will start successfully.

Bugs and functional changes:

  • [SQLLINE-218] Update default of maxColumnWidth property to -1, and add getter to SqlLineOpts for maxWidth property
  • [SQLLINE-213] Syntax highlighting does not work for !sql, !all commands
  • [SQLLINE-215] !metadata 1 command should not show private methods, or methods inherited from java.lang.Object
  • [SQLLINE-183] Add wrapper around DatabaseMetaData, to make SQLLine less susceptible to errors in underlying JDBC driver
  • [SQLLINE-60] Add 'vi' editing mode, and add mode property to switch between emacs and vi
  • [SQLLINE-199] Make use of jline3's powerful StyleResolver functionality to parse styles
  • [SQLLINE-199] Add prompt and rightPrompt properties to allow customization of prompt and right prompt
  • [SQLLINE-201] Line continuation and highlight for sqlline comments
  • [SQLLINE-203] Carry on even if JDBC driver's ResultSetMetaData.getColumnDisplaySize() throws
  • [SQLLINE-205] Show human-readable message if !go command fails
  • [SQLLINE-190] Make sure that exceptions during highlighting/line continuation do not cause infinite loops
  • [SQLLINE-190] Add Dialect API, and various database-specific behaviors
  • [SQLLINE-164] Syntax highlighting
  • [SQLLINE-184] Multi-line parsing is fooled by a line that ends in a semi-colon followed by a comment
  • [SQLLINE-168] In multiline parsing, detect mismatched brackets and parentheses
  • [SQLLINE-129] Allow multiline query parsing in shell mode and files
  • [SQLLINE-151] Add property escapeOutput to escape control symbols
  • [SQLLINE-177] Add maxHistoryRows and maxHistoryFileRows properties
  • [SQLLINE-160] Use maxColumnWidth in TableOutputFormat column width calculation
  • [SQLLINE-158] Add xmlattrs output format name as a synonym for xmlattr
  • [SQLLINE-155] Do not use default encoding
  • [SQLLINE-154] Do not use default locale
  • [SQLLINE-105] Upgrade to jline3, drop support for Java versions lower than 8, and add !rerun command (also known as !/)
  • [SQLLINE-73] Re-execute the previous query
  • [SQLLINE-143] Add !reset command, and add a mode to !set command to show current value
  • [SQLLINE-146] Add read-only version property

Other:

  • [SQLLINE-191] Release 1.6
  • [SQLLINE-193] Add key strokes to help output
  • Upgrade JMockit to 1.41
  • [SQLLINE-141] Add test for !save command
  • [SQLLINE-179] Add <useManifestOnlyJar>false</useManifestOnlyJar> setting for maven-surefire-plugin
  • [SQLLINE-181] Use <code> tag rather than <tt>, as <tt> is deprecated in HTML5
  • [SQLLINE-166] Refactor properties, adding enum BuiltInProperty and interface SqlLineProperty.Writer
  • [SQLLINE-172] Travis CI fails for Oracle JDK 10
  • [SQLLINE-98] Add appveyor.yml, to allow CI on Windows
  • Generate javadoc in HTML 5
  • [SQLLINE-162] Various cleanup in SqlLineArgsTest
  • [SQLLINE-163] Upgrade checkstyle to 7.8.2, maven-checkstyle-plugin to 3.0.0 to support Java 8 syntax
  • Site: Publish manual and API for release 1.5.0
  • [SQLLINE-153] Invalid link to API docs on README.md page
  • [SQLLINE-149] Correct typos
  • [SQLLINE-142] Add missed -e option in --help output

1.5.0 (2018-09-09)

Bugs and functional changes:

  • [SQLLINE-135] Display connection class name during !reconnect (Arina Ielchiieva)
  • [SQLLINE-139] !close command wrongly claims to be ambiguous with !closeall command (Arina Ielchiieva)
  • [SQLLINE-106] New class Application allows customization of command handlers, output formats, startup message (Arina Ielchiieva)
  • [SQLLINE-114] Pluggable commands, by means of interface CommandHandler (Sergey Nuyanzin)
  • [SQLLINE-52] Set isolation level if supported, otherwise use default (Sergey Nuyanzin)
  • [SQLLINE-111] Enable multiline calls for !all, !sql commands from file (Sergey Nuyanzin)
  • [SQLLINE-121] Cannot parse one-character commands !? and !# (Sergey Nuyanzin)
  • [SQLLINE-109] In XML output formats, escape all required symbols in case of attribute/text (Sergey Nuyanzin)
  • [SQLLINE-43] Allow quoting of arguments to !connect command (Sergey Nuyanzin)
  • [SQLLINE-53] In !connect command, allow passing of JDBC properties outside of the URL (Sergey Nuyanzin)
  • [SQLLINE-120] Do not keep connection if it fails to do connection stuff (Sergey Nuyanzin)
  • [SQLLINE-55] SQLLine throws NullPointerException when JDBC URL is invalid (Arina Ielchiieva)
  • [SQLLINE-86] Parse arguments that contain quoted strings with spaces (Sergey Nuyanzin)
  • [SQLLINE-104] Make output of !scan command valid (Sergey Nuyanzin)
  • [SQLLINE-57] Respect showheader=false in file output (Renny Koshy and Sergey Nuyanzin)
  • [SQLLINE-107] If a user-specified driver cannot be found, fall back to the registered driver (Sergey Nuyanzin)
  • [SQLLINE-101] Add nullValue property, to override the value printed for NULL values (Sergey Nuyanzin)
  • [SQLLINE-67] Add -log command-line argument, equivalent to !record command (Sergey Nuyanzin)
  • [SQLLINE-90] Use more relevant exception messages for !metadata, !record, !run and !script commands (Sergey Nuyanzin)
  • [SQLLINE-88] Make !set command stable for the case of variables with null values (Sergey Nuyanzin)
  • [SQLLINE-50] For CSV output format, specify delimiter and quote character (Sergey Nuyanzin)
  • [SQLLINE-38] In !run command, expand "~" to user's home directory (Sergey Nuyanzin)
  • [SQLLINE-83] Add json output format (Sergey Nuyanzin)
  • [SQLLINE-66] Add dateFormat, timeFormat and timestampFormat properties (Sergey Nuyanzin)
  • [SQLLINE-77] Poor performance with drivers that have a slow implementation of DatabaseMetaData.getPrimaryKeys JDBC method (Kevin Minder)

Other:

  • [SQLLINE-131] Release 1.5
  • Add committers: Arina Ielchiieva and Sergey Nuyanzin (committers were previously called 'authors')
  • [SQLLINE-132] Fix 9 javadoc warnings (Arina Ielchiieva)
  • [SQLLINE-137] Typo in description of !save command (Arina Ielchiieva)
  • [SQLLINE-127] In manual, update !help description with actual output (Sergey Nuyanzin)
  • Add more information to pom.xml and manifest
  • [SQLLINE-123] Make SqlLineArgsTest.testScan test stable in case of several registered drivers (Sergey Nuyanzin)
  • [SQLLINE-69] Make sqlline and sqlline.bat scripts work in dev environment (Sergey Nuyanzin)
  • [SQLLINE-96] Add to Travis CI all supported JDK versions (Sergey Nuyanzin)
  • [SQLLINE-93] To fix flaky tests on Windows, use static final fields for jline.Terminal#getWidth and jline.Terminal#getHeight (Sergey Nuyanzin)
  • [SQLLINE-95] In pom.xml, replace 'prerequisites' element with maven-enforcer-plugin
  • [SQLLINE-80] In HOWTO, describe how to run SQLLine in IntelliJ IDEA's console on Windows (slankka)

1.4.0 (2018-05-31)

Bugs and functional changes:

  • [SQLLINE-75] jline gives NumberFormatException during startup
    • Caused by [JLINE2-281], and fixed by upgrading jline to 2.14.4
  • [SQLLINE-72] Allow quoted file names (including spaces) in !record, !run and !script commands (Jason Prodonovich)

Other:

  • Upgrade maven-javadoc-plugin to 3.0.1 due to [MJAVADOC-517]
  • [SQLLINE-76] During build, manual fails to validate against docbook DTD
  • Travis CI: remove JDK 6 and 7 (no longer supported by Travis)
  • Upgrade maven-javadoc-plugin to 3.0.0 due to [MJAVADOC-485]
  • Add hyperlinks to previous test-cases (Julian Hyde)
  • Add coursier usage example, and update contact info (Marc Prud'hommeaux)

1.3.0 (2017-06-09)

Bugs and functional changes:

  • [SQLLINE-63] Add Athena JDBC driver (Ben Poweski)
  • [SQLLINE-62] In !record and !run commands, expand '~' to user's home directory (Mike Mattozzi)
  • [SQLLINE-61] Add !nickname command, to set a friendly name for a connection (Mike Mattozzi)
  • [SQLLINE-54] Add JDK 9 support; drop JDK 1.5 support

Other:

  • Fix tests on Windows
  • Sort list of JDBC drivers
  • Publish manual and API for release 1.2.0
  • Create a property for the version number of each maven dependency
  • Add "release" profile, and only sign if it is enabled
  • Edit release instructions

1.2.0 (2016-10-26)

Bugs and functional changes:

  • [SQLLINE-49] !manual command fails
  • [SQLLINE-48] Lazily load system properties on startup
  • [SQLLINE-35] Make SqlLine.begin method public
  • [SQLLINE-42] Script fails if first line is a comment
  • [SQLLINE-41] !tables command hangs in h2
  • [SQLLINE-39] !help set shouldn't break long lines
  • Add WrappedSqlException to allow IncrementalRows to throw a SQLException (Parth Chandra)

Other:

  • Change capitalization of project name to "SQLLine" (previously a mixture of "sqlline" and "SQLline")
  • [SQLLINE-37] Initial github-pages web site, including manual
  • Checkstyle should always look for unix line endings, even on windows
  • Fix Windows line endings
  • Switch to "scott-data-hsqldb" as test data set; it is smaller than "foodmart-data-hsqldb"

1.1.9 (2015-03-06)

No bug fixes or other functional changes

Other:

1.1.8 (2015-02-16)

Bugs and functional changes:

  • [SQLLINE-32] !help set should print documentation for all variables
  • Add sqlline and sqlline.bat scripts, and jar-with-dependencies (Jongyeol Choi)
  • Fix color output: output style instead of name
  • Add test for [HIVE-5768] Beeline connection cannot be closed with !close command
  • Test !record command
  • [SQLLINE-26] Flush output for each command when using !record command
  • Use ResultSet.getString() for types that support it, getObject().toString() otherwise
  • [SQLLINE-25] Spaces in classpath
  • Add mailing list to maven
  • Upgrade maven-release-plugin to version 2.4.2
  • Make return code enum public so other code can check it

1.1.7 (2014-02-14)

Bugs and functional changes:

  • Fix bug: SqlCompleter was skipping every other column.
  • Fix HIVE-4566, "NullPointerException if typeinfo and nativesql commands are executed at beeline before a DB connection is established" (Xuefu Zhang via Ashutosh Chauhan and Julian Hyde)
  • Fix HIVE-4364, "beeline always exits with 0 status, should exit with non-zero status on error" (Rob Weltman via Ashutosh Chauhan and Julian Hyde)
  • Fix HIVE-4268, "Beeline should support the -f option" (Rob Weltman via cws and Julian Hyde). SQLLine options '-f file' and '--run=file' are now equivalent.
  • Add SqlLineArgsTest, copied from BeeLineArgsTest, but testing against hsqldb rather than Hive.

Code re-organization:

  • Break out inner classes.
  • Re-format in Apache style (indent 2).
  • Enable maven-checkstyle-plugin, and fix code to comply.
  • Modern Java style: add generics; use StringBuilder rather than StringBuffer; convert arrays to collections; convert some array parameters to varargs; convert loops to foreach; remove paranoid != null checks; convert ColorAttr to an enum.
  • Fix javadoc errors and warnings.

Other:

  • Add release history.
  • Enable oraclejdk8 in Travis CI.
  • Fix verbose mode.

1.1.6 (2013-08-23)

  • When not running as a shell return boolean to indicate if command worked.
  • Add travis build status to README.

1.1.5 (2013-07-31)

  • Follow the JDBC pattern of not putting extra checks in cancel calls.
  • Specify source and target java versions.
  • Enable Travis CI.

1.1.4 (2013-07-22)

  • Add maven release plugin.
  • When reading from stdin redirect don't NullPointer at the end of data.

1.1.3 (2013-06-27)

  • Fixed setting of working dot dir to allow override.
  • Limit history saving to interactive shell.
  • Fixed history so it saves; removed JLine1 workaround code.
  • CTRL-C cancels screen output from query