Fixed bug #598: Allow missingValueAction to be specified for sortSpec
[yaz-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 1d656c7..34dbf9a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,391 @@
-Possible compatibility problems with earlier versions marked with '*'.
+Allow missingValueAction to be specified for the sortspec string - 
+function yaz_sort_spec. By default, the missing value action is null.
+Use ! to specify "abort". Use = followed by stringvalue to specify default
+value.
+
+Ensured that Present-handler (if defined) is called in GFS before any call to
+fetch-hhndler.  This now includes piggy-backed presents as well as SRW/U
+searchRetrieve requests.
+
+Documentation for YAZ is now based on the Docbook XML/XSLT using
+xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ
+is no longer depending on jade/openjade or docbook-to-man scripts.
+PDF is no longer part of the distribution - but can optionally be
+made using DSSSL/jadetex or FOP.
+
+Added retrieval handling support in Generic Frontend Server to support
+conversion between MARC/XML as well as XSLTtransforms. See
+etc/yazgfs.xml for an example.
+
+Added Authentication support to Generic Frontend Server in SRU
+mode. Authentication using HTTP Basic is supported, as is the use
+of 'x-username' and 'x-password' parameters in the request itself.
+
+Added support for a new character set MARC8s identical to MARC8 except
+that it converts combined characters to single Unicode characters in the
+Latin-1 range (when possible).
+
+--- 2.1.18 2006/04/24
+
+ASN.1 compiler 0.4: generates brief Doxygen file header for 
+generated .h/.c files. 
+
+Utility yaz_iconv now supports conversion to MARC-8.
+
+New facilities for the MARC module. The reading - and writing of
+content are separate methods for the yaz_marc_t handle. The following
+read functions are available: yaz_marc_read_iso2709 (Reads MARC in
+ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange
+format). Write functions have prefix yaz_marc_write_.. The existing
+utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still
+available. Removed support for OAI-MARC and simplexml (not the
+simplexml from PHP5).
+
+Added a new ZOOM event type ZOOM_EVENT_END which signals no more events
+to be returned for this connection.
+
+--- 2.1.16 2006/03/31
+
+Allow multiple languages and charsets to be specified with
+yaz-client. Each item must be separated by comma (NO BLANKS). E.g.
+  negcharset iso-8859-1,utf-8
+
+Translation of proximity nodes from CQL into PQF now works.
+
+Moved to automake 1.8, 1.9.
+
+Added function yaz_log_set_handler which allows a log handler to be
+installed. This handler will be called for all log messages.  Output
+to file is also produced; but that can be disabled by passing NULL
+fname to yaz_log_init_file.
+
+Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537.
+
+For SRW (including GFS), accept application/soap+xml as content-type
+for SOAP msg.
+
+For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&)
+produces NO stylesheet reference even if a default stylesheet is specified
+in GFS XML config.
+
+--- 2.1.14 2006/03/14 
+
+Updated Windows package to include yazd.dll + yazd.lib for the
+Development component.
+
+If the environment variable YAZ_LOG is set, then it is used as a
+string indicating the default level of logging to use if not
+overridden by calls to yaz_log_init() or yaz_log_init_level().  If
+it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is
+used as before.  So, for example, to omit warnings from YAZ logging,
+       export YAZ_LOG=-warn
+
+cql_transform() now map structure and other attributes before indexes,
+so that index-specific structures and other attributes can override
+defaults.  So now a combination of mapping specifications such as:
+       structure.* = 4=1
+       index.dc.date = 1=date-modified 4=5
+does the right thing.
+
+cql_transform() now also respects the "always" mapping specification,
+which establishes an initial set of attributes to be used for all
+terms except where overridden by more specific attributes associated
+with the index, relation or modifier.
+
+Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies
+which mode to use; one of "post", "get" or "soap" (SRW, default).
+
+Fixes for yaz_iconv routines: changed trie-based character set conversions
+to use only non-negative values for bit fields due to Sun's C compiler not
+supporting negative values.
+
+Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8
+sequences where not read correctly. Fix by Rustam Usmanov.
+
+Updated win/makefile to use options, settings which makes things
+compile with VS C 2005.
+
+--- 2.1.12 2006/02/01 
+
+Fixed bug in yaz_oi_update which used incorrect value for categoryValue.
+
+In ZOOM socket code, use select instead of poll on MacOSX.
+
+ZOOM-C now support client-side compilation of CQL into RPN that is
+sent to the server, enabling CQL to be used against all Z39.50
+servers.  Use ZOOM_query_cql2rpn() to set the compiled CQL into a
+ZOOM_query object, and submit it using ZOOM_connection_search().
+The CQL-to-RPN translation uses a configuration file, the name of
+which must be specified in the Connection's "cqlfile" option.
+
+ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1()
+function, which takes as its start-term parameter a ZOOM_query object
+(which may have had either CQL or RPN set into it).
+
+
+--- 2.1.10 2005/11/29 
+
+Added ZiNG Update Support. New codecs are defined in srw.h. Extended the
+GFS to support this as well. Backend handler, bend_srw_update, does the
+update work. Code contributed by Ko van der Sloot.
+
+Allow retrieval of Search Result-1 information in ZOOM by the use of
+options that are attached to a result set. ZOOM documentation updated
+accordingly.
+
+Fixed bug #416: First/second comb characters not handled in the MARC-8 to
+UTF-8 conversion. Patch by Raj Patel.
+
+Added option -m to GFS to control formatting of timestamps in log file.
+
+Added 'exit' as synonym for 'quit' in yaz-client
+
+Added support for specifying SRW resultSetId + resultSetIdleTime in a
+Generic Frontend Server's search handler. Refer to include/yaz/backend.h
+for the new members. Patch by Ko van der Sloot.
+
+Added support for SRU POST. It is supported for content-type
+application/x-www-form-urlencoded only. Patch by Ko van der Sloot.
+
+Do not build the separate Multi-threaded (MT) library libyazthread.la.
+Instead make the library libyaz.la multi-threaded. Threading as a whole
+can still be disabled by configure option --disable-threads. Previosly, 
+with older GLIBCs there were problems with MT libs under Apache. This
+has now been fixed a long time ago.
+
+Fixed bugs in yaz_log that occurred on Sparc Solaris in Multi-threaded
+applications.
+
+CQL module modified to be case insensitive for relations/indexes/operations.
+
+Fixed bug in CQL transform code: incorrect value relationModifieder
+was used.
+
+Added 'show all' command for yaz-client which retrieves all results
+for last search.
+
+Added new yaz-client, xmles, which takes a (private) OID and
+a document to be sent as an extended service request.
+
+Describe new yaz-client commands wait_response and set_auto_wait.
+
+Increase TCP/IP listener backlog from 3 (which I am guessing was
+copied from the SunOS manual entry way back when) so SOMAXCONN, so
+that the socket will queue as many incoming connections as it's able
+to handle ongoing connections.  In other words, it will never now
+refuse a connection that it would be able to handle merely because
+it's not got around to accepting() enough of the pending connections
+yet.  This is the behaviour anyway under Linux, where the listen()
+argument is ignored; but not under BSD and on systems such as
+MS-Windows that use BSD-derived TCP/IP stacks.  The behaviour of
+YAZ-based servers should now be uniform across operating systems in
+this respect.
+
+yaz-marcdump uses 64-bit file access on some systems. This is enabled 
+on Linux and other Unix variants where _FILE_OFSET_BITS=64 is supported.
+This allows yaz-marcdump to read large MARC batches (>2 GB).
+
+Modified all YAZ source files - except the source which is auto-generated
+by tools - to use spaces rather than TABS. Emacs/VIM trailer added to
+all source files.
+
+Add ZOOM_connection_option_getl() and ZOOM_options_getl(),
+corresponding to the existing *_setl() function.  These allow option
+values containing arbitrary valuues.
+
+Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of
+ZOOM_resultset_sort() in new applications.  Its behaviour is identical
+except that it returns an indicator of whether or not the sort
+criterion was accepted (0 for OK, -1 for invalid).
+
+--- 2.1.8 2005/06/07 
+
+Fixed bug in yaz_marc_decode_buf. By mistake the routine appended
+MARC output rather than returning "new" buffer.
+
+yaz-client warns about unknown init options.
+
+Fixed bug #371: "options concurrentOperations ignores concurrentOperations"
+
+--- 2.1.6 2005/05/24 
+
+Added support for SRW sort in Generic Frontend Server. Patch
+by Ko van der Sloot. Member srw_sortKeys in bend_search_rr holds
+sortKeys - or NULL if none is provided.
+
+Fixed bug #307: It was impossible to specify indefinite/no timeout
+for ZOOM_event. Special timeout value -1 now means indefinite timeout
+(i.e.  no timeout).
+
+Added support for multiple languages and charsets to be specified in
+ZOOM. Each charset/language is separated by a blank. If negotiation is
+in effect in init-response, Option
+"negotiation-charset-in-effect-for-records" set to 1(true) or 0(false). 
+Code based on patch by Vasiliy Osadchuk.
+
+Fixed bug #306: infinite recursion that occurred when calling
+yaz_log_level_init as the first call (before other log level or
+nmem_init calls)
+
+Fixed bug in scan handling in front end server: if preferred-Position-In-
+Response was non-present, a NULL pointer referece was performed.
+
+--- 2.1.4 2005/04/26 
+
+Changed include/yaz/diagbib1.h and added include/yaz/diagsrw.h with
+diagnostic messages+codes for Bib-1 and SRW. Preprocessor defines are
+now defined for all those error codes. So instead of putting 109 in
+your program you'd use YAZ_BIB1_DATABASE_UNAVAILABLE. The messages
+are generated from a .csv - file. See src/bib1.csv and srw/srw.csv.
+
+Modified the yaz-marcdump utility to skip garbage bytes between MARC
+records in a file.
+
+Fixed bug - uninitialized memory - due to bad code for fix of bug #272.
+
+Program yaz-client now exits and produces an error message if multiple
+Z39.50 servers are specified on the command line (none or one allowed
+only).
+
+Program yaz-marcdump skips garbage bytes between ISO2709 records rather
+than abort.
+
+--- 2.1.2 2005/03/16 
+
+Fixed bug #273: Update for recent MARC-8 -> UNICODE changes. 
+
+Fixed bug #272: Preserve spacing for CCL terms.
+
+--- 2.1.0 2005/03/14 
+
+Added support for virtual hosts and multiple backend servers for
+the YAZ frontend server. The configution is XML based and
+support specificition of CQL to RPN mappings and explain information.
+See section "Virtual Hosts" in the YAZ manual.
+
+Extended OPAC display utility. OPAC display utility renders
+bibliographic (MARC) record as well. Added yaz_opac_decode_wrbuf
+to supplement yaz_marc_decode_wrbuf.
+
+Fixed a bug in MARC decoder that could caused it to crash for some
+invalid MARC records. More diagnostics and warnings where added in
+XML output (warnings, etc are stored in comments).
+
+--- 2.0.34 2005/02/08 
+
+Fixes for UNIX domain sockets. Bug #261.
+
+Fixes for MARC-8 to UTF-8 conversion. Bugs #258 and #260.
+
+Fixed bug #263: YAZ MARCXML dump shows extra spaces after control fields.
+Added yaz_marc_subfield_str which defines subfield lead string which is
+used in YAZ_MARC_LINE format. Default string is blank+$. Added
+yaz_marc_endline_str which defines end of fields string used in
+YAZ_MARC_LINE format. Default string is newline.
+
+Experimental support for MarcXChange. This format can be produced
+by yaz-marcdump and is implemented in yaz_marc_decode - functions.
+ http://www.bs.dk/standards/MarcXchange.xsd
+
+Added yaz-client commands scansize that sets maximum number of
+entries to be returned by scan.
+
+--- 2.0.32 2005/01/11 
+
+Added support for SRW scan in yaz-client and Generic Frontend Server.
+
+* Added whereInList member to SRW Scan Term.
+
+* Changed Z_SRW_scanRequest to be able to carry both CCL and PQF.
+
+Fixed NMEM system to return aligned blocks on the smallest boundaries
+that are suitably aligned for all possible types on the particular
+architecture YAZ is being built for.
+
+--- 2.0.30 2005/01/04 
+
+Fixed numerious warnings that was issued with newer versions of GCC.
+
+Fixed NMEM system to return aligned blocks on 8 byte boundaries rather
+than 4 bytes, since 4 may not be enough on some systems such as GCC 3.4.3
+on Solaris.
+
+Make YAZ Generic Frontend Server slightly faster.
+
+Enhance (and reduce) logging for Generic Frontend Server.
+
+Revert YAZ log system so that it flushes every write operation
+by default. (YAZ 2.0.26 and earlier verisons did that). Bug #240.
+
+Modified the YAZ logging system. The LOG level defines use YLOG_ prefix
+instead of LOG_, due to name clash with syslog(3). LOG_ are still
+present. New applications should define YAZ_USE_NEW_LOG=1 - this
+will effectively disable old definitions.
+
+--- 2.0.28 2004/11/09 
+
+Added yaz_log_time_format which specifies log format using
+strftime(3).
+
+Added yaz_log_module_level which returns mask for a module. Value
+is non-zero mask a if module is enabled; zero if disabled.
+
+* Fixed bug #148: CQL parser may leak. A few prototypes were changed
+in include/yaz/cql.h.
+
+Fixed bug #176: Dont throw diagnostics on empty SRU args.
+
+Fixed bug #175: surrogate diagnostics in SRW lacking NS.
+
+Fixed bug #172: RPM builds does not enable SSL.
+
+Doxyfile.in part of dist. Doxyfile generated by configure.
+
+Configure aborts if any of --with-xml2, --with-openssl, --enable-tcpd 
+are given and the corresponding component does not exist.
+
+Extend CCL documentation in YAZ reference. Describe r=r.
+
+--- 2.0.26 2004/10/01
+
+Fixed MARC->MARCXML conversion to properly deal with
+fields, subfields, indicators having non-ASCII characters.
+
+Fixed MARC->MARCXML conversion so that ASCII control characters
+except TAB,CR,LF are removed from resulting XML (XML 1.0 does not
+support these).
+
+Added YAZ GFS support for conversion from Z39.50 surrogate
+diagnostics to SRW surrogate diagnostics.
+
+Bug fix: YAZ GFS did not return schema in explainResponse.
+
+--- 2.0.25 2004/09/30
+
+The YAZ GFS when converting SRW/SRU requests to Z39.50 structures
+now converts recordSchema to elementSetName as well as schema URI.
+
+Fixed bug in COMSTACK that prevented HTTP request packages from being
+decoded properly.
+
+--- 2.0.24 2004/09/29
+
+Added CCL facility r=r "range" which is similar to r=o "ordered" but
+does not require white-space before and after the dash in a range, e.g.
+x=-1990 is equivalent to x <= 1990 iff r=r, but equivalent to x= -1980
+iff r=o.
+
+Fixed a few AC_TRY_LINK configure tests that did not operate properly
+due to new GCC removing "redundant" code.
+
+Added yaz-client commands scanpos and scanstep that sets preferred
+position and step-size for scan.
 
 Macro YAZ_INIT in yaz.m4: option --with-yazconfig renamed to --with-yaz.
 
+Added CCL utility ccl_qual_buf which parses one or more CCL 
+spec lines in a buffer.
+
 Added CCL utility ccl_qual_line which adds CCL qualifier line consisting
 of name and value - ignoring empty lines and comments.
 
@@ -19,7 +403,8 @@ non-NULL - will be called during odr_destroy.
 Fixed bug in CCL parser where truncation char was not removed from
 right side when truncation=both was in effect.
 
-Fixed CQL parser to use unsigned chars (occurred on MS .NET).
+Fixed CQL parser to use unsigned chars for isxxx from ctype.h due
+to VS.NET.
 
 --- 2.0.23 2004/08/11