|
Changelog |
|
|
|
The
following is the list of changes to the release 1.20RC3 of
SQLTools++ since the previous version SQLTools++ 1.10 RC2:
New
features
- Major new feature: Enhanced editor highlighting
* Match braces
* Highlight identifiers exceeding maximum length (default 30 chars but
can be changed in "PlusPlus" settings, you can use 0 as length to
disable this particular feature)
* Highlight known user objects for current connection
* Show extended information about selected text in status bar
Since this is quite beta, all the related new code paths can be
disabled in the "PlusPlus" section of the settings
Note that the "Match brace" functionality behaves as of now differently
from the "Find Match" functionality (although it is based on the same):
It does not support partial matches (like #if - #else - #endif in "C"
mode), it does not consider "broken" matches, e.g. (...]...) will
nicely highlight the closing brace at the end, whereas "Find Match"
will report a "broken match".
The colors used for enhanced highlighting are currently either hard
coded or linked to existing color categories:
* Unmatched braces will always have a red background color as of now
* Matched braces use the "Random Bookmark" color as background color
* The "Known user objects" use the "Random Bookmark" color as text color
* Identifiers that exceed the maximum length use the "Bookmark" color
as background color and the "Selected Text" foreground color as text
color.
If you change the mentioned colors, the new highlighting will change
accordingly.
Note also that the "Known user object" highlighting is dumb
regarding fully qualified references. It does not consider a fully
qualified object name and will still highlight any object name that
belongs to the current user, even if it is fully qualified and
therefore might not exist in the specified schema or refer to something
completely different (Interestingly
enough the corresponding TOAD functionality does the same).
If you have created or dropped objects in your schema and want to
refresh the cached list of objects, you can use the "Refresh All"
functionality of the Object List/Schema Browser. Note that the cache is
also refreshed when use press the OK button in the "Settings" dialog.
The extended information about selected text covers the following
additional information:
* In Stream selection mode it shows [R: <x>, <y>] where x
represents the number of selected rows and y represents the number of
selected characters.
* In Column selection mode it shows
[RxC: <x>x<y>, <z>] where x represents the
number of selected rows, y represents the number of selected columns
and z represents the number of selected characters which is simply x
times y in this case.
- Auto resize columns after each fetch in the Grid
(analyses
only the newly fetched array of rows)
Note that if you often fetch large result sets by moving to the end of
the Grid (default shortcut CTRL+END), then you probably do not want to
use this option since it can take quite a while to render all the cells
to determine maximum size. There is a new option in the
"Data Grid 1" section of the Settings dialog to control this behaviour:
"Auto resize columns with each fetch".
- Added external tool placeholder
"<SYS_PRIVS>"
which can be empty, " AS SYSOPER" or " AS SYSDBA" to support privileged
connections in external tools
- Order columns in Object Viewer for tables by
column name, can be selected in PlusPlus Settings dialog or toggled by
using second keyboard shortcut (F12 / Shift+F12 by default). The
toggling is triggered by the SHIFT key, so if you choose a different
keyboard shortcut make sure that you define a second one that combines
with a SHIFT key.
Note that since the installer never attempts to modify the
"custom.keymap" file you need to manually add the second shortcut to
"Script.FindObject" like that if you use the "Custom" keyboard layout:
Script.FindObject
Shift+F12
Improvements
- Reading NCLOBs is now supported, no longer
ORA-24806 error message when attempting to fetch them
- Double-Click on column header border in Grid
autofits column (similar to normal windows lists)
- Appropriate message when not
connected to database and attempting to expand a node in Object Viewer
- Use environment variable
ORACLE_HOME if set in environment to locate Oracle Home / OCI.DLL
- Use environment variable TNS_ADMIN if set in
environment to locate TNSNAMES.ORA file for parsing the
entries and populating the TNS drop down box
- Support TNS entries having multiple aliases
assigned delimited by comma.
TNS aliases like that:
alias1.domain, alias2.domain = (...)
will be shown as separate entries "alias1.domain" and "alias2.domain"
in the Connect TNS drop down list of available alias
- Support both synonyms SNAPSHOT (LOG) and
MATERIALIZED VIEW (LOG)
Depending on the version of Oracle sometimes the one or the other
synonym is used in the catalog views. Now all versions should be
supported equally.
- Do not report ORA-28002 twice if using
background connection for statistics or DBMS_XPLAN.DISPLAY_CURSOR
- More precise information about various data
types in Object Viewer: NUMBER, FLOAT, *LOB.
Numbers show they scale and precision, and for *LOBS no length will be
shown.
- Set filter to "N/A" if none of the QuickFilters
"VALID/INVALID" are selected
This should filter on objects like partitioned indexes that do not have
a global status but an individual status for each partition object
- "Refresh All" in Object List now actually does a
"refresh all" resp. marks all tabs for refresh the next time they are
used (It didn't do it before, it just did a "refresh" of the current
tab)
Note that this "Refresh All" also refreshes the "Known object" cache
used by the enhanced editor highlighting, so in case you've
added/dropped objects you can use this option to refresh the cache used
for highlighting. The "Known object" cache will also be refreshed when
the settings are changed using the "Settings" dialog.
- All kinds of reverse indexes and function-based
bitmap indexes should be handled now correctly
No longer "unsupported index type" exceptions
- Optionally disable cell selection wraparound in
Grid
New option in the "Data Grid 1" settings page where you can disable the
default wraparound of the cell selection in the Grid.
Changes
- No
longer set focus to "Plan" pane when performing "Explain plan", use
"Switch pane" (default: F6) to set focus to it if needed
- Show execution times that are
less than one second in milliseconds
Bugfixes
- Materialized view log handling
(drop) fixed in Object List
- Re-enabled "Allow remember manually changed
column width" which was broken due to my misunderstanding
- Get DBMS_METADATA DDL for MATERIALIZED VIEW LOG
fixed
- Consistent handling of statistics setting in
current session if changing the setting in Settings dialog or in GUI
via button
- 9i emulation of DBMS_XPLAN.DISPLAY_CURSOR now
also enables the "Refresh" context menu entry in the "Plan" window
- If "Connection lost" related error is thrown
from remote do not close local connection
- Exception no longer raised when clicking in the
row header of an empty result set
- Changing VALID/INVALID filters in Object List
now invalidates all tabs so that changed filter is applied when
activated
- Setting a filter in an Object list tab no longer
invalidates all other tabs
- Opening a non-existing document from the most
recently used file list no longer raises an Exception
- Re-enabled TAB/SHIFT+TAB key in Grid (it was
broken probably a long time ago before SQLTools++ came into existence).
It moves
the cell selection to the right and left respectively
- The "Find in Files" function should work again
now. Thanks to Antonio Mazzei for the hint that a wrong GREP.EXE was
packaged with the RC releases so far, therefore SQLTools++ inherited
this bug. It should use now a GREP.EXE that works with SQLTools++
- Documentation bug: 9i unfortunately does not
populate the V$SQL_PLAN_STATISTICS_ALL view if statistics_level is set
to default value TYPICAL, therefore you don't get the basic plan info
(10g does). You only get the view populated if statistics_level is set
to ALL. Whereas 10g already mirrors basic plan information from
V$SQL_PLAN into V$SQL_PLAN_STATISTICS_ALL in TYPICAL mode
Known
issues
- The original SQLTools SQL execution mode
(Enabled by turning off both options "Empty lines delimits statement"
and "Whitespace line delimits statement" in
Tools->Settings->PlusPlus Settings) does not work correctly. It
sends only the current line to the database rather than scanning for
the end of the statement.
Note: This has
been addressed in the Development Build available on the right hand
side.
- Filenames after a SPOOL command in a SQL*Plus
script are marked as invalid identifiers if exceeding the maximum
defined length.
Note: This has been addressed in the Development Build available on the
right hand side.
- Quoted identifiers (using "<IDENTIFIER>")
potentially are not correctly recognized by new "Known objects"
hightlighting since the current tokenizer does treat them as "normal"
identifiers and therefore breaks them apart in case of any special
character encountered.
- Auto resizing columns by doubleclicking on the header
border does not work correctly when the first column is not visible, which
means that the grid has been scrolled to the right. It resizes the column
to the left by the offset the grid has been scrolled to the right.
- There seems to be a bug in the 10.2.0.1 Oracle
Client that causes all columns after a skipped LOB column (when
skipping LOB fetching is enabled in the Options) to be left blank. I
have not understood yet the exact root cause but when using a patched
or newer client (e.g. 10.2.0.3 or 11.1.0.6) the issue does not show up,
so it's somehow related to the Oracle Client version.
The
wish list
Here is the ever growing list of features I would like to add, but
haven't managed to cope with yet.
- Nice
session browser
Still TOAD is the only tool that I'm aware of that offers a
comprehensive session browser
with advanced functionality like automatic grouping of Parallel Slaves
etc., but sometimes the session browser in TOAD behaves strangely. So
this is something I wish to have: A good session browser built into
SQLTools. But it's a tedious task...
- Enable
filter in Object list
Done
- In
Oracle 9i and above, use Oracle DBMS_METADATA package for DDL extraction
Done
- Edit Data feature: Extend existing Grid to
enable
DML operations (INSERT/UPDATE/DELETE)
- Online
visual match: Highlight matching
braces/brackets etc. when moving cursor (more an OpenEditor issue)
Done
- Completey
fix Auto-Fit in Grid to data, which sometimes does not work for me as
intended
Tip: Adjust the "Max
column length" setting in the "Data Grid 1" options. It means the
maximum number of chars to be used for calculating the column width.
Done
- Multi-connection feature
Idea is to have support for multiple DB connections at the same time,
and you can select from a drop-down list of connections which you want
to use as current connection in your SQL worksheet. Currently you need
to start multiple instances of SQLTools++ to keep multiple connections
open at the same time.
- Threaded query support
Non-blocking execution of SQL
- Execution Time in SQL history
- Automatically
save files before SQL execute
Done
- Null
password on connect should show a separate password entry dialog
Done
- Preselect SYSDBA if connect as SYS
- Run
SQL file in external tool (e.g. SQL*Plus)
Done
- Use DBA Views optionally
if available
- Get rid of the hardcoded "RULE" hints currently
used all over the place in the queries when connected to 10g or later
|
|
|
|
|
SQLTools++
SQLTools++ is
published under the GNU General Public License (GPL). This means that
this tool can be used free of charge under the GPL. The formal terms of
the GPL license can be found at http://www.gnu.org/licenses/.
SQLTools++ on Sourceforge.net. Use Sourceforge.net to
submit bugs, request features and post messages in forums.
SQLTools++ release version "SQLTools_pp 1.20 RC3"
Previous Releases
Release
Date 02/Mar/2008
Download the Windows installer here:
SQLTools_pp_1.20RC3.exe
File size: 1.109.286 bytes
MD5: 94ac311580895ab4dd94bc824986f060
SHA1: 98e654ac1dbf214b95ab631d3a97f0bd2f0a7548
Virus checked on http://www.virustotal.com,
no viruses were found
Download the bare
binaries without installer (can be used directly from any device like
USB stick or similar):
SQLTools_pp_1.20RC3.zip
File size: 1.166.420
bytes
MD5: 3fd6540585e00260859aad2bdfc8182b
SHA1: 65f5af96433dcc7f19af8cc91b300ce958922d7f
Virus checked on http://www.virustotal.com,
no viruses were found
Development Build
(contains only SQLTools.exe, not a full installation):
SQLTools_DevBuild.zip
File size: 889.422
bytes
MD5: 4e6d7a7010954464b4f4dc897f2e28c4
SHA1: 7d7744427549cde6086304f25173c27071fe3945
Virus checked on http://www.virustotal.com,
no viruses were found
The Development Build
is released as intermediate version containing the latest enhancements
and fixes, but it is not as thoroughly tested as the official release.
If you do not have a particular reason you should use the official
release. This Development Build in particular fixes the bug that the
original "SQLTools" mode (current SQL begins at current line, no search
for any blank or whitespace line) is supposed to work again correctly.
In addition it fixes a couple of bugs, the detailed description of those
can be found on the Sourceforge.net "bug" tracker site searching for "Closed" bugs
or by reading the release notes of the "DevBuild" package on Sourceforge.net.
1949675 Doing describe (F12) with lost connection raises exception
1942383 "Use DBMS_METADATA" not saved in Settings dialog
1941453 Opening *.txt files results in "Language 'NONE' not found"
1939328 Length of multibyte character columns incorrectly reported
1939306 Extended Block information is wrong for lines with TABs
1939241 Visual match braces does not work with TAB chars
1938706 Object List using list representation - quick filter applied
1927183 DDL generated for deferrable disabled constraint is wrong
1927173 Table Transformation Helper wrong GRANTS with DBMS_METADATA
The following tracked features have been added:
1914736 Consider "Load DDL" shortcut (Ctrl+F12) in Object List
For further details regarding known issues of the current release
please check the changelog on the left hand side.
Please note that the
Development Build currently contains only the main executable. In order
to use it you need to have the 1.20 RC3 release already installed. You then need to replace the existing
"SQLTools.exe" with the "SQLTools.exe" contained in the provided
archive.
Installation
instructions: If you have already an existing installation
of the original SQLTools, I recommend to install SQLTools++ in
a separate directory as these versions are not compatible to each other
in terms of support files they require. If you have
customised your existing installation (e.g. keyboard
accelerators) you can try to move/migrate your changes to the new
installation, but be aware that new lines have been added to some of
the config files, so keep a backup of the original files in case the
application does not start anymore after modifying the configuration.
If
you intend to
update a previous SQLTools++ installation location, the installer
recognizes this and offers options to overwrite existing configuration
information. It is recommended to do that to get support for all new
features added. If you are using the "custom" keyboard configuration,
please note that this configuration file is never updated by the
installer. You therefore need to do a diff on the newly installed
"default" keyboard and your "custom" config file to be able to add the
new keyboard shortcuts available. If you do not add them, newly added
functions like "Execute script and halt on errors" will not have a
keyboard accelerator assigned in the "Custom" Keymap layout
configuration (Tools->Settings->Editor->General->Keymap
layout).
Download
the source tarball here:
sqlt_1.20RC3.tar.gz
Browse the CVS repository here:
http://www.sqltools-plusplus.org:7676/cgi-bin/viewvc.cgi
The corresponding CVS tag for this release is: "sqltpp_1_20RC3_2"
You can download the source tarball also from the CVS repository
browser.
Build
instructions: You need Visual C++ 2005, Oracle OCI 10g libraries and
header files (part of any regular Oracle database or client
installation) and the MFC libraries, which means that Visual C++ 2005
Express Edition is not sufficient since it does not contain the MFC
libraries and header files. You can download or order a trial version
of Visual Studio 2005 from the Microsoft homepage:
http://www.microsoft.com/emea/msdn/visualstudio/getthetrials/default.aspx
The
Professional Edition trial version available there is sufficient, you
don't need the Team Edition.
The Project file to use is: SQLTools2005.sln or
SQLTools2005.vcproj in the SQLTools
subdirectory
Note that it has not been
tested yet with the recently released Microsoft Visual Studio 2008.
|