After over 3 weeks of debugging beta1, the PostgreSQL Developers are
pleased to announce the release of beta2, available at:

                ftp.postgresql.org/pub 

To be visible on all mirror sites shortly ... 

Changes since beta1 include, but are not limited to:

- New plperl Makefile.
- Update HISTORY file.
- Update history
- Added bug reporting guidelines
- Some corrections in installation procedure
- Add QNX fixes from Kardos, Dr. Andreas
- Fix plpsql for bsdi.
- Write up new TIME WITH TIME ZONE type.
- Update libpq documentation for PQconndefaults() change.  Add section
  about thread-safeness of the library.
- Fix " to ' on lobj docs.
- first pass on regression tests for the Foreign Key support in 7.0 
- Fix typo (introduced by xemacs markup normalization) in the syntax summary.
- Karel Zakr's revised patch to fix psql prompt for local host connections.
- More fixes for psql ^C handling, especially during copy. Still doesn't
  cope so well with copy to but that will have to wait for the next release.
- Also added -X option to prevent reading .psqlrc startup file.
- Tweak GROUP BY so that it will still accept result-column names, but only
  after trying to resolve the item as an input-column name.  
- Add safety check on expression nesting depth.  
- Correct bogus syntax in SET example.
- Update ecpg to use snprintf
- Fix for bsdi 4.1 shared libraries.
- Update config.guess and config.sub to latest versions available from
  the GNU Autoconf CVS server.
- Added configure test for readline's filename_completion_function
- Completed psql's \? help
- Fix a bunch of minor portability problems and maybe-bugs revealed by
  running gcc and HP's cc with warnings cranked way up.  Signed vs unsigned
  comparisons, routines declared static and then defined not-static,
  that kind of thing.  Tedious, but perhaps useful...
- Change reindex command to work properly with gist/hash/rtree
- Cache fmgr lookup data for index's getnext() function in IndexScanDesc,
  so that the fmgr lookup only has to happen once per index scan and not
  once per tuple.  Seems to save 5% or so of CPU time for an indexscan.
- Implement column aliases on views "CREATE VIEW name (collist)".
- Implement TIME WITH TIME ZONE type (timetz internal type).
- Remap length() for character strings to CHAR_LENGTH() for SQL92
  and to remove the ambiguity with geometric length() functions.
- Keep length() for character strings for backward compatibility.
- Shrink stored views by removing internal column name list from visible rte.
- Implement min(), max() for time and timetz data types.
- Implement conversion of TIME to INTERVAL.
- Implement abs(), mod(), fac() for the int8 data type.
- Rename some math functions to generic names:
  round(), sqrt(), cbrt(), pow(), etc.
- Rename NUMERIC power() function to pow().
- Fix int2 factorial to calculate result in int4.
- Enhance the Oracle compatibility function translate() to work with string
  arguments (from Edwin Ramirez).
- Modify pg_proc system table to remove OID holes.
- Fix longstanding bug that kept functional indexes from working when you
  defaulted the opclass.  
- Trial implementation of ALTER DROP COLUMN.
- Remove gratuitous and incorrect begin/commit transaction calls in
  CREATE DB/DROP DB.  
- Changed execution time of ON <event> RESTRICT referential
  integrity triggers to after statement allways. Ignores
  deferred state now, closer to SQL3 semantics.
- Remove another incorrect UserAbortTransactionBlock() call.
- Repair access-to-already-freed-memory error recently introduced into
  VACUUM.
- Add the check CommonSpecialPortal in use
- Fix "Invalid XID in t_cmin" error in vacuum.
- Redo permissions-checking code so that it does the right thing at APPEND
  nodes.  The former version failed to check permissions of relations that
  were referenced in second and later clauses of UNIONs, and it did not
  check permissions of tables referenced via inheritance.
- fix broken nodeMaterial
- Change parse-time representation of float literals (which include oversize
  integers) to be strings instead of 'double'.  We convert from string form
  to internal representation only after type resolution has determined the
  correct type for the constant.  This eliminates loss-of-precision worries
  and gets rid of the change in behavior seen at 17 digits with the
  previous kluge.
- equalAttr() had its strcmp test backwards 
- Fix some bogosities in the code that deals with estimating the fraction
  of tuples we are going to retrieve from a sub-SELECT.  
- Further tweaking of logic that decides when to materialize an uncorrelated
  subplan: do it if subplan has subplans itself, and always do it if the
  subplan is an indexscan.  
- Apply a MATERIAL node to the result of an uncorrelated subplan, if it
  looks like it will save computation to do so.
