QM 2.8-9 released Options
QM release 2.8-9 is now available for download from the OpenQM web site.
The main contents of this release are summarised below.
===== RELEASE CONTENTS =====
Alternate key indices may now be defined as being case insensitive when they are created using CREATE.INDEX or MAKE.INDEX. The internal sorting of a case insensitive index is based on an uppercase version of the data but operations such as SELECTINDEX will find data regardless of casing. Note that because indices are stored in sorted order, a case sensitive index cannot be used in a query that uses case insensitive comparisons or vice versa.
The column widths of the FSTAT command have been increased to allow for the high performance of MFT drives.
The options to the LIST.FILES command have been modified such that the default action is to show the statistical counts and the pathnames of open files. The BRIEF option suppresses the pathname display. The DETAIL option extends the report to show the user numbers and user names of the users with each file open. A file name can also be provided to show only users with that file open. The USER option can be used to show only files open to a specific user.
When a print unit is directed to a file, a check is made to see if there is a catalogued subroutine named HOLD.FILE.LOGGER and, if there is, this is called when the file is opened and again when it is closed. This subroutine can be used, for example, to build a log of hold file entries or to take some action after the file has been closed.
The QUERY.MERGE.PRINT mode of the OPTION command causes a query report directed to a printer to merge the output as a continuation of the active print job if the printer is already active, leaving the printer active on completion of the report. Without this option, the printer is closed at the end of the report.
The REBUILD.ALL.INDICES command rebuilds the alternate key indices of all files referenced by F-type VOC pointers in the account from which it is executed. This may be of use following a system power failure where some data may not have been written to disk, ensuring that the indices correctly reflect the data stored in the files.
The SETPTR command now has an EJECT option to force insertion of a form feed at the end of the job.
The query processor now supports Pick style explosion limiters on BY.EXP and BY.EXP.DSND if the QUALIFIED.DISPLAY mode of the OPTION command is enabled.
The STACKLIST option of the QMBasic EXECUTE statement causes QM to save the current state of the default select list (list 0) prior to executing the command and then restore it on return to the program. This allows the executed command to use the default select list internally.
Key value 1021 (FL$WHO) to the QMBasic FILEINFO() function returns a field mark delimited list of the QM user numbers of user that have the file open.
The QMBasic MD5() function encodes a string to its MD5 message digest value.
The QMBasic OPEN and OPENPATH statements now support a NON.TRANSACTIONAL option to indicate that updates to the file are not to be treated as part of any transaction in which they occur.
The QMBasic SYSTEM() function has been extended to add key value 1036 to return the delay period for a login that had to wait for a spare user to become available when using the LGNWAIT configuration parameter. Applications can use this data to perform statistical analysis for determining whether a larger licence is required.
Key value 1037 of the QMBasic SYSTEM() function returns a list of all QM files open in the system and the user numbers of the users with them open.
The full screen mode of the QMBasic debugger has been extended to add the /* command to view all variables in the program.
The PDA version of QM now supports limited capabilities for incoming telnet connections.
The terminfo database now supports the stylus and pdakeys capabilities for the PDA version of QM.