postgresql-extensions-table-access/
Наиболее простой способ работы с таблицами из расширений PostgreSQL заключается в использовании Server Programming Interface (SPI). С этим интерфейсом мы познакомились в рамках статьи Учимся писать расширения на языке C для…
postgresql-window-functions/
Оконные функции (window functions) — это фича, позволяющая производить манипуляции между строками, возвращаемыми одним SQL-запросом. Похоже на GROUP BY , но, в отличие от него, строки не объединяются в одну.…
postgresql-procarray-clog/
Благодаря статье Внутренности PostgreSQL: страницы и кортежи мы узнали, что каждый кортеж в PostgreSQL хранит t_xmin и t_xmax — XIDы транзакций создавшей и удалившей кортеж соответственно. Зная XID текущей транзакции, ее…
postgresql-toast/
Ранее мы разобрались, как PostgreSQL хранит страницы на диске , и как можно посмотреть их содержимое при помощи pageinspect . Но возникает вот какой вопрос. Если размер страницы составляет несколько…
postgresql-shared-buffers/
Ранее мы установили ( часть один , часть два ) что PostgreSQL хранит все данные в страницах, размер которых по умолчанию равен 8 Кб. Однако напрямую читать и писать страницы с/на…
postgresql-shmem-locks/
Рассмотренные нами ранее ProcArray и CLOG реализованы поверх разделяемой памяти и LWLocks. Но напрямую использовать данные примитивы нам пока не доводилось. А жаль, ведь примитивы эти полезные, особенно в расширениях PostgreSQL…
postgresql-free-space-map/
Карта свободного пространства , она же free space map или FSM — это структура в PostgreSQL, предназначенная для быстрого поиска страницы c заданным количеством свободного места. Без FSM при записи…
postgresql-visibility-map/
Ранее в постах серии «Внутренности PostgreSQL» несколько раз упоминалось нечто под названием visibility map , или карта видимости ( случай один , случай два и далее по ссылкам). Однако не сообщалось,…
postgresql-xid-wraparound/
Благодаря посту Внутренности PostgreSQL: ProcArray и CLOG мы узнали, как PostgreSQL определяет состояние транзакции по ее идентификатору, или XID. Однако из статьи Внутренности PostgreSQL: страницы и кортежи мы также помним,…
postgresql-wal/
PostgreSQL хранит данные в страницах , а страницы кэшируются в разделяемых буферах . Казалось бы, в случае аварийной остановки грязные страницы не будут записаны на диск, и часть данных пропадет.…