A new update for Manifold System is now available.
The update contains changes incompatible with prior updates:
- Queries created in this update might not run on previous updates and vice versa, due to changes to query syntax made in order to accommodate new features.
- MAP files created by this update will not load on previous updates, due to extensions to computed fields and constraints, and due to changes to rtree indexes for images.
The update includes more than a hundred of improvements and fixes, including:
- The Transform Options dialog supports additional transfer rules specific to boolean, numeric integer, text and geometry fields.
- The map window reports the current cursor location in a specialized status bar pane. Right-clicking the pane allows specifying the type of reported coordinates.
- The map window reports the current scale in a 1:xxx or xxx:1 format in a specialized status bar pane. Right-clicking the pane allows setting the scale directly.
- The map window supports the tracker tool which allows measuring distances and bearings. All measurements are done over an ellipsoid.
- The table window displays tooltips for long or multiline values. Same for all dialogs and panes which display data as a grid.
- Right-clicking a value of a selected record in a table window allows quickly copying the cell value to all selected records via the new Copy to Selection command (shortcut: Ctrl-F2).
- Text windows support matching brackets (Ctrl-] / Ctrl-Shift-]).
- The export and save dialogs confirm overwrites and offer to rename the file.
- The Project pane and component windows confirm deleting data.
- There is a new component type: locations. Locations store data for a specific geographic location. The map window includes means to capture the current location or to quickly go to an existing location. Locations can be copied and pasted, including between data sources. They can be edited directly, as JSON text. They can also be manipulated from queries and scripts.
- Reading MAP files created by Manifold 8 reads views and converts them to locations.
- There are query functions and transform templates for interpolating vector data into rasters. Supported interpolation types: gravity, kriging, kriging with median polish, triangulation, triangulation with segments. Kriging interpolation supports multiple models. Triangulation with segments supports removal of flat areas using DEST. All interpolation templates support multiple threads. All interpolation functions are noticeably faster than analogous transforms in Manifold 8, even with a single thread.
- Toolbars used by component windows are cleaned up and no longer include rarely used commands like Help - About. Buttons for cursor modes are collapsed into a single button with a drop-down menu, etc.
- The query engine allows defining global variables using the new VALUE statement. Global variables frequently make queries simpler and clearer. They also provide fine-grained control over the number of threads used for different parts of the query.
- The query engine requires all references to function or query parameters to use @ before the parameter name. This cleanly separates artificial names used by the query from names of the actual tables and fields, and avoids a number of previous ambiguities.
- The query engine allows defining an inline script using the new SCRIPT statement. Inline scripts provide a way to use script functions in a single self-contained query component.
- Loading a MAP file allows expressions in computed fields and constraints to fail to load. All existing data including data in computed fields with expressions that failed to load is fully and safely accessible. Computed fields and constraints with expressions that failed to load can be safely removed.
- Loading a MAP file resolves expressions in computed fields and constraints in a way that allows successfully loading expressions from cross-referencing tables.
- Computed fields allow specifying one or more statements to prepare execution context for the expression which computes values. This allows expressions for computed fields to use functions and scripts. Same for constraints.
- Loading add-ins ignores DLL files without an accompanying .DLL.ADDIN file. This dramatically reduces the time to initialize the main menu on configurations with lots of DLL modules, such as DLLs for database clients or scripting engines.
- The Select and Transform panes specify parameter values which can be set to fields using a new parameter picker control. The control allows switching between fields of the required type, and includes options to use value or expression. Text entered for value is automatically quoted according to the value type (there is no need to type '...' for string values, no need to prefix each backslash with another backslash, etc). Text entered for expression is left intact (can freely combine field names, literals, as before).
- The Select and Transform panes generate simpler code for a number of templates (collate parameters, regular expression case switches, etc).
- The majority of transforms specify the 'main' transform parameter which gets auto-set to the target field.
- The PostgreSQL dataport optimizes bulk inserts, deletes and updates.
- The GPKG dataport optimizes bulk inserts.
- The DWG dataport recognizes variants of DWG up to R2018 and can read quite a bit more data out of modern variants.
- The WMS dataport supports several new types of misbehavior on the part of the servers.
- The CSV dataport supports reading multiline text values, controlled via an option.
The update is available on the Product Downloads page.