- Avoid a little bit of unnecessary computation in canonicalize_qual.
- Fix performance bug in constant-expression simplifier.  
- Simplify parsing of column constraints by treating constraint attributes
  as independent clauses in the grammar.  analyze.c takes care of putting
  the data where it belongs and complaining about invalid combinations.
- Also, make TEMP (and TEMPORARY) non-reserved words.
- Add 'datetime' -> 'timestamp' conversion to xlateSqlFunc() to ease
  the pain of updating apps to 7.0.  
- Somehow, the variant NATIONAL CHAR [ VARYING ] was missing from the
  set of SQL-standard type names that we accept.
- Clean up grammar's handling of NULL in expressions
- Suppress timespan and datetime ops from being brought in via pg_dump
  from previous release.
- Make make_const() check the size and precision of a T_Float Value,
  and produce either FLOAT8 or NUMERIC output depending on whether the
  value fits in a float8 or not.  
- Silly typo in new coding for doNegate failed to negate a negative value 
  back to positive, so '- - 123.45' did the wrong thing.
- Turns out that Mazurkiewicz's gripe about 'function inheritance' is
  actually a type-coercion problem.  If you have a function defined on
  class A, and class B inherits from A, then the function ought to work
  on class B as well --- but coerce_type didn't know that.  Now it does.
- Make TypeCategory think that NAME is a member of type category STRING.  
  Also, if UNKNOWNOID is passed in, return UNKNOWN_TYPE not USER_TYPE.
- Add lztext to TypeCategory so that lztext OP text cases will work
  correctly (the lztext value will be promoted to text automatically).
- Someone forgot about handling of typecasts applied to parameters.
- Fix exprTypmod to recognize length-coercion function expressions,
  such as bpchar(char_expression, N), and pull out the attrtypmod that
  the function is coercing to.  This allows correct deduction of the
  column type in examples such as
            CREATE VIEW v AS SELECT f1::char(8) FROM tbl;
  Formerly we labeled v's column as char-of-unknown-length not char(8).
  Also, this change causes the parser not to insert a redundant length
  coercion function if the user has explicitly casted an INSERT or UPDATE
  expression to the right length.
- Further fixes for bogus list-slinging, scribbling on input, etc in type
  coercion code.  I'm beginning to wonder why we have separate candidate
  selection routines for functions, operators, and aggregates --- shouldn't
  this code all be unified?  But meanwhile,
            SELECT 'a' LIKE 'a';
  finally works; the code for dealing with unknown input types for operators
  was pretty busted.
- Fix poorly worded error messages for unary operator type resolution
  failures.  Fix some outright bugs too, including a reference to
  uninitialized memory that would cause failures like this one:
        select -('1234567890.1234567'::text);
        ERROR:  Unable to locate type oid 2139062143 in catalog
- Performance improvement for lexing long strings: increase flex's
  YY_READ_BUF_SIZE, which turns out to have nothing to do with buffer size.
- Finish cleaning up backend's handling of /* ... */ and -- comments,
  per pghackers discussion around 20-Feb.  Also add specific error messages
  for unterminated comments and unterminated quoted strings.  These things
  are nonissues for input coming from psql, but they do matter for input
  coming from other front ends.
- improved the System V semaphore emulation of the QNX4 port.
- Undo a couple of mistaken applications of NameStr() to StringInfos.
- Fix some (more) problems with subselects in rules.  Rewriter failed to
  mark query as having subselects if a subselect was added from a rule
  WHERE condition (as opposed to a rule action).  Also, fix adjustment
  of varlevelsup so that it actually has some prospect of working when
  inserting an expression containing a subselect into a subquery.
- Fix performance problem in fireRIRonSubselect: with nested subqueries,
  fireRIRonSubselect was invoked twice at each subselect, leading to an
  exponential amount of wasted effort.
- Marginal performance improvement in LockBuffer --- calculate address
  of BufferLocks[] entry just once.  Seems to save 10% or so of the
  routine's runtime, which'd not be worth worrying about if it weren't
  such a hotspot.
- Fix comment spacing.
- Shared-memory hashtables have non-extensible directories, which means
  it's a good idea to choose the directory size based on the expected
  number of entries.  But ShmemInitHash was using a hard-wired constant.
  Boo hiss.  This accounts for recent report of postmaster failure when
  asking for 64K or more buffers.
- Change cancel while waiting-for-lock stuff.
- Check pending cancel request before waiting for lock
- Remove using puts() to print messages. Instead use TPRINTF.
- Reactivated LZTEXT data type and changed rule plan- and qual-strings
  into lztext.
- Support full POSIX-style time zone: EST+3, PST-3, etc.
- Patch fix timestamp_to_char() for infinity/invalid timestamp too.
- int8in failed to detect overflow; it really should.
- Sorting for the inet data type randomly returns the wrong result
  when you have networks with the same prefix, but different netmasks.
- Extend numeric_round and numeric_trunc to accept negative scale inputs
- Add numeric <-> int8 and numeric <-> int2 conversion functions, as well
  as a unary minus operator for numeric.  Now that long numeric constants
  will get converted to NUMERIC in early parsing, it's essential to have
  numeric->int8 conversion to avoid 'can't convert' errors on undecorated
  int8 constants.  Threw in the rest for completeness while I was in the
  area.
- Fix busted TRANSLATE() code --- it coredumped due to pfree()'ing the
  wrong pointer.
- Minor improvements in regprocout() and oidvectortypes().
- Update comment obsoleted by Thomas's latest fixes.
- Change rule dumper to produce reasonable output for casts that assign
  a specific length or precision, such as foo::char(8).  Remove erroneous
  removal of user-written casts at the top level of a SELECT target item.
- Quick hack solution so that pg_dump of views works.  
- Add date and time datatype handling to convert_to_scalar. 
- Remove unnecessary limitations on lengths of bpchar and varchar constants.
- fix the " '.' not allowed in db path" problem 
- Extend #ifdef CLOBBER_FREED_MEMORY debugging option so that memory
  freed wholesale by AllocSetReset() is overwritten too.
- Small performance improvement in comparetup_heap.
- Detect postmaster being ready by calling psql -l rathern than
  checking postmaster.pid. It's not enough to check the existence
  of postmaster.pid since DB recovery might be running.
- Fix problems with pg_upgrade found by Kardos, Dr. Andrea
- This avoids the useless rebuild of pg_version that used to happen on
  each build or install pass.
- Fixed psql's Control-C handling when COPY in progress
- psql's \d command wasn't doing the right things with 'char' (type 18)
  fields, nor with bpchar and varchar fields that have typmod -1.  The
  latter effectively have an unspecified length, so I made them display
  as char() and varchar() rather than falsely equating them to char(1)
  and varchar(1).
- Fixed deficiency where an unterminated (no semicolon) command at end of
  psql script would be dropped silently.
- Fix a couple of inconsistent usages of include <...> vs. include "...".
- Add missing files like foreign key regression tests and config.h.win32.
- Add Assert() to check for trying to heap_close a relation when the
  relcache entry's reference count is zero.
- Fix ==-instead-of-= typo that gcc does its level best to point out.
- Change PQconndefaults() to return a malloc'd array, instead of a static
  array.  This allows processing of conninfo strings to be made thread-safe,
  at the cost of a small memory leak in applications that use
  PQconndefaults() and are not updated to free the returned array via
  the new PQconninfoFree() function.  But PQconndefaults() is probably not
  used very much, so this seems like a good compromise.
- Clean up badly-formatted error messages from pg_connect.
- Avoid race conditions in detection of EINPROGRESS during connect().
- Repair unintentional damage to MULTIBYTE code.
- Tweak libpq so that if a backend ERROR message arrives while libpq
  thinks the connection is idle, the error message is displayed as if
  it were a NOTICE.  
- Patch for Irix from Mark Dalphin.
- Update perl5's self-test for changed spelling of connection failure
  error message.
- Clean up temp file in 'make clean'.
- exec_simple_check_plan() must not allow a plan having initPlans or
  subPlans to be considered 'simple'.  This fixes reported problem with
  'return exists (select 1 from foo);' in plpgsql function.
- Add 'volatile' declarations to silence gcc warnings about longjmp.
- Suppress unneccesary message from createdb
- Fixes for char_length() changes.
- Update expected files due to the psql format change
- Fix single-space typo in printed message in regress.sh.
- The regression test script runcheck.sh doesn't seem able to
  handle the blank line on the end of the resultmap file.
- Add LinuxPPC mappings
- Enabled regression driver to run without PGLIB set.
- Fixes for char_length() change.
- Fix multibyte regress results for EUC_CN, EUC_KR and EUC_TW
- Fix for char_length() changes
- Fix a couple of missed changes in expected results.
- Update geometry.out with results from Linux RH 5.2 system
- Tweak horology regress test to ensure platform-independent ordering of
  results in conversions tests.  Update horology-no-DST-before-1970.out.
- Remove SHOW after datestyle reset.
- Add SQL_ASCII test case
- Add SQL_ASCII encoding test case

Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
Systems Administrator @ hub.org 
primary: [EMAIL PROTECTED]           secondary: scrappy@{freebsd|postgresql}.org 

Reply via email to