FrontBase 3.5a - Release Notes

FrontBase 3.5a

This is a maintenance release with focus on 1) a more robust replication/cluster implementation, 2) bug fixes and 3) various enhancements providing better support for client side tools like FrontBaseManager and sql92.

New feature:

In previous versions, the READ COMMITTED isolation level was automatically upgraded to REPEATABLE READ (as permitted by the SQL 92 standard). READ COMMITTED now has a semantics of its own: If only SELECTS have been executed in a transaction, a subsequent COMMIT will always succeed, while a REPEATABLE READ transaction will fail if the SELECTed rows have been modified by some other transaction.

Bug fixes:

COUNT(<expr>) didn't calculate correctly if <expr> IS NULL.

COUNT(DISTINCT <expr>) didn't calculate correctly.

EXISTS predicates weren't parsed correctly in "composite" WHERE clauses.

Transformation of certain OR expressions caused the server to terminate (OR expressions are automatically transformed to IN predicates whenever possible).

SELECT * FROM T0 WHERE C0 IN (); caused the server to terminate.

Illegal BLOB and CLOB handles caused the server to terminate.

Minor enhancements:

<column> LIKE '%' now evaluates to TRUE, assuming <column> IS NOT NULL, without further calculations.

FBScriptAgent 1.2

The FBScriptAgent application allows you to control and interact with your FrontBase database using the AppleScript scripting language. FBScriptAgent is a scriptable application which forwards commands to the database server. In addition to sending SQL statements, the agent can start, stop, create and delete FrontBase databases.

The documentation for the FBScriptAgent is available througt the Help->Documentation menu, and a number of examples are found in the Examples directory.

FrontBaseManager 3.5a

Sometimes FrontBaseManager would crash when a row was clicked on when viewing the content of a table or the results of executing some SQL. This has been fixed.

When FrontBaseManager displayed a modal panel it would occasionally consume all of the CPU. This particular instance of the CPU consumption bug has been fixed. However, another much more rare instance of this bug still exists.

You can now copy fetched rows (obtained by either executing SQL or viewing the "content" of a table) as a set of insert statements. You'll find this by going to Edit -> Copy As -> SQL Statements.

A "find" panel has now been introduced into FrontBaseManager. The find panel can be used in all text views throughout the application.

The table view containing the columns of the source table when adding a foreign key constraint would sometimes not be wide enough for long column names. We now widen the table view's column to be wide enough to display the longest column name.

When a database fails to start, we now present the user with the last log file entry for that database in an error sheet.

Double-clicking on items in a list engages editing of the selected item in more places.

Menu-accelerators for "Object Content" and "Object Definition" have been added to the "Database" menu. They are Command-Shift-C and Command-Shift-D respectively.

When an error sheet displayed a long error it was being displayed in italics. This is now displayed in a regular font.

When customizing the toolbar of the "Monitored Databases" panel, the "View" toolbar item would have no icons. This has been fixed.

When a user would customize the toolbar on the "Monitored Databases" panel and they removed and then re-added the "View" toolbar item, they would get the exception "Exception: NSInvalidArgumentException. Description: *** -[NSCFArray sizeToCells]: selector not recognized". This has been fixed.

When editing a BLOB/CLOB column in a row, we were sending BLOBs/CLOBs to the server as soon as the user choose a file to upload. We now defer writing the BLOB/CLOB to the server until the user has confirmed that they want to send their changes to the server for the edited row.

If a fetch resulted in multiple result sets, we leaked some meta data. This has been fixed.

On the "Restore Database" window the "other backup" text field would display its text in bold. This has been fixed.

If the user provides the name of a database which doesn't exist when restoring a database from a backup, then the error message "Wrong number of arguments" would result. This has been fixed.

The sizing/borders/something for the extract table window (fetch result window, I think) is messed up.

Some of the toolbar items on the "Monitored Databases" panel would remove enabled while a modal panel was on-screen. This has been fixed.

In the toolbar of the "Monitored Databases" panel, the "View" toolbar item would not work when the toolbar was in text only mode. This has been fixed.

If a user executes SQL which the server says requires that their transaction settings be Serializable/Pessimistic then we ask the user if they like their transaction settings changed. If the user says that they'd like to changed their transaction settings then we automatically re-execute their last batch of SQL.

If a user attempts to delete a table and their transaction settings are not Serializable/Pessimistic, then we ask them if they'd like their transaction settings changed.

In some circumstances, we were leaking a connection to the databases when the user committed their transaction. This has been fixed.

If a SQL script was executed that resulted in any errors from the server, we would inadvertently display a disembodied sheet before contracting the open file sheet. This has been fixed.

Sometimes editing a row in the content editor would result in more values being sent to the server than were actually changed. This has been fixed.

Dates and times were always being displayed in a static U.S. format. Now we pay attention to the user's preferences for date and time display formats.

All tables listed in the import process are now sorted alphabetically.

Sometimes editing the definition of a large table would result in a missing scroll bar. This has been fixed.

FrontBase JDBC 1.24

Fixed bug in FBJDriver (jdbcCompliant returned false).

Fixed bug in FBJDatabaseMetaData (getTables did not handle NULLS for table names correctly).

Fixed bug in FBJConnection (Connection failed when database version contained a minor version letter).

Fixed bug in FBJCallableStatement (NULL was always cast as an integer).

FrontBase PlugIn 1.9

Fixed bug in FrontBasePlugIn.formatValueForAttribute (removed work around for bugs in WO5.1 before Update 1).

Fixed bugs in 'Synchronize Schema' (names not quoted when inserting new columns).

Fixed bug in FrontBasePlugIn.assembleSelectStatementWithAttributes (bug in EOModeler of WO5.0 causing the sort direction to be left out on fetch specs broke a parser in the plugin).

Added support for plugin version determination at run-time (static method FrontbasePlugIn.getPlugInVersion()).

Modified the plugin for it to work with both WebObjects 5.0 and Webobjects 5.1.

Added support for sort orderings on attributes which are not represented in a specifies select.

Fixed bug in FrontBasePlugIn.formatValueForAttribute (blob handles treated as custom classes of the corresponding attributes).

sql92 command line tool 3.5a

The sql92 command line tool now supports several output formats:




The COLUMN format prints one column per line with row numbering and column labels. The ROW format prints one row per line with the column values tab delimited without any row numbering or column labeling. The XML format prints the result set as XML.

The output from sql92 can be directed to a file:

SET OUTPUT <filename>;


The SET OUTPUT <filename> directs the output to the file, the format written is slightly different from the output written to standard output as the '>' character preceding output from the server is omitted.

The SET OUTPUT; resets the output direction.