VII. Internes

Cette partie contient des informations diverses utiles aux développeurs.

Table des matières

48. Présentation des mécanismes internes de PostgreSQL
48.1. Chemin d'une requête
48.2. Établissement des connexions
48.3. Étape d'analyse
48.4. Système de règles de PostgreSQL
48.5. Planificateur/Optimiseur
48.6. Exécuteur
49. Catalogues système
49.1. Aperçu
49.2. pg_aggregate
49.3. pg_am
49.4. pg_amop
49.5. pg_amproc
49.6. pg_attrdef
49.7. pg_attribute
49.8. pg_authid
49.9. pg_auth_members
49.10. pg_cast
49.11. pg_class
49.12. pg_event_trigger
49.13. pg_collation
49.14. pg_constraint
49.15. pg_conversion
49.16. pg_database
49.17. pg_db_role_setting
49.18. pg_default_acl
49.19. pg_depend
49.20. pg_description
49.21. pg_enum
49.22. pg_extension
49.23. pg_foreign_data_wrapper
49.24. pg_foreign_server
49.25. pg_foreign_table
49.26. pg_index
49.27. pg_inherits
49.28. pg_language
49.29. pg_largeobject
49.30. pg_largeobject_metadata
49.31. pg_namespace
49.32. pg_opclass
49.33. pg_operator
49.34. pg_opfamily
49.35. pg_pltemplate
49.36. pg_policy
49.37. pg_proc
49.38. pg_range
49.39. pg_replication_origin
49.40. pg_rewrite
49.41. pg_seclabel
49.42. pg_shdepend
49.43. pg_shdescription
49.44. pg_shseclabel
49.45. pg_statistic
49.46. pg_tablespace
49.47. pg_transform
49.48. pg_trigger
49.49. pg_ts_config
49.50. pg_ts_config_map
49.51. pg_ts_dict
49.52. pg_ts_parser
49.53. pg_ts_template
49.54. pg_type
49.55. pg_user_mapping
49.56. Vues système
49.57. pg_available_extensions
49.58. pg_available_extension_versions
49.59. pg_cursors
49.60. pg_file_settings
49.61. pg_group
49.62. pg_indexes
49.63. pg_locks
49.64. pg_matviews
49.65. pg_policies
49.66. pg_prepared_statements
49.67. pg_prepared_xacts
49.68. pg_replication_origin_status
49.69. pg_replication_slots
49.70. pg_roles
49.71. pg_rules
49.72. pg_seclabels
49.73. pg_settings
49.74. pg_shadow
49.75. pg_stats
49.76. pg_tables
49.77. pg_timezone_abbrevs
49.78. pg_timezone_names
49.79. pg_user
49.80. pg_user_mappings
49.81. pg_views
50. Protocole client/serveur
50.1. Aperçu
50.2. Flux de messages
50.3. Types de données des message
50.4. Protocole de réplication en continu
50.5. Formats de message
50.6. Champs des messages d'erreur et d'avertissement
50.7. Résumé des modifications depuis le protocole 2.0
51. Conventions de codage pour PostgreSQL
51.1. Formatage
51.2. Reporter les erreurs dans le serveur
51.3. Guide de style des messages d'erreurs
52. Support natif des langues
52.1. Pour le traducteur
52.2. Pour le développeur
53. Écrire un gestionnaire de langage procédural
54. Écrire un wrapper de données distantes
54.1. Fonctions d'un wrapper de données distantes
54.2. Routines callback des wrappers de données distantes
54.3. Fonctions d'aide pour les wrapper de données distantes
54.4. Planification de la requête avec un wrapper de données distantes
54.5. Le verrouillage de ligne dans les wrappers de données distantes
55. Écrire une méthode d'échantillonnage de table
55.1. Fonctions de support d'une méthode d'échantillonnage
56. Écrire un module de parcours personnalisé
56.1. Créer des parcours de chemin personnalisés
56.2. Créer des parcours de plans personnalisés
56.3. Exécution de parcours personnalisés
57. Optimiseur génétique de requêtes (Genetic Query Optimizer)
57.1. Gérer les requêtes, un problème d'optimisation complexe
57.2. Algorithmes génétiques
57.3. Optimisation génétique des requêtes (GEQO) dans PostgreSQL
57.4. Lectures supplémentaires
58. Définition de l'interface des méthodes d'accès aux index
58.1. Entrées du catalogue pour les index
58.2. Fonctions de la méthode d'accès aux index
58.3. Parcours d'index
58.4. Considérations sur le verrouillage d'index
58.5. Vérification de l'unicité de l'index
58.6. Fonctions d'estimation des coûts d'index
59. Index GiST
59.1. Introduction
59.2. Classes d'opérateur internes
59.3. Extensibilité
59.4. Implémentation
59.5. Exemples
60. Index SP-GiST
60.1. Introduction
60.2. Classes d'opérateur internes
60.3. Extensibilité
60.4. Implémentation
60.5. Exemples
61. Index GIN
61.1. Introduction
61.2. Classes d'opérateur internes
61.3. Extensibilité
61.4. Implantation
61.5. Conseils et astuces GIN
61.6. Limitations
61.7. Exemples
62. Index BRIN
62.1. Introduction
62.2. Opérateurs de classe intégrés
62.3. Extensibilité
63. Stockage physique de la base de données
63.1. Emplacement des fichiers de la base de données
63.2. TOAST
63.3. Carte des espaces libres
63.4. Carte de visibilité
63.5. Fichier d'initialisation
63.6. Emplacement des pages de la base de données
64. Interface du moteur, BKI
64.1. Format des fichiers BKI
64.2. Commandes BKI
64.3. Structure du fichier BKI de « bootstrap »
64.4. Exemple
65. Comment le planificateur utilise les statistiques
65.1. Exemples d'estimation des lignes