$Id: ChangeLog,v 1.21 2006/03/10 11:31:38 carlo Exp $

Version 4.0.14 April 24th 2006:

* Fixed a bug in 'muxtotable' regarding null '-s' pattern.
* Added option '-P' to 'nblparser'.
* Version control switched from cvs to subversion.


Version 4.0.13 March 10th 2006:

* Fixed a bug in 'csvtotable' about a misleading NR value in error message.
* Fixed a bug in arguments passed by 'deptable' to the back-end 'getcolumn'.

* Licensing: due to the current debate on the upcoming GPLv3 vs. GPLv2,
  I have decided to amend the NoSQL copyright terms to explicitly state
  that the the only valid version of the GPL as far as NoSQL is concerned
  is GPL version 2 dated June, 1991 (ie GPLv2, not v2.2 or v3.x or whatever),
  unless explicitly otherwise stated. This change is effective starting
  with NoSQL version 4.0.13-20060226, February 26th 2006.

* Fixed a rather subtle bug in 'jointable', caused by the selection
  of the improper delimiter ":" in multi-field joins. Now I have
  changed the delimiter to octal "\001", which seems to be more
  appropriate.


Version 4.0.12, January 10th 2006:

* Added the 'nosqlcommands.table' documentation file,
  kindly contributed by Michael Somos.
* Added option '-s' to 'totaltable'.
* Added case-insensitive matching on attribute names to 'ldaptolist'.
* Minor improvements to documentation files, courtesy of Michael Somos.
* Added option '-s' to 'muxtotable'.
* Minor improvement in the '--highlight' option of 'addrow'.
* Added auto-removal of highlights to 'edittable'.
* Fixed a bug in the 'remember-as' statement of NBL.
* 'getrow' and 'compute' are now deprecated in favour of 'awktable'.
* Patched 'install-sh' and 'src/Makefile' to allow for better
  specification of the target installation directory, as suggested
  by Jim Hart.
* Fixed a couple of gcc(1) warnings for missing includes in jointable.c.


Version 4.0.11, April 8th 2005:

* Improved the 'updtable' operator to support table keys on multiple
  columns.
* Dropped option '-d' from 'updtable' and added options '-K' and '-n'.
* Added option '-e' to 'nltable'.
* Added automatic key column detection based on file-names.
* The 'jointable' operator has been split into a C wrapper and
  an AWK back-end. The old AWK-only script had ended-up with requiring a
  few system() calls, thus causing it to spawn six processes in total.
  The rewriting has reduced the no. of processes to four, and it seems
  also to have cured a few hard-to-trace random problems in the old
  script. Those problems were probably due to timing and machine-load
  issues that were causing some instability and unpredictability in the
  interactions between the front-end AWK script and the back-end shell
  processes.
* Added option '-S' to 'searchtable' and 'keysearch'.
* The Soundex algorithm that I used was broken, it should be ok now.
* Added variable-length Soundex codes to 'soundex' and 'keysearch'.
* Added option '-x' to 'keysearch'.
* Changed 'maketable' to accept column-level comments on multiple lines.
* The new 'jointable' based on FIFOs was subject to random hangs.
  To make it stable I had to turn the FIFOs into temporary files.
* Fixed a justification bug in 'prtable' when switching from integer to
  float.
* Fixed a bug in the '-i' option of 'awktable'.
* Re-introduced the old 'envtotable' operator, that had been dropped
  a few versions ago.
* Added option '-N' to 'listtotable'.
* Fixed a bug in the multi-column key handling code of 'updtable'.
* Added option '-R' to 'istable'.
* Index files produced by 'indextable' have now '._x.' instead of '.x.'
  in their file name. This was done because 'x' can also be a valid
  column name, and the old convention was potentially confusing when
  used in conjunction with the new key name auto-detection feature
  of NoSQL.
* Added LC_ALL=POSIX in 'filtertable' when the operator is requested
  to run either sort(1) or join(1). This bug was causing 'edittable'
  not to sort properly on the primary key of the table being edited.
