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

Latest revision as of 03:42, 16 April 2009

The list of fixed issues below are in reverse version order. If one is fixed, please use the <strike></strike> html command to block out the fixed bug.

  • 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 "__".  --Unable to replicate. Need source code example--

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. --Unable to replicate. Need source code example--

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.