﻿SQL Data Lens is a development tool for Intersystems database Caché and Intersystems IRIS.

You have questions, ideas?
eMail: support@sqldatalens.com
Web  : https://www.sqldatalens.com

SQL Data Lens is shipped with a private JRE (Java Runtime Environment). There are no dependencies to Oracle's java license model.

Changelog:
V 4.02 (04.09.2026)
    - NEW  : Open an InterSystems %GOF global export (.gof, block format) directly in the Global
             Browser - no server connection needed. File > Open .gof File... shows the file's
             header (format version, export time, namespace), the list of globals with node and
             byte counts, and a subscript tree that expands level by level, so exports of several
             gigabytes with millions of nodes stay navigable. The value panel shows each node as
             text, as a hex dump or as decoded $LIST elements and says explicitly when a value
             cannot be decoded. Filter the global list by name, jump straight to a node with
             Go to ^Global(1,"x"), and export or copy a selection as ZWRITE text or CSV. Opening
             .gof files is available in the Named User and Enterprise editions.

    - NEW  : The Filter field in the table browser's Data tab remembers the filters you last used
             on that table and offers them again as a dropdown - newest first, duplicates
             collapsed - so a filter you typed before is one click away, even after restarting
             SQL Data Lens.

    - NEW  : The class view for IRIS/Caché now shows methods, properties and parameters with
             their signatures and descriptions, not just the bare member names. On older servers
             that do not support this yet, the class view keeps working exactly as before.

    - NEW  : A search box above the Server Navigator tree finds connections as you type - by
             connection name, group name, host or user, case-insensitive. Matching groups expand
             automatically and collapse back to how they were once you clear the box. Ctrl+F jumps
             into the box, Esc clears it, and Arrow Down/Enter jump to (or open) the first match.

    - NEW  : The SQL editor gets an AI Assistant that generates SQL from a plain-language
             description, explains a statement, or explains an execution plan - on
             InterSystems IRIS/Caché with real depth (maps, master map scans, bitmap vs.
             standard indexes, TuneTable state), on other databases with whatever the schema
             offers. Bring your own API key for Anthropic, OpenAI, Azure OpenAI, or a
             self-hosted OpenAI-compatible endpoint under Tools > Settings > AI Assistant, then
             turn it on per connection under Server > Properties > AI - off by default
             everywhere. No row data or connection credentials are ever sent, SQL literal
             values are masked by default, and a preview always shows the exact text before it
             goes out. Named User and Enterprise editions, and the verified trial; not part of
             the Free Edition.

    - NEW  : Right-click a row in a query result against IRIS/Caché and jump straight to the
             Global node that stores it - "Show in Global Browser" opens the Global Browser with
             the real subscript values of that row already filled in, not just the Global name.
             Works for a simple numeric key as well as a composite key; select several rows for a
             pick list. Only offered when the row's table can be resolved unambiguously (not for
             JOINs or views) and uses ordinary, non-custom storage.

    - CHG  : A newly opened SQL editor no longer collects IRIS/Caché execution statistics by
             default - the chart button in the editor toolbar (or Tools > Settings >
             InterSystems IRIS / Caché > SQL editor) turns it back on, per editor or as the new
             default for editors you open afterwards. If you had already switched it on, that
             choice is kept.

    - CHG  : The application log now also captures diagnostic messages from the docking
             framework, the file export/import engine, and Query Cloud's SQL federation -
             previously discarded silently. Helpful for support when a window layout, an
             export, or a federated query behaves unexpectedly.

    - FIX  : A licensing component that cannot be loaded no longer takes the whole start with it.
             If the file is missing or has been quarantined by virus protection, SQL Data Lens
             says so, continues in the FREE EDITION and still restores your workspace and
             favorites - instead of coming up half started.

    - FIX  : The update check now finds its helper program reliably, including when SQL Data
             Lens is started from PowerShell or in an environment that hardens how Windows
             looks up external programs. Before, the check could silently do nothing in that
             situation.

    - FIX  : Saving an ER diagram no longer freezes the window while it checks the connection,
             and it now recognizes a connection the server has quietly dropped (after a long
             idle time, a restarted server, or a lost network) instead of only noticing once the
             save itself fails. If saving still cannot succeed, you get a clear message that the
             diagram was not saved and should be tried again - your diagram edits stay open and
             are not lost.

    - FIX  : On an Azure SQL Database connection, the Server Navigator now shows the databases
             you can reach instead of only "master". Leave "Database Name" empty on the Azure
             tab and Catalogs lists every database on the logical server your sign-in can see;
             open one and SQL Data Lens connects to it in the background, reusing the sign-in
             you already made - a Microsoft Entra browser sign-in is not repeated. Name a
             database on the Azure tab and you get exactly that one. Tables, Views, Procedures
             and Indexes open normally; expanding used to fail with a database-switch error
             (SQL Server error 40508). An Azure SQL Managed Instance lists its databases as
             before, and Microsoft Fabric shows its single warehouse or database. Existing
             connections benefit automatically, without editing or reopening them.

    - FIX  : The "never save the password" default (Settings > Connections) is now honored when a
             connection comes from an ODBC data source or from importing a local Caché server
             registration. Its password is used for the current session only and never written to
             config.json, same as with any other new connection.

    - FIX  : Long operations no longer freeze the window. Testing a connection, loading the
             details of a table, scanning a folder for the Query Cloud or collecting a support
             bundle now put up a progress window after about a second, keep SQL Data Lens
             drawing and responding while they run, and offer a Cancel button that really hands
             the window back to you - even when a database driver is still waiting and will not
             return. A connection test that nobody cancels gives up on its own instead of
             freezing the program. This was most visible with a Microsoft Entra sign-in that
             opens a browser window. While such a window is up, typing does nothing in the main
             window either - only the Cancel button, or Esc, responds - so a moment of typing
             cannot land on state the running operation is still changing.

    - FIX  : Opening the activation wizard (Help > Manage License...) now uses the same
             reliable way of finding its helper program as the update check above. If the helper
             program is missing, SQL Data Lens now says so clearly in the log instead of just
             reporting a generic start failure.
    - FIX  : If the Notepad's saved notes file could not be read after all (removed or made
             inaccessible right after SQL Data Lens found it), the "loading" progress indicator
             no longer stays stuck - it is cleared like any other failed load.

    - FIX  : A table's detail tabs keep working after a long idle time. Loading column
             metadata, constraints, triggers, a column description or committing edited grid
             rows now notices a connection the server has quietly dropped - after an idle
             period, a restarted server or a lost network - and reconnects instead of failing
             on a connection that only looks alive. The window also stays responsive while
             any of this runs.

    - FIX  : Saving a trigger in a table's detail tabs no longer freezes the window while it
             runs the CREATE TRIGGER statement. If the connection was quietly dropped in the
             meantime, you now get a clear message instead of the save silently failing.

    - FIX  : Canceling a long operation - loading a table's detail tabs, testing a connection,
             or creating a support bundle - now really stops it from showing up. Before, a
             canceled operation could still fill in with data a moment later, even though you
             had already told it to stop.

    - FIX  : Clicking the "loading..." placeholder in the Server Navigator while a Tables/Views
             node is still expanding no longer shows an error and no longer breaks selection for
             the rest of the session. The placeholder is now correctly ignored, just like clicking
             empty space; click a real node afterwards and it works as usual.

    - FIX  : The table and view actions no longer freeze the window while they talk to the
             server: generating a CREATE, INSERT, SELECT, UPDATE or DROP-with-dependencies
             script, exporting tables, and - on IRIS and Cache - "Create mapped table" and
             "Edit table description". They also pick up a connection the server dropped
             quietly after a long idle time instead of failing on it.

    - FIX  : Stored procedure scripting actions (CALL, DROP, and the SELECT variants with
             date/numeric/length checks) no longer freeze the window while they talk to the
             server - the same fix already applied to table and view actions. All of these
             background actions now also show a wait cursor while they run, and - if the
             server takes a while to answer - a small progress window with a Cancel button,
             so it is clear that something is happening instead of the window simply doing
             nothing.

    - FIX  : Sending a script to a new SQL editor window opens the new connection in the
             background, with the same wait cursor, progress window and Cancel button as the
             other actions - instead of a window that stopped responding until the server
             answered or the login timed out. This covers every "New Query Editor Window"
             action on tables, views and stored procedures. If the connection cannot be
             opened, you get a clear message instead of an empty editor window.

    - NEW  : The Server Navigator's connection details are now a sortable, copyable properties
             grid instead of a plain text block - host, port, namespace/database, user, driver,
             product version, read-only marking and whether the current connection is encrypted
             (TLS with certificate verification, plain text, or a local connection with no
             network involved, e.g. IRIS shared memory - where SQL Data Lens leaves encryption
             to the driver's own default, it says so plainly instead of guessing). Selecting a
             connection that is not currently open now shows its configured settings and "not
             connected" instead of an empty panel or a stale leftover from the last time it was
             connected - and does not open a connection just to show this. Whenever the details
             come from an already open connection, a "Stand hh:mm:ss" timestamp shows when they
             were last read, with a Refresh button to update them on demand. Switch to a SQL
             editor tab and the panel now follows that editor's own connection instead - job/
             session ID, autocommit state and whether a statement is currently running - and
             falls back to the last connection you selected in the tree once you switch away
             from the editor.

    - FIX  : Security: a connection created before version 4.01 could still carry a leftover
             user name, password or encryption setting on its Properties tab, left there by an
             older version and never cleaned up - now removed automatically the next time SQL
             Data Lens loads your connections. If a connection to a server without TLS relied on
             a leftover setting to skip encryption, it now uses the driver's own default instead;
             choose encryption explicitly on the TLS tab if you need a specific setting. The
             Properties tab itself now saves the changes you make there instead of quietly
             discarding them.

    - FIX  : Server Navigator: expanding the Namespaces (Catalogs) node of a connection no longer
             freezes the window while the server answers - the node shows "loading..." and fills
             in as soon as the list arrives. The same goes for the Namespaces panel that opens on
             double-click and for its schema details. Noticeable on slow links and on Azure SQL
             Database, where the list of databases is read from the server.

    - FIX  : Loading the table details of a namespace no longer ends in an error dialog
             when the connection changes while the load is still running - because you
             switched the namespace, reconnected, or disconnected somewhere else in the
             meantime. The tables loaded so far keep their details, and the run simply
             stops.

    - FIX  : A TLS-encrypted connection to InterSystems IRIS/Caché set up with the TLS
             Configuration Assistant now keeps working after restarting SQL Data Lens - the
             assistant's "SSL configuration file" setting is now saved permanently instead
             of only for the current session. If it cannot be saved (for example because the
             user configuration file is not writable), the assistant now tells you so instead
             of failing silently on the next restart.

    - CHG  : Toolbar buttons across the app now show a helpful tooltip explaining what
             they do, not just repeating their label - the SQL editor, Server Navigator,
             Global Browser, Performance Scanner, Management views, Data Pumper, Query
             Cloud, Driver Manager, DB Diagrams, TLS Assistant and AI Assistant toolbars,
             plus the Settings and connection dialogs.

V 4.01 (30.08.2026)
    - NEW  : The docking area runs on a modern, maintained docking framework, and two things are
             possible that were not before. SIDE BY SIDE: drag an editor tab to the left, right,
             top or bottom edge of the editor area and two editors sit next to each other - handy
             for comparing two queries, or for keeping a table view next to the statement that
             produced it. OWN WINDOW: drag a tab out of the main window and it becomes a floating
             window, useful on a second monitor. Title bars, tabs and the tool window buttons are
             drawn by the look and feel now, so Light and Dark look consistent.
             Your saved layout from 4.00 cannot be carried over. SQL Data Lens starts once with
             the default layout and keeps the old file as "workspace.dat.pre-4.01"; arrange the
             windows once and they are saved again as usual.

    - NEW  : Connections to SQL Server in the Azure cloud. The driver entry "Microsoft Azure SQL
             (Database, Managed Instance, VM)" and the new "Azure" tab ask what it is and how you
             want to sign in - an ordinary SQL login, or an Entra ID (Azure AD) access token you
             paste in - so you make a choice instead of assembling a connection string. You can
             also paste a connection string straight from the Azure portal; the JDBC, ADO.NET and
             ODBC forms are all understood, and user name and password go into their own fields.
             Where Azure names a reason for refusing a connection - a missing firewall rule for
             your IP address, a user name that needs the "@servername" suffix, an expired token,
             outbound port 1433 blocked in your own network - you now get that reason instead of
             "Login failed". The driver list is sorted properly now, upper and lower case mixed
             together as expected. The "Azure" tab only opens up for a Microsoft SQL Server,
             Azure SQL or Fabric driver - or if a target is already set on that connection - and
             a warning icon on the tab tells you when a required Entra ID token is still missing.
             If the driver and the Azure target ever disagree, or Fabric is set to sign in with a
             SQL login instead of Entra ID, SQL Data Lens asks or jumps you to the Azure tab
             before saving or testing the connection, instead of letting a raw driver error be the
             first you hear of it; the TLS tab pre-selects "Encrypted" for you as soon as a target
             is chosen, unless you already set it yourself. The "Azure" tab also has a
             "Database Name" field, left blank for the default database of your sign-in (shown as
             "<default>", the same wording SQL Server Management Studio uses) - set it to reach a
             particular database on an Azure SQL Database, which only ever connects to one.
             Once the target on the "Azure" tab is set to "Azure SQL Database", the Server
             Navigator shows only the one database you are connected to - Azure does not allow
             switching to another database on the same connection, so the other databases you
             cannot reach no longer appear and no longer fail to open. Leave the target unset and
             the navigator still lists every database the server reports, "master" among them;
             opening one of those ends in a message from Azure instead of a table list. Set the
             target and that is gone. See "Azure SQL" in the Connections chapter of the user
             guide.

    - NEW  : The connection dialog now offers the same sign-in methods as SQL Server Management
             Studio, for Microsoft SQL Server, Azure SQL and Microsoft Fabric alike: SQL Server
             Authentication, Windows Authentication, Microsoft Entra MFA, Microsoft Entra
             Password, Microsoft Entra Integrated, Microsoft Entra Service Principal and
             Microsoft Entra Default. If you already work with the Azure CLI, "Microsoft Entra
             Default" is the shortest of them: run "az login" once and connect, and the sign-in
             you already have is used - no window, nothing to type, no token to paste, and no
             more fetching a token by hand every hour. It accepts a sign-in from Azure PowerShell,
             the Azure Developer CLI or Visual Studio Code just as well. Nothing is stored for it:
             no password, no token. Your choice is saved with the connection, the user and
             password fields switch on and off to match it, and existing connections that used
             Windows authentication keep working and now show it in the list. Pasting an Entra ID
             token by hand remains available for locked-down machines. One limitation to know
             before you choose: "Microsoft Entra MFA", which is meant to open your browser for
             an interactive sign-in, does not yet complete reliably - the attempt can stay on
             "connecting" with no browser window in sight, and SQL Data Lens then has to be
             ended through the Task Manager. Use "Microsoft Entra Default" or a pasted token
             until that is sorted out. See "Sign-in methods for SQL Server, Azure SQL and
             Fabric" in the Connections chapter of the user guide.

    - NEW  : Connections to Microsoft Fabric - Warehouse, the SQL analytics endpoint of a
             Lakehouse, and Fabric SQL database. Pick the target on the "Azure" tab and sign in
             with an Entra ID token, which is what Fabric accepts. The analytics endpoint serves
             data that is written through the Lakehouse, so SQL Data Lens marks such a connection
             read-only and keeps write statements, grid editing and Data Pumper writes away from
             it. Azure SQL and Fabric are commercial cloud services, so the Free Edition does not
             connect to them. See "Microsoft Fabric" in the Connections chapter.

    - NEW  : Stored connection passwords are now protected with Windows DPAPI. Windows encrypts
             them against your own Windows user profile, so the key is no longer part of the
             application: a copied or backed-up config.json no longer gives up your passwords, and
             another Windows account on the same machine cannot read them. Migration happens by
             itself on the first start - nothing is lost and you keep connecting without typing
             anything. The protection is bound to the computer and the Windows account that saved
             it, so a configuration you move to another machine or account keeps all its
             connections and asks once for each password. Background: "Where SQL Data Lens stores
             your settings" in the user guide.

    - NEW  : "Never save the password" - per connection, and as a default for newly created ones.
             With it on, no password is written for that connection; SQL Data Lens asks once and
             keeps it for the running session only. The switch is on the new Password tab of the
             connection properties, the default under Settings > Connections.

    - NEW  : Team profiles: share connection details as a file, never credentials. "Export server
             profile..." on a connection or a group writes a readable *.sdlprofile.json that you
             can put on a share, attach to a mail or paste into a wiki, and "Add server from
             profile..." reads it back with a preview. It carries no password at all. Importing an
             updated profile asks what to do with a connection of the same name: update it and
             everything local stays as it is, import it as a copy, or skip it.

    - NEW  : Connections can be encrypted. Both connection dialogs have a "TLS" tab with three
             settings - use the driver default, no encryption, or encrypted (TLS) - plus "Trust
             the server certificate" and an expected certificate host name for generic JDBC
             connections, and an SSL configuration name for IRIS and Caché. A failed handshake
             says what happened and which switch helps.

    - NEW  : A TLS Configuration Assistant sets up an encrypted IRIS or Caché connection - no
             properties file to write, no keytool, no restart. Open it from "Assistant..." on a
             connection's TLS tab, or from Settings > InterSystems IRIS / Caché > TLS > "Set
             up...". Its first step lays out the three ways to get a certificate with each
             option's own fields grouped right underneath it, so it is clear at a glance what
             belongs together; host and port sit in their own section above, since they are
             also needed for the host name check and the test connection regardless of which
             option you pick. It fetches the server's certificate for you, with a clear
             confirmation before it is trusted, or takes one you already have; checks it against
             the host name you are connecting to; writes the trust store and configuration file;
             and finishes with a test connection. The TLS page also gained a "Validate..." button
             that checks an existing configuration file and reports what is wrong with it, and
             "SSL configuration file" now takes effect as soon as you save it - no restart
             needed. See "Transport encryption (TLS)" in the Connections chapter.

    - NEW  : The SQL editor shows IRIS execution statistics next to row count and time: global
             references, commands executed, disk reads with their latency, and the name of the
             cached query class. Click that name to open the query in the Cached Query Analyzer;
             right-click it for the generated class source, the query plan, a MONLBL command line,
             or to purge it. A script shows the sum and puts one line per statement in the Messages
             tab, so "which statement was the expensive one?" has an answer. The numbers also go
             into the SQL History as a sortable "Global refs" column and into its CSV export. The
             chart button in the editor toolbar turns the bar on and off for that editor, and the
             state new editors start in is a setting. Works on IRIS and Caché. Holding the bar
             against the Management Portal? Run the query there a second time first: the Portal's
             first query in a server process pays that process's warm-up on top, so its number can
             look far higher for the very same statement. What the numbers mean and how to compare
             them: "IRIS execution statistics" in the SQL Editor chapter.

    - NEW  : Source code search for IRIS and Caché - server-side across all classes and routines of
             a namespace, as plain text or a regular expression, with switches for system code,
             generated code and a result limit. Start it from the new search field at the right of
             the main toolbar (Ctrl+Shift+F), from a namespace ("Search source code...") or from a
             table or a global in the Global Browser ("Where is this used?"). Nothing is downloaded
             to be searched and the search runs in the background. The search text field remembers
             your last 30 searches in a dropdown, individually removable or clearable in one go, and
             the search opens as its own tab in the main content area rather than a popup window, so
             several searches (e.g. against different namespaces) can stay open side by side while
             you keep working elsewhere. Selecting a result previews the source at the matching line
             next to the list; double-click opens that source in its own tab instead. When the
             namespace list cannot be loaded (e.g. the server is not reachable), the status line says
             why and you can still type the namespace yourself. The search tab is labelled with the
             namespace it searches, and a search that finds nothing says so in a full sentence -
             search text, namespace and which filters (documents, system code, generated code) were
             in effect - instead of a bare "0 matches", and the result list shows that same sentence
             so it is never confused with "no search run yet".

    - NEW  : Connections can be classified as Development, Test, Production or Failover on the new
             "Environment" tab. Each classification has its own colour in the Server Navigator and
             on the SQL editor tab, plus a short badge ([DEV]/[TEST]/[PROD]/[FAILOVER]) so that
             colour is never the only signal. Next to the classification sits "Connection is
             read-only", and the two are independent: mark a shared test system or a reporting
             replica read-only and keep its Test colour, or keep the red Production marker as a
             warning on a system you deliberately write to. When read-only is on, the SQL editor
             passes only statements it can recognise as read-only, the result grid stays
             uneditable, and Data Pumper, the Classes actions and the cached-query purge refuse to
             write. Choosing Production or Failover ticks the box for you; you can clear it again,
             and a confirmation asks first either way. Connections you already have keep their
             protection: one classified Production or Failover stays read-only after the update
             without any action. For IRIS and Caché the classification can follow the instance's
             own system mode, and taking it over never switches the read-only guard off.
             See "Classifying a connection" in the Connections chapter.

    - NEW  : Export, Import, Copy, Compile and Delete in the Classes context menu now work on IRIS,
             over the same web server endpoint the Source Code tab uses. A failed compile shows the
             server's own error text and compiler output instead of a false success.

    - NEW  : "Terminate Process" and "Terminate Lock" now work on IRIS, not only on Caché. Both ask
             for confirmation and name what they are about to end, and the status bar reports what
             the server really did. Declines the server - no process with that id, a system process,
             a missing privilege - you get that reason in plain words instead of a technical error.
             The connection you are working with is never ended from the process list; use
             Disconnect for that. See the Management chapter of the user guide.

    - NEW  : "Tools > Remove legacy configuration files..." clears out the old configuration files
             that still hold connection passwords in the format used before 4.01. It lists every
             file with its path, its size and the reason it is listed, and deletes nothing until
             you confirm; your current config.json is never touched. Read the confirmation - this
             cannot be undone.

    - NEW  : Help > Manage License shows the licence expiry date and the number of licensed users,
             has a "Manage subscription..." button, and a "Refresh licence now" button that picks a
             renewal up immediately instead of waiting for the next scheduled check. The status bar
             mentions a licence that expires within the next 14 days - a quiet hint, no popup.

    - NEW  : A new InterSystems IRIS driver, version 3.11.0, is included and is now the one used
             for new connections. The seven previous drivers stay in the list, so a connection
             that names an older one keeps using it. Change it per connection under "Driver" in
             the connection properties.

    - CHG  : SQL Server and Azure SQL connections now use the Microsoft driver's own encryption
             default, which is encrypted and verifies the server certificate. Up to 4.00 every SQL
             Server connection was forced to be unencrypted, and a setting in the JDBC URL was
             overwritten. For a server with a self-signed certificate, choose "Encrypted (TLS)"
             plus "Trust the server certificate" on the new TLS tab; for a server that offers no
             TLS, choose "No encryption".

    - CHG  : Stopping a query keeps your connection. Press Stop and the next execution starts right
             away with your session settings - isolation level, autocommit, session context - still
             in place, where the whole connection used to be rebuilt. Applies to IRIS and Caché
             connections that are not set to "Encrypted".

    - CHG  : "Tools > Encode all Server Passwords" is gone. Protecting a password that was still
             stored in clear text now happens by itself while the configuration is loaded,
             including for connections imported from an ODBC data source.

    - CHG  : Microsoft Access and HyperSQL connections run on a newer HyperSQL engine (2.7.4).
             Access databases open, read and write exactly as before. On a HyperSQL connection,
             SQL that binds a Java method as a database function is now refused - the engine only
             allows the handful of functions the Access support itself needs.

    - INFO : Microsoft Access and CSV/DBF connections run on newer driver versions under the hood.
             Nothing changes in how they behave or what you can do with them.

    - FIX  : SQL Server with integrated security connects reliably now, not just once per session.
             The first connection of a session worked, every later one was refused with "This
             driver is not configured for integrated authentication" until SQL Data Lens was
             restarted. If the Windows authentication library really is missing, the log now names
             the file it looked for and every folder it searched.

    - FIX  : Excel workbooks can be queried again. A Microsoft Excel connection could be created
             and it did connect, but every statement on it failed. "SELECT * FROM <sheet>" now
             returns the sheet in the result grid, for .xls and .xlsx alike, and CREATE TABLE,
             INSERT INTO and DROP TABLE write back into the workbook. Anything beyond that - a
             column list, WHERE, a join - is answered with a clear message from the driver; see
             "Microsoft Excel connections" in the user guide for what to do instead.

    - FIX  : Dragging a panel out of the window kept it. In rare cases the panel simply vanished
             instead of turning into a floating window - no window, and no way back to its old
             place. Panels now always stay put when a drag cannot be completed, and the same drag
             works on the next attempt.

    - FIX  : "Connection not open" after a break. Leave a SQL editor idle for a while and the next
             execution could fail with the driver's own message, because the server had cleaned up
             the idle session in the meantime. Connections are now really checked before they are
             reused and a lost one is replaced before your statement runs, so you no longer see
             anything at all. Where that cannot be silent - with autocommit off, where a
             transaction would be lost - the message says so plainly and nothing is executed.
             Applies to IRIS, Caché and generic JDBC connections.

    - FIX  : Code completion now finds the tables and columns of a named schema even before it has
             been typed anywhere - the common case on an IRIS namespace whose default schema is
             empty and whose tables all live in one named schema. Before, an unqualified table name
             showed only the keyword list.

    - FIX  : Code completion no longer needs two tries. Pressing Ctrl+Space right after clicking
             into the SQL editor sometimes did nothing at all - only a second press opened the
             suggestion list. The first press now works reliably.

    - FIX  : Code completion now keeps IRIS/Caché-specific suggestions where they actually belong,
             instead of listing them everywhere. SET OPTION names (COMPILEMODE, DEFAULT_SCHEMA,
             LOCK_TIMEOUT, SELECTMODE and others) appear right after you type "SET OPTION ", instead
             of the generic keyword list, and - for the few options whose values are documented, such
             as SELECTMODE - the allowed values after "= " as well. Optimizer hints (%PARALLEL,
             %INORDER and others) now appear only in the FROM clause or right after JOIN, where IRIS
             actually allows them, instead of in every part of a query. Other database connections
             are unaffected.

    - FIX  : Opening a connection no longer writes the user name and password into the connection's
             driver property table, and the login dialog no longer pre-fills the password field
             with the stored, protected value.

    - FIX  : Security: an update installs files but does not always remove the ones that no longer
             ship, so withdrawn drivers with known vulnerabilities could stay on disk - most likely
             if you skipped several versions. SQL Data Lens now removes them on every start:
             H2 1.4.200 (CVE-2021-42392, CVE-2022-23221), PostgreSQL 42.3.1 (CVE-2022-21724),
             SQLite 3.36.0.3 (CVE-2023-32697) and the superseded HyperSQL files in the
             "lib\msaccess" folder (CVE-2022-41853). The drivers you actually use are untouched -
             each of these was replaced by a newer version long ago. Nothing to do.

    - FIX  : Windows Setup now removes far more of the old driver files a previous installation
             may have left behind when you update - not just the withdrawn H2 driver above, but
             every driver file dropped since V 3.17. Skipping several releases in a single update
             no longer leaves outdated driver files sitting in the installation folder.

    - FIX  : The connection properties dialog could open far wider than the screen, most visibly
             on the "Azure" tab of a SQL Server connection. It now always opens at the same,
             sensible size regardless of database type or tab, and help texts wrap onto several
             lines instead of stretching the window.

    - ENH  : SQL Scanner: the checks now read the server's own execution plans, and - with the new
             "Deep" scan profile - real samples of the table data, instead of only estimating from
             the statement text and the compiled statistics. The "Cached Queries" tab is filled by
             these checks now instead of by parsing cached query text; it fills together with every
             other tab in one "Start scanning" run, with no separate start of its own.
             Findings from reading plans and execution counters (Standard profile and above): a
             large table that cached plans walk from end to end instead of using an index, ranked
             by measured server time; an index no cached plan reads but that is still maintained on
             every write; a frozen plan; a predicate a plan cannot use an existing index for; up to
             three missing-index suggestions per table, drawn from the real query pattern instead of
             a general rule; and a sort that spills to a temporary file. On PostgreSQL, SQL Server
             and MariaDB/MySQL connections, the unused- and unread-index findings now come from the
             server's own real usage counters as well, not only on InterSystems.
             Findings from sampling real data (Deep profile): a bitmap index confirmed or ruled out
             by an actual count instead of an estimate; a single value that alone carries most of a
             table, so no index would help; and a mismatch between the statistics the optimiser
             plans against and the data itself - both the number of distinct values and, where a
             probe read a table to the end, the row count. That last finding is reported only where
             the numbers really prove it: values counted in a sample can show that the statistics
             claim too few, while the other direction and the row count need a full count. Where
             the gathered statistics carry no usable value distribution for a column, the scanner
             says so instead of deriving a number from it.
             The "Profile" button next to "Start scanning" sets how far a run may go: Quick reads
             server catalogues only and is safe on a production instance, Standard adds the plans
             and execution counters, Deep additionally samples table data. Reading a stored plan or
             sampling data never runs or changes anything on the server. Where the scanner cannot
             answer a question with certainty, or has nothing to work with - an older server, an
             instance whose execution counters have not been written yet - it says so on the
             "Scanned Objects" tab instead of showing a clean result or guessing.
             The SQL Scanner needs a Named User or Enterprise licence.

    - FIX  : SQL Scanner: the index type advice read column cardinality the wrong way round, so a
             textbook bitmap candidate (a few values over many rows) was passed over while a column
             with unique values could be suggested for a bitmap index - the worst possible choice.
             Both cases now come out right, and the same correction removes false "statistics
             disagree with the data" errors on tables whose statistics were perfectly fine. Nothing
             to do; run the scan again.

    - ENH  : Server Navigator, Scripts and Favorites now start as tabs of the same panel on the
             left, with Server Navigator in front and active, so all three look and sit the same
             way from the first start. The Window menu has a checkbox for each tool window (those
             three, plus Data Inspector and SQL History) to show or hide it, and "Reset Tool
             Windows to Default" - also on the General page of Settings - puts all five back where
             they started, even after you have dragged, undocked or closed them.

    - CHG  : The Free Edition now connects to SQL Server Express. Express is a free edition of SQL
             Server, so it belongs with the other free databases; until now only the Developer
             Edition was accepted and an Express instance was turned away. Nothing to set up -
             connect as usual. See "What counts as free" in the Getting Started chapter.

    - INFO : Apache Derby counts as a free database in the Free Edition, but no Derby driver is
             shipped with SQL Data Lens. Add one yourself under Tools > Manage Drivers..., then
             connect as with any other database.

    - FIX  : Code completion: an exact keyword match now ranks above table or schema names that
             only matched loosely. Typing "sel" used to bury "SELECT" behind a long list of
             barely-related schema names; the keyword now appears near the top, where it belongs.

    - ENH  : You can see why a query is slow while it is still loading. The status line of the SQL
             editor now names the stream columns a result reads - long text and binary values, which
             on IRIS and Caché cost an extra server round trip for every single row and are the usual
             reason a fast query still takes minutes. Hover the status line for the details. Name the
             columns you need instead of SELECT *, or lower Max Rows. A slow load is written to the
             log with its duration. See "Stream columns" in the Results chapter.

    - FIX  : Code completion now says what it knows. When it has no objects to offer, the first line
             of the list reads "metadata: ready", "metadata: loading" or "metadata: unavailable"
             followed by the reason - a name that cannot be resolved is no longer reported as "no
             columns found", and the list is never silently empty. Every entry also carries a
             description: a column shows its type and the table it comes from, a table its schema.

    - FIX  : Data Pumper: a copy from PostgreSQL or SQL Server into InterSystems IRIS or Caché no
             longer stops at the first row that carries a date, time or timestamp value. Such a
             copy now runs through, in either direction and between any two of the supported
             databases. Nothing to do; start the copy again.

    - INFO : The SQL editor's statement separator stays "GO", not ";". On IRIS and Caché ";" is the
             ObjectScript comment character, so splitting on it would tear procedure and trigger
             bodies apart. A script that looks like several ";"-separated statements gets a small,
             dismissible hint. Background: "Statement separators" in the SQL Editor chapter.

    - INFO : Diagrams now save in a new, safer file format. A diagram saved from this version
             cannot be opened by a colleague still on an older version, sharing the same server -
             plan for that with a staged rollout, and update every workstation that shares diagrams
             together. Diagrams saved by older versions still open here as before.

    - ENH  : Search source code (IRIS/Caché): a new "Case sensitive" checkbox lets you find matches
             regardless of upper/lower case - it was always case-sensitive before, with no way to
             tell from the result. Checked by default (the previous behaviour), and remembered
             across searches. The "no matches" message now also states whether the search was
             case-sensitive.

    - FIX  : The Free Edition now connects to HSQLDB (HyperSQL). Its driver has always shipped with
             SQL Data Lens, but the edition check turned the connection away. Nothing to set up -
             pick "HyperSQL DataBase" and connect as usual.

    - ENH  : The Data Pumper warns when a target timestamp column stores fewer fractional-second
             digits than the source - for example a MariaDB DATETIME without an explicit precision,
             which keeps whole seconds only. The column mapping names the affected column(s); the
             copy still runs, sub-second precision is simply truncated on write as the target
             database always did. The same warning appears on the column header tooltip when
             editing such a column directly in a grid.

    - FIX  : Exporting to CSV or text: a value that contains a quotation mark is now written as
             valid CSV, so Excel, other tools and SQL Data Lens itself read the file back exactly
             as it was exported. Values like He said "yes" used to end up unquoted and were torn
             apart or silently shortened on the way back in.

    - FIX  : SQL Server: timestamps now survive an XML or Excel export and re-import unchanged.
             A DATETIME2 value used to come back as 01.01.1970 from XML, and shifted by an hour
             from Excel. Nothing to set up - export and import as usual.

    - FIX  : Disconnecting no longer freezes SQL Data Lens when the server has gone silent - a closed
             laptop lid, a dropped VPN, a frozen virtual machine. The connection closes in the
             background and the server node switches to "not connected" straight away, so the window,
             the menus and your other connections stay usable. "Refresh" on a connected server node
             behaves the same way.

    - FIX  : Field selectivity (IRIS): after Tune Table the saved selectivity shows the values that
             were just collected, instead of staying empty. Recent IRIS versions keep tuned
             statistics outside the class definition, and only the class definition was read. The
             Notes column now says where a value comes from - a measurement from Tune Table, or a
             value fixed in the class definition that overrides a newer measurement, which is the
             usual answer to "I tuned and nothing changed".

    - FIX  : Cached Query Analyzer (IRIS): the detail pane shows the query text again. It used to
             end in a message about an invalid document name, because the text was asked for in the
             wrong place. If a cached query has been purged in the meantime, you get a short note
             saying so instead of an empty pane.

    - ENH  : Code completion now shows how sure it is right in the editor status bar, next to
             Auto:ON/OFF - "metadata: ready", "loading" or "unavailable". No need to open the
             suggestion list just to check whether it is current; hidden on an editor without a
             connection.

    - FIX  : "Import data..." and the Data Pumper's text file import now have a real "Null string"
             field, so a marker written by an earlier export - or by any other tool - is read back
             as NULL instead of as literal text. The setting is remembered, like the other text
             import options.

    - ENH  : Fresher database drivers: PostgreSQL 42.7.13 (was 42.7.4) and Microsoft SQL Server
             13.4.0 (was 12.8.1), the latter also behind the Azure SQL and Microsoft Fabric
             entries. Windows integrated authentication uses the matching new helper library.
             Nothing to set up - existing connections use the new drivers on the next start.

    - CHG  : The Trino and Databricks drivers are no longer part of the download, which makes it
             34 MB smaller. Both entries stay in the driver list, and Tools > Manage Drivers...
             gets the driver file for you - see the "Get Driver File..." entry. If the file
             is missing, SQL Data Lens now names it and points you to that dialog instead of
             leaving you guessing. The Firebird driver (Jaybird) now works the same way: it has
             been updated to version 6.0.6 and is fetched through the same "Get Driver File..."
             dialog instead of shipping with the download. The SQLite driver you already have
             keeps working unchanged, but "Get Driver File..." can now also fetch a newer
             sqlite-jdbc version (3.53.4.0) with a verified checksum, for when you need a more
             recent release. "Get Driver File..." is now available for the InterSystems IRIS
             driver too - useful if the file has gone missing or been damaged on your machine;
             SQL Data Lens fetches the same driver it already ships (3.11.0), checksum-verified,
             so a Caché connection is unaffected.

    - FIX  : A server that goes silent no longer ties up SQL Data Lens while it checks whether the
             connection is still there. That check now keeps to a hard limit of two and a half
             seconds on every database, after which the connection is given up and rebuilt. Long
             running queries are not affected: they may still run as long as they need, and only
             your own query timeout or the Cancel button stops them.

    - FIX  : InterSystems IRIS and Cache: after the server has gone away, the panels outside the SQL
             editor - Global Browser, Processes, Locks, Tasks, Logs and the Data tab of a table -
             notice it within about two seconds instead of working with the lost connection for up
             to half a minute. You get a fresh connection instead of a driver message such as
             "Communication link failure: Connection reset by peer".

    - FIX  : Code completion on InterSystems IRIS: the schema "EnsPortal" no longer appears among
             the suggestions before you have typed anything. It was the last Interoperability
             schema still doing so, in a namespace where all the others were already kept out.
             Type "Ens" and it is offered as before.

    - FIX  : Stop now really stops a script run. Pressing Stop cancels the running statement and
             leaves the rest of the script unexecuted; until now the statements after it still ran,
             so a script that went on to write could change data you had just stopped it from
             changing. The message panel tells you where the run stopped, which statements were
             skipped and whether a transaction is still open - so with auto-commit switched off you
             decide what happens to the changes made so far with Commit or Rollback.

    - FIX  : In a script run, the row count reported for a statement is now its own. An INSERT,
             UPDATE or DELETE following a query had the rows of that query added to it: a single
             inserted row after a ten-row query was reported as "11 row(s) affected", with the same
             wrong number in the status bar and in the SQL history. The "Error happened by
             processing row #" message no longer names a row of an earlier statement either.

    - NEW  : "Search..." on a namespace or catalog, and the "Search objects..." field on the main
             toolbar (Ctrl+Shift+F), now work for every connection, not just IRIS/Caché. They
             search your schema itself - tables, views and columns, by name, across every schema
             of that namespace/catalog - the same way for PostgreSQL, SQL Server, MariaDB and any
             other JDBC connection. For IRIS/Caché a second "Source code" tab keeps searching
             classes and routines exactly as before. Previously the menu entry and toolbar field
             were IRIS/Caché-only and did nothing on a generic JDBC connection.

    - FIX  : Code completion offers the columns again when the cursor sits directly behind a comma
             in the SELECT list - "SELECT ProductAlternateKey," with the cursor right after the
             comma now lists the columns of the table in the FROM clause instead of an empty list
             with the note "no columns found". A space after the comma was never affected.

    - FIX  : Cached Queries now really shows the cached queries of the namespace you picked, not
             those of the connection's default namespace. Open the panel for several namespaces
             and you get several different lists; the tab title starts with the namespace name so
             the tabs stay apart, the count next to the tree node matches the grid, and "Delete
             Cached Query" acts on the namespace you are looking at.

    - FIX  : Clicking the cached query class in the SQL editor's IRIS statistics line jumps to
             that row in the Cached Query Analyzer again, instead of reporting that the query is
             no longer in the list.

    - FIX  : With the IRIS execution statistics switched on, the status bar now names the
             generated cached query class - "Query: %sqlcq...." next to the numbers, clickable -
             for ordinary statements that end with a semicolon. Until now it stayed hidden for
             almost every statement you type.

    - CHG  : The SQL Scanner no longer has a "Cached Queries" tab. Its findings were always the
             workload findings, and those are in the "Findings" tab in full, sortable by severity
             and by share of measured load. The cached query browser is unaffected: it is under
             Performance > Cached Queries and under every namespace.

    - NEW  : Tools > Manage Drivers... can now fetch a missing driver file for you. Select Trino
             on the "Generic JDBC" tab, press "Get Driver File...", and SQL Data Lens shows you
             the exact address, the size, the checksum and the licence before it starts; a
             progress bar and a Cancel button keep you in control while it runs. The file is
             checked against its SHA-256 checksum and only kept if it matches - anything else is
             deleted and no driver is registered. It lands in your user folder, so no
             administrator rights are needed, and your next connection uses it without a restart.
             Databricks asks you to accept its licence terms first, so that entry opens the vendor
             page instead and takes over the file you downloaded there. Downloads only ever happen
             when you press the button, always over an encrypted connection to a fixed address
             that cannot be changed, and "Restore shipped path" takes you back. If you are behind
             a company proxy, the one under Tools > Settings... > Network is used. See "Getting a
             driver that is not shipped" in the Connections chapter of the user guide.

    - CHG  : Free Edition, IRIS and Cache: when your account may not read the license, the message
             now says so and tells you what to do. Reading the license is a privileged operation,
             so an ordinary SQL account is refused even on a free Community instance - which used
             to look as if your server were a commercial one. Either connect with an account that
             holds %All, or have your administrator run
             "GRANT EXECUTE ON %SYSTEM.License_Key TO <your user>" once; that account then
             connects. See "What counts as free" in Getting Started.

    - CHG  : The activation assistant now names Data Prudentia GmbH as the publisher of SQL
             Data Lens. Until now it still showed the former publisher, ixdb Systemsoftware.
             Nothing to do - your existing licence key stays valid and keeps working.

    - CHG  : The severity icons in the SQL Scanner's "Sev." column and in the TLS Assistant's
             validation results now match what they mean: Error is a red circle, Warning the
             yellow triangle, Info the blue circle - three different shapes, so the list is
             readable even without color, and an error no longer looks like a mere warning.

    - FIX  : Zooming the SQL editor with Ctrl+Mouse wheel (or the Zoom submenu) now scales
             keywords, data types and comments along with the rest of the text. They used to
             stay at their original size while identifiers and line numbers grew or shrank,
             leaving the line looking torn apart at anything other than 100%. Zooming back to
             100% or choosing "Reset" now restores the exact original appearance again.

    - NEW  : Get any driver version by its Maven coordinate - and from your own repository if you
             have one. "Get Driver File..." is now offered for every entry on the "Generic JDBC"
             tab, and its new "Fetch by Maven coordinate..." takes something like
             io.trino:trino-jdbc:483 and fetches exactly that artifact from Maven Central. You type
             a coordinate, never an address; the full URL is shown before anything touches the
             network. A checksum stays mandatory: SQL Data Lens uses the one you enter, or the
             .sha512/.sha256/.sha1 the repository publishes next to the file, and tells you which
             of the two it is and what that does and does not prove. If neither exists, or if the
             two disagree, nothing is downloaded. "Repository..." adds your company Nexus or
             Artifactory once - HTTPS only, no credentials in the address, no redirect to another
             host, and the checksum rule unchanged - after a warning you have to confirm, because
             a JDBC driver is program code that runs with your rights. See "Getting a driver that
             is not shipped" in the Connections chapter of the user guide.

    - NEW  : Behind a company proxy that wants a sign-in, getting a driver file no longer ends in an
             error message. When the proxy asks, SQL Data Lens asks you - a small window naming the
             proxy, its port and its realm - and the download simply carries on. No restart, and
             nothing to set up beforehand. What you type is kept in memory until you close the
             program and is never written to a file; it is reused for the rest of the session, so a
             fetch that makes several requests asks you once. Cancel ends the download cleanly.
             Credentials go to the proxy and nowhere else - a driver repository asking for a sign-in
             is still refused without sending anything.

    - FIX  : Activating a licence now takes effect straight away. Until now, connections you had
             already opened kept refusing commercial databases with the Free Edition message until
             you restarted SQL Data Lens - even though the licence dialog had just told you the full
             edition was active again. Open your commercial database and carry on; no restart, no
             reconnect.

    - FIX  : Query Cloud: when a source is refused because your edition does not cover its database,
             the message now names the source by the alias you see in the source tree, and the
             connection behind it - so you can tell at a glance which entry it is about, even when
             you have named the source differently from the connection.

    - NEW  : Tools > Manage Drivers... can now export the driver files you added or fetched
             yourself into a single bundle file, and import that bundle on another machine - the
             way to get a machine without internet access to the same driver setup as one that
             has it. "Export Bundle..." lets you pick which drivers to include; "Import Bundle..."
             shows you what a bundle contains - including every file's checksum - before anything
             is written. Every checksum is checked again against the actual file during import: a
             bundle that has been altered, or is missing a checksum, is refused with a clear
             message instead of being installed. A file or driver entry that already exists on the
             target machine is left alone; nothing already configured there is silently replaced.

    - NEW  : Tools > Manage Drivers... can optionally check the driver version you have
             configured against known security advisories, using the free osv.dev vulnerability
             database. Off by default - turn it on under Tools > Settings... > Network > Driver
             Manager, which also spells out exactly what is sent (only the driver's name and
             version - nothing about you, your connections or your servers). A hit shows its
             identifier, severity, a short description and a link, next to the affected driver;
             the existing, hand-picked warnings (jTDS and the like) keep showing either way.

V 4.00 (23.08.2026)
    - INFO : This release is SQL Data Lens 4.00. It was developed as 3.25, but the new Query Cloud
             (several databases queried together in one statement), the reworked code completion, the
             rebuilt SQL Scanner, the new SQL History and the first central settings dialog add up to
             more than a minor step. Installing and updating work as before. If you used the old Query
             Cloud, read the migration note below before you update.

    - CHANGE: SQL Data Lens is published by Data Prudentia GmbH. The setup's publisher entry and the
             Windows file properties of sqldl.exe name Data Prudentia GmbH, and Help > Support Portal
             opens the Data Prudentia service desk.

    - NEW  : Tools > Settings... - one dialog for everything SQL Data Lens can be configured with.
             Until now the theme lived in a menu, the editor limits on a toolbar, and some twenty
             settings only in a text file you had to copy into your profile and edit by hand. There
             are pages for General, Results & Formatting, Editor & Completion, Metadata, InterSystems
             IRIS / Cache, Network and Logging, plus an Advanced page that lists every setting of both
             stores with a filter and an editable value. Each field says when the change takes effect.
             Nothing moved: values are written back to the same files as always, and all the previous
             entry points keep working. Credentials are shown as "***" and cannot be edited here.

    - NEW  : SQL History overhaul: a flat, sortable, filterable table instead of the day-by-day tree,
             with columns for pin, time, connection, duration, row count, status and your own comment.
             A quick filter above the table searches SQL and comments (optionally as a regular
             expression); further filters narrow by connection, time range and status, and a
             "favorites only" toggle hides the rest. The context menu adds pin, comment, copy as SQL,
             copy error message, delete and the three paste modes, and entries export as .sql or .csv.
             Pinned entries survive the size limit, which is a real setting now. Failed and cancelled
             statements are recorded as well - use the status filter for the old, success-only view.
             The history is stored as readable JSON lines; an existing file is migrated on first start.

    - ENH  : Query Cloud V2: query several databases together in one statement - an IRIS table joined
             against a PostgreSQL table and a CSV folder, for example. Every source is a reference to
             an existing connection (plus namespace/schema) or a CSV/DBF folder, so no credentials
             live in the Query Cloud itself. Add sources with "Add to query cloud..." from a table
             browser or on the "Query Cloud" node, give each one an alias that becomes its schema name
             in SQL, and save views over them. Filters, joins and aggregations run inside each source
             wherever possible, and "Show Federation Plan" shows what was pushed down. The Query Cloud
             is a paid feature: a Named User licence, a Team licence and a trial each federate up to
             five database sources at a time, Enterprise has no limit, and the Free Edition keeps the
             node visible but does not connect to it.

    - CHANGE: Query Cloud: the legacy engine (embedded H2 1.4.200) has been removed - the Query Cloud
             runs entirely on the new Apache Calcite federation now, which reaches every source
             through its own connection instead of copying data into a local database.
             IMPORTANT IF YOU STILL HAVE A LEGACY QUERY CLOUD: the old file querycloud.mv.db cannot be
             read any more and its sources are not taken over automatically, because the driver needed
             to open it is affected by known security issues (CVE-2021-42392, CVE-2022-23221) and no
             longer ships. Add your sources again in the properties of the "Query Cloud" node, Sources
             tab; SQL Data Lens 3.24 and earlier can still show what the old one contained. The old
             entry is renamed to "Query Cloud (removed)" on the next start, and "Legacy Query Cloud..."
             in the Sources tab offers to delete the old file and remove that entry. The old file holds
             your source passwords in plain text - delete it once you no longer need it, and consider
             changing those passwords.

    - ENH  : Query Cloud: a CSV or DBF folder is a regular source with tables now, replacing the
             CSVREAD SQL you had to run yourself. Files with different layouts in one folder work,
             because each file gets its own column types.

    - FIXED: Query Cloud: opening a SQL editor on it no longer blocks the user interface, Cancel
             really ends the query on the source instead of leaving the server computing it, the query
             timeout takes effect when it says it does, and a source that cannot be reached while the
             schema is built is named in the interface instead of only in the log. CLOB and BLOB
             columns and the IRIS/Caché stream fields come through a federated query correctly, where
             text columns used to return the driver's object description and binary columns aborted
             the query. A licence activated or lost mid-session now takes effect on the source limit
             right away.

    - ENH  : Code completion has been substantially reworked. It identifies the cursor position and
             statement context correctly in scripts with several statements, matches table, column,
             procedure and schema names case-insensitively, lists views next to tables, and keeps
             keyword and function lists per database dialect, so a PostgreSQL editor no longer leaves
             IRIS keywords behind in the next one. Behind "schema." it offers that schema's tables and
             views; FROM and JOIN also offer the tables of the schemas named in the statement,
             inserted schema-qualified so the text stays resolvable. Columns and foreign keys come
             straight from the database metadata. Auto-popup waits for two characters by default but
             still fires after "." or after FROM/JOIN/INTO/UPDATE, Ctrl+Space always opens the list,
             and where there is nothing to show it says so instead of quietly showing keywords only.
             Tune it all under "Code Completion Settings..." in the editor's context menu.

    - ENH  : JOIN suggestions are back. Right after JOIN, tables connected through a declared foreign
             key are listed first; with the cursor in the ON part a ready-made condition built from
             that key is offered, or Ctrl+Alt+J inserts it directly. Without a foreign key, a
             condition guessed from column names is offered instead, always marked as a guess.

    - ENH  : SQL Scanner: one click on "Start scanning" runs every check and fills all tabs, with
             findings sorted by severity across checks. Every finding carries a reason and, where one
             can be generated, a suggested statement to copy or open in an editor - the scanner itself
             never executes anything - plus "Show table" for a SELECT on the table concerned. The new
             "Scanned Objects" tab lists every table that was checked, the schemas excluded as system
             objects, and any check that could not run, with its reason. Switching the namespace clears
             the results and cancels a running scan.

    - ENH  : SQL Scanner: the checks themselves are far more accurate. A foreign key counts as indexed
             only where an index carries its columns as the LEADING columns, composite keys are
             evaluated as a whole, and the index type is taken into account. "Indexes" reports a
             redundant index only where its column list is a prefix of another one's, leaving out
             unique indexes, indexes with their own data columns and the IRIS structural indexes. The
             foreign key check reports findings on IRIS and Caché at all now - on the shipped
             AdventureWorks sample it finds 40 unindexed foreign keys. A new "Table Metadata" tab for
             IRIS and Caché finds missing, stale, invalidated or under-sampled optimiser statistics,
             tables with automatic collection switched off, and indexes that were never populated. And
             because index types are invisible over JDBC, bitmap, bitslice and columnar types are read
             from the class dictionary and weighed against column cardinality to suggest a better one.

    - ENH  : From a table straight to what stores it: the class name in the table view is a hyperlink
             that opens the class, and the global names on the Storage tab open the Global Browser,
             with a selection popup where a location holds more than one global. The table's context
             menu offers the same as "Open class" and "Open global(s)". IRIS and Caché only.

    - FIX  : SQL Editor: the Execution Plan tab has been rebuilt. It shows the plan as plain,
             selectable monospaced text that is readable in the dark theme, where the old view could
             silently stay empty for a perfectly good plan. DuckDB, SQL Server and PostgreSQL show a
             text plan now as well; other generic JDBC connections name the database instead of
             showing an empty pane.

    - FIX  : Licensing: a valid licence could be rejected because of the way its expiry date was
             written, which then started SQL Data Lens in the free edition. All the usual date forms
             are read now, and a value that still cannot be read no longer takes a licence away - only
             an expiry date that is really in the past ends one.

    - FIXED: Security: "Send connection details by email..." no longer includes the stored password -
             the obfuscation it used is reversible with information that ships with the product, so
             anyone who received such an email effectively received the password. The recipient enters
             it once at the first connect; emails written by older releases still import theirs.

    - FIXED: Security: creating or deleting an SQL Gateway entry uses bound parameters now. Before, a
             quote in the connection name, URL, user or password broke the statement, and the gateway
             password went into it in clear text, where it could end up in the server's query log.

    - ENH  : Security: the "H2 V1.x" driver entry has been removed - H2 1.4.200 is affected by
             CVE-2021-42392 and CVE-2022-23221, both exploitable through a JDBC URL. Use "H2 V2.x"
             instead; H2 2.x cannot open 1.x database files directly, so convert them with H2's own
             SCRIPT/RUNSCRIPT tools first. A connection entry still pointing at the removed driver
             says so instead of failing with a technical error.

    - FIXED: Closing the application is quick again, even with an unreachable server: connections are
             closed in parallel within a five second budget instead of one after another with no time
             limit at all. The "background work is still running" prompt now also covers running
             exports and SQL executions, so a file export is no longer cut off silently.

    - FIXED: Long-running work no longer freezes the window: the process list, the lock list, their
             detail panes and Data Pumper's column matching all read their data in the background.

    - FIXED: Classes on IRIS: "Copy..." ended in an internal error instead of copying the class. The
             five class operations were implemented for Caché only; on IRIS they are now disabled with
             the reason in their text and refuse with a clear message instead of pretending success.
             Reading classes - the class list, "Class Infos" and the "Source Code" tab - is unaffected.
             Release 4.01 implements all five for IRIS.

    - FIX  : Three settings that had no effect: the auto-commit state of a new SQL editor is
             remembered again, the read-error behaviour set in the settings dialog survives a restart,
             and a documented property that nothing ever read is gone.

    - FIXED: Smaller corrections: DROP INDEX from the Index Analyzer names the table where the database
             requires it; a right-click on a result grid column header opens a menu that does
             something; the Databases view fills its "Free (%)" column; a SQL editor on the Query Cloud
             is no longer titled "null@Query Cloud"; the Free Edition names the product it does not
             support instead of quoting a licence value it never read; HyperSQL connections start;
             "Open in Excel" no longer leaves the Ctrl key stuck in the operating system; the
             read-error toggle shows the state that is really active; a changed driver configuration
             takes effect without a restart; and the views that list server internals (Global Browser,
             processes, locks, tasks, cached queries) no longer leave one open statement behind per
             refresh, which could make them fail on IRIS Community.

V 3.24 (10.08.2026)
    - ENH  : New InterSystems IRIS driver 3.10.5 added (from IRIS 2026.1)
    - FIXED: GlobalViewer: Invalid global value format is show to the user (e.g. $LB selected, but is not in this format)
    - FIXED: GlobalViewer: Mixed data types in global keys on the the same subscript level handled now correctly

    - ENH  : DuckDb driver upgraded to 1.5.5.1
    - ENH  : H2 driver upgraded to 2.4.240
    - ENH  : Trino driver upgraded to 483
    - ENH  : MariaDB driver upgraded to 3.5.10

V 3.23 (04.05.2025)
    - ENH  : The licensing system has been completely revised to make it easier for users to enjoy the benefits of SQL Data Lens .
             The former “Home Edition” has been replaced by a new “Free Edition,” with all previous restrictions —
             such as localhost-only access or limits on the number of connections — completely removed.
             The Free Edition now supports any database connections to the free, community, or developer editions.
             For example:

             - Intersystems IRIS Community Edition
             - Microsoft SQL Server Developer Edition

             SQL Data Lens also provides free, persistent access to free database systems including DuckDB, PostgreSQL, Trino, H2, Apache Derby, and SQLite.

    - ENH  : TableViewer     : More details for Intersystems IRIS per Table in Grid available, e.g. LAST_COMPILED, OWNER, ALLOW_DROP
    - ENH  : TableViewer     : Refresh table view after tune table for entire namespace
    - ENH  : TableViewer     : The repeated calculation of the table size added up with each run, so that the value was only correct on the first run.

    - ENH  : SQLite driver upgraded sqlite-jdbc-3.49.1.0.jar
    - ENH  : MariaDB driver upgraded to mariadb-java-client-3.5.3.jar
    - ENH  : MySQL driver removed
    - ENH  : DuckDb upgraded to 1.2.2.0

    - FIXED: "Nullpointer: Name cannot be null!" happend while opening the SQL Editor on some connections

V 3.22 (23.04.2025)
    - ENH  : Added more SQL scripting features such as "SELECT with numeric check" and "SELECT with length check"

V 3.21 (21.04.2025)
    - ENH  : Some small improvements, like Execute Toolbar button now with text
    - ENH  : Test connections are now limited to showing only 5 namespaces to prevent the UI from becoming too large and unreadable
    - ENH  : Many internal libs upgraded (like POI 5.3.1)
    - ENH  : TableViewer     : Table sources (DDL) is improved and handle IRIS default entries for AUTO_INCREMENT columns corretly
    - ENH  : Data Pumper     : New feature to copy data from one table to another table, also between different databases and namespaces
    - ENH  : SQL Editor      : Improved error handling for values that do not match metadata
    - ENH  : General         : A new toggle button on the main toolbar to configure handling for readerrors globaly

V 3.20 (23.02.2025)
    - ENH  : New Driver 3.10.2 from InterSystems IRIS 2024.x added
    - ENH  : New Driver 3.9.0  from InterSystems IRIS 2024.2 added

    - ENH  : Many internal libs upgraded
    - ENH  : SQL Formatter upgraded
    - ENH  : MariaDB driver upgraded to mariadb-java-client-3.4.1.jar
    - ENH  : H2 driver upgraded to h2-2.3.232.jar
    - ENH  : PostgreSQL driver upgraded to postgresql-42.7.4.jar
    - ENH  : Access driver upgraded to ucanaccess-5.0.1
    - ENH  : Firebird driver upgraded to jaybird-5.0.5.java11
    - ENH  : SqlLite driver upgraded to sqlite-jdbc-3.46.1.0_win64
    - ENH  : Trino driver upgraded to trino-jdbc-468
    - ENH  : MS SQL Server driver upgraded to mssql-jdbc-12.8.1
    - ENH  : DuckDb upgraded to 1.1.3
    - ENH  : New info dialog with copy action about runtime environment
    - ENH  : Drag and drop the csv\parquet\json files to DuckDB generate now DESCRIBE & SUMMARIZE statements for faster file analyzing
    - ENH  : Runtime environment upgraded from 11.0.14 to = 21.0.3
             Summary of Key Performance-Related Improvements in Java Runtime 21
             Near-zero pause times, improved scalability, Lightweight concurrency with low memory footprint, SIMD parallelism for data-heavy tasks,
             Efficient native function calls and memory handling, Faster execution, reduced warm-up times, Lower memory usage for string-heavy applications
             Faster startup and reduced memory usage
             In sum, Java 21’s performance improvements primarily focus on lowering GC pause times, enhancing thread scalability, and optimizing CPU and memory efficiency,
             all of which lead to faster, more resource-efficient applications across a broad range of workloads.
    - ENH  : StoredProcedures: Generation of CALL scripts improved
    - ENH  : SQL Editor      : The way in which a cell is analysed can now be influenced.
             By default, the reading of the result set stops as soon as the first faulty cell occurs.
             This improved value parsing for resultset retrieval makes it easier to find values that do not match the metadata.
             For the erroneous cell, you get row and column information, but SQL DATA LENS also try to get the erroneous value as a string.
    - ENH  : SQL Editor      : The configuration for how the results are displayed (text\grid) is now directly available from the toolbar (ResultsAsText).
                               The configuration for displaying results in a new tab is now easily accessible directly from the toolbar.
                               The configuration for execution plans are is now easily accessible directly from the toolbar.
                               Improved layout of the Textresult output
    - ENH  : DB Diagrams     : The database diagrams feature can now processing VIEWs and shows also sytem object if selected for the connection
    - FIXED: ServerNavigator : Sorting in Server Nav fixed
    - FIXED: SQL Editor      : The execution plan is now available for display again.
    - FIXED: TableViewer     : Nullpointer by viewing (linked) FOREIGN TABLEs
    - FIXED: Restarting SQL DATA LENS does not restore SQL Editor from previous session
    - FIXED: Very old xml lib was removed. That result in a breaking change for the db diagrams.

V 3.19 (05.08.2024)
    - ENH  : Setup improved
    - ENH  : The licensing system has been updated to fix issues with error code 28 based on a disabled network adapter (PART2)
             The activation process needs to read all of a computer's components to get an accurate "fingerprint" of the computer, and this includes all real (aka non-virtualised) network adapters attached to the computer.
    - ENH  : JNA Interface lib updated to 5.14

V 3.18 (16.06.2024)
    - ENH  : SQL Editor      : More keywords for Intersystems IRIS integrated
    - ENH  : TableViewer     : Show storage details for IRIS, like table (global) sizes
    - ENH  : The licensing system has been updated to fix issues with error code 28 based on a disabled network adapter.
             The activation process needs to read all of a computer's components to get an accurate "fingerprint" of the computer, and this includes all real (aka non-virtualised) network adapters attached to the computer.
    - ENH  : ServerNavigator : Database metadata viewer improved with more detail and better sorting
    - ENH  : DuckDB (driver) upgraded to 1.0
    - ENH  : New shortcut to create a inmemory DuckDB connection
    - ENH  : Simply drag and drop the csv\parquet\json file onto the DuckDB connection and the necessary SQL statements will be generated to read the file with ease.

    - FIXED: Connection dialogue box is now centred on the main frame
    - FIXED: DuckDB connections are created with the right duckDB icon. You need to recreate the entries to fix this problem for existing connections.

V 3.17 (30.05.2024)
    - ENH  : TableViewer     : Some driver ignore the setMaxRows Paramter like DuckDB. So for some databases the row limitation is done by TOP x or LIMIT x
    - ENH  : TableViewer     : Column size in grid optimized
    - ENH  : TableViewer     : Count rows function recognises keywords in object names that need to be quoted. So now less errors when counting on system tables.
    - ENH  : New Driver 3.8.4 from InterSystems IRIS 2024.1 added
    - ENH  : Flat Look and Feel updated to 3.4.1 (https://github.com/JFormDesigner/FlatLaf) - more Windows 11 features
    - ENH  : Many internal libs upgraded
    - FIXED: Notepad content was multiplied after close and reopen the notepad tab
    - ENH  : DuckDB driver upgraded to 0.10.3
    - FIXED: SQL History     : Threading issue fixed

V 3.16 (08.10.2023)
    - ENH  : TableViewer     : "open in new tab" improved
    - ENH  : Cached Queries  : Delete selected cached query and delete all cached queries for selected table is now working for IRIS
    - ENH  : SQL Editor      : Copy table on server side works now for IRIS and use the CREATE TABLE <table> AS SELECT... syntax
    - ENH  : SQL Editor      : IRIS improvment: Within SQL Editor the plain execution plan can be shown
    - ENH  : SQL Editor      : New connect button on toolbar to switch fast to another server \ database
    - ENH  : Management\Databases   : More details for IRIS and Caché are now displayed for database files
    - ENH  : Management\Log files   : Log File viewer now with mono font
    - ENH  : Management\Log files   : journal.log entries are now displayed for IRIS
    - ENH  : Management\SQL Gateway : SQL Gateway entries can now be deleted
    - ENH  : Management\SQL Gateway : Create a server-side IRIS SQL Gateway connection based on local connections configured in SQL DATA LENS
    - ENH  : Removed Caché database drivers older than 2018.1. This is now the only database driver for Caché that is included.
    - ENH  : Removed IRIS database drivers for IRIS 2019.1, IRIS 2020.1, 2021.1, 2022.1
             The new default driver for InterSystems is IRIS 2023.1
    - ENH  : Support and Driver for DuckDB added

    - FIXED: Cached Queries node shows the correct item count
    - FIXED: Globals node shows the correct item count
    - FIXED: SQL Editor      : better query plan support for IRIS
    - FIXED: Profiling       : added PStats support for IRIS

V 3.15 (13.08.2023)
    - ENH  : the licensing system has been completely changed, more improvements, simpler trial mode

V 3.14 (02.08.2023)
    - ENH  : New Driver 3.7.1 from InterSystems IRIS 2023.1 added
    - ENH  : Flat Look and Feel updated to 3.1.1 (https://github.com/JFormDesigner/FlatLaf) - Windows 11: rounded popup borders
    - FIXED: Constraints are back again for db diagrams
    - ENH  : objectnames are only quoted if required
    - ENH  : the licensing system has been completely changed

V 3.13 (03.03.2023)
    - ENH  : SQL Editor      : More new IRIS keywords are hightlighted, e.g. for new Windows Functions https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_windowfunctions
    - ENH  : SQL Editor      : New code completion for "SET OPTION"
    - ENH  : SQL Editor      : New Generic CodeCompletion provider for all other databases than IRIS\CACHE e.g. MS SQL SERVER
    - ENH  : TableViewer     : Rebuild Index works now for IRIS. This is executed with %NOLOCK %NOJOURN
    - ENH  : TableViewer     : Tune Table works now for IRIS.
    - ENH  : TableViewer     : New Tune Table with %RECOMPILE_CQ: will recompile the cached query classes using the new Tune Table statistics.The new action
    - ENH  : New Driver 3.6.1 from InterSystems IRIS 2022.2 added
    - FIXED: SQL Editor      : Connection handling for the SQL Editor has been improved. Each SQL Editor uses only one "private" connection.
                               Querying the namespace objects created a second public connection. This caused the editor to open more slowly. This is now fixed. The editor now only needs one database connection.
                               A public connection is now only created when navigating in the server navigator. The server navigator uses its own connection, independent of any open editor.
    - ENH  : Windows setup works now with lowest privileges.
    - FIXED: Scriptmanager   : Scrollbars in Scriptmanager window fixed.
    - FIXED: ServerNavigator : Connectionhandling is now faster
    - ENH  : Setup           : Setup comes now with a signed uninstaller, so the "unknown publisher" message is gone by unstalling SQL DATA LENS
                               Setup can now be executed in non administrative mode
    - ENH  : Flat Look and Feel updated to 3.0 (https://github.com/JFormDesigner/FlatLaf)
    - ENH  : Many internal libs upgraded

V 3.12 (18.09.2022)
    - ENH  : Flat Look and Feel updated to 2.4 (https://github.com/JFormDesigner/FlatLaf)
    - ENH  : Many internal libs upgraded
    - ENH  : More visible connection details for IRIS, eg. using shared memory, server local, and more...
    - ENH  : SQL Editor      : Improve toolbar button, sorted by importance
    - ENH  : Some Table perf. improvments
    - FIXED: Boolean value now formatted as "true"\"false"
    - FIXED: Notepad now also with "JetBrains Mono" for better reading experience (https://www.jetbrains.com/lp/mono/#key-features)
    - ENH  : From table results the new option "Copy pretty formatted" is available
    - ENH  : SQL Editor      : Table selection improved
    - ENH  : SQL Editor      : Min\Max\Avg\Sum values are calculated on selection in tablegrid
    - ENH  : TableViewer     : While counting rows for all tables the table scroll now autom. to the processing row
    - FIXED: Some race conditions removed
    - ENH  : SQL Editor      : Sorting performance in grid improved
    - ENH  : SQL Editor      : Toggle Code completion from toolbar
    - ENH  : SQL Editor      : New SUM\AVG\... functions in Toolbar
    - FIXED: Open TOP 1000 rows of a table produce in some situations invalid sql statement
    - ENH  : TableViewer     : Performance improvments for SQL Server connections

V 3.11 (20.07.2022)
    just a change in the deployment

V 3.10 (18.07.2022)
    - POI dependency log4j-1.2.17.jar removed
    - FIXED: StoredProcedures: Generation of CALL scripts for SPs correctly recognizes parameters and resultset metadata

V 3.9 (11.07.2022)
    - ENH  : Added support for TRINO. https://trino.io/
    - ENH  : Added support for MariaDB. https://mariadb.org/
    - FIXED: NullPointer fixed while connecting to PostgreSQL
    - ENH  : New Driver 3.3.1 from InterSystems IRIS 2022.1 added
    - ENH  : SQL Editor      : Connection name in Statusbar include now the specific icon for the connection type
    - ENH  : TableViewer     : Optimize auto column with
    - ENH  : IndexViewer     : Some improvements

V 3.8 (08.05.2022)
    - FIXED: Showing Stored Procedures if the option "Show Systemobjects" isn't selected (=ignoring system objects)

V 3.07 (31.04.2022)
    - FIXED: Test Connection for none InterSystems databases fixed (JDBC)
    - FIXED: QueryCloud: Downgrade to H2 databae version 1.x to fix some incompatibilities with the QueryCloud handling
    - ENH  : Some internal libs upgraded

V 3.06 (30.04.2022)
    - ENH  : SQL DATA LENS now with an updater for full automatic-updating with tiny update patches

V 3.05 (28.04.2022)
    - ENH  : Upgrade to Runtime 11.0.14
    - ENH  : Many internal libs upgraded
    - FIXED: Open MS Excel works now nativ
    - ENH  : EXE Files are now signed
    - FIXED: new ms sql driver dll: mssql-jdbc_auth-9.4.1.x64.dll

V 3.04 (19.02.2022):
    - ENH  : New jave runtime 11.0.14 with many bugfixes and performance improvemets integrated
    - ENH  : Default font changed to "JetBrains Mono" for better reading experience (https://www.jetbrains.com/lp/mono/#key-features)
    - ENH  : Many internal libs upgraded
    - ENH  : Driver updated to H2 Database Engine 2.1.210 (h2-2.1.210.jar)

V 3.03 (06.02.2022):
    - ENH  : Driver updated to H2 Database Engine 2.0.202 (h2-2.0.202.jar)
    - ENH  : Driver updated to PostgreSQL 42.3.1 (postgresql-42.3.1.jar)   (https://jdbc.postgresql.org/download.html)
    - ENH  : Driver updated to MS SQL Server 9.4.1 (mssql-jdbc-9.4.1.jre11)
    - ENH  : Driver updated to SQLlite 3.36.0.3 (sqlite-jdbc-3.36.0.3.jar)
    - ENH  : Driver added for Firebird in version 4.0.4 (jaybird-full-4.0.4.java11.jar)
    - ENH  : Driver updated for InterSystems IRIS the Driver ist from "InterSystems IRIS Version 2021.2.0.649"
             Beware still of the old driver info!!! -> InterSystems IRIS JDBC  (Version: 2019.1.0.999)
    - ENH  : New improved SQL formatter
    - ENH  : More sql keywords for editor highlighting
    - ENH  : Flat Look and Feel updated to 2.0.1 (https://github.com/JFormDesigner/FlatLaf)

V 3.02 (27.12.2021):
    - ENH  : Some smaller fixes for IRIS like new Keywords LOAD DATA added
    - ENH  : IRIS improvment: For IRIS Server the iboot.log, messages.log, journal.log and alerts.log can be displayed
    - ENH  : Driver added for InterSystems IRIS 2021.2 Preview (intersystems-jdbc-3.3.0.jar -> JDBC Version: IRIS JDBC  (Version: 2019.1.0.999)
                from InterSystems IRIS [IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2021.2 (Build 617U) Thu Dec 9 2021

                InterSystems IRIS Version 2021.2.0.617 xDBC Protocol Version 65
                Beware of an old driver info!!! -> InterSystems IRIS JDBC  (Version: 2019.1.0.999)

V 3.01 (07.11.2021):
    - ENH  : ServerNavigator : Copy connections details for JDBC included; Send connections details for JDBC included
    - ENH  : ServerNavigator : JDBC Connections dialog shows example URLs

    - ENH  : Driver updated to MS SQL Server 9.4.0 (mssql-jdbc-9.4.0.jre11)
    - ENH  : MS SQL Server: Windows authentication fixed

V 3.00 (17.10.2021):
    - Rename: Caché Monitor is now -> SQL Data Lens :-)

    - ENH  : TableViewer     : Shows more details for IRIS DB Server
	- ENH  : ServerNavigator : Improved connection testing
	- ENH  : ServerNavigator : Stored Procedures are loaded async
    - FIXED: ServerNavigator : Expanding node while already connecting doesn't start more tries to connect

    - ENH  : SPViewer        : For Stored Procedures SQL Data Lens create CALL scripts based on the Metadata.
                               But SQL Data Lens can also
                               - create a SELECT script for calling a Stored Procedure by using %ODBCIN for each result column
                               - create a SELECT script for calling a Stored Procedure by using %INTERNAL for each result column
                               - create a SELECT script for calling a Stored Procedure by using CAST( col as VARCHAR(255)) for each result column
                               This functions can helb to find and identifiy data type problems within your Stored Procedure

    - ENH  : SQL Editor      : Restoring scrollbar position after reload
    - ENH  : SQL Editor      : Column completion fixed
	- ENH  : SQL Editor      : Hyperlink navigation from connection name in Statusbar to Server Navigator
    - ENH  : SQL Editor      : Refresh grid result is now executed while fetching data
    - ENH  : SQL Editor      : Auto Save session state fixed, ordering is restored
    - ENH  : SQL Editor      : Improved Syntax highlighting
    - ENH  : SQL Editor      : Improved SQL formatter

    - ENH  : Better positioning of dialogs main window
    - ENH  : New Look and Feel Flat Light and Flat Dark integrated from https://github.com/JFormDesigner/FlatLaf
    - ENH  : Improvements for supported dark mode
    - ENH  : Intercell spacing for all table components removed
    - ENH  : SQL DataLens ist shipped with a minimized private JRE (based on JetBrains JDK 11)
    - ENH  : HiDPI support improved. The menu item is removed. The system scale factor is configured on the OS level.
             Now the per-monitor DPI is supported. Configured as scale factor in Display Settings system dialog
             (https://blogs.windows.com/windowsdeveloper/2016/10/24/high-dpi-scaling-improvements-for-desktop-applications-and-mixed-mode-dpi-scaling-in-the-windows-10-anniversary-update/#Q70zmTwpp7rCw8gC.97)

    - ENH  : Driver updated to MS SQL Server 9.2.1 (mssql-jdbc-9.2.1.jre11)
    - ENH  : Driver updated to PostgreSQL 42.2.19 (postgresql-42.2.19.jar)   (https://jdbc.postgresql.org/download.html)
    - ENH  : Driver updated to H2 Database Engine 1.4.200 (h2-1.4.200.jar)
    - ENH  : Driver updated CsvJdbc - added support to DBF Files
	- ENH  : Driver added for InterSystems IRIS 2021.1 (JDBC Version: 2021.1.0.215)

	- ENH  : "Open in Excel" feature improved
    - ENH  : Export improved: "Save query result to File" ignore read error. So the process doesn't stop and continue on next value

V 2.96 (07.04.2020):
    - ENH  : Driver added for InterSystems IRIS 2020.1 (JDBC Version: 2020.1.0.215)
    - ENH  : QueryCloud supports InterSystems IRIS
    - ENH  : QueryCloud show source code of views
    - ENH  : TableViewer     : JDBC connections show source code of views (e.g. SQL Server)
    - ENH  : Server Navigator: JDBC connections show source code of views (e.g. SQL Server)

V 2.95 (12.04.2020):
    - FIXED: cancel a query refresh the statusbar
    - ENH  : code completion improvements
    - FIXED: corrected counted rows and time after canceling a query
    - FIXED: GlobalViewer: minor fixes and improved in displaying unicode and $lb (listblock) elements
    - FIXED: GlobalViewer: Refreshing globals view don't duplicate values
    - ENH  : Driver updated to CsvJdbc - CSV file JDBC driver (csvjdbc-1.0-36.jar) (http://csvjdbc.sourceforge.net/index.html)
    - ENH  : Driver updated to SQLlite 3.30.1 (sqlite-jdbc-3.30.1.jar)             (https://bitbucket.org/xerial/sqlite-jdbc/downloads/9
    - ENH  : Driver updated to PostgreSQL 42.2.11 (postgresql-42.2.11.jar)         (https://jdbc.postgresql.org/download.html)
    - ENH  : Driver updated to InterSystems IRIS JDBC (Version: 2019.1.1.612)

V 2.94 (04.01.2020):
    - ENH  : No installed Java runtime required! Caché Monitor is now shipped with a private JRE (Java Runtime Environment).
             No longer dependencies to Oracle's java license model.

    - ENH  : change Time format with fractions
    - FIXED: some minor fixes like remove memory leaks
    - FIXED: date handling in sql history

V 2.93 (13.08.2019):

    - ENH  : Native Intersystems IRIS support added (specific features like GlobalViewer and many more, known from Cache)
    ------------------------------------------------------------------
    - ENH  : Show Stored Procedures for JDBC Connecions
    - ENH  : Some refactoring, like removing old starting\stopping action for local Caché services
    - ENH  : Server Navigator: Caché CPF Files are available at the management node
    - ENH  : SQL Editor      : For Caché & IRIS the PID is in Statusbar
    - FIXED: SQL Editor      : holding the F5 key down (or press SHIFt+ENTER) starts the same statements multiple times, thats fixed now
    - FIXED: ClassBrowser    : many fixes
    - ENH  : Server Navigator: Caché & IRIS Connectino property "Show system objects and namespace" is now splitted in two
                               options: "Show system objects" and "Show system namespaces"
    - ENH  : Driver updated to H2 Database Engine 1.4.199
    - ENH  : Driver updated to Microsoft JDBC Driver 7.2 for SQL Server (Version: 7.2.2.0)
    - ENH  : Driver updated to InterSystems IRIS JDBC (Version: 2018.2.0.999)
    - ENH  : Driver updated to MySQL 8.0.16
    - ENH  : Driver updated to SQLlite 3.27.2.1
    - ENH  : Removed driver for Caché version 2009.1, 2010.1, 2017.1 (2017.2 is still there! ;)
    - ENH  : Server Navigator: columns in tree show now detail information about datatypes, pks and nullable
    - ENH  : TableViewer     : More details about global storage per table on the storage tab
    - ENH  : TableViewer     : Some smaller ui improvments
    - ENH  : HiDPI font scaling factor reduced
    - FIXED: Bugfix function "Import Caché & IRIS Connections"
    - FIXED: Bugfix function "Bulk export wizard"
    - FIXED: general UI fixes: , e.g. Title handling in main frame
    - FIXED: disconnect works also on subnodes from Server\Connections
    - ENH  : Date\Time UI improvments, e.g. display format is configurable
    - FIXED: Refresh on Stored Procedure View

V 2.92 (27.01.2019):
    - ENH  : Caché Server Properties: Option "Don't use %SYS namespace" renamed to "Don't query for Caché namespace list"
    - FIXED: if the Cache Server Connection Property "Don't query for Caché namespace list" was selected, the namespace was not expandable
    - FIXED: Query Editor some smaller bugfixes
    - ENH  : New DB Driver : Caché 2017.2
    - ENH  : New DB Driver : Caché 2018.1

V 2.91 (07.01.2019):
    - ENH  : Internal library refactoring
    - ENH  : cache.cpf file handling improved
    - ENH  : Third party libraries updated (e.g. POI 4.0.1)
    - FIXED: Fixed first call on table add to querycloud
    - FIXED: MS SQL Server JDBC Driver: Login Dialog pay attention on integrated security (windows)
            - INFO : Querycloud - can't use integrated security with MS SQL Server
    - ENH  : Driver updated to SQL Server 6.0 (6.0.8112.200)
    - ENH  : Driver updated to MySQL 8.0.13
    - ENH  : Driver updated to PostgreSQL 42.2.5
    - ENH  : Driver updated to H2 1.4.197
    - ENH  : Driver updated to UCanAccess 4.0.4 (A pure Java JDBC driver for Microsoft Access database files)
    - ENH  : Driver updated to CsvJdbc - CSV file JDBC driver (csvjdbc-1.0-34)
    - ENH  : Driver updated to MS Excel - Simple, POI based JDBC driver for XLS/XLSX files (sqlsheet-6.7.jar)
    - FIXED: Working with local file based databases (like Access), the Login Dialog pay attention on this and doesn't show
    - ENH  : CsvJdbc: Connect to a ZIP File with *.csv File within.
    - ENH  : SQLlite JDBC Driver added
    - ENH  : New icons added to identify connection type (Caché, CSV, ...). Important: The symbol für the Caché Server are green cubes
    - ENH  : SQL Editor      : MouseWheel zoom optimized
    - ENH  : QueryCloud: CSV handling in QueryCloud improved -> Create VIEW or COPY to TABLE
             (DragDrop CSV Files to QueryCloud Node or select "Add CSV File to QueryCloud..." via context menu
    - ENH  : Favorite handling implemented, some bugfixes added
    - ENH  : element sizes in trees increased, some ui stuff in tree for a more cleaner look and feel
    - ENH  : Scriptmanager: double click handles only *.sql file in Caché Monitors editor, all other files are handled external by the default app
    - ENH  : Scriptmanager: The fastfile preview feature can show for more file types a preview
    - ENH  : Positioning of dialog improved

V 2.90:
    - FIXED: MAX CHARS doesnt work in Query editor
    - FIXED: TableViewer : Source tab (DDL) Editor fixed
    - ENH  : TableViewer : Source tab (DDL) performance improved
    - ENH  : DB Driver   : IRIS Intersystems JDBC Driver added

V 2.85:
    - ENH  : Improved Server\Connection dialog
    - FIXED: Open Query Editor for a Csv Connection (Menu: "File" -> "Create CSV Text connection")
    - ENH  : New config dialog for the "QueryCloud"
    - ENH  : Improved QueryCloud data view and management
    - ENH  : In QueryCloud loaded driver can viewed on the Connection dialog (Server Manager)
    - ENH  : "View Metadata" only works with connected objects, a message about that behavior is displayed if not connected
    - FIXED: Server Navigator: Some databases doesn't list catalogs\schemas.
                               For that type of connections Caché Monitor show "default" nodes in tree to allow to navigate.
    - ENH  : DB Driver : Update CsvJdbc driver to version 1.0.31
    - ENH  : Connection testing improved
    - FIXED: TableViewer     : Set filter by context menu works now with columns that have to be quoted (IdentifierQuoteString)
    - FIXED: TableViewer     : MaxRows is set to 1000 on first startup
    - ENH  : Max memory set up to 2Gb for the windows exe
    - ENH  : DB Driver : Caché 2017.1 driver updated to 2017.1.1.111
    - ENH  : Grid : Improved cell selection

V 2.83:
    - ENH  : DB Driver : Caché 2016.1 driver removed
    - ENH  : DB Driver : Caché 2016.2 driver added
    - ENH  : DB Driver : Caché 2017.1 driver added
    - ENH  : New function for testing server connection on Server\Connection dialog

V 2.82:
    - FIXED: In the final release the wrong konfiguration folder was used.
             ".cm_beta" instead of ".cm". Please update to this version to get your configuration.

V 2.81:
    - ENH  : New search possibility in all grids with new searchbar
    - ENH  : Searching in sql history
    - ENH  : More details on the error dialog about db vendor code and state
    - ENH  : Improved connection handling, while connecting a progress bar shows the background process.
    - FIXED: Grid            : GridHeader (row number) are not always in sync with the rows from content.
                               It shows while scrolling in bigger result like > 100000 rows
    - ENH  : Grid            : Create SQL for Grid results improved (copy as Insert, copy as update, e.g.)
    - ENH  : SQL Editor      : New Combobox for selecting text scaling like 100%, 200% and so on
    - ENH  : SQL Editor      : View the column's data type in the header tooltip of the result table
    - ENH  : SQL Editor      : SQL statement is visible on result tab via tooltip
    - ENH  : SQL Editor      : "Open in Excel" copy Grid data direct into MS Excel without export to file\import to file
                                (Windows only)
    - ENH  : SQL Editor      : A SQL statement can be saved direct to file via "Execute to file".
                               This feature works  with limited memory because it is designed to directly write
                               the rows from the database to the export file without buffering in memory.

    - FIXED: SQL Editor      : connecting a disconnected sql editor update the titles now correctly
    - FIXED: some minor fixes like memory leaks
    - FIXED: SQL Editor      : "Session snapshots" opens in some situations a connection to get namespace
                               metadata while the editor is still disconnected
    - FIXED: SQL Scanner     : In some situations SQL Scanner doesn't work
    - ENH  : TableViewer     : The table size can be calculate via Task -> "Calculate size for all tables"
    - ENH  : TableViewer     : UI improvments to see more columns details with one click,
                               like infos about Primarykey-Columns, ForeignKey-Columns and
                               special Caché specific details about Caché internal Datatypenames, selectivity and more
    - ENH  : Server Navigator: Selection concept changed to improve user experince and get more control at what time
                               information are fetched from server and detail data are shown.
                               Important: please consider that you have now select detail data via double clicking or
                               selection "open" via context menu.

V 2.80:
    - FIXED: various         : MaxRows limiter can be removed
    - FIXED: Preferences     : Not all preferences was saved in cm_prefs.dat
    - FIXED: Login           : On long running login process two wating dialogs coming up

    - ENH  : New dashboard start page

    - ENH  : Source Browser  : Icons for different source types
                               Navigation improved, drill down via double click on folder (not finished yet!)

    - ENH  : StoredProcedures: Stored-Procedures-System objects are no longer displayed if the option
                               "show System objects" is deselected on Server defintion

    - ENH  : TableViewer     : View the table row count in top grid.
                               Renamed and refactored context menu, some functions grouped within menu "Tasks":
                               - New function to get the current row count for ALL  tables with one click
                               - Execute tunetable for selected tabel(s)
                               - Execute tunetable for current namespace
                               Syntax highlighting for View Source and Table ddl
                               Messaging of current running processes improved e.g. current loaded rows
                               Execute "Script as -> Create" on a view creates now the "CREATE VIEW" with the source of the view
                               Error on getting a value, doesn't stop retrieving the entire result. Just the error value is set to NULL

    - ENH  : More metadata details are localy cached and reused e.g. on Codecompletion for perf reasons
    - ENH  : Localy cached metadata are now saved as zip file to improve performance

    - ENH  : DataInspector   : Syntax highlighting for JSON content.
                               Some smaller improvments in viewing content in DataInspector

    - ENH  : SQL Editor      : new function - escape date dialog
    - ENH  : SQL Editor      : For running queries less cpu cyles are used to update the UI
    - ENH  : SQL Editor      : Multi result view improved. Between each table a splitter is available
    - ENH  : SQL Editor      : Format SQL respect a text selection and format only this string
    - ENH  : SQL Editor      : new parameter "ui.maxoptwidth" to set the max width in pixel for optimizing table column max width based on data
    - ENH  : SQL Editor      : Code completion has now the option to select all columns from a table
    - ENH  : SQL Editor      : Script table as CREATE, INSERT, SELECT direct from (selected) editor text
    - FIXED: SQL Editor      : In some situations closing a tab haven't ask for saving
    - FIXED: SQL Editor      : In some situations wrong row count is displayed in status bar
    - ENH  : SQL Editor      : New feature "Session snapshot" allows to make a quick restart. After stop and start again Caché Monitor
                               all SQL Editor tabs with content and connection infos are restored.
                               When the user quits Caché Monitor, unsaved files and
                               open SQL Editor's from last session will be automatically restored on next launch.
                               The user won't be asked to save unsaved files as he quits Caché Monitor.
                               This can be disabled by setting "ui.remember_session=false" in config.properties
    - FIXED: Server Navigator: Emtpy schemas are removed if setting metadata.removeEmptySchemas=true

V 2.79:
    - ENH  : SQL Editor      : Code completion shows for columns the table name
    - ENH  : SQL Editor      : More context infos in status bar
    - ENH  : SQL Editor      : Timing informations improved
    - ENH  : SQL Editor      : Faster result loading
    - FIXED: some minor fixes like memory leaks
    - FIXED: TableViewer     : Faster result loading
    - ENH  : Preferences     : Preferences like last Window position, Max Row count and so on are on Windows no longer saved in Win-Registry.
                               The data are now loacted in a file called: cm_prefs.dat
    - ENH  : CM Notepad      : The Caché Monitor "Notepad" is something like a visible Clipboard. You can copy\paste text data. All data
                               are automatically saved and restored on startup.
    - ENH  : SQL Editor      : "Save result..." is now executed in a own thread. THis is better for larger results > 1Mio rows
    - ENH  : Notepad         : Caché Monitor has now a new feature called "notepad". This is just something like a simple "notepad"
                               a small visible clipboard ;-).
                               The user haven't worry about saving\loading the content
    - FIXED: TableViewer     : Error "Invalid Column EXTENTSIZE) fixed on tablelist. Caché 2008 and before dosn't have informatino about EXTENTSIZE  within calls details
    - ENH  : TableViewer     : Loading data (and other long running tasks) are cancellable

V 2.78:
    - ENH  : SQL Editor      : For Caché connections the table remarks as listed in code completion popup
    - ENH  : SQL Editor      : Affected rows (rowcount) are visible in statusbar
    - FIXED: Server Navigator: Sometimes not all tables are loaded (same table name in diff schemas)
                               Please use "refresh" in ServerNavigator to refresh the local cached metadata
    - FIXED: Server Navigator: Caché linked Tables are visible via "linked icon"

V 2.77:
    - FIXED: Permanent wait cursor in script manager
    - FIXED: On startup the import connection wizard popup only when Server Navigators is empty
    - FIXED: Caché connections import has only shown local Caché server installations

V 2.76:
    – ENH  : Prevent multiple running instances of Caché Monitor.
             On Windows Caché Monitor search for a running instance on startup and if one found bring it to front.
    - FIXED: Open connection before load metadata \ CPF File
    - ENH  : Server Navigator: "Close" on a server node execute the same action like "Disconnect"
    - ENH  : Server Navigator: "Refresh" on a table node improved, local cached metadata will be deleted
    - ENH  : H2 Database support included
    - FIXED: some minor fixes like memory leaks
    - ENH  : Server Navigator: New data node "Security" with User and Role detail lists
    - ENH  : Server Navigator: New feature: "QueryCloud"!
    - ENH  : TableViewer: More details about Tables like extentsize, classname, external tables and more caching for table meta data to improve performance
    - ENH  : Server Navigator: List of SQL Gateway connections
    - ENH  : Server\network calls are cancellable
    - FIXED: Cursor navigation within Tablebrowser
    - ENH  : Working with CSV files in QueryCloud
    - ENH  : Server Navigator: Open CSV files in QueryCloud via Drag&Drop. Just Drag&Drop your files from Windows file explorer into ServerNavigator.
    - ENH  : Server Navigator: Open text files in SQL Editor via Drag&Drop. Just Drag&Drop your files from Windows file explorer into SQL Editor to open.
    - ENH  : DB Diagrams     : The database diagrams feature is now also available for JDBC connections
    - ENH  : Server Navigator: Removed Caché driver before version 2010.1. If you still need older Caché driver you can download from here
                               http://www.sql-monitor.de/pub/addon_old_drivers.zip You have to extract the zip folder into <cache monitor folder>\lib
    - FIXED: Server Navigator: Add a Caché Server, press OK without a selected driver results in the problem that the dialog disappear silently without adding the server
    - ENH  : New Function: Copy tables between Cache and JDBC Connections
    - FIXED: SQL Editor      : if "Code completion auto-popup" is set to on, after typing "." or "," the codecomplition popup is automatically displayed

V 2.75:
    – ENH  : !! Require Java 8 runtime !!
    – ENH  : Include many database driver, no driver download required
    – ENH  : Available as a comfortable Windows Setup package
    - ENH  : Caché Monitor try to use Java 8 database driver, if no one found the older
             versions are transparently downloaded* and used. (*= is the online version is used!)
    - FIXED: On the Export Wizard Dialog the file type can now seleced for bulk export (not for Home Edition!)
    - ENH  : New function "Create MS Access connection" via file menu to add a ms access db to server navigator and that file to query it via SQL
    - ENH  : New function "Create MS Excel connection" via file menu to add a excel to server navigator and open that file to query it via SQL
    - ENH  : New function "Create CSV Text connection" via file menu to add a csv text file to server navigator and openthat file to query it via SQL
    - ENH  : New function "Create DBF connection" via file menu to add a DBF file to server navigator and open that file to query it via SQL
    - ENH  : Microsoft SQL Server: Support for Windows Authentication (on Windows system cause of required dll)
    - ENH  : New Parameter metadata.cache.deleteonexit allows to config Caché Monitor to delete all local saved metadata on program exit.
             By default this is set to FALSE. So you have to active delete cached metadata to refresh e.g. the Namespaces list
    - ENH  : More detailed messages if there a problem downloading database driver files
    - FIXED: Sometimes the catalogs from JDBC databases was not properly listed
    - ENH  : Faster open query editor
    - FIXED: Server Navigator: View Caché Version information on the "Import Caché Connections" dialog
    - FIXED: Server Navigator: Reading Windows Registry values stabilzed (for Caché connection import, ODBC import)
    - ENH  : Server Navigator: Import local ODBC Connections analyze the driver DLL to find the right database driver
    - ENH  : Server Navigator: Namespace: A Remote namespace is marked with a special "linked" icon in server navigator
                               Namespaces that are not available can not expanded and are marked with a red X on the icon
    - ENH  : Server Navigator: New option on the edit server dialog called: : "Query remote namespace" this is selected by default
                               and means that remote namespace are listed

    - ENH  : Server Navigator: New option on the edit server dialog called: : "Check namespace availability" this is deselected by default
                               and means that the availability of remote namespace are checked\not checked
    - ENH  : Server Navigator: Caché 2016.1 driver added; Caché 2015.3 removed
    - FIXED: Server Navigator: Drag Drop in Server Navigator for Java 8 fixed
    - FIXED: Server Navigator: Loaded and cached Namespace information are now synced and used in server navigator and for the namespace detail view
    - ENH  : New parameter cache.loadNamespacesFromCPF to switch namespace loading to the cache.cpf file!.
             If this is set to true if you want to load the Namespaces from cache.cpf File. This can maybe improve the performance if you have a lot of defined namespaces
             but you lost information, like the the namespace availability or the info about a local or remote namespace.

V 2.74:
    - FIXED: SQL Editor      : Code completion for generic JDBC connections like MS SQL Server, MS Access is now working
    - FIXED: SQL Editor      : Code completion is working if the SCHEMA is NULL
    - FIXED: SQL Editor      : Code completion performance improved
    - FIXED: TableViewer     : Viewing MySQL Data is working
    - FIXED: TableViewer     : JDBC Column info is no longer editable
    - ENH  : Server Navigator: Shows Server Version infos for generic JDBC connections
    - ENH  : DB Diagrams     : The tablename of the table where the diagrams are saved into can be configured by setting the property diagrams.tablename in config.properties
    - ENH  : On all grids    : Selection improvements like "select all" on click upper left corner, "select column" on table header click
    - ENH  : On all grids    : Last selection of option "Fit width based on data" or "Fit width based on data header" are saved and the last selection is reused
    - ENH  : SQL Editor      : With the config param ui.useAccessStyle=true you can enable e.g. the exclamation mark for the execute button
    - FIXED: Server Navigator: On the Edit\Add Server dialog by default the frist driver is selected
    - ENH  : Server Navigator: Moving Server and groups via drag and drop within the Server Navigator implemented (you can do this also by CTRL+C,CTRL+X and CTRL+V)
    - ENH  : Database Driver : Caché Monitor checks current running Java version and if it Java 8 the Java 8 database driver are loaded

V 2.73:
    - FIXED: SQL Editor     : Open editor on generic JDBC connections like MS SQL Server, MS Access sometimes hangs without a message
    - FIXED: Caching        : "New query" dialog and Server Navigator has shown sometime wrong schemas cause the
                              the hashing algo hasn't enough elements be be unique.

    - ENH  : Clear all cached meta data by using "Refresh" on a folder node in Server Navigator

V 2.72:
    - FIXED: SQL Editor     : Script Table is now working also if just the table name in editor is selected
    - FIXED: SQL Editor     : ComboBox "Isolation Level" shows the correct isolation level from database and list only available
    - FIXED: SQL History    : Running Caché Monitor with Java 8 result sometimes in an emtpy SQL history frame
    - ENH  : The function "Import Caché Connections" allows now to import all locally in Caché Server Manager registered connections
             (Before this change only locally installed Caché Server are listed). The import can now be done via multi selection
    - ENH  : Caching improved: Namespace and schemas are now saved in folder "\.cm\metatmp\<hash code for server url>\...". Server roundtrips are minimized to improve entire
             Caché Monitor performance on large server and\or for small network connections.

V 2.71:
    - ENH  : Server Navigator: All connecions in Server Navigator can now be import\exported from\to a file. The option is available via File menu
    - ENH  : Script Manager : New Action "Open the file with the associated app"
    - ENH  : History Manager: Some handling improvements (e.g. auto expand on node, double click open an editor if needed)
    - ENH  : History Manager: SQL Statements are now colored
    - ENH  : History Manager: New icons in tree are used for better navigation
    - ENH  : SQL Editor     : For long running SQL Statements the first row are now displayed in shorter time
    - FIXED: Profiling      : Display the SQL Stats for selected namespace. Previously only stats from %SYS are available
    - ENH  : Profiling      : SQL Statements are now colored
    - ENH  : Profiling      : Via right click in SQL statistics table the selected sql statement can be opened in new editor
    - ENH  : Main toolbar added for faster access to some action like e.g. "new query" and more
    - FIXED: SQL Editor     :  Is working now with MS Access
    - ENH  : SQL Editor     :  closable result tabs
    - ENH  : Viewing Database Metadata improved

V 2.70:
    - FIXED: SQL Editor : open more than one query editors on same connection config
    - ENH  : Caché 2015.1 driver added
    - ENH  : View meta data for jdbc Connections, via conext menu on node "View metadata"
    - ENH  : Show license id on manage license dialog

V 2.69:
    - FIXED: Context menu on table tree node cleaned
    - FIXED: loading node for columns nodes removed
    - ENH  : Downloading of driver files improved, check file size after download and inform user if there a problem.
    - ENH  : License file can also be placed in cache monitors install folder
    - ENH  : simpler purchsing a license process ;-)
    - ENH  : Result limit is observed on MySQL

V 2.68:
    - ENH  : Some updates for Java 8
    - ENH  : View Key symbol in table header for PK columns (is not working in SQL Editor)
    - ENH  : DataTable\Grid : many small improvement in view and change handling
    - ENH  : SQL Editor : Font Zoom via CTRL + Mouse
    - ENH  : DataTable\Grid : Font Zoom via CTRL + Mouse

V 2.67:
    - ENH  : Loading configuration file config.properties from user home folder and merge the data with the configuration file from
             Caché Monitor installation folder
             This make Caché Monitor updates easier, and prevent lost user changes
    - ENH  : Driver path in config.properties can set fix to local files. Even if the driver_repository is set to WEB
    - FIXED: minor bugs
    - ENH  : ServerNavigator: move and copy Server and Groups via CTRL-X\CTRL-C\CTRL-V
    - ENH  : ServerNavigator: refresh without selection reload the entire tree
    - ENH  : At application startup the ServerNavigator definition file is backed up into user home\\.cm folder

V 2.66:
    - ENH  : First support of HiDPI screens like a apple retina display (for screens with 3k or 4k resolution)

V 2.65:
    - ENH  : Clean and consistent icons usage

V 2.64:
    This is a Beta release with many new features, like Connection support for MS SQL Server, MS ACCESS and Windows Azure
   - FIXED: Select correct catalog for sql server connections in TableViewer

V 2.63:
    This is a Beta release with many new features, like Connection support for MS SQL Server, MS ACCESS and Windows Azure
   - ENH  : JDBC Connections supported

V 2.62:
   - FIXED: No function for Ok\Cancel Buttons on the edit server dialog

V 2.61:
   - ENH  : Memory usage optimized. Tab close handling improved, Memory was not always released while closing tabs before
   - ENH  : All meta data can be scripted to a CREATE TABLE script, e.g. execute a stored procedure and create a script for a table from that meta data
   - ENH  : Query Analyzer : New (context) menu function "clear messages" on message tab
   - ENH  : Query Analyzer : New function "Auto clear messages", if checked (default) the old message are deleted
   - ENH  : With a new paramter in config.properites quoting column name for scripting can be configured. The default is sql.scripting.quotealways=false, set it to true to quote all columns names

V 2.60:
   - FIXED: Open SQL Files from script manager sometimes ends up with damaged UI
   - ENH  : Server Navigator shows columns for Views\Tables in tree
   - ENH  : New driver version for Caché 2014.1.1.702 uploaded
   - ENH  : New meta data info panel on server node, available via conext menu on server node "Show server metadata..."
   - ENH  : Global Browser: Support of $LB format and split values accordingly
   - ENH  : Global Browser: Enhanced loading speed.
   - ENH  : Stored Procedure Viewer: Shows more details about the resulttype of a SP, like Columns and infos about IN\OUT\INOUT params
   - ENH  : Stored Procedure Viewer: Via context menu a CALL Statement for SP can be created with parameter and more. This "script" is opened in a query editor for execution.
   - ENH  : Show execution plan first checks whether the server side class exists, regardless of the setting "create server side helper classes".
            If the class doesn't exists and the setting "create server side helper classes" is disabled, viewing the execution plan is stopped.
            If the class exists and the setting "create server side helper classes" is disabled, viewing the execution plan is processed.
   - ENH  : Grid: On all grids the metadata of a result is available via context menu "Show Metadata"
   - ENH  : Grid: More copy functions via context menu "Copy selected", "as Text", "as SQL Update", "as SQL Insert", "as SQL Delete"

V 2.59:
   - ENH  : New functions in Server Navigator: 'Send Server by email' and 'Add Server by email'
            With this new feature it is very easy to send and receive registration data via email.
   - FIXED: Start a evaluation of Caché Monitor is available again on register 'Request a trail'

V 2.58:
   - ENH  : The export bulk wizard open destination folder after the export job has ended
   - ENH  : Record dialog shows required fields (NOT NULLABLE) in red
   - ENH  : Export to different formats improved, like export to Microsoft Excel (97-2003); Excel Workbook (XLSX); HTML; JSON; OpenDocument; SQL; XML
   - ENH  : Rename Caché connection import function from "Auto register Cach� Server" to "Import Cach� connections"
   - ENH  : New Function: "Import Caché ODBC connections"
   - ENH  : New Icon! :-) A new symbol for Caché Monitor
   - ENH  : New context menu "Save result and open..." on all UI grids available. This will open the file with the associated application.
   - FIXED: Switch between database tables refresh the title
   - FIXED: Unnecessary server roundtrips removed while switching between database tables
   - FIXED: TableViewer : Refresh in context menu fixed
   - FIXED: TableViewer : New context menu "open in new tab", this function is also available via double click on a DB Table\DB View node
   - ENH  : "Don't use %SYS namespace" renamed to "Don't query Caché for namespaces"

V 2.57:
   - FIXED: The data in Data Inspector refreshs after selecting a NULL Value
   - ENH  : CLOB\BLOB Handling in Table and in Viewer improved. New CLOB\BLOB Edit Window from Table and in Recorddialog available.
   - FIXED: New Record dialog fixed. On some installations the dialog can't be opened.
   - FIXED: The new entered table name is used via Copy Table action
   - FIXED: Some table context menus hasn't worked properly if called from tree
   - ENH  : If the DataInspector is visible the value of selected cell is autom. displayed
   - FIXED: NULL Value marker fixed
   - ENH  : The menu entry: "SELECT first 1000 rows" execute the query immediately

V 2.56:
   - ENH  : New feature  : "Don't use %SYS Namespace" for User with limited access to the SYS Namespace. If this is checked for a server no functions are available that are based on %SYS
   - ENH  : The query for namespaces dond't need access to the "%SYS" namespace.
   - ENH  : Class Browser : For Cach� >= 2014.1 the same Sourcecode as in Studio is listed.
   - FIXED: Global Browser: Recognize node subsripts type (numeric\alphanumeric) improved
   - ENH  : Global Browser: Icons added to visualize different node types, e.g. root, last node ...
   - ENH  : Root group can be renamed
   - FIXED: Rename a group\server refreshs the tree on server navigator
   - ENH  : New Record dialog is available. This dialog shows columns in rows. Each Grid in Cach� Monitor can open this Record Dialog via context menu.
   - ENH  : TableViewer : The new 'Storage' Tab list the storage information about a table, like global name and global size
   - ENH  : Number format can be changed in config file, e.g. by default format.number=####.########
            But Cach� Monitor do always format based on the decimal digits definition on the column meta data
            If you dont want to format than select format.number=UNFORMATTED
   - ENH  : Workspace seetings are saved on exit an reload on startup. So CM remember on the window position and state (docked\undocked).

V 2.55:
   - ENH  : Support of Java 8
   - ENH  : TableViewer : Tables\Views are grouped by schemas
   - ENH  : TableViewer : Prefetch of meta data to improve performance\minimize user waits (metadata.prefetch=true)
   - ENH  : TableViewer : Empty schema will not be displayed by default (metadata.removeEmptySchemas=true)
   - ENH  : Query Analyzer : Schema ComboBox removed, CodeCompltion work on all schemas by default
   - ENH  : Query Analyzer : Some code completion improvements for column lists
   - ENH  : "Sources" node works with more Cach� versions
   - FIXED: Error while driver download via transparent proxy: java.net.ProtocolException: Server redirected too many times (20)
   - FIXED: Source-, Class- and GlobalViewer shows the item count on registertitle and in tree

V 2.54:
   - FIXED: ArrayIndexOutOfBounds Exception
   - ENH  : Open current class in Cach� Studio
   - ENH  : The Cach� Studio version that is called via Cach� Monitor is selectable
   - ENH  : Some code completion improvements:
                More Cach� keywords in completion and coloring
                Some code completion display additional information for keywords and functions
                Icons visualize the completion type e.g. Table, Column, Schema, Index etc
                Type column shows the primary key, datatype and nullable property
                Optimizer hints are listed with additional information
                Cach� SQL functions are listed
   - ENH  : New Driver Version:	2014.1.0.591
   - FIXED: Disconnect a server close all sub panels
   - FIXED: License management improved

V 2.53:
   - ENH  : New Bulk Export Dialog allows to save current- and load previos selections of Tables
   - ENH  : Install license process improved; license is also now visible in about dialog
   - ENH  : Server Navigator: The server version number can be viewed in Server Navigator tree. This is toggled via Menu "Show version".
   - ENH  : TableViewer: New context popup menu entry: "SELECT first 1000 rows"
   - ENH  : TableViewer: New context popup menu entries: "Script Table as "SELECT", "INSERT", "CREATE"
   - FIXED: "Sources" node works with Cach� databases prior version 2013

V 2.51:
   - ENH  : Database Diagrams: More key constraints are be determined and visualized in diagram
   - ENH  : Database Diagrams: Exported keys are marked with special icon
   - ENH  : Table Browser - List imported\exported keys on new tab called "References"

V 2.50:
   - ENH  : New polished Interface design. For a clear and consistence user interface design many icons are changed and checked for a consistency use.
            Some menus renamed so e.g. the "New Query Analyzer" menu is renamed to "New Query" also with a new icon for this action.
            Also the application icon is changed from a server magnifying glass with to a blue cube.

   - ENH  : New! Database Diagrams
            Database diagrams graphically show the structure of the database. To visualize a database, you can create one or more diagrams illustrating some or all of the tables, columns, keys, and relationships in it.
            For any database, you can create as many database diagrams as you like; each database table can appear on any number of diagrams.
            Each database diagram you create is stored in the associated database.

            The first time you click on the Database Diagrams folder of a database, you ask to "Create required objects to manage diagrams in this namespace?".
            It is not an error, but just a permission seeking dialog to create a database table that is necessary to work with database diagrams.
            If you choose No then no table will be created and you will not be able to work with database diagrams.
            If you choose Yes then a table would be created in your database and you will be able to work with database diagrams.

            If you modify any table outside the diagram editor, the changes will automatically be updated in any saved diagrams.

            You can open database diagrams to view or edit the diagram's structure. To open a database diagram in Server Navigator, expand the Database Diagrams folder.
            Click the name of the database diagram you want to open.

            You can create an image of a Database Diagram and copy it to another application. To copy a diagram image to the Clipboard open a Database Diagram.
            Right-click a blank area and choose Copy Diagram to Clipboard.

   - ENH  : Query Analyzer : CTRL+ENTER for execute query in
   - FIXED: Optimized table column width for data
   - ENH  : Class Navigator : Classes source code is now in xml
   - ENH  : Table Navigator : double click on a table in tree opens a new Table Editor for the selected table
   - ENH  : The "Routines" node is renamed to "Sources" because in the future all sourcecode with hin cache will be available from here.
   - ENH  : Faster scrolling in tables

V 2.09:
   - FIXED: Processlist : On a Cach� 2014.1 Server selecting a process and view details like variables ended with a java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
   - FIXED: Navigation between Processlist and Lock Viewer improved
   - ENH  : Global Browser : Nodes to read can be limited by setting a max nodes value.

V 2.08:
   - ENH  : Routine Browser : Routine List and Sourcecode for selected routines are displayed.
   - ENH  : Class Browser   : Shows Sourcecode fragment for selected class.
   - ENH  : Global Browser  : Global browse and navigate are improved
   - ENH  : Caché 2014.1 support
   - ENH  : Analyze and find local installed Cach� Server improved
   - FIXED: Login Dialog    : If user or pwd empty the Login Dialog is displayed for user input

V 2.07:
   - ENH  : Server Navigator: Driver download is cancelable via progress dialog
   - ENH  : Class Navigator : Selection of target folder for classes export is available
   - ENH  : Class Navigator : Class delete need to be confirmed by user
   - ENH  : Class Navigator : New function: Import classes (incl. auto compile)
   - ENH  : Class Navigator : New function: Copy classes (incl. auto compile) between server \ namespaces
   - ENH  : Class Navigator : New function: Compile class
   - ENH  : Table Navigator : Export Table works now also on a selected table node within Server Navigator. Before this
                              the user have to select a export table on the detail panel.
   - ENH  : Tested with Java 1.7.0_45
   - ENH  : License Evaluation\Activation: Proxy Server can be configured
   - ENH  : New Feature: Log File Manager
   - ENH  : Script Navigator : Threading issue while file preview fixed

V 2.06:
   - ENH  : Drag&Drop for Server and Server-Groups moving within the server navigator
   - ENH  : Server Navigator with a toolbar to shows important actions
   - ENH  : A trial license for evaluation of Cach� Monitor Professinal can now requested online via Manage-License Dialog.
   - ENH  : New Script Navigator for easy working and navigation with many (sql)scripts.
   - ENH  : Query Analyzer - shows file path from current file in status bar

V 2.05:
   - ENH  : Data Inspector shows Data in additional views as XML and HTML. Just plain text, binary or a image views was already available
   - ENH  : double click on table cell open the data inspector view
   - ENH  : The "Database Viewer" shows information about the databases on the selected Server. This Viewer is a new node type in Server
            Navigator as a child node from the Managment node.
            Listet are information about the Database name, the Location of the CACHE.DAT file and Size of the database in megabytes
   - ENH  : Export classes

V 2.04:
   - ENH  : FileOpen-Dialog restore last used directory
   - ENH  : FileOpen-Dialog shows preview of file content
   - ENH  : Query Analyzer - Save\restore splitter position
   - ENH  : The cache.cpf file can be viewed for selected server
              Check Tools-Menu -> "View Server cpf file ..."
   - ENH  : Table Browser  - Save\restore splitter position
   - ENH  : Query Analyzer - Search\Replace and Goto Line Dialog
   - ENH  : Caché Monitor checks on startup for available updates

V 2.03:
   - ENH  : Encypted passwords
   - ENH  : Open Cache Terminal on selected Server
   - ENH  : Open Windows-Explorer on Cach� Monitor homefolder
   - ENH  : Auto driver download
   - ENH  : Include Caché 2013.1 driver support
   - ENH  : Code folding in SQL Editor between the batch seperator GO
   - ENH  : Save\restore frame size and position

V 2.02:
   - ENH  : Hex View improved
   - ENH  : New feature: "Navigate to last selected object"
            Please see: Start Screen
   - ENH  : Rename Server Groups
   - ENH  : The tablename for "Copy table" action can be changed
   - ENH  : New feature: "Auto register Cache Server"
               Check Tools-Menu -> "Auto register Cache Server ..."
            With this feature you can very straightforward create a Server registration from any your local Cach� installation.
            All data that Cach� Monitor needs for working with Cach� are automatically imported,
            including the right driver... you have just to enter the password.

   - ENH  : Class Browser shows no more system classes ('%')
   - ENH  : New feature: Open Cach� Studio from Cache Monitor on selected Server
            Check context menu on Server and Tools-Menu
   - ENH  : New Feature: "mapped tables" and "federated namespace"
            With this version you can write sql queries across namespaces! ... ok in fact you cannot ;-) but Cach� Monitor
            support this request with a the idea of a "federated namespace". I got quite some people asking for an option
            to query some tables from different namespaces on sql statement. Rather than doing some obscure SQL pre-parsing trickery
            I will introduce a way of mapping tables from different namespaces into a new virtual/federated namespace,
            a unified namespace, lets call it a "federated namespace".

            How does this work? Cach� Monitor creates copies of the meta data in the federated namespace and use the Extended Global Reference to map
            the data. All this on done automatically.

            The function in Cach� Monitor is called "Create mapped table".
            To try this feature I recommend to create a new empty Namespace (and database for this namespace), e.g. called "CM_FEDERATED" as the federated namespace.
            All tables you want to JOIN in a query must be "mapped" in this namespace. "mapped" means that only the meta data of the tables are
            copied into the federated namespace, the data remains in their original namespace.

            To do this, open up your "source" namespaces one by one and select the individual tables in TableViewer (select "tables" in server navigator to open),
            right click on the selection and choose "Create mapped table". You get asked about the destination namespace,
            choose the federated namespace and all done! You can now connect to the federated namespace e.g. via Query Analyzer and query your tables.

            !!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!

                Please be careful if you execute a "DROP TABLE" or just delete operations on a "mapped table", the original data will be deleted!!

                Hint: To remove a table (class) from the federated Namepace, just delete die class! Do not execute a drop table!

            !!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!-!!WARNING!!

            Read more about Extended Global Reference an how it works:
            http://docs.intersystems.com/cache52/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_str_extrefs

            There are some restrictions in this version:
            - DefaultStorage is required for mapped tables
            - The table name has to be unique in the federated namespace

   - FIXED: RoutineList fixed
   - FIXED: Driver selection fixed

V 2.01:
   - ENH  : Query Analyzer - better clear type\font support
   - ENH  : Query Analyzer - Completion improved
   - ENH  : Minimum SplitterSize removed
   - ENH  : DataInspector shows Images
   - ENH  : Import with Blob improved
   - FIXED: Some Edition checks changed
   - FIXED: Table scripting don't quote table name

V 2.00:
   The biggest change first: Now there are different editions of Cach� Monitor, e.g. a free community edition
   called "Home" and two commercial editions.

   The differences between these editions in detail:

            Home Edition         : Support only 1 connection in the Server Navigator to a Cach� Server
                                   on the same maschine (localhost)

            Developer Edition    : Supports until 3 Server in the Server Navigator

            Professional Edition : Supports unlimited Server in the Server Navigator

   - ENH  : Kill Database locks within Cach� Monitor
   - FIXED: Bug in script parser prevent executing create\drop procedure.
            When creating a stored procedure it is necessary to use a delimiter other than the semicolon because
            Cache Monitor does not know if a semicolon inside the stored procedure ends the procedure or a single
            statement inside the procedure. Because of that, the Statment seperator is now "GO" like in MS SQL Server
            Management Studio.

            FIX 1: if you now select a statment the parser is no longer executed,
                   just the selected statement is "as is" send to Cach�.
            FIX 2: Cache Monitor has switched (back) to statement separator "GO"!

   - FIXED: F7 shortcut for execute the next statement fixed
   - ENH  : New message are always in top row of the message panel
   - ENH  : Connection Dialog shows information about WebSrvUrl that comes from Cach� Server
   - ENH  : Server Navigator: New feature for sorting Server and Groups
          : Server Navigator: Sort order changed: Server comes before Groups in Server Navigator
   - FIXED: Cancel login dialog reset message and stops wait bar
   - ENH  : tested with java 1.7.0_15
   - FIXED: Copy Server create only one copy of server entry
   - ENH  : While deleting a group the user get ask, if the Group contains sub groups or servers
   - ENH  : Textoutput in QueryAnalyzer is optimized and show content only up to 255 characters!
            For more content please use Grid output
   - FIXED: All results (ResultSets) from a StoredProcedure are now listet, e.g. call Sample.PersonSets('A','NY')
            in SAMPLE Namespace show now both ResultSets.
   - ENH  : Cach� Monitor comes with driver for Cach� 2012.2; 2011.2; 2010.1; 2009.1; 2008.2 and 5.2
            The path separator in config.properties is changed so it should now works on linux.
            You can add more driver if needed.
   - ENH  : The Driver list are sorted.
   - ENH  : Based on the decimal digits definition on each columns are the value now formated

V 1.68 (BETA):
   - FIXED: processlist: Show process vars for PID
   - FIXED: processlist: Navigation:Show PID in locktable
   - FIXED: processlist: Show process vars for PID by row selection changed
   - FIXED: locktable  : Navigation:Show PID in processlist
   - FIXED: All tables rowheader, min size fixed
   - FIXED: variable substitution in query analyzer

V 1.67 (BETA):
   - FIXED: NullPointerExceptions in com.intersys.* classes
   - ENH  : added links to the Help menuitem
   - ENH  : online update checker in help menu
   - ENH  : Cach� driver 2012.2.0.638 included and set as default
   - ENH  : older Cach� driver removed

V 1.66 (BETA):
   - Cach� Monitor is now running with Java 7

V 1.64 (BETA):
   - FIXED: TableViewer - Editing\deleting function fixed
   - FIXED: TableViewer - If you make a table editable and selecting another table, editable mode is set to false again
   - FIXED: TableViewer - Refresh bug in RowHeader fixed
   - FIXED: TableViewer - The Color for NULL values are now a system color
   - FIXED: TableViewer - Fixed handling with tables with a dot in name
   - FIXED: TableViewer - Import Table, Export Table and Save Results clarified. Save Result is on every Table available and saves the Result from this table
                          Export Table saves the entire table data into file
                          Import and Export is only available in the TableViewer (with the context menu on the top table)

   - ENH  : TableViewer - The Import Table function added. Cache Monitor can import data from csv files

V 1.63 (BETA):
   - FIXED: TableViewer - Bug in filter functions from context menu is fixed
   - FIXED: TableViewer - Tables was in some situations editable
   - FIXED: ALL         - RowHeader\Row numbers are back
   - FIXED: ALL         - Display of some datatypes fixed: Date / Timestamp / Time / Datetime

V 1.62 (BETA):
   - ENH  : TableViewer - Data not automatically loaded on Table Editor of performance reasons
   - ENH  : TableViewer - Data automatically loaded limited to TOP xxx be default of performance reasons
                          This solution is working faster with handmade SQL mappings in Cache
   - ENH  : TableViewer - Create DDL Script added
   - ENH  : TableViewer - Source View for DDL Script added
   - ENH  : TableViewer - Default TableMenu added to all popupmenus
   - ENH  : Query Analyzer - Create DDL Script added
   - ENH  : Query Analyzer - Font antialiasing activated
   - FIXED: Query Analyzer - Copy to table fixed
   - FIXED: Cach� Monitor application folder name can contain spaces. Please test on linux, i've done a test only Win 7

V 1.61 (BETA):

   - ENH  : TableViewer working in readonly and foreward only mode to improved performance
   - FIXED: DataInspector - HexView: to many scrollbars, some of them removed
   - FIXED: Viewing blob data in Data Inspector
   - FIXED: NullPointer if server side class creation is disabled

   - ENH  : JDBC driver can be placed in many JAR files, this feature is required for Cache 2011

   Known limitations:
   - double click on table headers boundry to automatically adjust the column widths to accommodate the longest data
     will result in fetching ALL data from the database table!
   - rownumbers are missing
   - open query analyzer action from task pane opens only at the second click
   - on some dialogs the text ist wrong/missing
   - integer values are show with decimal point

V 1.60 (BETA):
   - New Docking Framework
   - Cache Monitor handles simultanius open panels
   - New SQL Editor
   - Change default namespace to "SAMPLES" because since Cach� 200x using %CACHELIB result in parsing error.
   - FIXED: Insert User\Pwd dialog in some situations fixed
   - creating server side helper classes is by default disabled and can be enabled at the server config dialog
   - new postions of Metadata and SQL history panels
   - FIXED: clear cached client data save now the new values
   - FIXED: filtering system objects pay attention to the systems schemas
   - FIXED: canceling query stops wait indication
   - Support for Windows 7 Look and Feels, e.g. for JXTaskPane
   - FIXED: Data Panel: Max Chars not saved, overide max rows
   - Some small enhancements in sql profiler
   - FIXED: SQL Profiler shows query plan and sql statements
   - Open Systemmanagement Portal & Open Cache Documenation by right click on server nodes
   - FIXED: NullPointer by open the systemmanagement portal on disconnected server node
   - FIXED: Column width in SQL History fixed
   - FIXED: SQL Area in SQL History added
   - FIXED: Messages are no longer truncated
   - Driver can be configured for each registered server

   Known limitations:
   - double click on table headers boundry to automatically adjust the column widths to accommodate the longest data
     will result in fetching ALL data from the database table!
   - rownumbers are missing
   - open query analyzer action from task pane opens only at the second click

V 0.58:
   - Sql script variable substitution supports the definition of complex default values
   - Sql script variable substitution can be disabled
   - FIXED: Textoutput of query analyzer fixed
   - FIXED: Some more tooltips for toolbar buttons added

V 0.57:
   - After reconnect in query analyzer, the new pid is updated and displayed in titlebar
   - Sql script execution with variable substitution supports the definition of default values

V 0.56:
   - Reformat Code: Upper case keywords
   - Reconnect button in query analyzer
   - Sql script execution with variable substitution support
   - Better statement finder at cursor position
   - While statement execution on the message panel the executed statement and execution time is listed
   - Rendering of some datatypes in table improved, e.g. Time

V 0.55:
   - "Open file" bug in Query Editor fixed
   - Reformat Code recognize more Cache keywords and can now beautify Cach� specific SQL statements with special keywords like %ID
   - Open SQL Docs using Server from SQL Editor and not the selected Server in Server Navigator tree
   - Open Cach� (Web)Documenation is working with Cach� 2009.1   
   - TableView: Read data is executed only the first time the panel is selected

V 0.54:
   - Link added to Caches SQL docs in Query Analyzer 
   - New Profile features: PTools are now implemented in profile window
   - Cached Queries are now listed under Performance node
   - TYPE_FORWARD_ONLY error in data view window fixed
   - Column control is on each table control enabled
   - Detail Data View is refreshing after changing cell selection in the same row

V 0.53:
   - Data Export function is now working in Query Analyzer
   - Missing class added, so the login dialog is working
   - after connecting to a server tree node is expanded 

V 0.52:
   - Data Export function added from SQL Workbench/J
   - <null>'s are now colored in tables in light grey
   - some icons added/changed
   - after disconnect and changing some settings and reconnect now the NEW settings are used
   - support for cache server version "200X"
   - error log shows the used driver (version)
   - Function "remove server group" in server navigator fixed

V 0.51:

   General
	- Global Viewer is now working. Dont't use it on big globals, currently there is no limit!
   - The Table-Viewer have now more filter functions from the context menu (look at the Data Panel and use right click on table).
   - Faster startup

V 0.50:

   General
	- This version requires Java 6

	- Because of using Java 6, Cach� Monitor can now start the system default Webbrowser. The first features that uses this are:
	   - The System Management Portal & Cach� Documentation can easily started from selected server
	   - In the new designed Class opens the Cach� Class Documentation

	- Cach� Monitor 0.50 uses some new Controls-Sets from SwingX, these are now updated to version 0.9.
	  That brings brand new features and better handling and System Look&Feel, nicer login dialog ;), smarter search in some controls
	  e.g. in Tables and much more...		

	- New designed View viewer - Information about views are displayed like the Tables Viewer it does.
	  So you can see data and metadata, also the definition SQL for the view
	- New designed Class view
	- Enable the execution plan TreeView, since Version 0.41 or so, only the HTML Version works, sorry
	- In some situations with old Cach� JDBC Driver the Query Analyzer is not open properly. This bug is fixed.
	
	

V 0.41:
   - paintIcon -> catch Nullpointer for mac / Joy ;) please give it a try

   - the default user and password is set for the default connection from Cach� Monitor to Cach� at localhost.

   - if execution plan parsing fails, the html version is displayed --> see forum message for more details

   - for backward compatibility is this version compiled with Java 5
     - what that means? You can run Cach� Monitor with Java 5 but also using Java 6
     - integrated JDBC Driver from Cach� 2008.1 (jdk 5)

   - better support for big sql script files

   - changed separator from "GO" to ";"

   - new sql formatter and new sql parser

   - view editor is no longer editable

   - runtime/execution information is displayed in ms for each sql on message panel

   - support for Cach� 2008.2
  

V 0.40:
	Query Analyzer
	- Executing stored procedures with CALL no longer raise exception if the resultset is bigger than 99 rows and the option "block fetch" is used.
	- Better code complition in some situations
	
	Server Navigator / Table Browser
	- Max Rows and Max Chars can now be configured. Max Rows limit the rows fetched from server. Max Chars limit the size of charfields fetched from server

V 0.39:
	This Version is a minor release for better support for Cach� 2008.1
	and his JDBC Driver. Use Java Runtime Environment 6!! AND Cach� JDBC Driver for Java 6 !!

V 0.38:
	Query Analyzer
	- The selected commit mode is now stored in query analyzer.

V 0.37:
	- Within the processlist terminate processes is now working with Cache 2007.1

V 0.36:
	Query Analyzer
	- Work now with the current driver for Version 2007.1 AND with the Version for 2008.1 

V 0.35:
	- Server Info box shows now the driver version and also the compile time of the driver
	- Maxresult and Autocomplete state is now saved, so this information is restored after restart
	
	Query Analyzer
	- Work now with Cach� Driver Version: 2008.1.0.171 Fri 06/01/2007  0:01:54.22
	
V 0.34:	
	
	0.34 is a minor release for better support for Cach� 2007.1
	
	- The Processlist (In table browser) is now working with Cache 2007.1
	- Constraints Register can now be selected
	

V 0.33:	
	
	0.33 is a minor release for better support for Cach� 2007.1
	
	General
	- Home Folder from Cache Monitor can be configured
	  by passing the variable "homepath" for example homepath "c:\myfolder"
	  In this folder Cach� Monitor save his confguration file and sql history file
	- Native Windows Executeable is bundled with the latest 2007.1 JDBC Driver
	- Some enhancements for the detail Table Viewer.
		- The Cache Index Type is now listed at a new Page called 'Cach� Indexes'.
		  Possibale values in column TYPE are: "" for normal, unique for ..., and BITMAP	
	
	Query Analyzer
	- More Cach� specific keywords added
	- The SQL Source from cached queries can be loaded from a Cache 2007.1 server
    - If an error occur while parsing execution plan information, the xml source will be displayed as raw text

V 0.32:
	General
	- Main Toolbar removed to get more space
	- Main Page context actions added eg: Connext\disconnect
	- Open Query Analyzer on last server\namespace show now last server\namespace
	
	Query Analyzer
	- Query metadata can displayed by context menu on result table
	- Column width can by optimized by context menu
	- Column width is optimized for each query
	
V 0.31:
	General
	- In table browsers context menu quick filter function added
	- Date/Time/Timestamp are now editable
	- Many many memory leaks removed
	- Sub nodes created at first expand
	
V 0.30:
	General
	- add/change table and column description
	- In Comboboxes with Namespaces the _default_ namespace from this server is selected
	
	Server Navigator 
	- Edit Server data refresh the node in tree
	- The datatable in table browser is now editable
	- Data from type LONGVARCHAR is visible over context menu "Show columns details"
	
	SQL Scanner
	- Nodes in tree now repainted while scanning, so the nodetext is full visible
	
	Query Analyzer
	- Update count is listed if result to grid is selected

V 0.29:
	General
	- first version for "CREATE TRIGGER" function added
	- CachedQuery Details are now scrollable
	- Tip of the Day dialog
	- copy server now don't copy the cached namespaces
	
	Query Analyzer
	- Query Analyzer request focus if tabbed register selection changed
	- Execute "next" SQL with F7
	
	
V 0.28:
	- more datatypes colored
	- change dialog now save file really if user select "SAVE"!
	- login timeout can set at server config
	- parsed query no longer uppercase formatted
	- if result is text: the message tabs no longer selected if an error occur
	- context menu works also on first data row in Tabledetails-Tab

V 0.27:
	Server Navigator
	- Since 0.26 you can view tabledata from selected table in Server Navigator. 
	  Now can you also filter the data by enter a WHERE clause
	  or using the contextmenu to generate WHERE from selected cells.

	Query Analyzer:
	- Better Query-Canceling
	- The filename from saved or opened file is showing in titlebar
	- If an open file changed, Cach� Monitor ask before closing
	
	General	
	- After sorting table the internal and visible selecion was not in sync,
      so it happend that you select one row but the program works internaly with another
	- Block fetching Tabledata don't block repaint
	- "DatabaseMetadata.getSuperTables(currentCatlog, schema, tableName)" blocks with 5.1, -> disabled
	- Frame and Splitter positions are now saved and restored

	INFO:
	You must separate your SQL Statements with GO - If you do not separate your statements Cach� Monitor will not be
	able to identify your current statement and some features are not working properly. You can fast insert the 
	seperator by pressing [SHIFT+ENTER]
	
V 0.26:
	Query Analyzer:
	- Sql history entrys always expanded
	- Keywords are sorted in autocomplete box
	- Result table can be sorted
	- Multi resultsets if more than one sql statement is executed
	- Sql history is now sorted descenting and expanded
	- Table details with tabledata in server navigator
	- CTRL-F working in table tio search for data
	- server info shows more information about protcol version
	- server info now works with cache 5.1

V 0.25:
	Query Analyzer: 
	- "SELECT * FROM" on table with many columns results in an error like:
	
			Error: Invalid Message Count (452); expected: 38 got: 942946098. Connection closed 
			(Client Driver Version: 5.0.5504.0) Size: 679Kb

			Error: Communication link failure: Socket closed 
			(Client Driver Version: 5.0.5902.0) Size: 977Kb

			Error: Communication link failure: Socket closed 
			(Client Driver Version: 5.1.0.826) Size:  1,466Kb
	
			The exact message depends on the version of your jdbc driver!
			
	
	- CALL on Stored Procedures result in errors like
	
		Error: [SQLCODE: <0>:<Successful Completion>]
		[Details: <SPFetch2>]
		[%msg: <ERROR #5521: SQLFehler: -102:>]
		(Client Driver Version: 5.1.0.826) Size:  1,466Kb

		Error: [SQLCODE: <-370>:<Embedded SQL CALL Statement can only be used for Method Procedures>]
		[Cache Error: <<SYNTAX>errdone+1^%qaqqt>]
		[Details: <FLoop - func = DU>]
		[%msg: < SQL ERROR #370: SQL CALL Statement cannot be used for Query Procedure 'SQLUSER.xxxx'>]
		(Client Driver Version: 5.0.5504.0) Size: 679Kb
		
		The exact message depends on the versiuon of your jdbc driver!
	- block fetching is always disabled if result is txt, and can be anabled/disabled if result is table	
	- the selection in table is now free, so you can select cell,row and so on
	
	Server Navigator
	- with context menu on server node the refresh namespace/schema action can be triggerd

V 0.24:
	Query Analyzer: 
	- Foreign Key JOIN suggestions. After typing the keyword ON Cach� Monitor it will display a JOIN suggestion
	- The keyword CALL shows Stored Procedures in an autocomplete box
	- More autocomplete for sql keywors, functions, etc.
	- Result to grid is now working ;-)
	- Result to grid fetches blocks with blocksize of 100 only, after scrolling at the end the next block will be fetched -> FAST!
	- Selecting a piece of text in the Script Editor will execute that piece only
	- PK Columns are marked with red icon in autocomplete dialog
	
	SQL Scanner
	- DROP INDEX can be executed on selected index from SQL Scanner(Redundant Index finder)
	- CREATE INDEX can be executed on selected index from SQL Scanner(Cached Queries Scanner)
	- SQL Scanner / Cached Queries Scanner is no more case sensitive
	
	General
	- Login dialog box will popup if User or Password is missing in server configuration
	- Cach� Monitor is running on Java 6.0
	- x button on the "select server/namespace" dialog has the same behavior like the cancel button
	- namespaces are now cached for each server, the connect to database with in the query analyzer is now faster
	- schemas are now cached for each server/namespace, the connect to database within the  query analyzer is now faster
	- An Error dialog box displays the error message if something has happend

V 0.23:
	Server Navigator
	- Server Groups and Servers can now be rearrangde with drag and drop
	
	Query Analyzer: 
	- more autocompletion (SQL-Schemas are now listed)
	- You can toggle with F8 between MetaBrowser and QueryWindow
	- current line with cursor position is highlighted
	- the autocomplete popup can be enabled/disabled with a double click on the statusbar
	- Some general infos about editor:
	
	You can also highlight a block of code and press TAB to indent it all. SHIFT-TAB will move it all back.
	Bookmarks   Insert or remove a bookmark  CTRL+F2
	Bookmarks   Move to next bookmark        F2
	Bookmarks   Move to previous bookmark    SHIFT+F2 

	Editing     Find                         CTRL+F
	Editing     Go to a line number          CTRL+G	
	Editing     Increase indent              TAB
	
	MetaBrowser
	- F8 will toggle between MetaBrowser and QueryWindow

	SQL Scanner 
	- SQL Scanner will check or redundant indexes now

V 0.22:
	Query Analyzer: 
	- much better autocomplete (again :)
	- autocomplete column list will mark the primary key column
	- better query execution performance
	- file save/open dialog uses last path
	- tooltip on query analyzer shows current namespace
	- the title format on each Query Analyzer tab is changed to: <NAMSPACE>@<LOGICAL_SRV_NAME>
	- selected query analyzer shows information about selected namespace and pid in titlebar
	- cancel button now works
	- if autocommit is disabled, commit/rollback actions can be executed from toolbar

	MetaBrowser
	- shows tables/views etc. in all schemas
	- tables are asc sorted

	General
	- An message occured if the CacheDB.jar (the Cache JDBC Driver) can not be found
	- faster startup

V 0.21:
	Query Analyzer: 
	- Bug in sql history fixed: first sql execution will run very long
	- "Copy QueryAnalyzer with CTRL+N" copies now also the retrieved database metadata
	  to boost ;-) performance

	SQL Scanner
	- Some bugs fixed

	General
	- Used Cach� Client Driver Version is now listed in Server Info box
	
V 0.20: 
	Query Analyzer:
	- ClassCastException on Linux in MetaDataBrowser fixed
	- AutoCommit can enabled/disabled from Toolbar
	- Show execution plan works now for selected SQL (it wille be enough to position the cursor in a row)
	- "Result in new tab" function added
	- The Transaction Isolation Level can be changed from Toolbar

	SQL Scanner (NEW)
	- SQL Scanner checks FK-Constraints for supporting index
	- SQL Scanner checks cached queries for supporting indexes on JOINs

V 0.19: 
	Server Navigator
	- "Server info" is changed now only if another ServerNode (or sub node) is selected

	Query Analyzer
	- Change of intelli-schema refresh metabrowser
	- More keywords are highlighted (ADD NEW and so on)
	- Find/Replace dialog fixed

	SQL History
	- Executed SQLs are now listed in treeview within the SQL in a table or a column,
  	so it wille be easier to find the right SQL statement
	- The "Copy content" behavier can be configured: 
  	"Replace", "Copy at cursor pos" and "Copy at end"
  	
  	-----------------------------------------------------------------------
  	Please consider, in this version the Cach� Driver is NOT included!
	-----------------------------------------------------------------------
	- You have to put the driver (CacheDB.jar) next to the Cach� Monitor      -
	- programmfile (CacheMonitor.jar)                                     -
	- That will be enough, you don't need to add the CacheDB.jar to the          -
	- classpath                                                           -
	- start Cach� Monitor by doubleclicking the jar file,                    -
	- or type this at your console window: "javaw -jar CacheMonitor.jar"  -
	-----------------------------------------------------------------------
	
V 0.18: 
	Server Navigator
	- Tablelist shows column selectivity
	- Server & Servergroups can be removed ;-) (thanks ian!)

	Query Analyzer
	- better autocompletion ;-)
	- last "max Result"-Value was saved
	- change isolation level from toolbar
	- with CTRL+I you can navigate to tablemetadata in the metabrowser for table(name) under cursor position
	- navigate with hyperlink (CTRL+LEFT_MOUSE) to tablemetadata in metabrowser
	- execute SQL _around_ cursor position
	- execute SQL with CTRL+ENTER
	- SHIFT+ENTER insert statement seperator (GO)

	New SQL History: (not compatible with older version sorry!)
	- SQL History now grouped by date
	- Statement was shown in Query Analyzer Editor with syntax highlighting

	New MetaBrowser:
	- first version for metabrowser

V 0.17:
	Query Analyzer:
	- better autocompletion
	- completion "auto popup" can be switched on/off

	- multi selection in tables activated to copy more than one row to clipboard (CTRL+C)
	- shows Cache Locktable 

	- CMUtilities.xml is no longer needed! If Cach� Monitor need special Serverside functions,
	  it will be generated this on the fly.

V 0.16:
	- SQL History: Bug concering file separator fixed (thanks ralph)
	- SQL History: Bug concerning sqlhistory.dat file fixed
	               (Each SQL execute multiply entrys)

V 0.15:
	- Better Code Completion
	- Open Query Analyzer on last used Namespace/Server
	- Query Analyzer preselects the last used schema at startup
	- For "DROP INDEX" the Code Completion shows all existing indexes
	- Query Analyzer: SQL History
	- Query Analyzer: Current Namespace in Statusbar
	- PopUp-Menue in Server Navigator Tree works on Linux now
	- Format SQL in Query Analyzer 
	- Look and Feel can be changed

V 0.14:
	- Better Code Completion
	- SQL abbreviation, Type: se<space> for "SELECT * FROM "

V 0.13:
	- Show routine source fixed
	- some minor fixes

V 0.12:
	- Terminate Process
	- Show Processinfos
	- Show routine source fixed
	- Reload processlist
	- User can select Transaction-Isolationlevel
	- User can turn AutoCommit On/Off

V 0.11:
	- Connectionhandling fixed