* Added option '-D' to 'nblparser'.
* Added the 'muxtotable' experimental operator.
* Added support for columns in comma-separated format to 'sorttable'.
* Fixed a "..." string runaway error from AWK in 'getrow'. The error
  was triggered by conditions such as: $(1)=="strig"{_nosql_nr++;...
  as reported by 'getrow -x'. Apparently " and { must be spaced, i.e.:
  $(1)=="strig" {_nosql_nr++;...
* Fixed a bug in 'getrow', that was producing a broken table on
  output when multiple columns with the same name were present in the
  input table.
* Added table auto-detection to 'muxtotable'.
* Fixed another bug in 'updtable'.
* Fixed a parsing error in 'getrow', when a literal contained a
  valid column name.
* Added option '-p' to 'addcolumn'.
* Added option '-m' to 'tabletolist'.
* Added the 'muxtosql' experimental operator.
* Added the 'psqltotable' experimental operator.
* Made several operators strip trailing blanks from field values by default.
* Fixed another bug in the parser section of 'getrow' and 'compute',
  when dealing with quoted column names.
* Added the NOSQL_DEBUG environment variable.
* Fixed under-estimated ALLOCSIZ value in 'getrow' and 'compute'.
* Fixed a bug in the '-o' option of 'tabletocsv' and 'tabletordb'.
* Added option '-B' to 'tabletocsv'.
* Added option '-r' to 'tabletordb'.
* Added option '-n' to 'tabletordb'.
* Fixed a bug in the hidden field handling code of 'nblparser'.
* Added options '--show-copying' and '--show-warranty' to most of
  the NoSQL operators.
* Fixed wrong handling of '-r' option in 'getcolumn'.
* Made some improvements to 'nblparser'.
* Added the 'setnames' operator.
* Added 'unique-by' to NBL.
* The never-ending story of bugs in the parser code of 'getrow'
  and 'compute', again. And more to come, for sure.


Version 4.0.10, August 10th 2004:

* Added the 'ldaptolist' experimental operator.


Version 4.0.9, August 8th 2004:

* Fixed a bug in the '-f' option of 'rename'.
* 'jointable' has been changed to support joining on multiple columns.
  This is still experimental and needs a lot more testing, especially
  on non-Debian platforms.
* Fixed non-compliancy in 'tabletocsv'. This has caused the operator to
  loose backward-compatibility, also in command-line options. Please
  refer to 'tabletocsv --help' for more info.
* Added the 'csvtotable' operator.
* Added the 'usleep' utility, used internally by 'jointable'.
* Added option '-r' to 'istable' and 'islist'.
* Added option '-n' to 'numer'.
* Option '-i' of 'search' was changed into '-I', for consistency
  with '-i' meaning 'input' in most other operators.
* Added the 'seektable' operator.
* Added option '-I' to 'keysearch' (requires 'seektable'), to enable
  searching with secondary indices.
* To provide better supporto for Linux distributions that abide by the
  Filesystem Hierarchy Standard (FHS), a number of operators have been
  renamed to make them less likely to collide with equally-named common
  utilities. The old names have been left in place in the form of symbolic
  links, for backward compatibility, but it will be up to distribution
  maintainers to decide whether to set up those symbolic links or not.
* Added the 'summtable' operator.
* Added the 'itable' utility.
* Added the 'formtable' operator.


Version 4.0.8, 11 July 2004:

* Added option '-r' to 'column'.
* Changed 'Table' into 'Relation' in the database schema, and
  modified 'nblparser' accordingly.
* Added options '-a', '-k' and '-K' to 'maketable'.
* Added option '-a' to 'islist' and 'istable'.
* Fixed a bug in 'jointable' '-a' option.
* Improved output paging behaviour of 'prtable'.
* Fixed a bug in the 'nosql' shell wrapper.
* Added option '-t' to 'total'.
* Fixed a buffer overflow in addcol(), on tables with many columns.
* Added option '-s' to 'gregorian'.
* Added option '-f' to 'rename'.
* Added supporto for multiple renames 'rename'.
  See 'rename --help' for more.


Version 4.0.7, 09 October 2003:

* Added option '-s' to 'number'.
* 'tabletolist' options '-c' and '-C' are now deprecated in favour of
  '-F' and '-N' respectively.
* Added option '-j' to 'tabletolist'.
* Plugged a major security flaw in 'nblparser'.
* Added option '-H' to 'addrow'.
* Added option '-a' to 'edittable'.
* 'tmptable' long option '--delay' changed into '--delete'.
* Added option '-d' to 'nblparser'.
* The official NoSQL documentation is now available in the form of
  a Wiki site at the following URL:
  http://www.scriptaworks.com/cgi-bin/wiki.sh/NoSQL/
* Minor changes as suggested by David Frey, as a consequence of the
  Debianisation process.
* Added option '-n' to 'nblparser'.



Version 4.0.7-rc2:

* Added the 'nblparser' experimental operator.
* The 'union' operator has been ported to C, and its '-a' option has
  been changed to '-f', for clarity.


Version 4.0.7-rc1:

* Documentation licensing switch from FDL to GPL.
* Added an experimental 'awktable' operator, kindly contributed by
  Micah Stetson. 'awktable' which is mainly a scripting tool, can
  be seen as a flexible replacement for both 'row' and 'compute'.
* 'istable' and 'islist' now check also for duplicated column names.


Version 4.0.6 - 15 July 2003, by Carlo Strozzi

* Corrected a few typos in texts.
* The command-line interface to 'jointable' has changed.
  Please refer to the NEWS file for more info.
* Added the 'notcolumn' operator as an alias for 'rmcolumn'.
* Added simple report formatting capabilities to 'total'.
* Main documentation kindly revised and corrected by Thomas Miller.
* Fixed a bug in the parser() function used by 'row' and 'compute'.
  The function was failing of the last character of statements like
  "some_column=some_other_column".
* Fixed a bug in the 'sorttable', whereby when realloc(3) was called
  by addarg() on h->args a partial buffer overwrite occurred.
* Fixed a bug in the 'nosql' shell wrapper, as it was possible to
  run any shell command through it, and not just NoSQL operators.
  Not a big problem actually, but not very useful/sensible either.
* A completely rewritten version of the 'column' operator was kindly
  provided by Micah Stetson.
* Re-introduced option '-n' in 'maketable'.


Version 4.0.5 - 19 April 2003, by Carlo Strozzi

* Removed useless noise printed by 'search' to STDERR.
* Minor changes to the documentation.
* A few operators have been re-written in C. As a consequence,
  I had to make a few incompatible changes to the command-line
  interface of some of them. See the NEWS file for more details.
  Such changes involve rarely-used options, though, so their
  impact should be limited.
* Re-introduced the ChangeLog file, for GNU compliancy.
* Introduced the 'keysearch' experimental operator.

