pgmemcache 2.0.6
================
* Fix building on earlier releases than 9.1. (thanks for the bugreport from Florian Von Block)
* Add libsasl2-dev to build deps

pgmemcache 2.0.5
================
* Some preliminary work on SASL support
* Make pgmemcache work with PG 9.1
* Support for building debs against PG 9.0 and 9.1
* Move to GIT.
* Fix erroneous memory allocation get_multi (thanks iglue)

pgmemcache 2.0.4
================
* Add support for building an HTML doc out of the README.pgmemcache
* Make pgmemcache work with libmemcached's 0.39 and 0.40 which again break API compatibility
   * Remove memcache_stats(TEXT) (Note, memcache_stats() is still supported)

pgmemcache 2.0.3
===================
* Add support for all libmemcached 0.38 behaviors (a few had been added since these were updated the last time)
* Add preliminary Debian packaging support, documentation was updated a bit to reflect this.

pgmemcache 2.0.2
===================
* Make pgmemcache work with libmemcached 0.38 memory allocators.
This bumps up pgmemcache's libmemcached requirement up to 0.38.

pgmemcache 2.0.1
===================
* Remove some deprecated documentation
* Fix bug "[#1010761] Crash with pgmemcache 2.0.0 and postgres 8.4", thanks to Marc Munro for
pointing out the problem and a fix for it.
* Make libmemcached use PostgreSQL memory allocation routines. (requires libmemcached 0.31+), based on a patch from
Peter Meszaros with some editorialization by Hannu Valtonen. Note this bumps up our libmemcached minimum requirement to 0.31.

pgmemcache 2.0.0
===================
Finally a 2.0.0 release.

* Fix default (unset) GUC crashes, based on a patch from Claes Jakobsson
* Add BYTEA memcache_get
* Add TEXT[], BYTEA[] memcache_get_multi for the reduction of server roundtrips

pgmemcache 2.0 RC 1
===================
It looks likely that this is the last release before stamping this as 2.0.

* Fix pgmemcache not to throw an error when trying to delete a non-existent key from memcache.
(based on a report from Chander Ganesan)

pgmemcache 2.0 beta2
====================
On the way towards a 2.0 release:

* Make pgmemcache work on top of older versions of PostgreSQL (at least 8.3, probably earlier)
* Make libmemcached behavior configurable through PostgreSQL GUCs.
* prepend/append support

pgmemcache 2.0 beta1
====================

pgmemcache was completely rewritten to work on top of libmemcached. It requires PostgreSQL 8.4+ and
is not backwards compatible with older versions of PostgreSQL. That may or may not change depending
on how much are people interested in having it work on older versions.

Also some API's were deprecated:
* memcache_server_find_hash
* memcache_flush (note, not flush all)
* memcache_server_list (use stats)
* memcache_server_remove
* memcache_hash

Also starting from 2.0 beta 1 the maintainership has moved to Hannu Valtonen.

pgmemcache 1.2 beta1
====================

This release has a lot of new code and backward-incompatible changes;
it might be more accurate to label it "2.0".

* Add the pgmemcache.default_servers GUC variable. This specifies a
  list of memcached servers ('host:port' pairs) that pgmemcache will
  connect to by default. To use this, add pgmemcache to
  preload_shared_libraries and custom_variable_classes, and then
  define pgmemcache.default_servers as desired, all in postgreql.conf

* Remove memcache_free() and memcache_init(). Instead, define
  _PG_init() and _PG_fini() functions, so that Postgres can invoke
  them to do the appropriate initialization/cleanup work when
  pgmemcache is loaded/unloaded from a process.

* Don't allocate any memory in TopMemoryContext directly. Instead,
  create a small, long-lived context as a child of TopMemoryContext
  and use that for the allocations we need to make.

* Add a new function, memcache_server_remove().

* Add a new SRF, memcache_server_list().

* Fix compile breakage against recent CVS HEAD.

* Change memcache_server_find(TEXT) and memcache_server_find(INT4)
  to use OUT parameters, rather than returning a 'host:port' pair as a
  single text value.

* Fix for crashes in memcache_incr(), memcache_decr(),
  memcache_hash(): these weren't prepared to handle NULL inputs.

* Fix crash bug in memcache_flush_all0(): this function tried to
  access a nonexistent function argument.

* Remove support for memcache_add(TEXT), memcache_set(TEXT), and
  memcache_replace(TEXT). These were pointless, and treated NULL as
  the empty string, which is wrong.

* Remove support for the "flags" concept from the API. This wasn't
  actually feature complete (there was no way to fetch a flags value),
  and was buggy anyway. I might readd this later.

* Removed deprecated function memcache_flush_all(TEXT);
  memcache_flush(TEXT) should be used instead.

* Various code cleanup, editorialization on error message formats,
  and refactorings.

pgmemcache 1.1
==============

* Add a TODO list.

* Fix a potential memory leak in memcache_server_add(): this function
  might have unwittingly allocated memory in TopMemoryContext.

* Make the "port" argument to memcache_server_add() optional. If not
  specified, it defaults to the libmemcache default (11211).

* Add a "dist" target to the Makefile.


pgmemcache 1.1 beta1
====================

* New maintainer: Neil Conway. Thanks to the sponsorship of The Open
  Technology Group.

* Change build system to use just a normal Makefile and the Postgres
  PGXS infrastructure, rather than pmk. This means pmk is no longer a
  build dependency.

* Various fixes to allow pgmemcache to be built against PostgreSQL
  8.2, including adding PG_MODULE_MAGIC. I've briefly tested this
  release against CVS HEAD, 8.2, and 8.1. Note that this release will
  NOT compile against PostgreSQL 8.0 or earlier; if this is important
  to people, this could be fixed pretty easily.

* Fix a logic error in memcache_set_cmd(): as a result, memcache_set()
  and memcache_replace() now work as intended, instead of being
  aliases for memcache_add().

* Fix a buffer overflow in memcache_gen_host(): this function
  neglected to allocate space for the varlena header.

* Fix a read of uninitialized memory in memcache_atomic_op(),
  memcache_delete() and memcache_set_cmd().

* Remove all the code that connected and disconnected from SPI. As far
  as I can see, pgmemcache has no need to use SPI at all: SPI is
  intended for issuing SQL queries, which pgmemcache has no need to
  do. Similarly, use palloc() rather than SPI_palloc().

* Fix various compiler warnings with gcc -Wall on AMD64, and
  presumably other platforms as well. Use the C99 "PRIu64" macro to
  get a portable printf(3) conversion specifier for 64-bit
  unsigned integers.

* Fix error message style for elog() message strings: error message
  should not begin with a capital letter.

* Optimize a few functions to use a stack-allocated StringInfoData,
  rather than a heap-allocated StringInfo.

* Fix typo in the implementation of memcache_stat(TEXT).
