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:
- [SQLLINE-425]
!quit
command should return success
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 ofSystem.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 andautoResize
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 newscriptEngine
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; addconnectInteractionMode
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 respectfastconnect
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
fromDatabaseMetaDataHandler
if it is the cause
Other:
- [SQLLINE-316] Link to demos page
- [SQLLINE-302]
Make tests run with their own
sqlline.properties
viapropertiesFile
property; remove all instantiations ofSqlLine
fromPromptTest
- [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:
- [SQLLINE-301] Upgrade checkstyle to 8.20, jmockit to 1.46 and junit to 5.4.2
- [SQLLINE-287] Support JDK 12
Other:
- [SQLLINE-296]
Replace class
ColorBuffer
with Jline3's classAttributedString
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-251]
Enter "incremental" mode if a query returns more than
- [SQLLINE-239]
Confirm before executing 'dangerous' SQL commands such as
DROP
andDELETE
; controlled by new propertiesconfirm
andconfirmPattern
(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 thanClass.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:
- [SQLLINE-252]
Update
jmockit
to 1.44 - [SQLLINE-266]
Update
junit
to version 5 andcheckstyle
to version 8 - [SQLLINE-268]
Bump
jline3
version to 3.10.0 - [SQLLINE-275]
Upgrade
checkstyle
to 8.18
- [SQLLINE-252]
Update
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
frompom.xml
- [SQLLINE-273] Failed to generate javadoc on JDK 11 (Masayuki Takahashi)
- Enable Travis CI on 'scratch' branch
- [SQLLINE-255]
Explicitly set
incremental
property insidesqlline.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 toSqlLineOpts
formaxWidth
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 fromjava.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
andrightPrompt
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
andmaxHistoryFileRows
properties - [SQLLINE-160]
Use
maxColumnWidth
inTableOutputFormat
column width calculation - [SQLLINE-158]
Add
xmlattrs
output format name as a synonym forxmlattr
- [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 formaven-surefire-plugin
- [SQLLINE-181]
Use
<code>
tag rather than<tt>
, as<tt>
is deprecated in HTML5 - [SQLLINE-166]
Refactor properties, adding
enum BuiltInProperty
andinterface 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
andtimestampFormat
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
andsqlline.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
andjline.Terminal#getHeight
(Sergey Nuyanzin) - [SQLLINE-95]
In
pom.xml
, replace 'prerequisites' element withmaven-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 allowIncrementalRows
to throw aSQLException
(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:
- Publish releases to Maven Central (previous releases are in Conjars)
- Sign jars
- Use net.hydromatic parent POM, upgrading several maven plugins
- Fix code style for upgraded checkstyle
1.1.8 (2015-02-16)
Bugs and functional changes:
- [SQLLINE-32]
!help set
should print documentation for all variables - Add
sqlline
andsqlline.bat
scripts, andjar-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 fromBeeLineArgsTest
, 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 thanStringBuffer
; convert arrays to collections; convert some array parameters to varargs; convert loops toforeach
; remove paranoid!= null
checks; convertColorAttr
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.
- 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