Added recursive processing for nested directories with PRE/POST scripts.
Fixed an error when PRE/POST files and directories did not exist in UI.
Fixed a file location dialog when saving global PRE/POST scripts for the first time.
Set minimum width for DB selection menu in Eclipse toolbar.
August 3, 2022
Added PRE/POST scripts for migrations. Users may create directories named PRE and POST in projects, contents of which will be added to the beginning and end of the main migration script. PRE/POST scripts are also available in global settings and in CLI options.
Added parser support for reserved keywords in object qualified names.
Improved rendering of DB selection menu in Eclipse toolbar.
Fixed an error when reading USER MAPPING with objects privileges disabled. (6.5.1)
Fixed rendering of DB selection menu in SQL Editor. (6.5.1)
July 11, 2022
It is now possible to group DB connections into user-defined groups. Groups are rendered as submenus to easily find required DB connection when choosing one.
It is now possible to import/export DB connections list.
It is now possible to generate DROP/CREATE commands with IF (NOT) EXISTS options, and also drop some objects immediately before creating them.
Added support for USER MAPPING objects.
Fixed a missing dependency in composite types.
Fixed object creation order: indices are created before constraints.
Fixed expression analysis and dependency search in SELECT ... LATERAL commands.
April 21, 2022
Fixed order of operations in migration scripts when deleting a column with its CONSTRAINT. Fixed errors when reading CONSTRAINTS objects.
Creating a script only with selected objects (CLI --selected-only) no longer hides refreshsqlmodule MS SQL commands and doesn't move them to the end of the script.
Changing SEQUENCE START value now generates ALTER ... START command instead of RESTART.
April 11, 2022
Updated all library dependencies of the core program.
New mssql-jdbc driver (10.2) enables encryption by default. To preserve old behavior now we set property trustServerCertificate=true for MSSQL connections by default. To enable server certificate validation set trustServerCertificate=false in connection properties or connection string.
Fixed an error in code generated when changing a function into a procedure and vice versa.
Fixed an error when opening a temporary SQL editor on Windows.
Fixed an error when parsing certain foreign options and other object options. (6.4.1)
March 24, 2022
It is now possible to recursively load pgCodeKeeper libraries, which are referenced by other libraries added to the project. Library must be in a project (or project archive) format to have its own dependences, which must be listed in its .dependencies file.
This option is disabled by default so that behaviour of existing projects doesn't change. Users can enable this new mechanism in project settings.
In a general case, for library dependencies to be loaded, container of that library must have its loadNested flag set in .dependencies file. For instance, in this dependency chain: project → lib1 → lib2 → lib3, lib2 will be loaded if project has the option enabled, and lib3 will be loaded if the option is set in both project and lib1.
Added a tree view of referenced libraries and their structure in Project Explorer.
Added an option to save DB passwords in plain text in Eclipse workspace instead of Eclipse secure storage for cases where latter was unstable. Users can also use passwords stored in .pgpass file.
Added an option to limit number of rows returned by executed SELECT statements.
Non-relocatable extensions are now re-created when necessary.
Improved SQL code formatter, fixed errors.
Fixed an error where a newline was lost at the beginning of some expressions.
Fixed reading SQL-standard function bodies via JDBC. (6.3.1)
support for SQL-standard function bodies, not wrapped as string literals
support for COMPRESSION option in table columns
support for MULTIRANGE and SUCSRIPT options in types
support for keywords used as column names in SELECT without AS
removed support of postfix unary operators
Fixed an error when parsing SELECT ... INTO in PL/pgSQL IF-statement.
October 12, 2021
Added support for SERVER and FOREIGN DATA WRAPPER objects.
Added SQL code refactoring feature. Users can now rename objects in SQL code together with references to those objects. This feature is available in context menu of SQL editor or with a hotkey Alt+Shift+R.
Added object references search feature for SQL code. Users can now search for all recognized references to the currently selected object in SQL editor. This feature is available in context menu of SQL editor or with a hotkey Ctrl+Shift+G.
Added a quick fix for misplaced object errors. It is available in the error tooltip or in Quick Fix context menu in SQL editor. This quick fix moves the object's file to its expected location in the project.
Added an option to autoformat object code when comparing them and saving them into projects.
Fixed erroneous Java 11 requirement in CLI version.
Fixed code generation when migrating data of tables containing IDENTITY columns.
Improved tooltip rendering in SQL editor.
August 16, 2021
It is now possible to selectively load schemas when reading a project or a DB via JDBC. Skipping schemas accelerates DB or project loading. Objects in ignored schemas cannot be used when generation migration scripts. See docs for further info.
Added developer documentation describing overall project structure and work process in README.
Improved function links in SQL editor, and also function dependencies.
Fixed a false diff on functions with GRANT TO PUBLIC privileges.
Added a DB type filter to the drop-down list in Project Editor.
Fixed drop-down DB list rendering in Project Editor when running under KDE.
Fixed an error in table data migration code generation.
Fixed a parser error for ALTER TABLE SWITCH TO in MS SQL.
Removed extraneous Show In menu in Project Explorer.
June 7, 2021
Added code formatting feature for functions in plpgsql and sql languages. Implemented so far: indentation and newline formatting, tabs to spaces replacement, spaces around operators, trailing whitespace removal. Formatting functionality will be extended in future.
Fixed error when reading a DB schema via JDBC when objects of different kinds have same oid's.
Project Editor now has a drop down list of DB connections for convenient connection selection.
Project Editor now remembers last direction for changes application when reopened.
March 22, 2021
Added full support for new object syntaxes introduced in PostgreSQL 13.
Project editor now clearly shows currently selected source for schema comparison and destination for application of selected changes.
March 18, 2021
Starting with this version, pgCodeKeeper requires Eclipse 2020-06 (4.16) or higher.
Improved Project editor interface, fixed rendering errors on Windows. See docs.
Improved object dependency graph CLI mode. Now the output can be filtered by object types and it is also sorted by object type.
See CLI help on --graph-filter-object.
Added support for function calls involving null, anyelement, etc in expression analysis.
Fixed a crash when analysing WITH RECURSIVE expressions.
Fixed references lookup for functions with INOUT arguments.
Fixed index comparison when CONCURRENTLY option for code generation is enabled.
Fixed a crash when reading IDENITY SEQUENCE over JDBC.
Fixed errors in identifier parser.
December 2, 2020
Added an option for data migration when re-creating tables.
Added an option to copy selected objects' names in Project editor.
Fixed Deselect Child Elements menu behaviour in Project editor.
Fixed table column dependencies of indices and constraints.
Fixed ALTER SCHEMA output in script execution log.
Fixed an error in the project editor UI.
August 13, 2020
Special characters in file names are now replaced with '_'. When file names match for different objects they will be stored in the same file.
Added a missed option "Ignore column order" into Get changes settings dialog.
Improved DB connection editing UI.
Improved Mac OS X build.
Fixed an error with project recognition when importing.
Fixed object location checks under Windows.
Fixed errors in MS SQL parser.
Fixed expression analysis when changing files in MS SQL projects.
July 29, 2020
Added standalone pgCodeKeeper packages that do not require an existing Eclipse installation. Packages are available on Github.
Previous update site versions are also available on Github. Main update site now contains only the latest version.
Added a setting to create migration scripts only for selected objects without changing any dependencies. In CLI, all objects that passed through the allowed object and ignore list filters are considered "selected", or all changed objects if no filters are defined.
Added a setting to ignore differences in table column order.
Improved COMMENT ON command generation.
Fixed dependencies between operators and their functions.
July 15, 2020
Fixed an error when reading foreign table schemas via JDBC.
Fixed compatibility with PostgreSQL 9.4 when reading schema via JDBC.
Fixed order of commands for dependencies between functions.
Fixed object location path checks to be case-insensitive.
Fixed errors in expression analysis.
Fixed a crash when parsing a malformed MS SQL command.
Fixed export of types when initializing a MS SQL project.
July 2, 2020
Selected object occurrences are now highlighted in SQL Editor.
Added warnings for objects found in unexpected locations (project paths).
Added parser support for nested multiline comments in PostgreSQL.
Improved object filter dialog in Project Editor.
Removed duplication of error markers.
Fixed a crash when an error is found at the end of a line in a migration script.
Improved COMMENT ON items in SQL Editor's Outline.
Fixed an error in COMMENT ON for DOMAIN CONSTRAINT.
Fixed SQL comments before object code being lost when executing MS SQL migrations.
Fixed erroneous/extraneous object references in SQL Editor.
June 2, 2020
Reworked object references lookup. Now object refernces are collected in analysis stage of function bodies, view queries, and all other expressions. Imprecise method of text-search in expressions was retired.
It is now possible to filter Project Editor by columns. Only tables with changes to their columns will be shown.
Fixed an error in SQL parser in SELECT aliases.
Fixed object references in COMMENT ON.
Improved support for SQL string escape schemas.
Fixed a crash when parsing MS SQL scripts.
Excluded CAST objects belonging to extensions from JDBC loader. (5.9.14)
Fixed DB toolbar combo content when switching editors. (5.9.14)
May 19, 2020
Fixed order when adding new columns into a table to preserve the order specified by user.
Fixed false differences in changed order of VIEW column comments.
Improved DB selection dropdown UI. Increased the list width in Eclipse toolbar.
April 29, 2020
Added support for CAST objects.
Ignore lists now have a QUALIFIED flag that matches rules against object qualified names.
Project builder now uses included libraries when performing a full build, and doesn't mark references to library objects as errors.
Fixed DB connection list UI and other list UIs on Windows.
Fixed a crash when parsing an empty migration script.
April 16, 2020
Added a warning when Java heap space is insufficient for large projects.
Improved output of command log and error messages when executing a script.
Improved command list in SQL Editor's Outline, and also in Project Explorer.
Fixed an error in query results UI.
Fixed an error when parsing WITH (reloptions) in indices, tables, etc.
Fixed missing links for objects used in function bodies and triggers.
March 11, 2020
Added a preference to disable error reports when getting changes.
Removed internal preference values from .settings/ru.taximaxim.codekeeper.ui.prefs project file. Now it contains only user-defined settings.
Fixed an error when reading aggregate functions ordering by VARIADIC "any".
Improved PL/pgSQL parser rules.
Feburary 19, 2020
It is now possible to disable SQL editor parser for large files to improve performance.
It is now possible to drag and drop the elements around in DB connection list, Ignore lists, Library lists and others.
It is now possible to set encoding when importing a project.
Diff Wizard now uses the global Ignore list.
Improved parsing of PL/pgSQL INTO clause.
Fixed code generation when changing IN/INOUT function argument modes.
Fixed builder crash when encountering an error in expression analysis.
Improved performance of MS SQL expression analysis.
January 28, 2020
Added support for new object properties introduced in PostgreSQL 12.
Dependencies are now tracked in default value expressions in MS SQL.
Added --ignore-errors CLI switch to ignore parser and code analysis errors.
Dependency tracking for PostgreSQL function bodies was disabled due to unstable behaviour.
Fixed an error when analysing RETURNING DML statement inside a CTE. (5.9.7)
Fixed Windows CLI bat launcher failing when passed special character containing arguments from PowerShell. (5.9.7)
December 16, 2019
Enabled dependency processing for PostgreSQL functions when their bodies are changed.
Reduced the number of objects recreated when their function dependencies have changes in their bodies.
Fixed CREATE FDW parser.
Fixed SELECT ... FOR parser.
Fixed an error when overriding settings before launching an operation.
December 9, 2019
Optimized migration script generation for complex/large object dependency graphs.
Improved error messages when saving passwords in secure storage.
Improved cancellability when reading DB via JDBC.
November 29, 2019
It is now possible to override settings before launching Get Changes or generating a migration script. Overridden setting are only used once and don't affect program and project preferences.
Overridable settings are also added to the Diff Wizard.
Added support for MEMORY_OPTIMIZED MS SQL tables.
Expression analysis has been optimized: debug logging has been turned off, analysis is now run using multiple threads, VIEW analysis is now done in a single pass and doesn't require a dependency graph.
Expression analysis an the final step when loading any DB schema. These optimizations reduces analysis time 4x relative to the last version (depends on CPU count).
Fixed code generation when changing ANSI_NULLS and QUOTED_IDENTIFIER properties in MS SQL.
Fixed execution of MS SQL scripts containing a single batch of commands.
Improved error reporting when saving passwords in Eclipse's secure storage.
Database passwords are now stored in Eclipse's encrypted Secure storage. Passwords in .pgpass file are still supported.
It is now possible to free parser cache memory after a period of inactivity or on-demand. Default inactivity interval is 30 minutes and may be changed in the program settings.
Parser cache significantly speeds up SQL parsing but may consume hundreds of MBs of Java heap space which may be undesirable if parsing rarely.
Fixed an error with function default privileges when changing owners.
Fixed order of generated commands in cases with cyclic dependencies between functions and tables.
Added a dependency from SELECT queries to PRIMARY KEYs whose columns are used in GROUP BY section.
Added a workaround for potential GUI deadlock on Linux
Added column dependencies to pgDependencies view graph.
October 31, 2019
CLI is now able to run the generated script on a database (options --run-on and --run-on-target).
Fixed errors in PL/plSQL parser, optimized code analysis.#61
Fixed issues in code generation when altering OWNED BY property of sequences, dropping sequences, and in some other cases.#42
Fixed an issue where order of column dependencies creation was incorrect when creating a table.#60
Fixed an issue with dependency detection in expression using COALESCE, NULLIF, etc.
Fixed code generation when working on partitioned indexes.#58
Improved Query Result view UI: added a context menu for tabs, and it is now possible to close tabs with middle mouse button.
Improved parser error messages.
Added dependencies of Full Text Search objects to functions used by them.
October 16, 2019
Enabled analysis for function bodies written in PL/pgSQL language: dependencies used in function bodies are tracked and errors in code are highlighted. Dependency tracking from function bodies to other functions is turned off by default.
Projects containing a lot of PL/pgSQL code may require more memory than before due to increased volume of parsed text.
Fixed an error when working with PostgreSQL 12. (5.8.3)
Fixed an error reporting when workign with pgCodeKeeper project libraries and also with projects themselves when reading them in CLI. (5.8.3)
Fixed an error when using LIST identifier. (5.8.3)
Fixed Diff Wizard script encoding. (5.8.3)
Fixed an error when analyzing objects received from JDBC. (5.8.3)
Fixed an error when opening Diff Wizard's script. (5.8.2)
Data format of copied query results changed for compatibility with both SQL and CSV (SQL strings are copied). (5.8.2)
October 1, 2019
CLI mode now exits with an error when encountering errors in loaded SQL files.
Fixed an error when opening non-pgCodeKeeper project files in SQL editor.
SQL parser now supports XMLTABLE, TABLESAMPLE, SELECT INTO contructs.
MS SQL parser now supports UPDATE trigger function. Also, parser rules have been improved.
Added REFRESH MATERIALIZED VIEW code generation when WITH [NO] DATA state changes.
September 18, 2019
Enabled analysis for function bodies written in SQL language: dependencies used in function bodies are tracked and errors in code are highlighted. Dependency tracking from function bodies to other functions is turned off by default (analogous to MS SQL). Same functionality for plpgSQL is planned in a near future release.
It is now possible to open an SQL editor to run queries without creating a file on disk.
In SQL editor it is now possible to switch between PostgreSQL and MS SQL code parsers and templates for files not in pgCodeKeeper projects.
Progress of script execution and getting changes is now shown in Windows task bar.
September 3, 2019
Added global and per-project preference to enable simplified VIEW format. Views read via JDBC won't contain excessive parenthesis with this setting enabled.
Fixed MS SQL builder when launching parsers in parallel. (5.3.7)
January 29, 2019
Improved project loader performance using parallel parser launches.
In MS SQL migrations unmodified dependent objects are refreshed using sp_refreshsqlmodule instead of being re-created.
Added support for type modifiers of user types in PostgreSQL.
Fixed MS SQL parser for CREATE SCHEMA with object definitions.
January 15, 2019
Script execution progress is now reported in pgCodeKeeper console. Execution result and errors are too reported in the console.
Fixed missing dependencies from functions being called using EXEC in MS SQL.
December 11, 2018
Added an option to override owners of library objects in Project library settings. This option is also applied in CLI when including libraries using XML files.
Owners in project override files have priority over this option.
Fixed StackOverflowErrors when processing large DBs.
Fixed loss of dependency information for library objects.
Added support for special system function call syntaxes in MS SQL. (5.3.3)
Fixed mismatched source/target library XML options in CLI. (5.3.3)
Fixed missing operation cancellation checks when reading DB over JDBC. (5.3.3)
Fixed load order: overrides are loaded last, after libraries. (5.3.2)
Fixed MS SQL functions export. (5.3.2)
Fixed an error while reading default values of MS SQL function arguments over JDBC. (5.3.1)
November 27, 2018
Added new mechanism that allows users to override privileges and owners of objects, stored in projects and libraries. Overrides are saved in the OVERRIDES directory, which the main project structure.
Update Project dialog now has an option that saves selected differences into the overrides directory.
CLI mode uses overrides directory automatically.
Added support for user-defined type objects in MS SQL.
Added notifications for errors found in libraries.
Fixed an error when updating files for VIEWs with triggers.
Fixed REVOKE PUBLIC privilege being ignored for FUNCTIONs and TYPEs. (5.2.1)
November 13, 2018
Added support for procedures in PostgreSQL 11. Also fixed reading functions via JDBC in PostgreSQL 11.
Parser now supports new syntax added in PostgreSQL 11.
Added dependency processing for all MS SQL objects.
It is now possible to use zip-archives as libraries in pgCodeKeeper projects.
Library files can now be included by providing remote resource URLs.
It is now possible to include libraries in CLI using XML lists (.dependencies files, see --src-lib-xml option).
Default privileges are no longer written in project object files.
Table re-creation commands are now generated when its column order changes.
Fixed processing of sequence min and max values in MS SQL.
Fixed processing of configuration parameters of functions in PostgreSQL to comply with pg_dump fixes.
Fixed rules for allowed user-defined operator names to comply with PostgreSQL spec.
Fixed comparison of INCLUDE columns in indices. Column order is is now ignored.
Disabled reading of EXTENSION owned operators. (5.1.7)
October 23, 2018
Added support for OPERATOR objects in PostgreSQL.
MS SQL migrations are now generated in order imposed by dependencies between objects and VIEWs.
Fixed an incorrect reading of TEXTIMAGE_ON parameter in MS SQL tables.
Fixed an error in CLI launch script on Windows when launching from directories with spaces in path.
Fixed JDBC loader failing when there is no schema to put an object in.
Deleting MS SQL ROLE members before dropping the ROLE itself.
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.