Parte V. Programação servidor

Esta parte trata das possibilidades de extensão de funcionalidades do servidor usando funções definidas pelo usuário, tipos de dados, gatilhos, etc. Estes são tópicos avançados que devem ser abordados somente após toda a documentação do usuário sobre o PostgreSQL ter sido compreendida. Os capítulos posteriores desta parte descrevem as linguagens de programação do lado servidor disponíveis na distribuição do PostgreSQL, bem como questões gerais relacionadas à programação do lado servidor. É essencial ler pelo menos as seções iniciais de Estendendo o SQL (que tratam de funções) antes de se aprofundar no material sobre programação do lado servidor.

Índice

36. Estendendo o SQL
36.1. Como funciona a extensibilidade
36.2. O sistema de tipos de dados do PostgreSQL
36.3. Funções definidas pelo usuário
36.4. Procedimentos definidos pelo usuário
36.5. Funções na linguagem de consulta (SQL)
36.6. Sobrecarga de função
36.7. Categorias de volatilidade de função
36.8. Funções em linguagem procedural
36.9. Funções internas
36.10. Funções na linguagem C
36.11. Informação de otimização de função
36.12. Agregações definidas pelo usuário
36.13. Tipos de dados definidos pelo usuário
36.14. Operadores definidos pelo usuário
36.15. Informações de otimização do operador
36.16. Interligação de extensões a índices
36.17. Empacotamento de objetos relacionados em uma extensão
36.18. Infraestrutura para construção de extensão
37. Gatilhos
37.1. Visão geral do comportamento de gatilho
37.2. Visibilidade das alterações de dados
37.3. Escrita de funções de gatilho em C
37.4. Um exemplo completo de gatilho
38. Gatilhos de evento
38.1. Visão geral do comportamento de gatilho de evento
38.2. Escrita de funções de gatilho de evento em C
38.3. Exemplo completo de gatilho de evento
38.4. Exemplo de gatilho de evento de reescrita de tabela
38.5. Exemplo de gatilho de evento de login no banco de dados
39. O Sistema de regras
39.1. A árvore de consulta
39.2. Visões e o sistema de regras
39.3. Visões materializadas
39.4. Regras para INSERT, UPDATE e DELETE
39.5. Regras e privilégios
39.6. Regras e status de comando
39.7. Regras versus gatilhos
40. Linguagens procedurais
40.1. Instalação de linguagem procedural
41. PL/pgSQL — Linguagem procedural SQL
41.1. Visão geral
41.2. Estrutura do PL/pgSQL
41.3. Declarações
41.4. Expressões
41.5. Instruções básicas
41.6. Estruturas de controle
41.7. Cursores
41.8. Gerenciamento de transação
41.9. Erros e mensagens
41.10. Funções de gatilho
41.11. Detalhes técnicos do PL/pgSQL
41.12. Dicas para desenvolver em PL/pgSQL
41.13. Conversão do PL/SQL do Oracle
42. PL/Tcl — Linguagem Procedural Tcl
42.1. Visão geral
42.2. Funções e argumentos em PL/Tcl
42.3. Valores dos dados no PL/Tcl
42.4. Dados globais no PL/Tcl
42.5. Acesso a banco de dados pelo PL/Tcl
42.6. Funções de gatilho em PL/Tcl
42.7. Funções de gatilho de evento em PL/Tcl
42.8. Tratamento de erro em PL/Tcl
42.9. Subtransações explícitas em PL/Tcl
42.10. Gerenciamento de transação
42.11. Configuração do PL/Tcl
42.12. Nomes de procedimentos Tcl
43. PL/Perl — Linguagem procedural Perl
43.1. Funções e argumentos no PL/Perl
43.2. Valores dos dados no PL/Perl
43.3. Funções integradas
43.4. Valores globais no PL/Perl
43.5. PL/Perl confiável e não confiável
43.6. Gatilhos no PL/Perl
43.7. Gatilhos de evento no PL/Perl
43.8. Detalhes técnicos do PL/Perl
44. PL/Python — Linguagem procedural Python
44.1. Funções em PL/Python
44.2. Valores dos dados
44.3. Compartilhamento de dados
44.4. Blocos de código anônimos
44.5. Funções de gatilho
44.6. Acesso ao banco de dados
44.7. Subtransações explícitas
44.8. Gerenciamento de transação
44.9. Funções utilitárias
44.10. Python 2 vs. Python 3
44.11. Variáveis de ​​ambiente
45. Interface de programação servidor
45.1. Funções de interface
45.2. Funções de suporte de interface
45.3. Gerenciamento de memória
45.4. Gerenciamento de transação
45.5. Visibilidade das alterações dos dados
45.6. Exemplo
46. Background Worker Processes
47. Logical Decoding
47.1. Logical Decoding Examples
47.2. Logical Decoding Concepts
47.3. Streaming Replication Protocol Interface
47.4. Logical Decoding SQL Interface
47.5. System Catalogs Related to Logical Decoding
47.6. Logical Decoding Output Plugins
47.7. Logical Decoding Output Writers
47.8. Synchronous Replication Support for Logical Decoding
47.9. Streaming of Large Transactions for Logical Decoding
47.10. Two-phase Commit Support for Logical Decoding
48. Replication Progress Tracking
49. Archive Modules
49.1. Initialization Functions
49.2. Archive Module Callbacks
50. OAuth Validator Modules
50.1. Safely Designing a Validator Module
50.2. Initialization Functions
50.3. OAuth Validator Callbacks