Hay muchas prestaciones nuevas y mejoras en esta version. Gracias a unestros desarrolladores y mantenedores, casi todos los aspectos del sistema han recibido alguna atencion desde la version anterior. He aqui un resumen, sumario incompleto:
Las vistas y las reglas son ahora funcionales gracias al extensivo nuevo codigo en las reglas de re escritura de Jan Wieck. Tambien escribio un capitulo sobre ello en la Guia del Programador.
Jan tambien contribuyo al segundo lenguaje procedural, PL/pgSQL, para ir con el original lengaje procedural PL/pgTCL con el que el contribuyo la ultima version.
Tenemos soporte opcional de caracter multiple-byte de Tatsuo Iisho para complementar nuestro soporte local.
Las comunicaciones cliente/servidor han sido depuradas, con mejor soporte para mensajes asincronos e interrupciones, gracias a Tom Lane.
El depurador de sintactico ejecuta ahora coersiones de tipo automatico para emparejar argumentos a los operadores y funciones disponibles, y para emparejar columnas y expresiones con columnas destino. Esto utiliza un mecanismo generico que soporta las prestaciones de extensibilidad de tipo de Postgres. Hay un nuevo capitulo en la Guia de Usuario que cubre este asunto.
Tres nuevos tipos de datos han sido anadidos. Dos tipos, inet y cidr, soportan varias formas de trabajo en red IP, subred, y direccionamiento por maquina. Ahora hay un tipo entero de 8 byte disponible para algunas plataformas. Vease el capitulo de tipos de datos en la Guia del Usuario para mas detalles. Un cuarto tipo, serial, se soporta ahora por el depurador de sintactico como una amalgama de tipo int4, una secuencia, y un indice unico.
Han sido añadidas varias prestaciones mas sintacticas compatibles con SQL92, incluyendo INSERT DEFAULT VALUES Several more SQL92-compatible syntax features have been added, including INSERT DEFAULT VALUES
La instalacion y configuracion automatica del sistema ha recibido alguna atencio, y deberia ser mas robusta para mas plataformas de lo que nunca ha sido.
Se requiere un dump/restore utilizando pg_dump o pg_dumpall para aquellas que desen migrar datos desde cualquier version anterior de Postgres.
Correciones de errores --------- Correcion para una minuscula perdida en PQsetdb/PQfinish(Bryan) Se elimina char2-16 de los tipos de datos, se utiliza char/varchar(Darren) Pqfn no maneja un mensaje de NOTICE(Anders) Reducidas elevadas esperas por ocupacion a causa de bloqueos en transacciones con muchos procesos en servidor(backends) (dg) Deteccion de bloqueos de transacciones atascadas (dg) Correcion para masrcas de tiempo en estilo "ISO" en decodificacion y codificacion(Thomas) Correccion del problema con borrado de tabla (drop) despues de deshacer (rollback) una transaccion(Vadin) Cambiado mensaje de error y eliminado mensaje actualizado no funcional(Vadim) Correccion para verificacion de la matriz (array) de COPY Correccion para SELECT 1 UNION SELECT NULL Correccion para perdidas de buffer en llamadas a objetos grandes(Pascal) Cambio de propietario de tipo oid a int4(Bruce) Correccion de error en la compatibilidad con oracle de las funciones btrim() ltrim() y rtrim() Correccion de invalidacion en rebasamientos de cache compartida(Massimo) Prevencion de perdidas en descriptores de ficheros en COPY's fallidos(Bruce) Correccion para perdidas en la pg_select de libpgtcl(Constantin) Correccion de problemas con usuario/contrasena de mas de 8 caracteres(Tom) Correccion de problemas con manejo de NOTIFY asincronos en el proceso en servidor(backend)(Tom) Correccion de muchas entradas de sistema malas(Tom) Mejoras ------------ Actualizacion de ecpg y ecpglib, vease src/interfaces/ecpg/ChangeLog(Michael) Se muestra en indice utilizado en un EXPLAIN(Zeugswette) EXPLAIN invoca una regla de sistema y muestra plan(es) para la reescritura de consultas(Jan) Conocimiento multi-byte de muchos tipos de datos y funciones, via configure(Tatsuo) Nuevo configure con la opcion --with-mb(Tatsuo) Nueva opcion initdb --pgencoding(Tatsuo) Nueva opcion createdb -E multibyte(Tatsuo) Select version(); ahora devuelve la version de PostgreSQL(Jeroen) Libpq permite ahora clientes asincronos(Tom) Se permite la cancelacion desde el cliente de una consulta en el proceso en servidor(backend)(Tom) Psql cancelas las consultas ahora con Control-C(Tom) Usuarios de Libpq no necesitan dar consultas dummy para obtener mensajes NOTIFY(Tom) NOTIFY envia ahora al PID del emisor, asi que puedes decir si eras tu mismo(Tom) La estructura de PGresult ahora incluye un mensaje de error asociado, si lo hay(Tom) Se definen los argumentos "tz_hour" y "tz_minute" como date_part()(Thomas) Se anaden rutinas para convertir entre varchar y bpchar(Thomas) Se anaden runtinas para permitir el dimensionamiento de varchar y bpchar dentro de las columnas de destino(Thomas) Se anade un bit a las etiquetas (flags) oara soportar zona horaria y minutos en la devolucion de fecha(Thomas) Se permiten mas variaciones en numeros de coma flotante (por ej. ".1", "1e6")(Thomas) Se corrigen el analisis sintactico de menores unarios empezando con espacios(Thomas) Se implementa TIMEZONE_HOUR, TIMEZONE_MINUTE por especificaciones SQL92(Thomas) Se verifica i se ignora adecuadamente constraints de columna FOREIGN KEY(Thomas) SE defina USER como sinonimo de CURRENT_USER por especificacines de SQL92(Thomas) Se habilita HAVING en clausulas pero no se corrije en ningun otro lugar aun. Se hace el tipo "char" un sinonimo de "char(1)" (actualmente implementado como bpchar)(Thomas) Se guarda el tipo de cadena si esta especificado por el manejo de la clausula DEFAULT(Thomas) Operaciones de coercion abarcan diferentes tipos de datos(Thomas) Se permite a algunos indices utilizar columnas de diferentes tipos(Thomas) Anadidas capcidades para coersiones de tipo automatico(Thomas) Depuraciones para objetos grandes, de este modo un fichero es truncado en su apertura(Peter) Depuraciones de la lectura de lineas(Tom) Se permite que psql \f \ tomen los espacios en blanco como delimitadores(Bruce) Se pasa el pg_attribute.atttypmod al frontal de la aplicacion para las longitudes de los campos(Tom,Bruce) Libreria de compatibilidad con Msql en /contrib(Aldrin) Se elimina el requerimiento de que las clausulas identificadoras ORDER/GROUP BY estuvieran incluidas en la lista de la busqueda(David) Se convierten columnas para emparejarlas en las clausulas de UNION(Thomas) Se elimina fork()/ecec() y solo se hace fork()(Bruce) Depuraciones en Jdbc(Peter) Se muestra el estado del proceso en el servidor (backend) en la linea de comandos de ps(solo funciona en algunas plataformas)(Bruce) Pg_hba.conf tiene ahora una opcion sameuser en el campo de la base de datos Se hace que lo_unlink tome el parametro oid, no el int4 Nueva DISABLE_COMPLEX_MACRO para compiladores que no pueden manejar nuestras macros(Bruce) Libpgtcl maneja los NOTIFY ahora como un evento Tcl, no se necesitan enviar consultas tontas(Tom) Depuraciones en libpgtcl(Tom) Anadida una opcion -error al comando pg_result de libpgtcl(Tom) Anadido parche locale, vease docs/README/locale(Oleg) Correccion para pg_dump con ella la sintaxis de CONSTRAINT y CHECK es correcta(ccb) Nuevo codigo contrib/lo para eliminar grandes objetos huerfanos(Peter) Nuevp comando psql "SET CLIENT_ENCODING TO 'encoding'" para prestaciones multi.byte, vease /doc/README.mb(Tatsuo) codigo /contrib/noupdate para revocar permisos de actualizacion en una columna Libpq puede ser compilada ahora en win32(Magnus) Anadido PQsetdbLogin() en libpq Nuevo tipo entero 8-byte, comprobado por el configure del soporte para OS(Thomas) Mejor soporte para nombres entrecomillados de tabla/columnas(Thomas) Se rodean los nombres de tabla y columnas con dobles comillas en pg_dump(Thomas) PQreset() trabaja ahora con contrasenas(Tom) Handle case of GROUP BY target list column number out of range(David) Se permite UNION en las subconsultas Anadido auto-dimensionamiento a la pantalla a los comandos \d?(Bruce) Se utiliza UNION para mostrar todos los resultados de \d? en una consulta(Bruce) Se anade la prestacion de busqueda de campo \d?(Bruce) Pg_dump utiliza menos peticiones \connect(Tom) Se hace que la opcion -z de pg_dump trabaje mejor, se documenta en la pagina de manual(Tom) Se anade la clausula HAVING con total soporte para subconsultas y uniones(Stephan) Full text indexing routines in contrib/fulltextindex(Maarten) Los ids de transacciones se almacenan ahora en memoria compartida(Vadim) Nuevo PGCLIENTENCODING cuando ejecutan el comando COPY(Tatsuo) Soporte para la sintaxis SQL92 "SET NAMES"(Tatsuo) Soporte para LATIN2-5(Tatsuo) Anadido el caso UNICODE los test de refresion(Tatsuo) Depuracion de gestor de bloqueos, nuevos modos de bloqueos para LLL(Vadim) Se permite el uso de indice en clausulas OR(Bruce) Se permite "SELECT NULL ORDER BY 1;" La explicacion VERBOSE del plan lo imprime, y ahora imprime en bonito el plan al fichero de log del postmaster(Bruce) Se anaden indices al display para el comando \d(Bruce) Se permite el GROUP BY en funciones(David) Nuevo pg_class.relkind para obejtos grandes(Bruce) Nuevo modo de enviar libpq mensajes NOTICE a diferentes localizaciones(Tom) Nuevo comando de escritura \w para psql(Bruce) Nuevo /contrib/findoidjoins escanea columnas oid para encontrar relaciones de union(Bruce) Se permite que sean considerados indices compatibles binarios cuando se verifican indices validos para una clausula de restriccion conteniendo una constante(Thomas) Nuevo codigo ISBN/ISSN en /contrib/isbn_issn Se permite NOT LIKE, IN, NOT IN, BETWEEN, y NOT BETWEEN constraint(Thomas) Nuevo sistema de reescritura corrige muchos problemas con reglas y vistas(Jan) * Reglas en trabajos relacionados * Event qualifications on insert/update/delete work * New OLD variable to reference CURRENT, CURRENT will be remove in future * Update rules can reference NEW and OLD in rule qualifications/actions * Insert/update/delete rules on views work * Multiple rule actions are now supported, surrounded by parentheses * Regular users can create views/rules on tables they have RULE permits * Rules and views inherit the permissions on the creator * No rules at the column level * No UPDATE NEW/OLD rules * New pg_tables, pg_indexes, pg_rules and pg_views system views * Only a single action on SELECT rules * Total rewrite overhaul, perhaps for 6.5 * handle subselects * handle aggregates on views * handle insert into select from view works System indexes are now multi-key(Bruce) Oidint2, oidint4, and oidname types are removed(Bruce) Use system cache for more system table lookups(Bruce) New backend programming language PL/pgSQL in backend/pl(Jan) New SERIAL data type, auto-creates sequence/index(Thomas) Enable assert checking without a recompile(Massimo) User lock enhancements(Massimo) New setval() command to set sequence value(Massimo) Auto-remove unix socket file on startup if no postmaster running(Massimo) Conditional trace package(Massimo) New UNLISTEN command(Massimo) Psql and libpq now compile under win32 using win32.mak(Magnus) Lo_read no longer stores trailing NULL(Bruce) Identifiers are now truncated to 31 characters internally(Bruce) Createuser options now availble on the command line Code for 64-bit integer supported added, configure tested, int8 type(Thomas) Prevent file descriptor leaf from failed COPY(Bruce) New pg_upgrade command(Bruce) Updated /contrib directories(Massimo) New CREATE TABLE DEFAULT VALUES statement available(Thomas) New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas) New DECLARE and FETCH feature(Thomas) libpq's internal structures now not exported(Tom) Allow up to 8 key indexes(Bruce) Remove ARCHIVE keyword, that is no longer used(Thomas) pg_dump -n flag to supress quotes around indentifiers disable system columns for views(Jan) new INET and CIDR types for network addresses(TomH, Paul) no more double quotes in psql output pg_dump now dumps views(Terry) new SET QUERY_LIMIT(Tatsuo,Jan) Source Tree Changes ------------------- /contrib cleanup(Jun) Inline some small functions called for every row(Bruce) Alpha/linux fixes Hp/UX cleanups(Tom) Multi-byte regression tests(Soonmyung.) Remove --disabled options from configure Define PGDOC to use POSTGRESDIR by default Make regression optional Remove extra braces code to pgindent(Bruce) Add bsdi shared library support(Bruce) New --without-CXX support configure option(Brook) New FAQ_CVS Update backend flowchart in tools/backend(Bruce) Change atttypmod from int16 to int32(Bruce, Tom) Getrusage() fix for platforms that do not have it(Tom) Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page NS32K platform fixes(Phil Nelson, John Buller) Sco 7/UnixWare 2.x fixes(Billy,others) Sparc/Solaris 2.5 fixes(Ryan) Pgbuiltin.3 is obsolete, move to doc files(Thomas) Even more documention(Thomas) Nextstep support(Jacek) Aix support(David) pginterface manual page(Bruce) shared libraries all have version numbers merged all OS-specific shared library defines into one file smarter TCL/TK configuration checking(Billy) smarter perl configuration(Brook) configure uses supplied install-sh if no install script found(Tom) new Makefile.shlib for shared library configuration(Tom)