Guia del Programador de PostgreSQL

El equipo de desarrollo de PostgreSQL

Aviso LegalCubre hasta la versi�n 6.5

Tabla de contenidos
Sumario
Introducci�n
Recursos
1
2
Terminolog�a
Notaci�n
Y2K Statement (Informe sobre el efecto 2000)
1
Copyrights y Marcas Registradas
Arquitectura
Conceptos de Arquitectura de Postgres
Extensor SQL: Preludio
Como hacer extensible el trabajo
El Tipo de Sistema de Postgres
Acerca de los Sistema de Catalogo de Postgres
Extendiendo SQL: Funciones
Funciones de Lenguaje de Consultas (SQL)
Ejemplos
Funciones SQL sobre Tipos Base
Funciones SQL sobre Tipos Compuestos
Funciones de Lenguaje Procedural
Funciones Internas
Funciones de Lenguaje Compilado (C)
Funciones de Lenguaje C sobre Tipos Base
Funciones del Lenguaje C sobre Tipos Compuestos
Escribiendo c�digo
Sobrecarga de funciones
Conflictos en el Espacio de Nombres
Extendiendo SQL: Tipos
Tipos Definidos por el Usuario
Funciones Necesarias para un Tipo Definido por el Usuario
Objetos Grandes
Extenediendo SQL: Operadores
Informaci�n de optimizaci�n de operador
COMMUTATOR (conmutador)
NEGATOR(negador)
RESTRICT (Restringir)
JOIN (unir)
HASHES(desmenusamiento)
SORT1 and SORT2 (orden1 y orden2)
Extensiones de SQL: Agregados
El Sistema de reglas de Postgres
�Qu� es un �rbol de query?
Las partes de un �rbol de query
Las vistas y el sistema de reglas.
Implementaci�n de las vistas en Postgres
C�mo trabajan las reglas de SELECT
Reglas de vistas en instrucciones diferentes a SELECT
El poder de las vistas en Postgres
Efectos colaterales de la implementaci�n
Reglas sobre INSERT, UPDATE y DELETE
Diferencias con las reglas de las vistas.
C�mo trabajan estas reglas
Cooperaci�n con las vistas
Reglas y permisos
Reglas frente triggers
Utilizaci�n de las Extensiones en los �ndices
GiST Indices
Lenguajes Procedurales
Instalaci�n de lenguajes procedurales
PL/pgSQL
Panor�mica
Descripcion
Ejemplos
PL/Tcl
Introducci�n
Descripci�n
Enlazando funciones de carga din�mica
ULTRIX
DEC OSF/1
SunOS 4.x, Solaris 2.x y HP-UX
Triggers (disparadores)
Creaci�n de Triggers
Interacci�n con el Trigger Manager
Visibilidad de Cambios en Datos
Ejemplos
Server Programming Interface
Interface Functions
SPI_connect — Connects your procedure to the SPI manager.
SPI_finish — Disconnects your procedure from the SPI manager.
SPI_exec — Creates an execution plan (parser+planner+optimizer) and executes a query.
SPI_prepare — Connects your procedure to the SPI manager.
SPI_saveplan — Saves a passed plan
SPI_execp — Executes a plan from SPI_saveplan
Interface Support Functions
SPI_copytuple — Makes copy of tuple in upper Executor context
SPI_modifytuple — Modifies tuple of relation
SPI_fnumber — Finds the attribute number for specified attribute
SPI_fname — Finds the attribute name for the specified attribute
SPI_getvalue — Returns the string value of the specified attribute
SPI_getbinval — Returns the binary value of the specified attribute
SPI_gettype — Returns the type name of the specified attribute
SPI_gettypeid — Returns the type OID of the specified attribute
SPI_getrelname — Returns the name of the specified relation
SPI_palloc — Allocates memory in upper Executor context
SPI_repalloc — Re-allocates memory in upper Executor context
SPI_pfree — Frees memory from upper Executor context
Memory Management
Visibility of Data Changes
Examples
Objetos Grandes
Nota Hist�rica
Caracter�sticas de la Implementaci�n
Interfaces
Creando un Objeto Grande
Importando un Objeto Grande
Exportando un Objeto Grande
Abriendo un Objeto Grande Existente
Escribiendo Datos en un Objeto Grande
Leyendo Datos desde un Objeto Grande
Posicion�ndose en un Objeto Grande
Cerrando un Descriptor de Objeto Grande
Funciones registradas Incorporadas
Accediendo a Objetos Grandes desde LIBPQ
Programa de Ejemplo
libpq
Funciones de Conexi�n a la Base de Datos
Funciones de Ejecuci�n de Consultas
Procesamiento As�ncrono de Consultas
Ruta R�pida
Notificaci�n As�ncrona
Funciones Asociadas con el Comando COPY
Funciones de Trazado de libpq
Funciones de control de libpq
Variables de Entorno
Programas de Ejemplo
Programa de Ejemplo 1
Programa de Ejemplo 2
Programa de Ejemplo 3
libpq C++ Binding
Control e Inicializaci�n
Variables de Entorno.
Clases de libpq++
Clase de Conexi�n: PgConnection
Clase Base de Datos: PgDatabase
Funciones de Conexi�n a la Base de Datos
Funciones de Ejecuci�n de las Consultas
Notificaci�n As�ncrona
Funciones Asociadas con el Comando COPY.
pgtcl
Comandos
Ejemplos
Informaci�n de referencia de comandos pgtcl
pg_connect — abre una conexi�n al servidor backend
pg_disconnect — cierra una conexi�n al servidor backend
pg_conndefaults — obtiene informaci�n sobre los par�metros de la conexi�n por defecto
pg_exec — env�a un string con una consulta al backend
pg_result — obtiene informaci�n sobre el resultado de una consulta
pg_select — hace un bucle sobre el resultado de una declaraci�n SELECT
pg_listen — fija o cambia una rellamada para los mensajes NOTIFY as�ncronos
pg_lo_creat — crea un objeto grande
pg_lo_open — abre un objeto grande
pg_lo_close — cierra un objeto grande
pg_lo_read — lee un objeto grande
pg_lo_write — escribe un objeto grande
pg_lo_lseek — busca una posici�n en un objeto grande
pg_lo_tell — devuelve la posici�n actual de b�squeda de un objeto grande
pg_lo_unlink — borra un objeto grande
pg_lo_import — importa un objeto grande desde un fichero Unix
pg_lo_export — exporta un objeto grande a un fichero Unix
I. CCVS API Functions
Interfaz ODBC
Trasfondo
Aplicaciones Windows
Escritura de Aplicaciones
Instalaci�n Unix
Construyendo el Driver
Ficheros de Configuraci�n
ApplixWare
Configuration
Problemas Comunes
Depurando las conexiones ODBC ApplixWare
Ejecutando la demo ApplixWare
Useful Macros
Plataformas soportadas
JDBC Interface
Building the JDBC Interface
Compiling the Driver
Installing the Driver
Preparing the Database for JDBC
Using the Driver
Importing JDBC
Loading the Driver
Connecting to the Database
Issuing a Query and Processing the Result
Using the Statement Interface
Using the ResultSet Interface
Performing Updates
Closing the Connection
Using Large Objects
Postgres Extensions to the JDBC API
Further Reading
Interfaz de Programaci�n Lisp
Codigo Fuente Postgres
Formateo
Revisi�n de las caracter�sticas internas de PostgreSQL
El camino de una consulta
C�mo se establecen las conexiones
La etapa de traducci�n
Traductor
Proceso de transformaci�n
El sistema de reglas de Postgres
El sistema de reescritura
Planificador/optimizador
Generando planes posibles
Estructura de datos del plan
Ejecutor
pg_options
Optimizaci�n Gen�tica de Consulta en Sistemas de Base de Datos
Planificador de consulta para un Problema Complejo de Optimizaci�n
Algoritmo Gen�ticos (AG)
Optimizaci�n Gen�tica de Consultas (GEQO) en Postgres
Futuras Tareas de Implementaci�n para el OGEC de Postgres
Mejoras B�sicas
Referencias
Protocolo Frontend/Backend
Introducci�n
Protocolo
Inicio
Consulta
Llamada a funci�n
Respuestas de notificaci�n
Cancelaci�n de peticiones en progreso
Finalizaci�n
Tipos de Datos de Mensajes
Formatos de Mensajes
7
Se�ales de Postgres
gcc Default Optimizations
Interfaces de Backend
Formato de fichero BKI
Comandos Generales
1
Macro Commands
Comandos de Depuraci�n
Ejemplo
Ficheros de p�ginas.
Estructura de la p�gina.
Ficheros
Bugs
DG1. El Repositorio del CVS
Organizaci�n del �rbol de CVS
Tomando Las Fuentes V�a CVS An�nimo
Tomando Los Fuentes V�a CVSup
Preparando un Sistema Cliente CVSup
Ejecutando un Cliente CVSup
Instalando CVSup
Instalaci�n a partir de los Fuentes.
DG2. Documentaci�n
Mapa de la documentaci�n
El proyecto de documentaci�n
Fuentes de la documentaci�n
Estructura del documento
Estilos y convenciones
Herramientas de autor para SGML
Haciendo documentaciones
P�ginas man
Generaci�n de copias impresas para v6.5
Texto de copia impresa
Copia impresa postscript
Herramientas
Instalaci�n de RPM Linux
Instalaci�n en FreeBSD
Instalaci�n en Debian
Instalaci�n manual de las herramientas
Otras herramientas
Bibliograf�a