New OID-translation functions
[yaz-moved-to-github.git] / CHANGELOG
index fe441f8..66a644d 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,455 @@
 Possible compatibility problems with earlier versions marked with '*'.
 
 Possible compatibility problems with earlier versions marked with '*'.
 
+Add three new utility functions for translating OIDs between various
+formats -- symbolic name such as "Usmarc", minus-1-terminated int
+arrays and dotted strings such as "1.2.840.10003.9.5.1":
+ int *oid_name_to_oid(oid_class oclass, const char *name, int *oid);
+ char *oid_to_dotstring(const int *oid, char *oidbuf);
+ char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf);
+
+Reverted modifications for ES Update definition for z_IU0Update 
+(OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition
+is back to YAZ 2.0.2.
+
+String value attributes for CCL parser.
+
+--- 2.0.3 2003/06/20
+
+Fix CCL directive @case handling so that it affects string match for
+both CCL keywords and qualifiers.
+
+* ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and
+1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update .
+Decoder has been updated with ASN.1 changes as listed in
+http://lcweb.loc.gov/z3950/agency/defns/updateES.html
+Note that the "latest" DB Update, OID 1.2.840.10003.9.5.1.1 , handler
+z_IUUpdate, remains unchanged. 
+
+ZOOM_record_get may now return a record in a specific character set.
+For type use "form; charset=from[,to]" where form (render, xml, ..) ,
+"from" is the character set of record as returned by target. "to" is
+the character set to be returned. If omitted, "to" is UTF-8.
+
+YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp
+
+New ODR utility, odr_getelement, which returns name of element for
+which encoding/decoding failed.
+
+Fixed ODR so that it returns error code OREQUIRED rather than ONONE
+in cases where a required element was omitted.
+
+Bug fix: some MARC8 sequences were not converted.
+
+New ZOOM option "step" which specifies number of records to be
+retrieved in one chunk. Used in conjunction with "start" and "count".
+
+SRW support for yaz-client. Use scheme http: to use it, e.g.
+ http://host:port/db
+
+yaz-client no longer does (un)intelligent character set conversions
+by default. Can be enabled with charset and marc_charset commands.
+
+xmalloc trace fix for 64-bit systems such as DEC alpha. 
+
+Solaris 2.6 compile fix.
+
+New function, cql_strerror() translates SRW error codes, as returned
+by cql_transform_error(), into human-readable English strings.  Used
+in yaz-client diagnostics when appropriate.
+
+New CQL2RPN query-type for the command-line yaz-client, parses CQL and
+converts it into a type-1 query which is sent to the server.  This
+makes CQL available for use with all Z-servers, as opposed to the tiny
+minority that can handle CQL queries themselves.
+
+--- 2.0.2 2003/04/28
+
+New Debian package layout similar to the Redhat Package layout.
+
+New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record
+and search result respectively.
+
+--- 2.0.1 2003/04/25
+
+Redhat package is now several packages: libyaz (runtime libraries),
+libyaz-devel (development and documentation, and yaz (utility programs).
+Package spec file by Morten Bøgeskov.
+
+New member 'schema' in struct bend_fetch_rr which the name of requested
+schema (SRW/SRU) for record (or NULL if none was given). The fetch
+handler MAY set this to reflect the schema of the returned record.
+
+New member 'display_term' in struct scan_entry. GFS now sets member entries
+and allocates scan entries to be filled by user scan handler. In previous
+version, entries member was allocated by the scan handler. That still works,
+but the GFS will ignore member display_term - assuming it was NOT set by
+the handler. The fact that the GFS now allocates the entries both allows
+for new members and makes a scan handler easier to write.
+
+Fix CQL lex buffer overflow.
+
+SRW/SRU recordPacking. For SRW default recordPacking is string. For
+SRU default recordPacking is string.
+
+SRU protocol support for frontend server.
+
+Fix compile bug for systems that have nl_langinfo but CODESET undefined.
+
+Added missing PQF transform rules for <= and >= . Thanks to Peter Popovics.
+
+Added scan for the ZOOM shell (zoomsh).
+
+--- 2.0 2003/02/23
+
+* String Identifers for Schemas (Amendment 5).
+http://lcweb.loc.gov/z3950/agency/amend/am5.html
+Old definition for schema
+  Odr_oid *schema; /* OPT */
+New:
+  int which;
+  union {
+     Odr_oid *oid;
+     Z_InternationalString *uri;
+  #define Z_Schema_oid 1
+  #define Z_Schema_uri 2
+  } schema; /* OPT */
+
+* resultCount parameter to Sort Response (Amendment 1).
+http://lcweb.loc.gov/z3950/agency/amend/am1.html
+
+Support for SRW 1.0 over HTTP. This is an optional feature and
+requires libxml2 to operate. Enable SOAP by specifying --with-xml2
+for configure.
+
+Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER
+on the same port.  SRW SearchRetrieveRequests are mapped
+to bend_init,bend_search,bend_fetch,bend_close. 
+
+Z39.50 Query Type-104 added - to facilitate CQL within Z39.50.
+
+CQL support. Source is directory 'cql'. CQL is supported in ZOOM
+(both SRW and Z39.50) and the YAZ client (Z39.50 only).
+
+ZOOM connections are SRW based if schem http is used for hostname
+in connect, e.g.  z = ZOOM_connection_new("http://myserver");
+ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x");
+
+CCL proximity operators !n, %n converts to PQF @prox 0 n 1 2 k 2
+and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false,
+distance=n, order=true/false, relation=le, prox unit=word. If
+n is omitted, distance 1 is used.
+
+Fixed problem with C compiler include path in wrong order.
+
+For TCP/IP COMSTACK, set recv buffer to an appropriate "large" value
+on Solaris. Patch from Ko van der Sloot.
+
+New MARC decode API. All new functions operate on a yaz_marc_t
+handle. The most important new functions are: yaz_marc_create,
+yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler,
+decode and destroy respectively. Decoder can produce formats
+MARC line, simple XML, OAI MARC and MARC XML (LoC). See
+include/yaz/marcdisp.h.
+
+YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts
+to UTF-8, UCS-32, wchar_t or Latin-1.
+
+* Prototypes for yaz_iconv_-functions moved to separate header 
+include/yaz/yaz-iconv.h.
+
+Make a few private functions 'static' in unix.c. This prevents
+duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977.
+
+For ZOOM connection, the options targetImplementation{Id,Name,Version}
+are set when Init Response is received.
+
+New function ZOOM_connection_error_x similar to ZOOM_connection_error
+but returns diagnostic set as well.
+
+New function yaz_strerror which is a portable wrapper for
+strerror/strerror_r/GetLastMessage.
+
+* ZOOM_record_get supports type "xml" in which case MARC XML (from LOC)
+is returned for MARC. If type is "oai", then OAI MARC is returned.
+
+Fix creation of lib/yaz-config so it works if srcdir != objdir. Patch
+from Kang-Jin Lee.
+
+--- 1.9.2 2002/11/26
+
+yaz_marc_decode uses OAI MARC as XML format for ISO2709 records.
+
+Fix bad race conditions on SIGTERM and terminate gracefully in
+frontend server.
+
+Move retrieval (data1) module to Zebra since nobody seems to be
+using it.
+
+Add GRS-1 render for ZOOM using same format as yaz-client.
+
+--- 1.9.1 2002/10/05
+
+Added man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1).
+
+Fix broken ESpec handling in data1 module.
+
+SGML reader parses comments and makes them part of the data1 tree.
+
+Added several type casts so that YAZ compiles as C++ code.
+
+ZOOM didn't handle PDU encoding failures properly.
+
+Added more Bib-1 diagnostics (approved extensions).
+
+GNU configure: better check for iconv.
+
+More portable use of accept, getpeername. Check for socklen_t. Use
+int/size_t if socklen_t is not defined.
+
+--- 1.9 2002/09/06
+
+PQF parser rejects bad queries - including those with extra
+characters in them. PQF parser used to silently ignore that.
+Cleaner API for PQF added, which allows you to get detailed
+error information for bad queries (see yaz/pquery.h).
+
+Fixed bug in ZOOM_record_get for type "database".
+
+Implemented mini iconv library supporting conversions between
+UTF-8, UCS4, UCS4LE and ISO-8859-1. Implemented in util/siconv.c.
+
+* Removed XML reader (d1_expat.c). It's part of Zebra instead.
+
+--- 1.8.9 2002/08/20
+
+Fixed ZOOM C record cache so that preferredRecordSyntax and
+elementSetName is used to check for already fetched records.
+
+--- 1.8.8 2002/08/02
+
+Added three members in bend_initrequest structure to facilitate
+character set negotiation.
+
+Fixed a bug in frontend server that could cause indefinite
+loops under rare conditions. 
+
+Revised character set utilities (charneg.h) so that encoding
+UCS-4, UCSA-4, UTF-16 and UTF-8 are encoded non-privately.
+
+For PQF, directive @term <type> sets term type for Scan/Search.
+Here <type> is general, string, numeric, null. The term type
+is inherited - just like @attr.
+
+New call odr_set_charset that sets character set conversion for
+international-strings on a ODR stream. Prototype is:
+ int odr_set_charset(ODR o, const char *to, const char *from);
+The InternationalString is still represented as C string in YAZ 
+so native strings of type UTF-8, ASCII, etc. will work (UTF-16
+won't). On the protocol level, you can use any encoding.
+
+Support for UNIX sockets in ZOOM.
+
+Solaris recv sometimes returns errno == ENOENT. It is treated as
+EINPROGRESS. COMSTACK patch by Ko van der Sloot.
+
+New COMSTACK of type UNIX Socket. Use "unix:/path" as address for
+both client and server. Code by Morten Bøgeskov.
+
+--- 1.8.7 2002/05/22
+
+On Windows ZOOM functions are of type __stdcall rather than __cdecl, so
+that they can be used directly from Visual Basic. You must recompile
+your windows APP if you're using ZOOM.
+
+Character Set and Language Negotiation(3) for ZOOM API and YAZ client.
+Commands "lang" and "charset" sets language and character set respectively.
+Options "lang" and "charset" is interpreted by the ZOOM API. Note, these
+are not part of the official ZOOM spec) All is due to Oleg Kolobov. 
+
+Attributes from multiple CCL fields may be OR'ed rather than merged
+using directive "@field or". Fields are still merged by default -
+equivalent to "@field merge".
+
+Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch
+by Oleg Kolobov.
+
+Fixed bug in zget for parameter ExtendedServicesResponse.
+
+Fix OID for ILL.
+
+--- 1.8.6 2002/03/25
+
+Added PQF feature: '@attr type=value' may be written as '@type=value'.
+
+Client displays USR.1:SearchResult-1 (hits per term).
+
+Additional Search Info for search in Generic Frontend Server.
+
+Fixed CCL parsing of "field=s".
+
+WIN32 installer - using the excellent NSIS software from nullsoft.
+
+Fixed CCL parsing of "field = - <number>".
+
+Added function yaz_marc_decode that decodes MARC for line mode
+display or XML (similar to that used by JZKit).
+
+Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the
+Z39.50. But ISO/ILL was, however.
+
+Added patch by Rustam T. Usmanov that implements Z39.50 duplicate
+detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3).
+See:
+ http://lcweb.loc.gov/z3950/agency/amend/am2.html
+ http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html
+
+--- 1.8.5 2002/02/03
+
+New YAZ client features: Command completion and new commands:
+push_command, set_apdufile, set_marcdump, set_cclfields, register_oid.
+Code provided by Jacob Poulsen.
+
+New call oid_trav, that visits all registered OIDs via callback.
+
+Function ZOOM_record_get now returns const char pointer rather than
+void pointer. It saves a lot of type casts.
+
+For YAZ client, command "auth" now allows you to set authentication
+in IdPass style. It is enabled when three tokens are given - order
+is user, group and password.
+
+Fix memory leaks in MARC record handling for ZOOM.
+
+New option for YAZ client, -k <kilobytes> that sets
+maximum record size. Similar to -k option for generic frontend
+server and yaz-ztest.
+
+More fixes for scan. Non-zero stepSize handled. OID's fixes.
+
+Prefix query parser reports "fail" when bad attribute set is given.
+
+Fix in MARC decoder. Proximity logging. Fix for attribute set
+in scan handler for server. Patches by Shigeru Ishida.
+
+SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM
+works with SSL.
+
+Configure option --with-openssl=<dir> now works when a directory is
+specified. Patch provided by Morten Bøgeskov.
+
+New option for YAZ client, -u <auth>, that sets authentication.
+
+ZOOM fix: error information was sometimes "missing", since error
+was cleared/reset too when it shouldn't.
+
+ZOOM_record_get returns ISO2709 buffer when "raw" is given.
+
+--- 1.8.4 2002/01/04
+
+Scan for ZOOM API. New object ZOOM_scanset. New functions
+ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and
+ZOOM_scanset_destroy.
+
+New ZOOM function, ZOOM_connection_last_event, that returns type
+of last event (such as "receive data", "send data", "apdu received",
+etc.
+
+New ZOOM option, schema, that specifies schema for retrieval.
+
+New CCL feature. Qualifiers can be aliases for one or more
+other qualifiers (if more than one is given, OR is used).
+
+ZOOM uses named result sets if target supports it.
+
+Two new YAZ client commands: .  (dot, which sources a script of YAZ
+client commands), and ! (to execute shell command.). Implemented
+by Jacob Poulsen.
+
+Working on Debian packages.
+
+--- 1.8.3 2001/11/19
+
+YAZ client enables named result sets only if target supports it.
+
+*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_.
+
+* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get
+with key="host" to get same result.
+
+* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get.
+Function Z3950_resultset_record(s) returns references to records
+"owned" by resultset. To become owner use Z3950_record_clone.
+
+Function z_ext_record handles Extended Services. Thanks to
+Irina Dijour.
+
+--- 1.8.2 2001/11/12
+
+CCL Parser fix: ignore token comma when dealing with and-lists.
+
+Documentation updates for COMSTACK.
+
+* ZOOM changes. Query object renamed from Z3950_search to Z3950_query.
+Changed prototype Z3950_records. For some functions, int parameters
+were changed to size_t.
+
+TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak
+on some Unices.
+
+New MARC decode/display function, marc_display_exl, which properly rejects
+non-ISO2709 records. YAZ client uses it.
+
+--- 1.8.1 2001/10/29
+
+Fix bug: local attribute set wasn't set correctly in PQF strings.
+
+--- 1.8 2001/10/25
+
+* Old Z39.50 codecs no longer supported. 
+
+Added ZOOM C binding. See http://zoom.z3950.org/
+
+Renamed states for COMSTACKs to avoid confusion with events.
+
+Implemented cs_look and proper cs_rcvconnect.
+
+Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas.
+
+Configure detects POSIX threads on OpenBSD.
+
+When sort flag 'i' was specified in yaz-client the caseSensitivy flag
+was set to a wrong value.  Thanks to Robert Sanderson for reporting this.
+
+When error is returned from present handler, non-surrogate diagnostic
+is returned in present response (and fetch handler is no longer called).
+
+* Minor adjustments to pquery parser (PQF). Token characters may be
+escaped by using backslash (C-style).
+
+PQF parser allows string attribute values to be specified. For @attr,
+non-numeric characters after the equal-sign are treated as strings
+(e.g. @attr 9=title).
+
+CCL trunction character may be defined (@truncation in file)
+
+* function zget_ExtendedServicesRequest sets waitAction to
+  waitIfPossible (was wait).
+
+Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks
+to Matthew Carey.
+
+CCL operator names may be set in field definition files (CCL_bibset).
+See ccl/bib1 for an example.
+
+Fixes in ASN.1 compiler for C++ compatibility.
+
+* Renamed members "and" and "or" in struct Z_Operator to "op_and"
+and "op_or" to avoid conflict with C++.
+
+Fixed problem with GNU readline detection on Redhat 7.0.
+
+Added step-size for Scan backend handler.
+
 Fixed bug that made the frontend server crash when no attribute
 set was specified for scan.
 
 Fixed bug that made the frontend server crash when no attribute
 set was specified for scan.