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