database development tool
- schema browser
- SQL syntax highlighting
- sqlplus-style command parsing
- configurable external editor (F2 key)
- configurable external query results viewer (F3
- explain plan facility (DBMS_XPLAN display
- configurable statement tracing, any metric in
V$SESSTAT can be measured
- segment space analyzer utlizing
object DDL generator via the DBMS_METADATA
SQL statements can loaded for analysis from :
cursor cache (V$SQL)
23 July 2007
v2.14 is out
bunch of annoyances were addressed in this release, especially database
instance connect time. The 'find' populator was bogging it down
in a big way. Even for an empty schema there are usually over
1000 items to load with all the ALL_, USER_, and DBA_ catalog tables in
10g, just to fill in a GtkEntryCompletion widget. Although I hate
to use the non-blocking OCI interface on the background service context
(read: polling), hopefully it's the right concession. Note that
changing the current schema with the Schema: combobox will also repopulate the finder.
learning experiences this time around: when it comes to the
non-blocking mode setting for a server handle in OCI, it doesn't matter
what value you pass, it's an alternating toggle. Hey OCI: thanks for the (static) memories. Couldn't you at least buy me dinner first?
release also includes client-side statement caching for the queries
executed underneath the covers for the user interface. You all are
going to minimize your latching in this way. Both of you.
Mini-saga on the OCI forum here for the truly under-employed.
list of snapshot subscribers for materialized view log nodes in the
browser. Incidentally, I hate the IO on these things.
- option to save query results as an HTML table
- new icon for locally partitioned bitmap indexes: There can actually be no other type of bitmap index on a partitioned table. Why this is so is a decent interview question.
03 May 2007
GTKO 2 on the way
02 April 2007
v1.84 is out
* Query-based bind comboboxes in SQL editor
When the toolbar bind
button is clicked, a combobox will be created for bind variables in the
query textview that are anchored with '&', the values of which are
populated by a 'define' line for the name of the bind variable.
When the toolbar bind button is clicked, a combobox is created at the '&tsname'
location and it is populated with tablespace names. The chosen
tablespace name will then be bound to the query when executed.
* More table types in the browser table treeview
Icons for mviews and mview logs and enhanced info on click/double click.
* Removed schema browser Table/Segments tab; unnecessary now that the
segment size is obtained by double-clicking on a segment in the table list.
* Added sample SQL directory and some queries to the distribution; src_dir/sql
10 January 2007
Expandable tables in the schema browser
v1.80 is out
Double-clicking on a table will expand the table's :
- indexes (shown red
- index partitions and subpartitions
- table partitions
- table partitions and subpartitions
- LOB segments
Selecting an index will show its columns and, for function-based
indexes, the FBI expression in the column list to the right.
Double-clicking on and index will show expand any index partitions.
Selecting a table partition will show the partition column-level
statistics in the column list to the right. Double-clicking on the partition will expand any subpartitions.
The SQL command parser will now almost completely tolerate sqlplus
keywords and commands such as SET and PROMPT. Although nothing is done
with the commands (yet) this allows just about any file that runs in
sqlplus to be run in GTKO. Writing this sucked - if anyone wants to crib,
there's a function to get statements in statement.c. It's
Fixed a problem associated with using integer column types in
GtkTreeView - NULL values show
up as zero. So instead of using GTK's G_TYPE_INT column types
in the interface,
every column type is character, which can show NULL, and an
function is applied to have numbers sort correctly (which is the reason
int's were used in the first place).
The time on the server is displayed in the lower right corner.
Only one server round trip is performed at connect.
* Execute SQL
v1.72 is out
Ctrl-B now executes the SQL 'block' that the cursor is in.
block is any section of text surrounded by blank lines. In
summary, Ctrl-E executes the entire SQL editor buffer, Ctrl-L executes
the line that the cursor is on, and Ctrl-B executes the block.
* Inline bind variable
The SQL editor inline bind variable entry widgets are now applied based
statement offset in text view (as opposed to the character offset zero in the textview).
Binds are by name and not position in OCI.
* TCP Keepalives
Added keepalive dialog under the Run menu. Allows
pinging a host at a regular interval, useful to keep a VPN connection
* Explain plan
Fixed missing final va_list NULL in a g_strconcat in
explain plan, which was causing a crash.
editor and result viewer
v1.70 is out
Support for external query editor and external result viewers has
been added. In Edit->Preferences an external app can be
for the SQL editor and for viewing results (as .csv).
With linux kernel 2.6.13 or greater, inotify
tracking) can be used to sync external editor changes to the GTKO
textbuffer as they occur. Without inotify, changes made in the external
editor are only synchronized back to the GTKO editor when the external
To configure inotify you need:
- linux, kernel 2.16.3 or greater
- support for inotify enabled in the kernel (in the Filesystems
- run GTKO configure script with the --with-inotify
* More query
result output options
Query result output options have been enhanced. Now you can send
output to the screen, log to a file, or neither (if you just want to
test the raw select time).
Previously the only way to get results to a file was to send them to
the results treeview and then save, which was highly impractical
(sometimes impossible) for large result sets.
Separate query trace facility with optional logging to a trace file.
Tracing is now in a separate tab next to the query output view and has
- picking stats to measure from the V$SESSTAT Oracle table
- logging stats to a trace file, optionally with the query and the
automatically set interface to disconnected state for Oracle errors
that indicate broken connection; ora-3113 for exammple
The big addition in this release is
compile-time support for the
GtkSourceView widget as the SQL editor. Configure looks for
GtkSourceView >= 1.6 and uses it instead of GtkTextView if it's
found. GtkSourceView requires GTK >= 2.8, libgnomeprintui, and
libxml2, but a full Gnome install is still not required. The option is
configure for now because I don't want to force an upgrade to 2.8. But
I will say it's a super-cool widget well worth trying out. It's got
built in undo and redo and the plan for the next GTKO release is
printing support. Do plan on using quite a bit more resident memory
v1.60 is out
GtkStatusIcon (GTK >= 2.10) is implemented in this release.
get a grayed out database icon in your window manager system tray on
GTKO startup which turns red during executes with the first 256 chars
of the executing query as the tooltip. When executing a long running
job this will keep you from having to constantly switch virtual
desktops to see if it's completed.
* Parse error
Parse error highlighting in the SQL editor has been dialed in a bit in
terms of word starts and ends and the textview is auto-scrolled to the
* F9 execute
F9 executes in the expected fashion - selected text or, if there is no
selection, all the SQL statements in the editor textview.
- GTK+ >= 2.6 (development version)
- Oracle 9 or 10 client
- GtkSourceView >= 1.6
Compile with debug output
Compile with linux inotify file tracking support
Use GtkSourceView for the SQL editor widget
Compile for win32 platform