As extensões permitem que os usuários façam mais com o PostgreSQL, além do armazenamento e recuperação básicas. O PostgreSQL é um ambiente de integração completo, com o Python ou Perl, e você pode construir pipelines de manipulação de dados, usando os recursos nativos e de extensão do PostgreSQL.

Com base nisso, Paul Ramsey criou a extensão GZIP, que nada mais é que uma ligação do zlib ao SQL, para que os usuários possam compactar e descompactar as coisas pelo PostgreSQL.

A ideia surgiu a partir de um email na lista de discussão do PostGIS, que dizia o seguinte:

“A incrível função ST_AsMVT() possui dois padrões de uso comuns: copiar os MVTs resultantes para um tile cache (por exemplo, arquivo .mbtiles ou uma visualização materializada) ou servir o MVT aos usuários (abordagem direta do navegador SQL). Ambos os padrões ainda requerem uma etapa adicional de processamento de dados – gziping.”

E esse caso de uso também se aplica a pessoas que geram o GeoJSON diretamente no banco de dados e o enviam para clientes da Web.

O núcleo do PostgreSQL geralmente desaprova as funções de compactação no nível SQL, porque o banco de dados já faz compactação de tuplas de tamanho grande, conforme necessário. A última coisa que queremos é que as pessoas apliquem manualmente a compactação aos valores das colunas e depois as agrupem em linhas nas quais o banco de dados precisará recompactá-las internamente. Do ponto de vista da eficiência do armazenamento, é preferível apenas recuar e deixar o PostgreSQL fazer seu trabalho.

Mas da perspectiva de um ambiente de integração, em que um aplicativo pode emitir ou consumir dados compactados, ter uma ferramenta no SQL para compactar e descompactar esses dados é potencialmente bastante útil.

Fonte: Clever Elephant Blog