
List of known NoSQL bugs:

------------------------------------------------------------------------

'envtotable' prints empty values for NOSQL_INSTALL, NOSQL_STDOUT and
NOSQL_STDERR environment variables even if such names do not appear in
the program environment at all. I dunno where they come from! I suspect
that, al least with mawk(1), referencing an undefined array element
causes that element to pop into existence, albeit with an empty value.
The effect of this behavior, although annoying, should not be armful,
as if the referenced element is not-null then it will appear on output
with the correct value, while if it is null then it will show-up with
an empty value.

------------------------------------------------------------------------

The original 'compute' and 'getrow' operators that used to come with
NoSQL contained a small parser that turned expressions based on column
names into expressions based on column positions, as needed by the
underlying AWK interpreter. Such parser was far from perfect and
it actually proven to be buggy in several occasions. Consequently,
every time it was changed to fix bugs it tended to break elsewhere.
The proper way of doing things is the one applied by the 'awktable'
operator, kindly contributed by Micah Stetson, which was not available
at the time when 'getrow' and 'compute' were written. Beginning with
version 4.1.15 I have dropped the latters completely and turned them
into symbolic links to the former. When called as either 'getrow' or
'compute', 'awktable' will interpret expressions based on ``plain''
column names, such as 'Name', without the need to prepend a dollar
sign to them, as in '$Name'. Please consider that the way this is
handled makes 'awktable' much slower and it is meant mainly to be
used interactively at the command-line, where speed can often be
traded-in for comfort. Application programs and scripts should always
use 'awktable' and its native syntax.

Replacing the old 'getrow' and 'compute' with symlinks to a properly
modified 'awktable' introduced the following compatibility issues that
a NoSQL user must be aware of:

1) Option '--input' was dropped in favour of '-i' .
2) Options '--output' and '-o' are no longer supported.
3) Option '--no-header' was dropped in favour of '-N' .
4) Option '--help' was dropped in favour of '-h' .
5) Options '--debug' and '-x' were dropped .
6) getrow's options '--not-empty' and '-e' were dropped .
7) getrow's options '--test' and '-t' were dropped .
8) getrow's options '--key' and '-K' were dropped .
9) getrow's options '--first-match' and '-f' were dropped .


Some further remarks are in order:

1) Due to how 'awktable' and AWK work, referring to plain names does not
   work inside the BEGIN{} block, so if you need names to work also in
   there then you must use $Name. Furthermore, either you use plain names
   in your script or you use the native syntax, as mixing them will not
   produce the expected results in most cases.

2) Expressions to be evaluated can be passed to either 'getrow' or
   'compute' on the command-line, not in a file (as it would be
   with 'awktable ... -f program-file').


Please make sure you have inspected your pre-existing NoSQL applications
and modified the as needed prior to upgrading to version 4.1.15 .

