Если вы перемотали вселенную в начале 2001 года и не только позволили изобретателям PostGIS увидеть будущее, но и позволили PSC PgSQL увидеть будущее, возможно, PostGIS будет серией исправлений для PgSQL. Но, как минимум, если бы мы начинали как патчи с ядра, первое, с чем мы столкнулись бы, это:
- основные области PgSQL не поддерживают дыры, но модель ГИС действительно хочет дыры, мы можем это изменить?
И ядро PgSQL сказал бы: «Нет, конечно, нет, у областей есть хорошо понятая семантика, и мы не можем делать такие несовместимые изменения в обратном направлении».
Как неосновные разработчики, PostGIS смогла выбивать ежемесячные и 6-месячные выпуски в течение ряда лет, в то время как ядро PgSQL тянулось вместе с ежегодными и более длинными выпусками. Мы также могли добавлять любые функции, которые хотели, в любое время, поскольку у нас были права на коммит в нашем проекте, но получение прав на коммит в PgSQL занимает очень много времени.
К тому времени, когда PostGIS демонстрировал достаточно внешнюю ценность, чтобы ядро PgSQL просматривало и говорило себе «да, это было бы неплохо иметь в ядре в качестве дополнительной функции», уже было так много кода такого другого стандарта и стиля. PgSQL (не говоря уже о несовместимой лицензии), что идея объединения не была действительно возможна.
Вместо этого PostGIS стал каноническим примером действительно большого комплексного расширения, которое помогает PgSQL оставаться модульным и расширяемым. «Как это повлияет на PostGIS?» - часто задаваемый вопрос, поскольку ядро PgSQL оценивает некоторые изменения. Это также хорошая вещь, возможно, не такая хорошая, как PostGIS, являющаяся частью ядра, но достаточно хорошая.
Есть и другие причины, такие как длинный список зависимостей, которые ядро PgSQL не хотело бы видеть, как правило, более низкая согласованность кода и чистота API, которые они отчаянно хотели бы улучшить, и так далее. Даже в момент зачатия PostGIS был слишком большим шаром для PgSQL, чтобы его можно было проглотить за один раз.