Small versions of the query builder in dialogs like Select and Transform hide items for aggregate functions.
Applying a filter in a query builder list keeps items below those that match the filter. (Setting filter to 'SELECT' will keep the items below 'SELECT ...'.)
Applying a component type filter in the Project pane changes the filter button to indicate that the list of components is filtered.
The component type filter in the Project pane allows includes an item for data sources.
The controls in the Project pane are slightly repositioned to avoid putting context menus into a monitor to the right of the Project pane, if there is one.
Scrolling a window using a scrollbar moves keyboard focus to the window.
(Fix) Deleting records from a btree index in a MAP file no longer sometimes breaks the index. (The failure was found during stress testing. It could only happen under very rare circumstances and should nearly always manifest itself with the 'Can't delete record' error.)
Tables in MAP files detect inconsistencies in index data and report broken indexes in the log. In addition, affected indexes are made read-only. Table data can be safely copied to another table. Deleting affected indexes is also safe, although not all space originally used by index data might be reclaimed.
Joins exposing btree indexes detect more cases where duplicates are made impossible by conditions applied on top of joins, and keep indexes unique instead of converting them into indexes with duplicates.
(Fix) Outer joins no longer sometimes misapply conditions in WHERE applying to individual tables.
(Fix) Outer joins no longer sometimes misapply constant conditions evaluating to FALSE in the scope of a join.
Joins and WHERE filters optimize the IN construct for fields used in btree indexes: <field> IN (<value>, <value>, ...). Any btree index type is allowed. A btree index with multiple fields will optimize IN with the first field.
(Fix) The IN construct used to match NULL against an empty table correctly returns FALSE instead of NULL.
(Fix) The IN construct used to match a non-NULL value against a list of values or a table that contain no matches, but contain NULLs, correctly returns NULL instead of FALSE.
The IN construct used with tables can use any type of btree index and can use a btree index for part of matched values. (Previously, only a btree index on a single field with no duplicates or nulls could be used.)
The IN construct used to match a value against a list of values fails if the values in the list are of different types. (This is handled differently in different databases. Some allow conversions, including from string to number or vice versa.)
The recent file list is limited to 32 items.
(Fix) The table window no longer sometimes paints field names in the header in gray.
The GCDB dataport reports supported geocoding functions via the 'API' comments component.
(Fix) Database dataports correctly handle mfd_meta tables with fixed-width fields created by Manifold 8.
Database dataports automatically adjust object names in mfd_meta to include schema names, to help Manifold 8.
(Fix) Database dataports correctly handle schema names with backslashes (frequently found when schema names coincide with names of Windows users, as is common practice on SQL Server).
The dataport for personal ESRI geodatabases allows renaming or deleting drawings.
The dataport for Enterprise storages merges storages from different database schemas together.
End of list.