Skip to content

Latest commit

 

History

History
777 lines (616 loc) · 30.8 KB

changelog.rst

File metadata and controls

777 lines (616 loc) · 30.8 KB

Upcoming

Features:

  • Add support for T command to change format output. (Thanks: Frederic Aoustin).

1.8.2

Features:

  • Use other prompt (prompt_dsn) when connecting using --dsn parameter. (Thanks: Marcin Sztolcman)
  • Include username into password prompt. (Thanks: Bojan Delić)

Internal changes:

  • Use temporary dir as config location in tests. (Thanks: Dmitry B)
  • Fix errors in the tee test (#795 and #797). (Thanks: Irina Truong)
  • Increase timeout for quitting pgcli. (Thanks: Dick Marinus)

Bug Fixes:

  • Do NOT quote the database names in the completion menu (Thanks: Amjith Ramanujam)
  • Fix error in unix_socket_directories (#805). (Thanks: Irina Truong)
  • Fix the --list command line option tries to connect to 'personal' DB (#816). (Thanks: Isank)

1.8.1

Internal changes:

  • Remove shebang and git execute permission from pgcli/main.py. (Thanks: Dick Marinus)
  • Require cli_helpers 0.2.3 (fix #791). (Thanks: Dick Marinus)

1.8.0

Features:

  • Add fish-style auto-suggestion from history. (Thanks: Amjith Ramanujam)
  • Improved formatting of arrays in output (Thanks: Joakim Koljonen)
  • Don't quote identifiers that are non-reserved keywords. (Thanks: Joakim Koljonen)
  • Remove the ... in the continuation prompt and use empty space instead. (Thanks: Amjith Ramanujam)
  • Add conninfo and handle more parameters with c (issue #716) (Thanks: François Pietka)

Internal changes:

  • Preliminary work for a future change in outputting results that uses less memory. (Thanks: Dick Marinus)
  • Remove import workaround for OrderedDict, required for python < 2.7. (Thanks: Andrew Speed)
  • Use less memory when formatting results for display (Thanks: Dick Marinus).
  • Port auto_vertical feature test from mycli to pgcli. (Thanks: Dick Marinus)
  • Drop wcwidth dependency (Thanks: Dick Marinus)

Bug Fixes:

  • Fix the way we get host when using DSN (issue #765) (Thanks: François Pietka)
  • Add missing keyword COLUMN after DROP (issue #769) (Thanks: François Pietka)
  • Don't include arguments in function suggestions for backslash commands (Thanks: Joakim Koljonen)
  • Optionally use POSTGRES_USER, POSTGRES_HOST POSTGRES_PASSWORD from environment (Thanks: Dick Marinus)

1.7.0

  • Refresh completions after COMMIT or ROLLBACK. (Thanks: Irina Truong)
  • Fixed DSN aliases not being read from custom pgclirc (issue #717). (Thanks: Irina Truong).
  • Use dbcli's Homebrew tap for installing pgcli on macOS (issue #718) (Thanks: Thomas Roten).
  • Only set LESS environment variable if it's unset. (Thanks: Irina Truong)
  • Quote schema in SET SCHEMA statement (issue #469) (Thanks: Irina Truong)
  • Include arguments in function suggestions (Thanks: Joakim Koljonen)
  • Use CLI Helpers for pretty printing query results (Thanks: Thomas Roten).
  • Skip serial columns when expanding * for INSERT INTO foo(* (Thanks: Joakim Koljonen).
  • Command line option to list databases (issue #206) (Thanks: François Pietka)

1.6.0

Features:

  • Add time option for prompt (Thanks: Gustavo Castro)
  • Suggest objects from all schemas (not just those in search_path) (Thanks: Joakim Koljonen)
  • Casing for column headers (Thanks: Joakim Koljonen)
  • Allow configurable character to be used for multi-line query continuations. (Thanks: Owen Stephens)
  • Completions after ORDER BY and DISTINCT now take account of table aliases. (Thanks: Owen Stephens)
  • Narrow keyword candidates based on previous keyword. (Thanks: Étienne Bersac)
  • Opening an external editor will edit the last-run query. (Thanks: Thomas Roten)
  • Support query options in postgres URIs such as ?sslcert=foo.pem (Thanks: Alexander Schmolck)

Bug fixes:

  • Fixed external editor bug (issue #668). (Thanks: Irina Truong).
  • Standardize command line option names. (Thanks: Russell Davies)
  • Improve handling of lock_not_available error (issue #700). (Thanks: Jackson Popkin)
  • Fixed user option precedence (issue #697). (Thanks: Irina Truong).

Internal changes:

1.5.1

Features:

  • Better suggestions when editing functions (Thanks: Joakim Koljonen)
  • Command line option for --less-chatty. (Thanks: tk)
  • Added MATERIALIZED VIEW keywords. (Thanks: Joakim Koljonen).

Bug fixes:

  • Support unicode chars in expanded mode. (Thanks: Amjith Ramanujam)
  • Fixed "set_session cannot be used inside a transaction" when using dsn. (Thanks: Irina Truong).

1.5.0

Features:

Bug Fixes:

Internal Changes:

1.4.0

Features:

Bug Fixes:

Internal Changes:

  • Set default data_formatting to nothing. (Thanks: Amjith Ramanujam).
  • Increased minimum prompt_toolkit requirement to 1.0.9. (Thanks: Irina Truong).

1.3.1

Bug Fixes:

  • Fix a crashing bug due to sqlparse upgrade. (Thanks: Darik Gamble)

1.3.0

IMPORTANT: Python 2.6 is not officially supported anymore.

Features:

  • Add delimiters to displayed numbers. This can be configured via the config file. (Thanks: Sergii).
  • Fix broken 'SHOW ALL' in redshift. (Thanks: Manuel Barkhau).
  • Support configuring keyword casing preferences. (Thanks: Darik Gamble).
  • Add a new multi_line_mode option in config file. The values can be psql or safe. (Thanks: Joakim Koljonen) Setting multi_line_mode = safe will make sure that a query will only be executed when Alt+Enter is pressed.

Bug Fixes:

  • Fix crash bug with leading parenthesis. (Thanks: Joakim Koljonen).
  • Remove cumulative addition of timing data. (Thanks: Amjith Ramanujam).
  • Handle unrecognized keywords gracefully. (Thanks: Darik Gamble)
  • Use raw strings in regex specifiers. This preemptively fixes a crash in Python 3.6. (Thanks Emanuele Gaifas)

Internal Changes:

1.2.0

Features:

  • Add more specifiers to pgcli prompt. (Thanks: Julien Rouhaud).
    \p for port info \# for super user and \i for pid.
  • Add watch command to periodically execute a command. (Thanks: Stuart Quin).
    > SELECT * FROM django_migrations; \watch 1 /* Runs the command every second */
  • Add command-line option --single-connection to prevent pgcli from using multiple connections. (Thanks: Joakim Koljonen).
  • Add priority to the suggestions to sort based on relevance. (Thanks: Joakim Koljonen).
  • Configurable null format via the config file. (Thanks: Adrian Dries).
  • Add support for CTE aware auto-completion. (Thanks: Darik Gamble).
  • Add host and user information to default pgcli prompt. (Thanks: Lim H).
  • Better scoping for tables in insert statements to improve suggestions. (Thanks: Joakim Koljonen).

Bug Fixes:

  • Do not install setproctitle on cygwin. (Thanks: Janus Troelsen).
  • Work around sqlparse crashing after AS keyword. (Thanks: Joakim Koljonen).
  • Fix a crashing bug with named queries. (Thanks: Joakim Koljonen).
  • Replace timestampz alias since AWS Redshift does not support it. (Thanks: Tahir Butt).
  • Prevent pgcli from hanging indefinitely when Postgres instance is not running. (Thanks: Darik Gamble)

Internal Changes:

1.1.0

Features:

Bugs:

  • Fix the crash at startup while parsing the postgres url with port number. (Thanks: Eric Wald)
  • Fix the crash with Redshift databases. (Thanks: Darik Gamble)

Internal Changes:

  • Upgrade pgspecial to 1.5.0 and above.

1.0.0

Features:

  • Upgrade to prompt-toolkit 1.0.0. (Thanks: Jonathan Slenders).
  • Add support for o command to redirect query output to a file. (Thanks: Tim Sanders).
  • Add i path completion. (Thanks: Anthony Lai).
  • Connect to a dsn saved in config file. (Thanks: Rodrigo Ramírez Norambuena).
  • Upgrade sqlparse requirement to version 0.1.19. (Thanks: Fernando L. Canizo).
  • Add timestamptz to DATE custom extension. (Thanks: Fernando Mora).
  • Ensure target dir exists when copying config. (Thanks: David Szotten).
  • Handle dates that fall in the B.C. range. (Thanks: Stuart Quin).
  • Pager is selected from config file or else from environment variable. (Thanks: Fernando Mora).
  • Add support for Amazon Redshift. (Thanks: Timothy Cleaver).
  • Add support for Postgres 8.x. (Thanks: Timothy Cleaver and Darik Gamble)
  • Don't error when completing parameter-less functions. (Thanks: David Szotten).
  • Concat and return all available notices. (Thanks: Stuart Quin).
  • Handle unicode in record type. (Thanks: Amjith Ramanujam).
  • Added humanized time display. Connect #396. (Thanks: Irina Truong).
  • Add EXPLAIN keyword to the completion list. (Thanks: Amjith Ramanujam).
  • Added sdist upload to release script. (Thanks: Irina Truong).
  • Sort completions based on most recently used. (Thanks: Darik Gamble)
  • Expand '*' into column list during completion. This can be triggered by hitting <tab> after the '*' character in the sql while typing. (Thanks: Joakim Koljonen)
  • Add a limit to the warning about too many rows. This is controlled by a new config value in ~/.config/pgcli/config. (Thanks: Anže Pečar)
  • Improved argument list in function parameter completions. (Thanks: Joakim Koljonen)
  • Column suggestions after the COLUMN keyword. (Thanks: Darik Gamble)
  • Filter out trigger implemented functions from the suggestion list. (Thanks: Daniel Rocco)
  • State of the art JOIN clause completions that suggest entire conditions. (Thanks: Joakim Koljonen)
  • Suggest fully formed JOIN clauses based on Foreign Key relations. (Thanks: Joakim Koljonen)
  • Add support for dx meta command to list the installed extensions. (Thanks: Darik Gamble)
  • Add support for copy command. (Thanks: Catherine Devlin)

Bugs:

  • Fix bug where config writing would leave a '~' dir. (Thanks: James Munson).
  • Fix auto-completion breaking for table names with caps. (Thanks: Anthony Lai).
  • Fix lexical ordering bug. (Thanks: Anthony Lai).
  • Use lexical order to break ties when fuzzy matching. (Thanks: Daniel Rocco).
  • Fix the bug in auto-expand mode when there are no rows to display. (Thanks: Amjith Ramanujam).
  • Fix broken i after #395. (Thanks: David Szotten).
  • Fix multi-way joins in auto-completion. (Thanks: Darik Gamble)
  • Display null values as <null> in expanded output. (Thanks: Amjith Ramanujam).
  • Robust support for Postgres version less than 9.x. (Thanks: Darik Gamble)

Internal Changes:

  • Update config file location in README. (Thanks: Ari Summer).
  • Explicitly add wcwidth as a dependency. (Thanks: Amjith Ramanujam).
  • Add tests for the format_output. (Thanks: Amjith Ramanujam).
  • Lots of tests for pgcompleter. (Thanks: Darik Gamble).
  • Update pgspecial dependency to 1.4.0.

0.20.1

Bug Fixes:

  • Fixed logging in Windows by switching the location of log and history file based on OS. (Thanks: Amjith, Darik Gamble, Irina Truong).

0.20.0

Features:

  • Perform auto-completion refresh in background. (Thanks: Amjith, Darik Gamble, Irina Truong). When the auto-completion entries are refreshed, the update now happens in a background thread. This means large databases with thousands of tables are handled without blocking.
  • Add CONCURRENTLY to keyword completion. (Thanks: Johannes Hoff).
  • Add support for \h command. (Thanks: Stuart Quin). This is a huge deal. Users can now get help on an SQL command by typing: \h COMMAND_NAME in the pgcli prompt.
  • Add support for \x auto. (Thanks: Stuart Quin). \\x auto will automatically switch to expanded mode if the output is wider than the display window.
  • Don't hide functions from pg_catalog. (Thanks: Darik Gamble).
  • Suggest set-returning functions as tables. (Thanks: Darik Gamble). Functions that return table like results will now be suggested in places of tables.
  • Suggest fields from functions used as tables. (Thanks: Darik Gamble).
  • Using pgspecial as a separate module. (Thanks: Irina Truong).
  • Make "enter" key behave as "tab" key when the completion menu is displayed. (Thanks: Matheus Rosa).
  • Support different error-handling options when running multiple queries. (Thanks: Darik Gamble). When on_error = STOP in the config file, pgcli will abort execution if one of the queries results in an error.
  • Hide the password displayed in the process name in ps. (Thanks: Stuart Quin)

Bug Fixes:

  • Fix the ordering bug in \d+ display, this bug was displaying the wrong table name in the reference. (Thanks: Tamas Boros).
  • Only show expanded layout if valid list of headers provided. (Thanks: Stuart Quin).
  • Fix suggestions in compound join clauses. (Thanks: Darik Gamble).
  • Fix completion refresh in multiple query scenario. (Thanks: Darik Gamble).
  • Fix the broken timing information.
  • Fix the removal of whitespaces in the output. (Thanks: Jacek Wielemborek)
  • Fix PyPI badge. (Thanks: Artur Dryomov).

Improvements:

  • Move config file to ~/.config/pgcli/config instead of ~/.pgclirc (Thanks: inkn).
  • Move literal definitions to standalone JSON files. (Thanks: Darik Gamble).

Internal Changes:

  • Improvements to integration tests to make it more robust. (Thanks: Irina Truong).

0.19.2

Features:

  • Autocompletion for database name in c and connect. (Thanks: Darik Gamble).
  • Improved multiline query support by correctly handling open quotes. (Thanks: Darik Gamble).
  • Added pager command.
  • Enhanced i to run multiple queries and display the results for each of them
  • Added keywords to suggestions after WHERE clause.
  • Enabled autocompletion in named queries. (Thanks: Irina Truong).
  • Path to .pgclirc can be specified in command line. (Thanks: Irina Truong).
  • Added support for pg_service_conf file. (Thanks: Irina Truong).
  • Added custom styles. (Contributor: Darik Gamble).

Internal Changes:

BugFixes:

  • Fixed the completer crashing on invalid SQL. (Thanks: Darik Gamble).
  • Fixed unicode issues, updated tests and fixed broken tests.

0.19.1

BugFixes:

  • Fix an autocompletion bug that was crashing the completion engine when unknown keyword is entered. (Thanks: Darik Gamble)

0.19.0

Features:

  • Wider completion menus can be enabled via the config file. (Thanks: Jonathan Slenders)

    Open the config file (~/.pgclirc) and check if you have wider_completion_menu option available. If not add it in and set it to True.

  • Completion menu now has metadata information such as schema, table, column, view, etc., next to the suggestions. (Thanks: Darik Gamble)

  • Customizable history file location via config file. (Thanks: Çağatay Yüksel)

    Add this line to your config file (~/.pgclirc) to customize where to store the history file.

history_file = /path/to/history/file
  • Add support for running queries from a file using \i special command. (Thanks: Michael Kaminsky)

BugFixes:

  • Always use utf-8 for database encoding regardless of the default encoding used by the database.
  • Fix for None dereference on \d schemaname. with sequence. (Thanks: Nathan Jhaveri)
  • Fix a crashing bug in the autocompletion engine for some JOIN queries.
  • Handle KeyboardInterrupt in pager and not quit pgcli as a consequence.

Internal Changes:

  • Added more behaviorial tests (Thanks: Irina Truong)
  • Added code coverage to the tests. (Thanks: Irina Truong)
  • Run behaviorial tests as part of TravisCI (Thanks: Irina Truong)
  • Upgraded prompt_toolkit version to 0.45 (Thanks: Jonathan Slenders)
  • Update the minumum required version of click to 4.1.

0.18.0

Features:

  • Add fuzzy matching for the table names and column names.

    Matching very long table/column names are now easier with fuzzy matching. The fuzzy match works like the fuzzy open in SublimeText or Vim's Ctrl-P plugin.

    eg: Typing djmv will match django_migration_views since it is able to match parts of the input to the full table name.

  • Change the timing information to seconds.

    The Command Time and Format Time are now displayed in seconds instead of a unitless number displayed in scientific notation.

  • Support for named queries (favorite queries). (Thanks: Brett Atoms)

    Frequently typed queries can now be saved and recalled using a name using newly added special commands (\n[+], \ns, \nd).

    eg:

# Save a query
pgcli> \ns simple select * from foo
saved

# List all saved queries
pgcli> \n+

# Execute a saved query
pgcli> \n simple

# Delete a saved query
pgcli> \nd simple
  • Pasting queries into the pgcli repl is orders of magnitude faster. (Thanks: Jonathan Slenders)
  • Add support for PGPASSWORD environment variable to pass the password for the postgres database. (Thanks: Irina Truong)
  • Add the ability to manually refresh autocompletions by typing \# or \refresh. This is useful if the database was updated by an external means and you'd like to refresh the auto-completions to pick up the new change.

Bug Fixes:

  • Fix an error when running \d table_name when running on a table with rules. (Thanks: Ali Kargın)
  • Fix a pgcli crash when entering non-ascii characters in Windows. (Thanks: Darik Gamble, Jonathan Slenders)
  • Faster rendering of expanded mode output by making the horizontal separator a fixed length string.
  • Completion suggestions for the \c command are not auto-escaped by default.

Internal Changes:

  • Complete refactor of handling the back-slash commands.
  • Upgrade prompt_toolkit to 0.42. (Thanks: Jonathan Slenders)
  • Change the config file management to use ConfigObj.(Thanks: Brett Atoms)
  • Add integration tests using behave. (Thanks: Irina Truong)

0.17.0

Features:

  • Add support for auto-completing view names. (Thanks: Darik Gamble)
  • Add support for building RPM and DEB packages. (Thanks: dp)
  • Add subsequence matching for completion. (Thanks: Daniel Rocco) Previously completions only matched a table name if it started with the partially typed word. Now completions will match even if the partially typed word is in the middle of a suggestion. eg: When you type 'mig', 'django_migrations' will be suggested.
  • Completion for built-in tables and temporary tables are suggested after entering a prefix of pg_. (Thanks: Darik Gamble)
  • Add place holder doc strings for special commands that are planned for implementation. (Thanks: Irina Truong)
  • Updated version of prompt_toolkit, now matching braces are highlighted. (Thanks: Jonathan Slenders)
  • Added support of \\e command. Queries can be edited in an external editor. (Thanks: Irina Truong) eg: When you type SELECT * FROM \e it will be opened in an external editor.
  • Add special command \dT to show datatypes. (Thanks: Darik Gamble)
  • Add auto-completion support for datatypes in CREATE, SELECT etc. (Thanks: Darik Gamble)
  • Improve the auto-completion in WHERE clause with logical operators. (Thanks: Darik Gamble)

Bug Fixes:

  • Fix the table formatting while printing multi-byte characters (Chinese, Japanese etc). (Thanks: 蔡佳男)
  • Fix a crash when pg_catalog was present in search path. (Thanks: Darik Gamble)
  • Fixed a bug that broke \e when prompt_tookit was updated. (Thanks: François Pietka)
  • Fix the display of triggers as shown in the \d output. (Thanks: Dimitar Roustchev)
  • Fix broken auto-completion for INNER JOIN, LEFT JOIN etc. (Thanks: Darik Gamble)
  • Fix incorrect super() calls in pgbuffer, pgtoolbar and pgcompleter. No change in functionality but protects against future problems. (Thanks: Daniel Rocco)
  • Add missing schema completion for CREATE and DROP statements. (Thanks: Darik Gamble)
  • Minor fixes around cursor cleanup.

0.16.3

Bug Fixes:

  • Add more SQL keywords for auto-complete suggestion.
  • Messages raised as part of stored procedures are no longer ignored.
  • Use postgres flavored syntax highlighting instead of generic ANSI SQL.

0.16.2

Bug Fixes:

  • Fix a bug where the schema qualifier was ignored by the auto-completion. As a result the suggestions for tables vs functions are cleaner. (Thanks: Darik Gamble)
  • Remove scientific notation when formatting large numbers. (Thanks: Daniel Rocco)
  • Add the FUNCTION keyword to auto-completion.
  • Display NULL values as <null> instead of empty strings.
  • Fix the completion refresh when \connect is executed.

0.16.1

Bug Fixes:

  • Fix unicode issues with hstore.
  • Fix a silent error when database is changed using \c.

0.16.0

Features:

  • Add ds special command to show sequences.
  • Add Vi mode for keybindings. This can be enabled by adding 'vi = True' in ~/.pgclirc. (Thanks: Jay Zeng)
  • Add a -v/--version flag to pgcli.
  • Add completion for TEMPLATE keyword and smart-completion for 'CREATE DATABASE blah WITH TEMPLATE <tab>'. (Thanks: Daniel Rocco)
  • Add custom decoders to json/jsonb to emulate the behavior of psql. This removes the unicode prefix (eg: u'Éowyn') in the output. (Thanks: Daniel Rocco)
  • Add df special command to show functions. (Thanks: Darik Gamble)
  • Make suggestions for special commands smarter. eg: dn - only suggests schemas. (Thanks: Darik Gamble)
  • Print out the version and other meta info about pgcli at startup.

Bug Fixes:

  • Fix a rare crash caused by adding new schemas to a database. (Thanks: Darik Gamble)
  • Make dt command honor the explicit schema specified in the arg. (Thanks: Darik Gamble)
  • Print BIGSERIAL type as Integer instead of Float.
  • Show completions for special commands at the beginning of a statement. (Thanks: Daniel Rocco)
  • Allow special commands to work in a multi-statement case where multiple sql statements are separated by semi-colon in the same line.

0.15.4

  • Dummy version to replace accidental PyPI entry deletion.

0.15.3

  • Override the LESS options completely instead of appending to it.

0.15.2

  • Revert back to using psycopg2 as the postgres adapter. psycopg2cffi fails for some tests in Python 3.

0.15.0

Features:

  • Add syntax color styles to config.
  • Add auto-completion for COPY statements.
  • Change Postgres adapter to psycopg2cffi, to make it PyPy compatible. Now pgcli can be run by PyPy.

Bug Fixes:

  • Treat boolean values as strings instead of ints.
  • Make di, dv and dt to be schema aware. (Thanks: Darik Gamble)
  • Make column name display unicode compatible.

0.14.0

Features:

  • Add alias completion support to ON keyword. (Thanks: Irina Truong)
  • Add LIMIT keyword to completion.
  • Auto-completion for Postgres schemas. (Thanks: Darik Gamble)
  • Better unicode handling for datatypes, dbname and roles.
  • Add timing command to time the sql commands. This can be set via config file (~/.pgclirc) using timing = True.
  • Add different table styles for displaying output. This can be changed via config file (~/.pgclirc) using table_format = fancy_grid.
  • Add confirmation before printing results that have more than 1000 rows.

Bug Fixes:

  • Performance improvements to expanded view display (x).
  • Cast bytea files to text while displaying. (Thanks: Daniel Rocco)
  • Added a list of reserved words that should be auto-escaped.
  • Auto-completion is now case-insensitive.
  • Fix the broken completion for multiple sql statements. (Thanks: Darik Gamble)

0.13.0

Features:

  • Add -d/--dbname option to the commandline. eg: pgcli -d database
  • Add the username as an argument after the database. eg: pgcli dbname user

Bug Fixes:

  • Fix the crash when c fails.
  • Fix the error thrown by d when triggers are present.
  • Fix broken behavior on ?. (Thanks: Darik Gamble)

0.12.0

Features:

  • Upgrade to prompt_toolkit version 0.26 (Thanks: https://github.com/macobo) * Adds Ctrl-left/right to move the cursor one word left/right respectively. * Internal API changes.
  • IPython integration through ipython-sql (Thanks: Darik Gamble) * Add an ipython magic extension to embed pgcli inside ipython. * Results from a pgcli query are sent back to ipython.
  • Multiple sql statments in the same line separated by semi-colon. (Thanks: https://github.com/macobo)

Bug Fixes:

  • Fix 'message' attribute not found exception in Python 3. (Thanks: https://github.com/GMLudo)
  • Use the database username as the database name instead of defaulting to OS username. (Thanks: https://github.com/fpietka)
  • Auto-completion for auto-escaped column/table names.
  • Fix i-reverse-search to work in prompt_toolkit version 0.26.

0.11.0

Features:

Bug Fixes:

Improvements: