Difference between revisions of "List of fixed bugs in the commercial version of OpenQM (Current as of 2.8-10)"

From ScarletDME
Jump to navigation Jump to search
(New page: 2.8-10 The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an assignment operator. Query commands that used closed range tests (e.g. A > 5 and < 8) with fields f...)
 
Line 1: Line 1:
 +
*2.8-10
 +
The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an
 +
assignment operator.
 +
 +
Query commands that used closed range tests (e.g. A > 5 and < 8) with fields
 +
for which an alternate key index was present could return incorrect data.
  
2.8-10
+
*2.8-9
 +
The N() funcion in an A-correlative did not allow for field names that did not
 +
comply with QM's naming rules.
 +
 +
Where a file had multiple alternate key indices, if an index was built from a
 +
calculated value that used a T-conversion or a TRANS() function to reference a
 +
record that did not exist, all later index updates for the same write would
 +
damage the index.
 +
 +
Use of PSTAT could cause the process being queried to crash if it had a very
 +
deep execution stack or was executing a very long command. 
 +
 +
A phantom would fail to start correctly if the parent process terminated before
 +
it had commenced its initialisation.
 +
 +
The Proc A command did not treat semicolons in the source data as a special
 +
character separating multiple items.
 +
 +
A Proc with a command of H with no qualifying text caused the Proc processor
 +
to loop.
 +
 +
The LPTR keyword was not recognised by the FILE.STAT command.
 +
 +
The WHEN clause of the query processor was not handling some complex conditions
 +
correctly.
 +
 +
A Pick style qualified display clause on a multivalued field was equivalent to
 +
use of WITH when it should have been equivalent to use of WHEN.
 +
 +
Quitting out of a PSTAT command could result in not being able to start pahntom
 +
processes.
 +
 +
The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic
 +
compiler.
 +
 +
The QMBasic OPENSEQ statement did not return the blocking user number via the
 +
STATUS() function if the record was locked by another user.
 +
 +
Some PDA devices would report errors on access to files on the removeable
 +
memory card if the PDA had powered down while the file was open.
 +
 +
*2.8-8
 +
Relational operators in correlatives were not implying use of the reuse option.
 +
 +
The C operation in F-correlatives did not handle negative numbers.
 +
 +
Format codes applied to integer numeric values when non-default NLS delimiters
 +
were selected returned an incorrect result.
 +
 +
The SET.FILE command did not handle multi-files correctly.
 +
 +
Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate
 +
abnormally on subsequent use of the CAPTURING clause to EXECUTE.
 +
 +
The QMBasic CLEAR statement caused updates to subroutine argument variables
 +
that were passed by reference not to be treated as though they were passed by
 +
value, not returning the new value to the calling program.
 +
 +
The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements
 +
in the dynamic array that they are summing.
 +
*2.8-7
 +
Deleting a record from a file that used record level encryption could fail to
 +
remove the record from an alternate key index.
  
The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an
+
The SED editor hung when trying to delete a record via the explore buffer if
assignment operator.
+
that record was locked by another user.
 
+
Query commands that used closed range tests (e.g. A > 5 and < 8) with fields
+
The query processor treated Fn field references as being single valued.
for which an alternate key index was present could return incorrect data.
+
 
+
Reference to a dimensioned matrix on a QMBasic source line above the
 
+
corresponding DIM statement generated a compilation error.
2.8-9
+
 
+
A performance optimisation in the QMBasic LOCATE statement could result in the
The N() funcion in an A-correlative did not allow for field names that did not
+
incorrect field position being returned or a QM fatal error. Also, LOCATE could
comply with QM's naming rules.
+
incorrectly report an item as found if the leading characters matched the final
 
+
item in the dynamci array being searched.
Where a file had multiple alternate key indices, if an index was built from a
+
*2.8-6
calculated value that used a T-conversion or a TRANS() function to reference a
+
The installer on some Linux systems could fail to set permissions correctly.
record that did not exist, all later index updates for the same write would
+
damage the index.
+
There was an assumption that $HOLD was always in its default location.
 
+
Use of PSTAT could cause the process being queried to crash if it had a very
+
FORMAT was creating a VOC record named X.
deep execution stack or was executing a very long command.
+
*2.8-5
 
+
The init.d scripts on Linux and FreeBSD did not allow for installation with the
A phantom would fail to start correctly if the parent process terminated before
+
QMSYS directory in a non-default location.
it had commenced its initialisation.
+
 
+
The -R option of qmfix could report that the file was unusable.
The Proc A command did not treat semicolons in the source data as a special
+
*2.8-4
character separating multiple items.
+
A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)
 
+
would fail on some versions of the network management software used by Linux
A Proc with a command of H with no qualifying text caused the Proc processor
+
and the PowerPC version of the Mac.
to loop.
+
 
+
Attempting to open a file that uses record level encryption was causing an
The LPTR keyword was not recognised by the FILE.STAT command.
+
abort for users with no access to the encryption key. This should have taken
 
+
the ELSE clause of the open.
The WHEN clause of the query processor was not handling some complex conditions
+
correctly.
+
FILE.SAVE was ignoring any account name given on the command line and saving
 
+
all accounts.
A Pick style qualified display clause on a multivalued field was equivalent to
+
use of WITH when it should have been equivalent to use of WHEN.
+
Using SEL.RESTORE to restore the VOC needed the file name to be entered as
 
+
VOC-RESTORE.  
Quitting out of a PSTAT command could result in not being able to start pahntom
+
processes.
+
A QMBasic source line that generate a very large volume of object code could
 
+
result in the program terminating unexpectedly.
The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic
+
compiler.
+
AccuSoft have supplied a correction to the terminfo definition for F5 in the
 
+
vt100-at, vt220-at, vt320-at and vt420-at terminal types.
The QMBasic OPENSEQ statement did not return the blocking user number via the
+
*2.8-3
STATUS() function if the record was locked by another user.
+
Attempting to access a hashed file for which a user was locked out by file
 
+
permissions could appear to open it as a directory file though it would not be
Some PDA devices would report errors on access to files on the removeable
+
possible to read or write records.
memory card if the PDA had powered down while the file was open.
+
 
+
Creating an alternate key index with an I-type, C-type or correlative that
 
+
compiles to more than 512 bytes caused QM to terminate with a fatal error and
2.8-8
+
left the index file corrupt.
 
+
Relational operators in correlatives were not implying use of the reuse option.
+
QM could terminate with a fatal error if a command executed using OS.EXECUTE
 
+
with the CAPTURING clause returned only a newline.
The C operation in F-correlatives did not handle negative numbers.
+
 
+
Use of an invalid pathname with the QMBasic OSWRITE statement did not take the
Format codes applied to integer numeric values when non-default NLS delimiters
+
ON ERROR clause.
were selected returned an incorrect result.
+
*2.8-2
 
+
The ANALYSE.FILE command could wrongly report a file as having resizing
The SET.FILE command did not handle multi-files correctly.
+
disabled when it did not, or vice versa.
 
+
Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate
+
The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise
abnormally on subsequent use of the CAPTURING clause to EXECUTE.
+
equivalent indices, resulting an an extra index being created where another
 
+
that already existed could be used instead.
The QMBasic CLEAR statement caused updates to subroutine argument variables
+
that were passed by reference not to be treated as though they were passed by
+
Deleting all lines below the current position in ED and then saving the item
value, not returning the new value to the calling program.
+
could sometimes add a blank line to the end of the data.
 
+
The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements
+
The query processor did not apply CSV quoting rules to column headings when
in the dynamic array that they are summing.
+
creating comma separated output.
 
+
2.8-7
+
A QMBasic class module with more than 255 entry points would appear to compile
 
+
correctly but would produce run time errors.
Deleting a record from a file that used record level encryption could fail to
+
remove the record from an alternate key index.
+
The QMBasic READCSV statement could cause a fatal error that terminated the
 
+
QM session.  
The SED editor hung when trying to delete a record via the explore buffer if
+
that record was locked by another user.
+
A QMBasic class module in which a public function or subroutine aborted and the
 
+
destructor routine then also aborted did not clean up correctly from the first
The query processor treated Fn field references as being single valued.
+
abort.
 
+
*2.8-1
Reference to a dimensioned matrix on a QMBasic source line above the
+
ACCOUNT.RESTORE could restore data to an incorrectly formed file name.
corresponding DIM statement generated a compilation error.
+
 
+
The query processor BY.EXP.DSND operator was sorting in ascending order.
A performance optimisation in the QMBasic LOCATE statement could result in the
+
*2.7-1
incorrect field position being returned or a QM fatal error. Also, LOCATE could
+
The account restore tools did not handle filenames containing illegal
incorrectly report an item as found if the leading characters matched the final
+
characters correctly.
item in the dynamci array being searched.
+
*2.6-14
 
+
The VOC $RELEASE record command editor control flags (field 3) were lost when
 
+
installing a new release.
2.8-6
+
 
+
The CODEPAGE option of the PTERM command was rejected.
The installer on some Linux systems could fail to set permissions correctly.
+
 
+
The QMBasic compiler could report an error if an include item had the same name
There was an assumption that $HOLD was always in its default location.
+
as an equated token.
 
+
*2.6-13
FORMAT was creating a VOC record named X.
+
A QMBasic indirect call where the indirection variable as an equated token
 
+
failed to compile correctly.
 
+
2.8-5
+
A QMBasic expression containing a Pick style implicit format element could
 
+
sometimes be interpreted as a dimensioned matrix reference.
The init.d scripts on Linux and FreeBSD did not allow for installation with the
+
 
QMSYS directory in a non-default location.
+
The MT conversion code was returning 00:00 for a null input value.
 
+
*2.6-12
The -R option of qmfix could report that the file was unusable.
+
The FORMAT command reported an internal data mismatch if the program being
 
+
formatted started with a blank line.
 
+
2.8-4
+
The QMBasic SELECTV statement generated a run time error if the source and
 
+
target variables were the same.
A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)
+
would fail on some versions of the network management software used by Linux
+
SELECTV "" TO VAR created a list with a single item named "__".
and the PowerPC version of the Mac.
+
 
+
The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types
Attempting to open a file that uses record level encryption was causing an
+
causing use of auxiliary port printing to display the data at the same time as
abort for users with no access to the encryption key. This should have taken
+
it was printed. Also, pagination prompts could appear while the data was sent
the ELSE clause of the open.
+
to the terminal.
 
+
FILE.SAVE was ignoring any account name given on the command line and saving
+
The QMCall() function of the qmclilib library on PPC Mac systems did not
all accounts.
+
update returned argument values correctly.
 
+
*2.6-11
Using SEL.RESTORE to restore the VOC needed the file name to be entered as
+
Use of an equate token that matched the alphabetic part of an @-variable name
VOC-RESTORE.
+
caused compilation errors.
 
+
A QMBasic source line that generate a very large volume of object code could
+
A null string in the data supplied to the !SORT() subroutine could cause QM
result in the program terminating unexpectedly.
+
to crash.
 
+
*2.6-10
AccuSoft have supplied a correction to the terminfo definition for F5 in the
+
Phantom processes failed to start when launched from sessions logged in as
vt100-at, vt220-at, vt320-at and vt420-at terminal types.
+
specific user numbers by use of the PORTMAP configuration parameter.
 
+
 
+
The Hot Spot Monitor (HSM) did not count direct calls correctly.
2.8-3
+
 
+
QMBasic programs accepted a string containing only a period as being a valid
Attempting to access a hashed file for which a user was locked out by file
+
number and treated it as zero.
permissions could appear to open it as a directory file though it would not be
 
possible to read or write records.
 
 
 
Creating an alternate key index with an I-type, C-type or correlative that
 
compiles to more than 512 bytes caused QM to terminate with a fatal error and
 
left the index file corrupt.
 
 
 
QM could terminate with a fatal error if a command executed using OS.EXECUTE
 
with the CAPTURING clause returned only a newline.
 
 
 
Use of an invalid pathname with the QMBasic OSWRITE statement did not take the
 
ON ERROR clause.
 
 
 
 
 
2.8-2
 
 
 
The ANALYSE.FILE command could wrongly report a file as having resizing
 
disabled when it did not, or vice versa.
 
 
 
The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise
 
equivalent indices, resulting an an extra index being created where another
 
that already existed could be used instead.
 
 
 
Deleting all lines below the current position in ED and then saving the item
 
could sometimes add a blank line to the end of the data.
 
 
 
The query processor did not apply CSV quoting rules to column headings when
 
creating comma separated output.
 
 
 
A QMBasic class module with more than 255 entry points would appear to compile
 
correctly but would produce run time errors.
 
 
 
The QMBasic READCSV statement could cause a fatal error that terminated the
 
QM session.
 
 
 
A QMBasic class module in which a public function or subroutine aborted and the
 
destructor routine then also aborted did not clean up correctly from the first
 
abort.
 
 
 
 
 
2.8-1
 
 
 
ACCOUNT.RESTORE could restore data to an incorrectly formed file name.
 
 
 
The query processor BY.EXP.DSND operator was sorting in ascending order.
 
 
 
 
 
========================================================================================
 
2.7-1
 
 
 
The account restore tools did not handle filenames containing illegal
 
characters correctly.
 
 
 
=======================================================================================
 
2.6-14
 
 
 
The VOC $RELEASE record command editor control flags (field 3) were lost when
 
installing a new release.
 
 
 
The CODEPAGE option of the PTERM command was rejected.
 
 
 
The QMBasic compiler could report an error if an include item had the same name
 
as an equated token.
 
 
 
 
 
2.6-13
 
 
 
A QMBasic indirect call where the indirection variable as an equated token
 
failed to compile correctly.
 
 
 
A QMBasic expression containing a Pick style implicit format element could
 
sometimes be interpreted as a dimensioned matrix reference.
 
 
 
The MT conversion code was returning 00:00 for a null input value.
 
 
 
 
 
2.6-12
 
 
 
The FORMAT command reported an internal data mismatch if the program being
 
formatted started with a blank line.
 
 
 
The QMBasic SELECTV statement generated a run time error if the source and
 
target variables were the same.
 
 
 
SELECTV "" TO VAR created a list with a single item named "__".
 
 
 
The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types
 
causing use of auxiliary port printing to display the data at the same time as
 
it was printed. Also, pagination prompts could appear while the data was sent
 
to the terminal.
 
 
 
The QMCall() function of the qmclilib library on PPC Mac systems did not
 
update returned argument values correctly.
 
 
 
 
 
2.6-11
 
 
 
Use of an equate token that matched the alphabetic part of an @-variable name
 
caused compilation errors.
 
 
 
A null string in the data supplied to the !SORT() subroutine could cause QM
 
to crash.
 
 
 
 
 
2.6-10
 
 
 
Phantom processes failed to start when launched from sessions logged in as
 
specific user numbers by use of the PORTMAP configuration parameter.
 
 
 
The Hot Spot Monitor (HSM) did not count direct calls correctly.
 
 
 
QMBasic programs accepted a string containing only a period as being a valid
 
number and treated it as zero.
 
 
 
========================================================================================
 
 
 
 
 
6. KNOWN PROBLEMS
 
  ==============
 
 
 
OPENSEQ cannot be used to open a file on a Windows network drive. This is a
 
permanent restriction due to changes in recent versions of Windows. The DOS
 
SUBST command can be used to work around this restriction as described under
 
"Creating and Deleting Files" in the QM Reference manual.
 
 
 
There is an issue where use of a printer on Windows that is set to print
 
directly, rather than spool will cause QM to hang indefinitely if the printer
 
stops responding. There is no work-around for this apart from using spool mode
 
as the hang is inside the Windows API.
 
========================================================================================
 

Revision as of 17:23, 23 March 2009

  • 2.8-10
The QMBasic compiler allowed use of EQ as an alternative to the = symbol as an
assignment operator.

Query commands that used closed range tests (e.g. A > 5 and < 8) with fields
for which an alternate key index was present could return incorrect data.
  • 2.8-9
The N() funcion in an A-correlative did not allow for field names that did not
comply with QM's naming rules.

Where a file had multiple alternate key indices, if an index was built from a
calculated value that used a T-conversion or a TRANS() function to reference a
record that did not exist, all later index updates for the same write would
damage the index.

Use of PSTAT could cause the process being queried to crash if it had a very
deep execution stack or was executing a very long command.  

A phantom would fail to start correctly if the parent process terminated before
it had commenced its initialisation.

The Proc A command did not treat semicolons in the source data as a special
character separating multiple items.

A Proc with a command of H with no qualifying text caused the Proc processor
to loop.

The LPTR keyword was not recognised by the FILE.STAT command.

The WHEN clause of the query processor was not handling some complex conditions
correctly.

A Pick style qualified display clause on a multivalued field was equivalent to
use of WITH when it should have been equivalent to use of WHEN.

Quitting out of a PSTAT command could result in not being able to start pahntom
processes.

The @FILENAME synonym for @FILE.NAME was not recognised by the QMBasic
compiler.

The QMBasic OPENSEQ statement did not return the blocking user number via the
STATUS() function if the record was locked by another user.

Some PDA devices would report errors on access to files on the removeable
memory card if the PDA had powered down while the file was open.

  • 2.8-8
Relational operators in correlatives were not implying use of the reuse option.

The C operation in F-correlatives did not handle negative numbers.

Format codes applied to integer numeric values when non-default NLS delimiters
were selected returned an incorrect result.

The SET.FILE command did not handle multi-files correctly.

Use of the NEXT qualifer to SETPTR or SET.QUEUE could cause QM to terminate
abnormally on subsequent use of the CAPTURING clause to EXECUTE.

The QMBasic CLEAR statement caused updates to subroutine argument variables
that were passed by reference not to be treated as though they were passed by
value, not returning the new value to the calling program.

The QMBasic SUM() and SUMMATION() functions should ignore non-numeric elements
in the dynamic array that they are summing.
  • 2.8-7
Deleting a record from a file that used record level encryption could fail to
remove the record from an alternate key index.
The SED editor hung when trying to delete a record via the explore buffer if
that record was locked by another user.

The query processor treated Fn field references as being single valued.

Reference to a dimensioned matrix on a QMBasic source line above the
corresponding DIM statement generated a compilation error.

A performance optimisation in the QMBasic LOCATE statement could result in the
incorrect field position being returned or a QM fatal error. Also, LOCATE could
incorrectly report an item as found if the leading characters matched the final
item in the dynamci array being searched.
  • 2.8-6
The installer on some Linux systems could fail to set permissions correctly.

There was an assumption that $HOLD was always in its default location.

FORMAT was creating a VOC record named X.
  • 2.8-5
The init.d scripts on Linux and FreeBSD did not allow for installation with the
QMSYS directory in a non-default location.

The -R option of qmfix could report that the file was unusable.
  • 2.8-4
A direct network connection to QM using ports 4242 (telnet) or 4243 (QMClient)
would fail on some versions of the network management software used by Linux
and the PowerPC version of the Mac.

Attempting to open a file that uses record level encryption was causing an
abort for users with no access to the encryption key. This should have taken
the ELSE clause of the open.

FILE.SAVE was ignoring any account name given on the command line and saving
all accounts.

Using SEL.RESTORE to restore the VOC needed the file name to be entered as
VOC-RESTORE. 

A QMBasic source line that generate a very large volume of object code could
result in the program terminating unexpectedly.

AccuSoft have supplied a correction to the terminfo definition for F5 in the
vt100-at, vt220-at, vt320-at and vt420-at terminal types.
  • 2.8-3
Attempting to access a hashed file for which a user was locked out by file
permissions could appear to open it as a directory file though it would not be
possible to read or write records.

Creating an alternate key index with an I-type, C-type or correlative that
compiles to more than 512 bytes caused QM to terminate with a fatal error and
left the index file corrupt.

QM could terminate with a fatal error if a command executed using OS.EXECUTE
with the CAPTURING clause returned only a newline.

Use of an invalid pathname with the QMBasic OSWRITE statement did not take the
ON ERROR clause.
  • 2.8-2
The ANALYSE.FILE command could wrongly report a file as having resizing
disabled when it did not, or vice versa.

The CREATE.INDEX and MAKE.INDEX commands did not always correctly recognise
equivalent indices, resulting an an extra index being created where another
that already existed could be used instead.

Deleting all lines below the current position in ED and then saving the item
could sometimes add a blank line to the end of the data.

The query processor did not apply CSV quoting rules to column headings when
creating comma separated output. 

A QMBasic class module with more than 255 entry points would appear to compile
correctly but would produce run time errors.

The QMBasic READCSV statement could cause a fatal error that terminated the
QM session. 

A QMBasic class module in which a public function or subroutine aborted and the
destructor routine then also aborted did not clean up correctly from the first
abort.
  • 2.8-1
ACCOUNT.RESTORE could restore data to an incorrectly formed file name.

The query processor BY.EXP.DSND operator was sorting in ascending order.
  • 2.7-1
The account restore tools did not handle filenames containing illegal
characters correctly.
  • 2.6-14
The VOC $RELEASE record command editor control flags (field 3) were lost when
installing a new release.

The CODEPAGE option of the PTERM command was rejected.

The QMBasic compiler could report an error if an include item had the same name
as an equated token.
  • 2.6-13
A QMBasic indirect call where the indirection variable as an equated token
failed to compile correctly.

A QMBasic expression containing a Pick style implicit format element could
sometimes be interpreted as a dimensioned matrix reference.
 
The MT conversion code was returning 00:00 for a null input value.
  • 2.6-12
The FORMAT command reported an internal data mismatch if the program being
formatted started with a blank line.

The QMBasic SELECTV statement generated a run time error if the source and
target variables were the same.

SELECTV "" TO VAR created a list with a single item named "__".

The mc4 and mc5 terminfo keys were incorrect for some AccuTerm terminal types
causing use of auxiliary port printing to display the data at the same time as
it was printed. Also, pagination prompts could appear while the data was sent
to the terminal.

The QMCall() function of the qmclilib library on PPC Mac systems did not
update returned argument values correctly.
  • 2.6-11
Use of an equate token that matched the alphabetic part of an @-variable name
caused compilation errors.

A null string in the data supplied to the !SORT() subroutine could cause QM
to crash.
  • 2.6-10
Phantom processes failed to start when launched from sessions logged in as
specific user numbers by use of the PORTMAP configuration parameter.

The Hot Spot Monitor (HSM) did not count direct calls correctly.

QMBasic programs accepted a string containing only a period as being a valid
number and treated it as zero.