Se você refazer o universo até o início de 2001, e não apenas permitir que os inventores do PostGIS vejam o futuro, mas também que o PSC do PgSQL veja o futuro, talvez o PostGIS seja uma série de patches no PgSQL. Mas, no mínimo, se tivéssemos começado como patches, a primeira coisa que teríamos de enfrentar é:
- as áreas principais do PgSQL não suportam buracos, mas o modelo GIS realmente deseja buracos, podemos mudar isso?
E o PgSQL principal teria dito: "não, é claro que não, as áreas têm uma semântica bem compreendida e não podemos fazer mudanças incompatíveis com versões anteriores".
Como desenvolvedores não essenciais, o PostGIS conseguiu eliminar os lançamentos mensais e semestrais por vários anos, enquanto o núcleo do PgSQL avançou junto com os lançamentos anuais e mais longos. Também pudemos adicionar os recursos que desejávamos, sempre, desde que tínhamos direitos de commit em nosso projeto, mas obter direitos de commit no PgSQL leva um tempo muito longo.
No momento em que o PostGIS estava demonstrando valor externo suficiente, o núcleo do PgSQL examinou e disse a si mesmo "huh, isso seria bom ter no núcleo como um recurso extra", já havia muito código de um padrão e estilo tão diferente PgSQL (para não mencionar sob uma licença incompatível) que a idéia de mesclar não era realmente possível.
Em vez disso, o PostGIS se tornou o exemplo canônico de uma Really Large Complex Extension que ajuda o PgSQL a permanecer modular e extensível. "Como isso afetará algo como o PostGIS" é uma pergunta frequentemente feita enquanto o PgSQL principal avalia algumas mudanças. Isso também é bom, talvez não tão bom quanto o PostGIS fazer parte do núcleo, mas bom o suficiente.
Existem outras razões, como a longa lista de dependências que o núcleo do PgSQL odiaria ver, a consistência geralmente mais baixa do código e a limpeza da API que eles teriam perdido o desejo de melhorar, e assim por diante. Mesmo na concepção, o PostGIS era muito grande para o PgSQL engolir em uma única mordida.