Часть VII. Внутреннее устройство#

Часть VII. Внутреннее устройство

Часть VII. Внутреннее устройство

Эта часть содержит различную информацию, которая может быть полезна разработчикам Tantor SE-1C.

Оглавление

49. Обзор внутреннего устройства PostgreSQL
49.1. Путь запроса
49.2. Как устанавливаются соединения
49.3. Этап разбора
49.4. Система правил Tantor SE-1C
49.5. Планировщик/Оптимизатор
49.6. Исполнитель
50. Системные каталоги
50.1. Обзор
50.2. pg_aggregate
50.3. pg_am
50.4. pg_amop
50.5. pg_amproc
50.6. pg_attrdef
50.7. pg_attribute
50.8. pg_authid
50.9. pg_auth_members
50.10. pg_cast
50.11. pg_class
50.12. pg_collation
50.13. pg_constraint
50.14. pg_conversion
50.15. pg_database
50.16. pg_db_role_setting
50.17. pg_default_acl
50.18. pg_depend
50.19. pg_description
50.20. pg_enum
50.21. pg_event_trigger
50.22. pg_extension
50.23. pg_foreign_data_wrapper
50.24. pg_foreign_server
50.25. pg_foreign_table
50.26. pg_index
50.27. pg_inherits
50.28. pg_init_privs
50.29. pg_language
50.30. pg_largeobject
50.31. pg_largeobject_metadata
50.32. pg_namespace
50.33. pg_opclass
50.34. pg_operator
50.35. pg_opfamily
50.36. pg_parameter_acl
50.37. pg_partitioned_table
50.38. pg_policy
50.39. pg_proc
50.40. pg_publication
50.41. pg_publication_namespace
50.42. pg_publication_rel
50.43. pg_range
50.44. pg_replication_origin
50.45. pg_rewrite
50.46. pg_seclabel
50.47. pg_sequence
50.48. pg_shdepend
50.49. pg_shdescription
50.50. pg_shseclabel
50.51. pg_statistic
50.52. pg_statistic_ext
50.53. pg_statistic_ext_data
50.54. pg_subscription
50.55. pg_subscription_rel
50.56. pg_tablespace
50.57. pg_transform
50.58. pg_trigger
50.59. pg_ts_config
50.60. pg_ts_config_map
50.61. pg_ts_dict
50.62. pg_ts_parser
50.63. pg_ts_template
50.64. pg_type
50.65. pg_user_mapping
51. Системные представления
51.1. Обзор
51.2. pg_available_extensions
51.3. pg_available_extension_versions
51.4. pg_backend_memory_contexts
51.5. pg_config
51.6. pg_cursors
51.7. pg_file_settings
51.8. pg_group
51.9. pg_hba_file_rules
51.10. pg_ident_file_mappings
51.11. pg_indexes
51.12. pg_locks
51.13. pg_matviews
51.14. pg_policies
51.15. pg_prepared_statements
51.16. pg_prepared_xacts
51.17. pg_publication_tables
51.18. pg_replication_origin_status
51.19. pg_replication_slots
51.20. pg_roles
51.21. pg_rules
51.22. pg_seclabels
51.23. pg_sequences
51.24. pg_settings
51.25. pg_shadow
51.26. pg_shmem_allocations
51.27. pg_stats
51.28. pg_stats_ext
51.29. pg_stats_ext_exprs
51.30. pg_tables
51.31. pg_timezone_abbrevs
51.32. pg_timezone_names
51.33. pg_user
51.34. pg_user_mappings
51.35. pg_views
52. Протокол клиент/сервер
52.1. Обзор
52.2. Поток сообщений
52.3. SASL аутентификация
52.4. Протокол потоковой репликации
52.5. Протокол логической потоковой репликации
52.6. Типы данных сообщений
52.7. Форматы сообщений
52.8. Поля сообщений об ошибках и уведомлениях
52.9. Форматы сообщений логической репликации
52.10. Сводка изменений с протокола 2.0
53. Соглашения по кодированию PostgreSQL
53.1. Форматирование
53.2. Сообщение об ошибках внутри сервера
53.3. Стиль руководства по сообщениям об ошибках
53.4. Различные соглашения о кодировании
54. Поддержка родного языка
54.1. Для переводчика
54.2. Для программиста
55. Написание обработчика процедурного языка
56. Написание внешнего обертки данных
56.1. Функции внешнего обработчика данных
56.2. Функции обратного вызова внешнего обработчика данных
56.3. Вспомогательные функции для внешних оберток данных
56.4. Планирование запросов во внешнем обертывателе данных
56.5. Блокировка строк во внешних обертках данных
57. Написание метода выборки таблицы
57.1. Функции поддержки метода выборки
58. Написание пользовательского поставщика сканирования
58.1. Создание пользовательских путей сканирования
58.2. Создание пользовательских планов сканирования
58.3. Выполнение пользовательских сканирований
59. Генетический оптимизатор запросов
59.1. Обработка запросов как сложная оптимизационная задача
59.2. Генетические алгоритмы
59.3. Генетическая оптимизация запросов (GEQO) в PostgreSQL
59.4. Дополнительная информация
60. Определение интерфейса метода доступа к таблице
61. Определение интерфейса метода доступа к индексу
61.1. Основная структура API для индексов
61.2. Функции метода доступа к индексам
61.3. Индексное сканирование
61.4. Рассмотрение блокировки индекса
61.5. Проверка уникальности индекса
61.6. Функции оценки стоимости индекса
62. Общие записи WAL
63. Пользовательские менеджеры ресурсов WAL
64. Индексы B-дерева
64.1. Введение
64.2. Поведение классов операторов B-дерева
64.3. Функции поддержки B-дерева
64.4. Реализация
65. Индексы GiST
65.1. Введение
65.2. Встроенные классы операторов
65.3. Расширяемость
65.4. Реализация
65.5. Примеры
66. Индексы SP-GiST
66.1. Введение
66.2. Встроенные классы операторов
66.3. Расширяемость
66.4. Реализация
66.5. Примеры
67. Индексы GIN
67.1. Введение
67.2. Встроенные классы операторов
67.3. Расширяемость
67.4. Реализация
67.5. Советы и хитрости по GIN
67.6. Ограничения
67.7. Примеры
68. Индексы BRIN
68.1. Введение
68.2. Встроенные классы операторов
68.3. Расширяемость
69. Хеш-индексы
69.1. Обзор
69.2. Реализация
70. Физическое хранение базы данных
70.1. Расположение файлов базы данных
70.2. TOAST
70.3. Карта свободного пространства (Free space map)
70.4. Карта видимости
70.5. Форк инициализации
70.6. Макет страницы базы данных
70.7. Кортежи только в куче (HOT)
71. Объявления и начальное содержимое системного каталога
71.1. Правила объявления системного каталога
71.2. Начальные данные системного каталога
71.3. Формат файла BKI
71.4. Команды BKI
71.5. Структура файла Bootstrap BKI
71.6. BKI Пример
72. Как планировщик использует статистику
72.1. Примеры оценки количества строк
72.2. Примеры многомерной статистики
72.3. Статистика планировщика и безопасность
73. Формат резервной копии манифеста
73.1. Объект верхнего уровня резервной копии манифеста
73.2. Объект файла резервной копии манифеста
73.3. Резервная копия диапазона WAL объекта манифеста