Added support for Microsoft SQL Server as a test phase. (5.1.0)
It is now possible to run T-SQL scripts on MS SQL databases. Scripts are now split into separate commands using parsers which are then sent to DB. For T-SQL scripts commands are executed in batches as instructed by GO separators.
Improved T-SQL parser, fixed most of ambiguities remaining in the parser grammar. Improved parser error messages.
Added support for MS SQL objects ASSEMBLY, ROLE, USER.
DB drop-down lists are now filtered by type (PG/MS) depending on context.
Fixed a DB load crash when analysing expressions with references to non-existent objects. Such references now appear as errors in corresponding files.
Expression analysis is now performed after all library dependencies have been loaded to avoid errors with objects referencing not-yet-loaded objects.
Fixed false difference and incorrect read errors for MS SQL objects.
Fixed an error where DEFERRED state of CONSTRAINT TRIGGERs was incorrectly read and written.
August 1, 2018
SQL code generation has been changed. All SQL statements are now created for search_path = pg_catalog. This improves security and stability of generated code, for more information see PostgreSQL 10.3 changelog.
Because of this, differences in name qualification will be found when comparing projects with DBs. Projects need to be updated to the new format by saving these differences.
Location of schema SQL files in projects has been changed. They are now stored in their schema directories instead of common SCHEMA directory.
When opening older projects pgCodeKeeper will suggest moving schema files to their new location.
Using constant search_path for SQL code generation allows JDBC loader to read objects from all schemas with a single query. This greatly improves schema load speeds and allows us to get rid of server helper functions, they are no longer used. Work with pg_dbo_timestamp extension is also greatly sped up.
Fixed parsing of nameless function parameter of type character varying. (4.6.1)
Fixed compatibility with Eclipse 4.8. (4.6.1)
Fixed decrementing SEQUENCEs to comply with PostgreSQL 10 implementation. (4.6.1)
Fixed CONSTRAINT processing when working with pg_dbo_timestamp extension. (4.6.1)
June 21, 2018
Added support from TEXT SEARCH objects: CONFIGURATION, DICTIONARY, PARSER, TEMPLATE. These objects are now also tracked by pg_dbo_timestamp extension.
pg_dbo_timestamp extension has been updated to work around the issue of object privilege tracking. This fix allows pgCodeKeeper to use the extension to speed up DB schema reads. An option has been added to general settings to enable this behaviour. It also enables showing DB users who last modified objects that were found to differ.
Fixed errors in SEQUENCEs that were read using helper-functions on PostgreSQL 10.
Improved Ignored objects list editor UI.
Fixed highlight of multi-line string literals in SQL editor.
Parser now supports IMPORT FOREIGN SCHEMA command.
May 30, 2018
Bracket highlighting has been enabled in SQL Editor. This can be customized in SQL Editor section of the global pgCodeKeeper settings.
DB connection parameters UI has been improved. It is now possible to specify additional connection properties.
Column dependencies in expressions are now recognized in cases where columns are referenced without being qualified by their table names, e.g. in SELECT and index expressions.
Fixed an issue with increased memory consumption introduced in version 4.5.0.
Improved notifications' look in Project Editor.
Fixed broken association between SQL files and SQL editor. (4.5.2)
Fixed JDBC failover failing when server helper function forces transaction into an error state. (4.5.2)
When changing libraries their trees in Project Explorer now update automatically.
Diff pane in Project editor now uses global preferences to render its SQL editors. This fixes the "zero-width tabs" error on Windows.
Improved rendering for checkboxes with very long labels on Windows.
Improved dependency analysis performance for VIEWs.
April 25, 2018
Ignored objects lists now allow to specify object types to which rule is applied. More in the manual.
pgCodeKeeper project libraries:
- library structure is now shown in Project Explorer tree;
- added Object overrides view, it shows overrides in current project editor;
- library objects are now marked with an icon in the diff table of project editor.
Improved SQL expression analysis (in SELECT and other value expressions). The improvements allow for tracking dependencies from expressions to overloaded functions, as well as to columns selected by an asterisk (SELECT * FROM ...).
CLI logs are now written to a single file in the user directory. This can be changed in the CLI launch script.
April 11, 2018
New feature: libraries in pgCodeKeeper projects. Other project directories, dump files, directories with SQL files, and JDBC connection strings can all be added as libraries.
Users may now turn off SQL editor's SQL parser for unrelated files stored in pgCodeKeeper projects. This option is available in project settings.
Fixed the message shown when SQL scripts executes with an error.
Fixed a compatibility error with Eclipse Neon.3.
March 28, 2018
Improved DB Store: added per-DB ignored objects lists, a read-only DB setting, a connection tester, and .pgpass import functionality. Changed internal storage format for easier expansion and maintenance.
Improved JDBC SQL-queries cancelability, such as DB schema reads. When cancelling such operations they will now terminate immediately after cancelling their current DB query.
Fixed an error where identifiers in RETURNS TABLE clause weren't properly quoted.
Dollar quotes are now supported in any places in SQL code where strings are valid.
Updated the list of keywords used for highlighting in SQL editor.
Object links drop-down in SQL editor now shows project-relative paths.
March 14, 2018
Product documentation has been moved out of Eclipse Help System into a separate Read the Docs project.
SQL editor now searches and creates links for objects referenced by VIEWs. To initialize these links, rebuild or clean your projects.
pg_dbo_timestamp extension has been updated. A crash on PostgreSQL 10 has been fixed and additional data is now saved for events. From this release pgCodeKeeper supports extension of version 0.0.2 or above.
In-product feedback function was not working and has been restored.
Improved quoted identifier handling by New Object wizard.
JDBC DB schema read queries have been secured against naming conflicts between internal PostgreSQL and user objects.
Fixed an error while searching for file author in an empty git repository.
Fixed an error when creating a project in a directory with existing settings.
Fixed an error where serial SEQUENCEs turned into IDENTITY's on PostgreSQL 10.
Fixed erroneous suggestions to add builder for non-pgCodeKeeper projects.
February 27, 2018
Added pg_dbo_timestamp extension support. This extension gathers information about DB objects DDL modifications.
pgCodeKeeper project editor settings now contain an option to show DB users who modified the objects that were found to differ.
In the future we plan to speed up JDBC schema reads by using this extension.
Project editor can now filter objects by users who made changes in git or database.
New SQL object wizard will now try to deduce object name and location from context. Inputting object's name and type has been improved, unwanted focus shifts fixed.
Mock data wizard now has a button to remove all optional (not-NOT NULL) columns.
Project editor's filter history now shows automatically when typing.
SQL editor now suggests adding builder for file's project if it is absent.
Fixed an error when reading SEQUENCE objects from PostgreSQL 10.
February 13, 2018
Mock data wizard improvements:
- added support for more types: numeric, time, timestamptz;
- added support for type aliases (varchar etc);
- test data insert code can now be generated with explicit type casts for each value;
- improved and cleared up error messages about incorrect input values;
- added "any" generator, that allows any expressions or values and uses them "as is;"
- user may now select and delete many columns at once;
- the wizard is now accessible via Project Explorer's and SQL Editor's context menus for table files, it is also still accessible via File - New.
New SQL object wizard improvements:
- object name and location are now entered as a single string with dot-separators;
- object name field is filled with default values from current context and is focused by default;
- useless dummy owner code is no longer generated.
Project Editor now has history of previously used filters. Filtering is slightly delayed now to reduce UI hitches when filtering large change-sets. Added object container filter.
Fixed project import when .pgcodekeeper file is missing. Also any Eclipse project may be converted into pgCodeKeeper project now (via Configure menu).
Fixed an error when parsing qualified opclass in CREATE INDEX.
Fixed an error when parsing implicit row constructor in expressions.
January 30, 2018
Project editor shows last change author for projects in git repositories.
Last change lookup uses git log ‑‑full‑history ‑‑no‑merges algorithm which results may differ from the standard one.
This functionality may be disabled in pgCodeKeeper project editor settings.
Added support for column OPTIONs in CREATE FOREIGN TABLE. Added support for CREATE RECURSIVE VIEW.
JDBC-loader now notifies of errors due to outdated helper functions installed in the DB, and also permission denied errors for SEQUENCE objects.
Fixed an error when reading privileges with special-character-containing user names via JDBC.
Fixed errors when building project indices and when restoring them after Eclipse restart.
SQL-editor's Outline will now open with correct filter states after it was closed.
December 19, 2017
pgCodeKeeper is now open-source, project moved under Apache 2.0 license.
Licensing feature has been removed along with usage restrictions.
Fixed a project initialization error. We recommend users to check their projects' properties to see whether they have a pgCodeKeeper builder attached. In case it's not, it is recommended to add it manually via a pgCodeKeeper - Add Builder context menu item.
Fixed errors when creating object links in SQL editor, specifically links in function bodies and in out-of-project files.
Fixed an error where changing contents of a single project had reset all project editors.
Added a "Cancel Execution" action to SQL editor's toolbar, allowing users to terminate a launched script without opening Eclipse's Progress view.
Project editor's actions have been moved back inside the editor. They are still available in pgCodeKeeper main menu and using hotkeys.
"Saved selections" feature has been removed. Instead users may copy selected objects as a filter regex string.
Filtering in project editor has been improved. It is now possible to filter tables' subelements by their types and all objects by their SQL-code.
Added "Collapse All" and "Expand All" options to project editor's diff table's context menu.
Project editor's object counters have been moved to Eclipse's status bar.
Changed pgCodeKeeper perspective's initial layout to allow for better cohesion between editors and their toolbars.
November 22, 2017
SQL editor and migration editor have been merged into single SQL editor
that also executes scripts and performs quick object updates.
Improved project editor's and SQL editor's toolbars.
You can now choose changes sources or script execution targets using a dropdown-combo on Eclipse's main toolbar.
Added table test data (INSERT) generation wizard.
Restored feedback dialog functionality.
Migration scrips saved as temporary, out-of-project files are now always created in UTF-8 encoding.
Fixed an error in object type filter in project editor.
September 25, 2017
JDBC loader is now able to read schemas of different PostgreSQL versions,
9.2 through 9.6 are currently supported. Following SQL-clauses from these versions are now supported:
CREATE FUNCTION ... TRANSFORM, CREATE FUNCTION ... PARALLEL, ROW LEVEL SECURITY.
JDBC loader no longer fails when reading SEQUENCEs from PostgreSQL 10.
Added support for FOREIGN TABLE, MATERIALIZED VIEW objects and CREATE TABLE UNLOGGED clause.
Project builder now detects object name conflicts.
Error markers in sql-files are disabled for non-pgCodeKeeeper projects.
Added an object and change types filters to the diff table in the project editor.
pgCodeKeeper item is now visible in the main menu when working in the program's editors or its files.
Added a notification for errors found in sql-files while comparing DBs.
Extended .-operator (dot) support when it's used with nested composite types etc.
Object owners' names are now quoted the same as other identifiers.
Fixed a parser error when reading malformed COMMENT ON statements.
Fixed and error in checkbox state tracking in diff table.
September 11, 2017
We increment major version in this release due to decision
to shift our development focus onto the SQL-IDE side of the application.
Another reason is an upcoming open-source release, which we plan in the near future.
New workflow for the migration editor — Quick Update.
If you introduce schema changes directly in pgCodeKeeper now you'll
be able to save your changes, generate a migration, apply that migration
and update your project using a single hotkey — Ctrl+Alt+A.
Project editor's main action buttons were moved to Eclipse's toolbar
and we also assigned them hotkeys: Get Changes — Ctrl+F5,
Apply to project — Ctrl+Alt+S, Apply to DB — Ctrl+Alt+D.
Additional dependencies button was moved to pg Dependencies view.
Migration files are now saved in project (/MIGRATION) or in the temp directory,
user may choose to auto-delete migrations when their respective editors close.
Dangerous statements in migrations are now highlighted at their locations.
Improved editor highlighting and tooltips, Outline view, project builder, added tooltips for errors found in code.
Improved SQL editors code to allow for more efficient future development.
Blocked launching of extra Get Changes jobs if a given Project Editor is already running one.
Project Explorer context menu now shows an Eclipse's Show In submenu for pgCodeKeeper project elements.
SQL editor's Show In context menu now has a Project Explorer item
(allowing user to quickly find editor's file in the project's tree).
Fixed an error where newly created project would show as empty.
Fixed an error where the application tried to access a SEQUENCE without permission to use its SCHEMA.
July 11, 2017
Reworked CLI (command line interface). Changes include: option names, program arguments, the way lists are
passed and others. See CLI help for details (launch with --help).
Project builder now looks for references to non-existent objects in project's sql files, those are marked as
Fixed an error where JDBC performance-helper functions were accessed with no permission to do so.
Fixed an error in diff table filtering interface.
May 23, 2017
Ignored Objects list in program preferences can now be configured as white-list.
Tabs of the Project Editor have been merged into a single interface.
CLI build for Windows now includes a bat-script for launching.
Added support for TABLE OF type clause.
Added support for ALTER COLUMN SET (options) clause.
Added support for ALTER COLUMN SET STORAGE clause.
Improved dependency detection for expressions in SQL commands.
Improved handling of SQL keywords, parsing of built-in types and functions.
February 7, 2017
Added support for ENABLE/DISABLE RULE states;
Server-side JDBC helpers have been updated and need to be reinstalled;
Fixed a bug with getting data type names via JDBC;
User can now choose object types (--allowed-objects) to output into migration script.
December 22, 2016
Diff Wizard has been improved and updated. It can be launched using main menu item pgCodeKeeper - Diff Wizard
or via pgCodeKeeper item in the project's context menu. It allows users to compare and generate migration
scripts for DBs, loaded from different sources, without creating a project for them.
CLI mode now allows users to connect to DB using JDBC connection string.
December 6, 2016
Another JDBC DB reader mode has been added. This mode improves performance when working with DBs
containing large number of schemas and while using limited bandwith connections. To use it, it is necessary to
install "helper" stored procedures in the DB being read. To do so, open pgCodeKeeper perspective (Window -
Perspective), choose pgCodeKeeper - Install JDBC Performance Helpers in the main menu and apply the script to
the DB in question. After this the new enhanced reader will be used automatically with this DB.
Ignored Objects feature has been improved. It is now possible to define both black and while object lists that
can be used both in GUI and CLI modes.
October 25, 2016
Getting changes in the project editor now fills both of its tabs (Update Project and Update DB). Choosing a
different DB schema source in one tab also changes it in the other one.
Manual Dependencies Dialog performance has been improved. Object lists in this dialog now contain all DB objects.
Ctrl+F5 hotkey now executes selected part of the script in Migration editor (or the entire script, if no text is selected).
October 4, 2016
pgCodeKeeper editor interface has been improved and cleaned up.
DB schema sources (dump files or items saved in DB Store) are now selected using a single dropdown.
Manual connection parameters inputs have been removed to clean up interface and free screen real estate.
Selected elements panel has been merged into search text field area to free screen real estate.
Other minor corrections and performance improvements.
September 20, 2016
Option of opening pgCodeKeeper project editor by double clicking the «pgCodeKeeper project» item in Project Explorer has been added.
Build is no longer started for hidden files.
Images handling has been improved, resource leak error has been eliminated.
Receiving indexes via JDBC error has been eliminated.
September 7, 2016
Option to create markers of SQL syntax errors, detected by the parser, has been added. Errant files are
marked in the project tree, errant places are underlined in pgCodeKeeper SQL editor (enable pgCodeKeeper
SQL editor by clicking the file SQL — Open With — pgCodeKeeper SQL editor with a right mouse button). For
updating markers in the project make sure that pgCodeKeeper builder is enabled (how to enable: click the
project with a right mouse button — select pgCodeKeeper, then — Add builder).
pgCodeKeeper builder operation has been improved: frequent updating and smooth progress bar displaying.
Option of sending messages to the developers directly from the program has been implemented. To send
messages use the pgCodeKeeper perspective in the Eclipse, choose the menu option pgCodeKeeper — Feedback.
Interface for working with DB connection data has been improved.
The DB objects priviliges reading error has been fixed.
August 12, 2016
Object dependencies storage method has been modified, which made it possible to add the object dependencies from the RULE statements.
When generating migration script, the dependent columns indexes are now correctly taken into account.
Parsing of type definitions with INTERNALLENGTH attribute has been fixed.
The cases of false differences display in stored procedures that return the jsonb type and in the tables using
nextval with a value in double quotes as a default value have been updated.
July 25, 2016
Altered privileges handling has been improved: REVOKE is generated explicitly for deleted GRANT.
The objects random shuffling bug occurring in the project when reexporting has been fixed — now the object
order in the table file is specified explicitly.
Loading via pg_dump is hidden by default (you can enable it in the settings).
Clickthrough to types and domains has been implemented in the SQL editor, these objects have been also added
to the Outline list in the Eclipse.