[SCM] PostGIS branch master updated. 3.7.0beta1-162-gb53607dc54
git at osgeo.org
git at osgeo.org
Sat Aug 1 14:45:30 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, master has been updated
via b53607dc54ae72020767e27c09c7ca800921f7f1 (commit)
via dd94d63816748a6107945fe61851593a4f285fbd (commit)
from c1e91f8b1e5612e8d7ec50b3a7705cab232103db (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b53607dc54ae72020767e27c09c7ca800921f7f1
Merge: c1e91f8b1e dd94d63816
Author: Darafei Praliaskouski <komzpa at gmail.com>
Date: Sat Aug 1 14:45:24 2026 -0700
Merge pull request 'Move retired Trac guidance to canonical documentation' (!637) from Komzpa/postgis:ai/trac-final-22-migration-20260731 into master
Move useful material out of the remaining non-Notes Trac wiki pages by
refactoring it into the existing PostGIS documentation that owns each topic.
* document raster coverage semantics, table arrangements, constraints, and
indexed raster/vector analysis in the raster manual and existing raster
internals page
* retain the two diagrams that explain the maintained coverage and raster-table
models, without importing obsolete architecture diagrams or draft
specifications
* preserve the durable raster/vector analysis choices in the manual: candidate
tile selection, raster-space aggregation versus area-weighted partial cells,
and the tile-size trade-off
* keep genuinely actionable unimplemented ideas in the existing development
TODO instead of a historical specification or migration ledger
* add practical examples for closest-point insertion, ellipse construction,
DMS conversion, and desktop GIS query layers to their existing manual pages
* credit the early raster contributors, diagrams, tutorial, and funding in the
manual credits
* remove the dead `WKTRaster` URL from raster source headers and replace other
obsolete wiki pointers with their maintained owners
The ISO 19125 draft review does not belong in PostGIS API policy, so this change
removes the previously imported standards-review checklist. The original review
remains a dated historical note in
[PostGIS Trac](https://trac.osgeo.org/postgis/wiki/Notes/2010/ISO19125DraftReview)
rather than being imported into another repository.
This branch does not add a wiki archive, migration map, standalone project
history, historical tutorial, or parallel raster API. Obsolete design records
remain historical; current behavior stays in the manual, source, RFCs, and
maintained developer documentation. `Notes/*` remains on Trac. The companion
website cleanup is
[postgis/postgis.net pull request 27](https://gitea.osgeo.org/postgis/postgis.net/pulls/27).
Validation:
* `git diff --check upstream/master`
* `xmllint --noout doc/postgis.xml`
* `make -C doc check` (39 DocBook QA tests, schema and Relax NG validation, and
generated HTML checks)
* verified that tracked source no longer references the removed history pages,
archive-only assets, or `trac.osgeo.org/postgis/wiki/WKTRaster`
Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/637
commit dd94d63816748a6107945fe61851593a4f285fbd
Author: Darafei Praliaskouski <me at komzpa.net>
Date: Sun Aug 2 01:11:06 2026 +0400
doc: move retired wiki guidance to canonical owners
diff --git a/LICENSE.TXT b/LICENSE.TXT
index b862867db1..403c98bb6d 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -37,6 +37,17 @@ These are under a BSD-3-Clause license - refer to doc/xsl/LICENSE file
-- liblwgeom/lookup3.c is released under Public Domain by Bob Jenkins, May 2006.
+-- Files under macros/ are imported third-party build macros. Where a file
+contains a copyright, copying notice, or special exception, that file notice is
+authoritative for redistribution. macros/gtk-2.0.m4 contains Owen Taylor's
+AM_PATH_GTK_2_0 macro and currently carries author attribution but no embedded
+copying notice.
+
+-- extras/ogc_test_suite/1_schema.sql and 2_queries.sql are adapted from the
+1998 Open GIS Consortium Simple Features conformance test suite. The files
+retain the OGC copyright and adaptation notice, which refers to a separate OGC
+license that is not included in this source tree.
+
-- extensions/address_goecoder is released under MIT License by Stephen Woodbridge & Walter Bruce Sinclair, 2006-2013
-- deps/ryu (see LICENSE in folder) is released under the Apache 2.0 license;
@@ -61,6 +72,6 @@ Data used in documentation falls in one of the following categories
- data or snapshots generated by community
- many images autogenerated by PostGIS documentation generator (which
utilizes ImageMagick) as described
- http://trac.osgeo.org/postgis/wiki/DevWikiDocNewFeature
+ https://postgis.net/development/docs/manual/
- PostGIS raster output functions such as the ST_AsPNG etc.
- raster/vector data from MassGIS: http://www.mass.gov/mgis/laylist.htm
diff --git a/SECURITY.md b/SECURITY.md
index 43116e9ba6..bcd561752e 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -36,6 +36,6 @@ Upon receiving a vulnerability report, the security team will:
including the fix.
Please note that issues in unsupported releases
-(https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS)
+(https://postgis.net/development/compatibility/)
will likely not be addressed, and issues with third party dependencies
need to be reported to the team maintaining them.
diff --git a/doc/credits.xml b/doc/credits.xml
index dbc890e93b..8f3517223d 100644
--- a/doc/credits.xml
+++ b/doc/credits.xml
@@ -212,6 +212,38 @@
</variablelist>
</section>
+<section xml:id="credits_raster_origins">
+ <title>PostGIS Raster Origins</title>
+ <para>PostGIS raster discussions date to 2002 and included early PGCHIP
+ experiments. Xing Lin developed the <command>geotiff2pgraster</command>
+ PGRaster prototype during Google Summer of Code 2007. The WKT Raster project
+ began in 2008, Jorge Arévalo developed the first GDAL driver prototype during
+ Google Summer of Code 2009, and the 2010 FOSS4G code sprint agreed to make WKT
+ Raster the PostGIS raster type. Raster support shipped as part of PostGIS 2.0
+ in 2012.</para>
+ <para>The early implementation team included Pierre Racine, Mateusz Loskot,
+ Sandro Santilli, Jorge Arévalo, Bborie Park, David Zwarg, and Regina Obe.
+ Their work established the raster type, loader, GDAL integration,
+ raster/vector operations, map algebra, documentation, and testing that became
+ the current raster subsystem.</para>
+ <para>Other recorded contributions include Jeff Adams's early sprint work,
+ Qing Liu's raster distance analysis, Maurício Carvalho Mathias de Paulo's
+ QGIS raster plugin and related paper with Lubia Vinhas, and Ignacio Brodin's
+ gvSIG raster plugin and presentation with Jorge Sanz. Bryce L. Nordgren
+ created early raster coverage and seamless-architecture diagrams. Pierre
+ Racine wrote the original raster/vector tutorial and
+ created its walkthrough and early API diagrams.</para>
+ <para>The historical project planning record credits Steve Cumming and
+ Université Laval with funding Pierre Racine's work from June 2008 through
+ July 2012; Martin Daly and Cadcorp with funding about six months of Mateusz
+ Loskot's work through June 2009; Tyler Erickson and Michigan Tech Research
+ Institute with a $1,200 USD contribution; Miguel Lizondo and Deimos Space
+ with support for about two years of Jorge Arévalo's work through June 2011;
+ and the Center for
+ Vectorborne Diseases at UC Davis with funding Bborie Park's work from March
+ 2010 through July 2012.</para>
+</section>
+
<section xml:id="credits_other_contributors"><title>Other Contributors</title>
<variablelist>
<varlistentry>
@@ -303,6 +335,7 @@
<member>Haribabu Kommi</member>
<member>Harrissou Sant-anna</member>
<member>Havard Tveite</member>
+ <member>Ignacio Brodin</member>
<member>IIDA Tetsushi</member>
<member>Ingvild Nystuen</member>
<member>Jackie Leng</member>
@@ -342,6 +375,7 @@
<member>Luca S. Percich</member>
<member>Lucas C. Villa Real</member>
<member>Ludovic Hirlimann</member>
+ <member>Lubia Vinhas</member>
<member>Maksim Korotkov</member>
<member>Manuel Morillo</member>
<member>Maria Arias de Reyna</member>
@@ -352,6 +386,7 @@
<member>Matt Amos</member>
<member>Matt Bretl</member>
<member>Matthias Bay</member>
+ <member>Maurício Carvalho Mathias de Paulo</member>
<member>Maxim Kochetkov</member>
<member>Maxime Guillaud</member>
<member>Maxime van Noppen</member>
@@ -375,6 +410,7 @@
<member>Pawel Ostrowski</member>
<member>Peter Nguyen</member>
<member>Pierre Cardinal</member>
+ <member>Qing Liu</member>
<member>Rafal Magda</member>
<member>Ralph Mason</member>
<member>Rémi Cura</member>
@@ -389,6 +425,7 @@
<member>Shinichi Sugiyama</member>
<member>Shoaib Burq</member>
<member>Silvio Grosso</member>
+ <member>Simon Greener</member>
<member>Stefan Corneliu Petrea</member>
<member>Steffen Macke</member>
<member>Stepan Kuzmin</member>
@@ -409,6 +446,7 @@
<member>Vincent Mora</member>
<member>Vincent Picavet</member>
<member>Volf Tomáš</member>
+ <member>Xing Lin</member>
<member>Yoichi Kayama</member>
<member>Yuri Astrakhan</member>
<member>Zuo Chenwei</member>
diff --git a/doc/development/internals/images/raster-storage/coverage-concepts.png b/doc/development/internals/images/raster-storage/coverage-concepts.png
new file mode 100644
index 0000000000..0f3bb3a7f2
Binary files /dev/null and b/doc/development/internals/images/raster-storage/coverage-concepts.png differ
diff --git a/doc/development/internals/images/raster-storage/raster-table-arrangements.gif b/doc/development/internals/images/raster-storage/raster-table-arrangements.gif
new file mode 100644
index 0000000000..5e78fc3249
Binary files /dev/null and b/doc/development/internals/images/raster-storage/raster-table-arrangements.gif differ
diff --git a/doc/development/internals/raster-gdal-driver.md b/doc/development/internals/raster-gdal-driver.md
index 037053ee93..819716197e 100644
--- a/doc/development/internals/raster-gdal-driver.md
+++ b/doc/development/internals/raster-gdal-driver.md
@@ -11,9 +11,7 @@ developer documentation here should explain the boundary and the PostGIS-side
contracts rather than republish old GDAL driver working notes as current code
documentation.
-The old Trac `WKTRaster/GDALDriverSpecificationWorking`,
-`WKTRaster/ThirdPartySupport`, and `WKTRasterGSoC` pages are useful mostly as
-provenance for that boundary. Their current lessons are:
+The current lessons for that boundary are:
* GDAL opens PostGIS raster data through the external `PostGISRaster` driver,
not through code maintained in this repository.
diff --git a/doc/development/internals/raster-storage.md b/doc/development/internals/raster-storage.md
index 02661e6e8f..376916b3de 100644
--- a/doc/development/internals/raster-storage.md
+++ b/doc/development/internals/raster-storage.md
@@ -1,5 +1,5 @@
---
-title: "Raster storage and WKB"
+title: "Raster storage, coverages, and WKB"
date: 2026-06-26
weight: 70
geekdocHidden: false
@@ -15,11 +15,113 @@ PostGIS Raster has three related representations that are easy to confuse:
* The on-disk PostgreSQL value is the serialized form built by
`rt_raster_serialize()` and read by `rt_raster_deserialize()`.
-The old Trac `WKTRaster/RFC/RFC1_V0SerialFormat`,
-`WKTRaster/RFC/RFC2_V0WKBFormat`, `WKTRaster/RFC/RFC3_V1SerialFormat`, and
-`WKTRaster/Specification*` pages describe early versions of those formats.
-They are useful as implementation history, but current work should start from
-the source files named below.
+Early design records describe prior versions of those formats. They are useful
+as implementation history, but current work should start from the source files
+named below.
+
+## Coverage Model And Table Arrangements
+
+A coverage is a mapping from a domain, usually locations and sometimes time, to
+a consistent range of values. Conceptually it provides an evaluation operation:
+
+```text
+value = evaluate(location [, time])
+```
+
+Some coverages also support an inverse operation, such as returning an isotherm
+for a requested temperature. The mapping is separate from its storage: it may
+be calculated, interpolated from observations, stored as geometry/value rows,
+or stored as cells in one or more rasters.
+
+
+
+### Continuous And Discrete Coverages
+
+A continuous coverage can calculate a value for every location. Solar elevation
+as a function of location and time is one example. An interpolated temperature
+surface is another: the observations are discrete, but an interpolation method
+such as inverse-distance weighting evaluates locations between weather
+stations. In PostGIS this model can be expressed as a function over a geometry
+and, where needed, a timestamp.
+
+A discrete coverage is backed by a collection whose values change at item or
+cell boundaries. It commonly needs operations equivalent to finding the nearest
+item, selecting items in a region, and listing the collection. Vector tables
+and rasters are different representations of this model; the coverage is the
+mapping and access contract, not merely the table or raster value that stores
+its observations.
+
+### Table-Backed Vector Coverages
+
+A table can back a vector coverage when one geometry column supplies the domain
+and one or more other columns supply the range. Each row associates the entire
+geometry with that row's selected values. The same table can therefore support
+different coverages by choosing different range columns. If the table has more
+than one geometry column, the coverage must explicitly choose the domain
+column.
+
+The vector range need not be numeric or primitive: it can include text or
+another spatial value. It must still have a consistent meaning and type wherever
+the coverage is defined.
+
+This row relationship cannot associate different array elements or attributes
+with separate parts of one geometry. Such associations need separate rows or a
+more explicit value type.
+
+### Raster Coverage Semantics
+
+A raster uses its grid and georeference to associate cell locations with one or
+more numeric band values. This has several consequences that differ from a
+geometry column:
+
+1. One raster value contains many location/value associations. Other columns in
+ the same row describe the raster as a whole; they do not attach separate
+ values to its individual cells.
+2. A PostgreSQL `raster` column alone does not guarantee that different rows
+ have compatible SRIDs, alignment, dimensions, band counts, pixel types, or
+ NODATA conventions. A logical tiled coverage must enforce the invariants it
+ requires through constraints and controlled loading.
+3. Rendering or analysing a raster coverage uses the raster bands. Other row
+ columns can identify, group, or filter images and tiles, but are not bands in
+ the rendered coverage.
+4. A table-level lookup is normally two-stage: use the raster hull and spatial
+ index to find candidate rows, then inspect the relevant cells and bands in
+ those raster values.
+
+A coverage may fit in one raster value and need no table-level tiling. A table
+may also legitimately index unrelated rasters, but that does not make all rows
+one coverage.
+
+### Geometry/Value Collections
+
+The `geomval` composite type makes one geometry and one numeric value
+association explicit. `ST_DumpAsPolygons` returns `geomval` rows by grouping
+same-valued raster cells into polygons. Those geometries can participate in
+ordinary vector operations, but polygonizing many cells is expensive, so
+queries should first restrict the raster rows and cells that need conversion.
+
+A raster column does not by itself say how rows relate to each other. The rows
+may be unrelated images, tiles of one logical coverage, separate tiled images,
+or rasterized spatial objects.
+
+
+
+The table arrangement determines which invariants matter:
+
+* An image warehouse permits unrelated extents, dimensions, alignments, and
+ overlaps.
+* An irregular tiled coverage permits gaps and variable tile dimensions while
+ treating non-overlapping rows as one logical layer.
+* A regular tiled coverage shares alignment and tile dimensions without
+ overlap; a rectangular regular coverage also fills its extent without gaps.
+* Separate tiled images preserve image identity in separate tables or
+ partitions even when each image is internally regular.
+* A raster-object coverage stores rasterized features whose dimensions and
+ extents may differ or overlap.
+
+Current PostGIS records common SRID, scale, alignment, band, extent, and
+regular-blocking properties through raster constraints and `raster_columns`.
+Applications still need to define any stronger relationship between rows.
## Serialized PostgreSQL Value
diff --git a/doc/development/internals/spatial-collections.md b/doc/development/internals/spatial-collections.md
index fe7f5c1aeb..f6aaf28f7f 100644
--- a/doc/development/internals/spatial-collections.md
+++ b/doc/development/internals/spatial-collections.md
@@ -5,14 +5,10 @@ weight: 40
geekdocHidden: false
---
-The historical `DevWikiSpatialCollectionTutorial` page described an internal
-`SPATIAL_COLLECTION` abstraction intended to erase the difference between
-vector geometries and rasters. That abstraction is not present in the current
-source tree: there are no remaining `sc_create_*`, `SPATIAL_COLLECTION`, or
-`sc_sampling_engine` implementation paths.
-
-The useful idea is still worth keeping: PostGIS has two kinds of collection
-work that should not be confused.
+PostGIS does not implement a shared `SPATIAL_COLLECTION` abstraction for
+vector geometries and rasters: there are no `sc_create_*`,
+`SPATIAL_COLLECTION`, or `sc_sampling_engine` implementation paths. It has two
+kinds of collection work that should not be confused.
* Geometry collections are real geometry values: `MULTI*`,
`GEOMETRYCOLLECTION`, curves, TINs, and polyhedral surfaces.
@@ -20,8 +16,7 @@ work that should not be confused.
and overlay workflows that move values between rasters and geometries.
Current code keeps those areas separate. When changing collection behavior,
-check which side of that boundary the function is on before reusing examples
-from the old spatial-collection tutorial.
+check which side of that boundary the function is on.
## Geometry Collections
@@ -117,7 +112,7 @@ or SQL `NULL`. Those are four different questions.
## Raster/Vector Crossings
-The old spatial-collection abstraction tried to model both raster and vector
+A shared raster/vector abstraction would need to model both raster and vector
objects as things that can answer:
1. Does point `P` belong to this object?
@@ -143,9 +138,8 @@ rows are intersected with the input geometry using the normal geometry
`ST_Intersection`. Raster-returning variants and clipping paths instead
construct or modify raster cells.
-This is close to the old tutorial's intent, but the implementation boundary is
-different. There is no single current "spatial collection" object that a caller
-wraps around a raster or geometry and samples through a shared interface.
+There is no single current "spatial collection" object that a caller wraps
+around a raster or geometry and samples through a shared interface.
## Practical Guidance
@@ -158,7 +152,7 @@ When touching code near this topic:
C files, especially `raster/rt_pg/rtpostgis.sql.in`,
`raster/rt_pg/rtpg_geometry.c`, `raster/rt_pg/rtpg_mapalgebra.c`, and
`raster/rt_pg/rtpg_spatial_relationship.c`.
-3. Do not revive the old `SPATIAL_COLLECTION` API without a new design review.
+3. Do not introduce a `SPATIAL_COLLECTION` API without a design review.
Current code has evolved around explicit SQL functions rather than a shared
internal wrapper.
4. Preserve the distinction between container operations and topology
@@ -167,6 +161,3 @@ When touching code near this topic:
5. Preserve the distinction between raster values and geometry membership.
Raster workflows often carry a numeric `geomval`; geometry collections do
not have a generic per-point value vector.
-
-The old tutorial remains useful as design history, but maintained developer
-documentation should describe the current implementation boundary first.
diff --git a/doc/development/release/api.md b/doc/development/release/api.md
index ee984937fc..7dac30387d 100644
--- a/doc/development/release/api.md
+++ b/doc/development/release/api.md
@@ -32,37 +32,3 @@ documented SQL expression.
When a setting is still the right interface, document the default, scope,
supported values, and upgrade impact in the manual, and add regression coverage
for the default behavior.
-
-## Standards Conformance
-
-When a patch changes constructors, parsers, serializers, predicates,
-measurements, validity, simplicity, overlay, or dimensional behavior, review
-the change against the standards and PostGIS extensions that define the
-current public contract.
-
-Check the user-visible behavior against the relevant OGC/SFS, ISO 19125,
-SQL/MM, WKT, WKB, EWKT, EWKB, SRID, and SQL/MM type-code expectations. PostGIS
-also has deliberate extensions and historical compatibility behavior, so do
-not normalize behavior only because one standard spelling exists. Document
-the chosen behavior in the manual when it can surprise users.
-
-Specific review points:
-
-* Keep empty-geometry behavior documented and tested for constructors,
- predicates, validity checks, accessors, measurements, and overlay or
- constructive functions. See
- [Empty geometry semantics](../internals/empty-geometry.md) for the current
- implementation map.
-* Be explicit when a spatial predicate, overlay, or measurement intentionally
- uses 2D semantics for higher-dimensional input. Add or point to a separate
- 3D function when users need true 3D behavior.
-* Keep validity and simplicity documentation explicit about geometry-type
- criteria, repeated points, invalid input handling, parser acceptance, and
- repair guidance.
-* Treat precision-model changes as API changes. Current ordinary geometries do
- not carry inferred precision metadata; explicit overlay grid size, topology
- precision, MVT quantization, and tolerance arguments are separate API
- surfaces. See
- [Precision and tolerance internals](../internals/precision-tolerance.md).
-* When changing WKT/WKB parsing or output, test OGC, ISO, SQL/MM, EWKT, EWKB,
- SRID, empty-geometry, dimensionality, and type-code compatibility together.
diff --git a/doc/development/todo.md b/doc/development/todo.md
index 8b5a2c1836..597258a4ce 100644
--- a/doc/development/todo.md
+++ b/doc/development/todo.md
@@ -5,18 +5,16 @@ weight: 35
geekdocHidden: false
---
-This page records high-level development ideas that survived the Trac/wiki
-documentation migration but are not accepted designs, release blockers, or
-scheduled work. Move an item to a Trac ticket, design document, or pull request
-when someone takes ownership of it.
+This page records high-level development ideas that are not accepted designs,
+release blockers, or scheduled work. Move an item to a ticket, design document,
+or pull request when someone takes ownership of it.
## Geometry And Precision
-* Investigate polygon partitioning below a maximum vertex budget. The old
- `SomeSplitting` discussion called this a `SplitToMaxN`-style operation:
- produce area-covering polygon pieces without adding unnecessary segment split
- points. A future design should consider tessellation plus a GiST
- picksplit-inspired partitioning strategy.
+* Investigate polygon partitioning below a maximum vertex budget: produce
+ area-covering polygon pieces without adding unnecessary segment split points.
+ A future design should consider tessellation plus a GiST picksplit-inspired
+ partitioning strategy.
* Investigate PostGIS precision-model policy for ordinary geometries. Decide
whether inferred or metadata-backed precision should ever exist outside
topology-specific precision and operation-local tools such as overlay
@@ -29,15 +27,16 @@ when someone takes ownership of it.
dimensions, validity flags, typmod-only compact point storage, and complete
mutable `liblwgeom` point-array and collection APIs. Current `GSERIALIZED`
storage, typmods, TWKB output, and PostGIS 3 flag changes cover only parts of
- this historical discussion. Source provenance: `PostGIS3` and
- `DevelopmentDiscussion` in the Trac import, plus the serialization discussion
- in `UsersWikiSprint2009Notes`; local import commit `7fee744c33af`.
+ this design space.
* Investigate sparse-polygon containment performance. Current PostGIS has
- selectivity estimators and user-visible tools such as `ST_Subdivide`, but the
- old wishlist asked for better selectivity or decomposition strategies for
- large sparse polygons where the bounding box is a poor proxy for occupied
- area. Source provenance: `UsersWikiWishList`; local import commit
- `7fee744c33af`.
+ selectivity estimators and user-visible tools such as `ST_Subdivide`, but
+ better selectivity or decomposition strategies could help with large sparse
+ polygons where the bounding box is a poor proxy for occupied area.
+* Investigate bounded-memory spatial pipelines for very large inputs, such as
+ an index-ordered feature stream that can emit completed output while noding
+ lines, polygonizing coverages, triangulating point sets, or performing
+ unions. Current set-returning functions and aggregates own the operation
+ semantics, but there is no general streaming API with that contract.
## Indexing And Planner
@@ -47,19 +46,14 @@ when someone takes ownership of it.
summaries for complex geometries, and adding nested boxes for
`GEOMETRYCOLLECTION` trees. Current GiST/SP-GiST support and PostgreSQL 15+
sort support cover adjacent work, but not these storage/index-tuple designs.
- Source provenance: `PostGIS3`, with SRID mismatch context linked there to
- <https://trac.osgeo.org/postgis/ticket/4096>; local import commit
- `7fee744c33af`.
* Investigate geography indexing based on S2-style cells or another cell-based
strategy, including whether a fast geography `ST_Intersects` GIN index is
- possible and useful. Current geography indexes remain GiST-oriented. Source
- provenance: `PostGIS3`; local import commit `7fee744c33af`.
+ possible and useful. Current geography indexes remain GiST-oriented.
* Investigate PostgreSQL-core-dependent spatial index build and clustering
improvements, such as building GiST pages from spatially adjacent tuple runs
or preserving heap clustering by inserting near index sibling tuples. Current
PostGIS sort support addresses part of index build ordering, but these ideas
- remain broader PostgreSQL storage/index research. Source provenance:
- `PostGIS3`; local import commit `7fee744c33af`.
+ remain broader PostgreSQL storage/index research.
## Backend Libraries And Robustness
@@ -68,67 +62,37 @@ when someone takes ownership of it.
PostGIS point arrays, moving suitable algorithms such as build-area or
validity repair into upstream GEOS/SFCGAL/CGAL, and adding LWGEOM adapters to
external geometry-library types. Current SFCGAL/GEOS integration covers many
- operations, but not these ownership and architecture changes. Source
- provenance: `PostGIS3` and `DevelopmentDiscussion`; local import commit
- `7fee744c33af`.
+ operations, but not these ownership and architecture changes.
* Investigate stronger robustness guarantees for predicates and overlays. The
old planning notes proposed validity-aware guarantees, cached validity state,
fallback or retry through another backend library after robustness failures,
and empirical performance/cost frameworks for regression and planner-cost
testing. Current GEOS/SFCGAL behavior, validity functions, and regression
- suites do not make this a settled design. Source provenance: `PostGIS3` and
- `DevelopmentDiscussion`; local import commit `7fee744c33af`.
+ suites do not make this a settled design.
* Investigate curve-completeness policy: which curve operations should become
complete in core, which should linearize explicitly, and which should remain
- unsupported until GEOS/SFCGAL or another backend owns the operation. Source
- provenance: `DevelopmentDiscussion`; local import commit `7fee744c33af`.
+ unsupported until GEOS/SFCGAL or another backend owns the operation.
## Raster
* Investigate raster density-surface generation from point or line coverages.
- The historical `GoogleSummerCode` page proposed `ST_AsDensity`: count point or
- line features into raster pixels and then apply a smoothing filter using
+ Count features into raster pixels and optionally smooth the result with
neighborhood map algebra. Current PostGIS has `ST_InterpolateRaster` for
interpolation from input points, but this density-surface workflow is not a
- maintained first-class raster API. Trac provenance: the item was already
- present in `GoogleSummerCode` version 1, authored by `robe` on
- 2013-04-02 15:34:22 -0700. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
-* Investigate internal sub-tiling for very large rasters. The historical
- `WKTRaster/SpecificationWorking03` roadmap described this as sub-tiling of
- rasters for PostGIS 3.0, or possibly a new raster type: rewrite the raster
- type so big rasters stored in one row, up to the PostgreSQL 1GB datum limit,
- are internally tiled and quickly accessed. Current PostGIS has table-level
- raster tiling, out-db rasters, and ordinary PostgreSQL TOAST storage, but no
- currently open pull request checked on 2026-06-28 owns this one-row
- internal-tiling storage redesign. Trac provenance: version 211 was the first
- version found with the sub-tiling item, authored by `pracine` on
- 2012-07-25 06:42:29 -0700. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
-* Investigate first-class raster coverage validation helpers. The historical
- `WKTRaster/SpecificationWorking03` roadmap introduced this as Objective FV.20:
- being able to determine topological characteristics of a coverage, with
- proposed helpers such as `ST_HasOverlaps`, `ST_HasGaps`,
- `ST_HasTileSameSize`, `ST_HasTileAligned`, and `ST_IsRegularlyTiled`.
- Adjacent open raster pull requests exist for tiling, alignment, constraints,
- and overviews, but no currently open pull request checked on 2026-06-28 owns
- this coverage-validation proposal. Trac provenance: version 173 was the first
- version found with the objective, authored by `pracine` on
- 2011-11-11 07:51:13 -0800. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
-* Investigate named raster bands. The historical
- `WKTRaster/SpecificationWorking03` roadmap introduced this as Objective FV.17:
- being able to refer to a band by textual name, later described as "band by
- name" for PostGIS 3.0. It proposed an 8-character band name in the base raster
- WKB format, importer support for assigning band names, and overloads so raster
- functions can address bands by name. Trac provenance: version 31 was the first
- version found with the objective, authored by `pracine` on
- 2010-09-21 06:53:05 -0700. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
+ maintained first-class raster API.
+* Investigate internal sub-tiling for very large raster values. A single raster
+ datum can approach PostgreSQL's 1 GB value limit, while current PostGIS tiles
+ only at the table-row level and relies on ordinary TOAST storage inside one
+ value. A future design would need fast window access without changing the
+ public raster semantics or duplicating table-level tiling.
+* Investigate first-class validation for tiled raster coverages, including
+ overlap, gap, common tile-size, alignment, and regular-tiling checks. Current
+ raster constraints and `ST_SameAlignment` cover portions of this model, but
+ there is no complete maintained function family for validating a selected
+ coverage as a whole.
+* Investigate named raster bands. A design must cover on-disk and WKB storage,
+ loader assignment, duplicate and missing names, upgrades, and overloads that
+ address a band by name without weakening existing integer-band APIs.
* Investigate first-class raster distance surfaces, historically proposed as
`ST_EuclideanDistance` for nearest-source distance rasters and
`ST_CostDistance` for cost-weighted distance over a cost raster. Compare that
@@ -136,10 +100,7 @@ when someone takes ownership of it.
downstream processing.
* Investigate weighted raster summary/statistics functions beyond the existing
weighted map-algebra masks and ordinary `ST_SummaryStats` /
- `ST_SummaryStatsAgg` aggregates. The historical sprint notes kept this as an
- open raster analysis idea after the core statistics aggregates existed.
- Source provenance: `DevFOSS4GCodeSprintNotes`; local import commit
- `7fee744c33af`.
+ `ST_SummaryStatsAgg` aggregates.
## 3D And Output Formats
@@ -149,14 +110,11 @@ when someone takes ownership of it.
union, and difference. Historical notes still leave broader questions around
3D validity semantics, point-in-polyhedra or 3D relationship models,
centroid behavior, line-of-sight or visibility APIs, and interchange behavior
- that should be either designed or explicitly declared out of scope. Source
- provenance: `DevelopmentDiscussion`, `DevFOSS4GCodeSprintNotes`, and
- `UsersWikiSprint2009Notes`; local import commit `7fee744c33af`.
-* Investigate richer `ST_AsKML` output metadata. The old wishlist asked for KML
+ that should be either designed or explicitly declared out of scope.
+* Investigate richer `ST_AsKML` output metadata, including KML
`extrude`, `tessellate`, and altitude-mode support. Current `ST_AsKML`
signatures accept geometry or geography, precision, and namespace prefix, and
- current KML parsing code explicitly does not handle `kml:extrude`. Source
- provenance: `UsersWikiWishList`; local import commit `7fee744c33af`.
+ current KML parsing code explicitly does not handle `kml:extrude`.
## Extension Packaging
@@ -164,49 +122,23 @@ when someone takes ownership of it.
installing PostGIS into a dedicated `postgis` schema, then later marked it as
lower priority because the core extensions are not movable. Current
`postgis`, `postgis_raster`, and `postgis_topology` extension control files
- remain `relocatable = false`, while `postgis_sfcgal` is relocatable. Source
- provenance: `PostGIS3` and `UsersWikiWishList`; local import commit
- `7fee744c33af`.
+ remain `relocatable = false`, while `postgis_sfcgal` is relocatable.
## Topology
-* Investigate topology-aware shapefile loader and dumper workflows. The
- historical `GoogleSummerCode` page proposed loading TopoGeometries directly
- with `shp2pgsql`; the later `GoogleSummerCode2022` page expanded this into
+* Investigate topology-aware shapefile loader and dumper workflows, including
`shp2pgsql`/`pgsql2shp` support for topology elements and TopoGeometries.
Current maintained tools include `pgtopo_export` and `pgtopo_import`, and
`pgsql2shp` can export ordinary query results, but the shapefile
loader/dumper still documents geometry and geography rather than topology
- element or TopoGeometry modes. Trac provenance: the original loader idea was
- already present in `GoogleSummerCode` version 1, authored by `robe` on
- 2013-04-02 15:34:22 -0700; the broader 2022 framing first appeared in
- `GoogleSummerCode2022` version 7, authored by `robe` on
- 2022-02-19 14:23:10 -0800. Local import provenance: commit `7fee744c33af`
- imported both source Trac pages into this repository on
- 2026-06-17 07:58:14 +0400.
-* Investigate a no-new-primitives mode for `toTopoGeom`. The historical
- `GoogleSummerCode` page proposed an extra argument allowing `toTopoGeom` to
- fail instead of adding topology primitives when the input cannot be expressed
+ element or TopoGeometry modes.
+* Investigate a no-new-primitives mode for `toTopoGeom`, allowing it to fail
+ instead of adding topology primitives when the input cannot be expressed
using existing edges, nodes, and faces. Current `toTopoGeom` signatures accept
geometry, topology/layer or TopoGeometry target, and tolerance, but no
- primitive-creation policy flag. Trac provenance: the item was already present
- in `GoogleSummerCode` version 1, authored by `robe` on
- 2013-04-02 15:34:22 -0700. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
-* Investigate topology-aware `ST_EstimatedExtent`. The historical
- `GoogleSummerCode` page proposed making `ST_EstimatedExtent` recognize a
- schema/table/column that refers to a `topology.layer` entry and return a useful
- layer extent estimate instead of only reading ordinary geometry/geography
- table statistics. Current `ST_EstimatedExtent` is documented and implemented
- against geometry/geography columns and table statistics. Trac provenance: the
- item was already present in `GoogleSummerCode` version 1, authored by `robe`
- on 2013-04-02 15:34:22 -0700. Local import provenance: commit `7fee744c33af`
- imported the source Trac page into this repository on
- 2026-06-17 07:58:14 +0400.
+ primitive-creation policy flag.
* Investigate topology import paths for OSM and E00-style coverage sources.
Historical planning notes asked for an `osm2topology` converter and for
importing E00 coverage/topology data. Current in-tree topology tools focus on
SQL/topology management and `pgtopo_export` / `pgtopo_import`; OSM, E00, and
- routing-specific import design remains unowned. Source provenance:
- `PostGIS3` and `UsersWikiWishList`; local import commit `7fee744c33af`.
+ routing-specific import design remains unowned.
diff --git a/doc/introduction.xml b/doc/introduction.xml
index dc650b878a..70bfde4b1d 100644
--- a/doc/introduction.xml
+++ b/doc/introduction.xml
@@ -146,6 +146,17 @@
relationships and index-aware query patterns, and
<xref linkend="performance_tips"/> for common performance problems.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term>If you are connecting a desktop GIS</term>
+ <listitem><para>Use the client's current database documentation for its
+ user interface and supported geometry types. For example, the
+ <link xlink:href="https://docs.qgis.org/latest/en/docs/training_manual/databases/db_manager.html">QGIS
+ DB Manager lesson</link> covers PostgreSQL connections, table layers,
+ SQL query layers, import, and export. A query layer should return a
+ stable unique identifier and a geometry column with a known SRID and
+ geometry type. Expensive read-only queries can be exposed through a
+ view or materialized view and indexed as appropriate.</para></listitem>
+ </varlistentry>
<varlistentry>
<term>If you need a particular function</term>
<listitem><para>Use <xref linkend="reference"/> or
diff --git a/doc/reference_lrs.xml b/doc/reference_lrs.xml
index 2e9db17567..5f09ab1f6e 100644
--- a/doc/reference_lrs.xml
+++ b/doc/reference_lrs.xml
@@ -332,6 +332,7 @@ FROM (SELECT 'LINESTRING(1 2,4 5,6 7)'::geometry As the_line) As foo;</programli
segments AS (
SELECT
s.i,
+ d.line,
d.pt,
ST_MakeLine(ST_PointN(d.line, s.i), ST_PointN(d.line, s.i + 1)) AS segment
FROM data AS d
@@ -340,20 +341,21 @@ segments AS (
SELECT
i AS segment_number,
round(ST_Distance(segment, pt)::numeric, 3) AS distance,
- ST_ClosestPoint(segment, pt) AS closest_point
+ ST_ClosestPoint(segment, pt) AS closest_point,
+ ST_AddPoint(line, ST_ClosestPoint(segment, pt), i) AS line_with_closest_point
FROM segments
ORDER BY ST_Distance(segment, pt)
LIMIT 1;</programlisting>
-<screen> segment_number | distance | closest_point
-----------------+----------+--------------------
- 2 | 0.071 | POINT(15.05 15.05)</screen>
+<screen> segment_number | distance | closest_point | line_with_closest_point
+----------------+----------+--------------------+----------------------------------------------------
+ 2 | 0.071 | POINT(15.05 15.05) | LINESTRING(0 0,10 10,15.05 15.05,20 20,30 30)</screen>
</refsection>
<!-- Optionally add a "See Also" section -->
<refsection>
<title>See Also</title>
- <para><xref linkend="ST_ClosestPoint"/>, <xref linkend="ST_DWithin"/>, <xref linkend="ST_Length2D"/>, <xref linkend="ST_LineInterpolatePoint"/>, <xref linkend="ST_LineSubstring"/></para>
+ <para><xref linkend="ST_AddPoint"/>, <xref linkend="ST_ClosestPoint"/>, <xref linkend="ST_DWithin"/>, <xref linkend="ST_Length2D"/>, <xref linkend="ST_LineInterpolatePoint"/>, <xref linkend="ST_LineSubstring"/></para>
</refsection>
</refentry>
diff --git a/doc/reference_output.xml b/doc/reference_output.xml
index bdb9b938c3..c88d7ecd3f 100644
--- a/doc/reference_output.xml
+++ b/doc/reference_output.xml
@@ -1078,6 +1078,24 @@ SELECT ST_AsGML(
<para>Decimal degrees.</para>
<programlisting language="sql">SELECT (ST_AsLatLonText('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees C'));</programlisting>
<screen role="text-primary">2.3250 degrees S 3.2342 degrees W</screen>
+<para>To convert parsed degree, minute, and second components to decimal
+degrees, apply the cardinal-direction sign explicitly.</para>
+<programlisting language="sql"><![CDATA[WITH dms(label, degrees, minutes, seconds, hemisphere) AS (
+ VALUES
+ ('latitude', 43::numeric, 0::numeric, 50.60::numeric, 'S'),
+ ('longitude', 147::numeric, 12::numeric, 18.20::numeric, 'E')
+)
+SELECT label,
+ round(
+ (CASE WHEN hemisphere IN ('S', 'W') THEN -1 ELSE 1 END)
+ * (degrees + minutes / 60 + seconds / 3600),
+ 9
+ ) AS decimal_degrees
+FROM dms;]]></programlisting>
+<screen role="text-primary"><![CDATA[ label | decimal_degrees
+-----------+-----------------
+ latitude | -43.014055556
+ longitude | 147.205055556]]></screen>
<para>Excessively large values are normalized.</para>
<programlisting language="sql">SELECT (ST_AsLatLonText('POINT (-302.2342342 -792.32498)'));</programlisting>
<screen role="text-primary">72°19'29.928"S 57°45'56.757"E</screen>
diff --git a/doc/reference_transformation.xml b/doc/reference_transformation.xml
index b5f696f27e..9588c23d86 100644
--- a/doc/reference_transformation.xml
+++ b/doc/reference_transformation.xml
@@ -439,13 +439,34 @@ SELECT ST_Scale('LINESTRING(1 2 3 4,1 1 1 1)',
<para>This example scales X and Y values using a false origin.</para>
<programlisting>SELECT ST_Scale('LINESTRING(1 1,2 2)', 'POINT(2 2)', 'POINT(1 1)'::geometry);</programlisting>
<screen>LINESTRING(1 1,3 3)</screen>
+
+ <para>This example constructs an ellipse centered at (10, 20), with X radius 8,
+ Y radius 4, and rotated 30 degrees counter-clockwise. Scaling and rotation use
+ the center as their origin, so the ellipse keeps both its position and SRID.</para>
+ <programlisting>WITH params AS (
+ SELECT
+ ST_SetSRID(ST_Point(10, 20), 3857) AS center,
+ 8.0 AS x_radius,
+ 4.0 AS y_radius,
+ radians(30) AS angle
+)
+SELECT ST_Rotate(
+ ST_Scale(
+ ST_Buffer(center, 1, 'quad_segs=32'),
+ ST_MakePoint(x_radius, y_radius),
+ center
+ ),
+ angle,
+ center
+ ) AS ellipse
+FROM params;</programlisting>
</refsection>
<!-- Optionally add a "See Also" section -->
<refsection>
<title>See Also</title>
- <para><xref linkend="ST_Affine"/>, <xref linkend="ST_TransScale"/></para>
+ <para><xref linkend="ST_Affine"/>, <xref linkend="ST_Buffer"/>, <xref linkend="ST_MakePoint"/>, <xref linkend="ST_Rotate"/>, <xref linkend="ST_TransScale"/></para>
</refsection>
</refentry>
diff --git a/doc/using_raster_dataman.xml b/doc/using_raster_dataman.xml
index f3e78eddd6..eeca120365 100644
--- a/doc/using_raster_dataman.xml
+++ b/doc/using_raster_dataman.xml
@@ -482,6 +482,104 @@ AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';</programlisting
</para>
</section>
</section>
+ <section xml:id="RT_Raster_Coverages">
+ <title>Raster Coverages and Raster/Vector Analysis</title>
+ <para>A coverage is a way to interpret spatial data as a mapping from a
+ <emphasis>domain</emphasis> of locations to a <emphasis>range</emphasis> of
+ values. Evaluating a coverage means asking for the value at a location;
+ an inverse query asks for the locations whose values match a condition.
+ PostGIS does not expose a generic ISO 19123 coverage SQL type, but geometry
+ tables and raster values provide the building blocks for both directions.</para>
+ <para>A coverage can be continuous, with values calculated or interpolated
+ for arbitrary locations, or discrete, with values supplied by stored spatial
+ objects or grid cells. The coverage model describes how locations map to
+ values, independently of whether those values come from an equation, a table,
+ or one or more raster values. A time column or function argument can add a
+ temporal dimension without changing that distinction.</para>
+ <para>In a vector coverage, a geometry column supplies the domain and other
+ columns supply attributes in the range. A vector range can contain text,
+ numbers, or another spatial value, provided its meaning and type are
+ consistent wherever the coverage is defined. In a raster, each cell location
+ is part of the domain and the band values at that cell form the range. Other
+ columns in the same table row describe the raster value or tile as a whole;
+ they do not attach separate values to individual cells.</para>
+ <para>A logical raster coverage may be stored as one raster value or as many
+ tiles in a table. Tiles that belong to one coverage should have compatible
+ SRIDs, scales, alignment, band counts, pixel types, and NODATA conventions.
+ The constraints exposed by <xref linkend="RT_Raster_Columns"/> record and
+ validate those properties.</para>
+ <formalpara>
+ <title>Raster table arrangements.</title>
+ <para>A raster column can represent an image warehouse, a tiled coverage,
+ or a collection of rasterized objects. These arrangements have different
+ assumptions about tile size, alignment, gaps, and overlaps. PostGIS does
+ not infer the intended arrangement from the column type alone.</para>
+ </formalpara>
+ <informaltable>
+ <tgroup cols="3">
+ <thead>
+ <row><entry>Arrangement</entry><entry>Row relationship</entry><entry>Typical use</entry></row>
+ </thead>
+ <tbody>
+ <row><entry>Image warehouse</entry><entry>Independent rasters; sizes,
+ alignment, and extents may differ or overlap</entry><entry>Cataloging
+ unrelated source images</entry></row>
+ <row><entry>Irregular tiled coverage</entry><entry>One logical coverage
+ with gaps allowed, variable tile sizes, and normally no overlap</entry><entry>Incremental or
+ source-driven mosaics</entry></row>
+ <row><entry>Regular tiled coverage</entry><entry>One alignment and tile
+ size with no overlap; gaps may remain at the boundary or inside the coverage</entry><entry>
+ Indexed analysis over a large coverage</entry></row>
+ <row><entry>Rectangular regular coverage</entry><entry>Equal aligned
+ tiles fill a rectangular extent without gaps or overlaps</entry><entry>Predictable
+ block processing and overview generation</entry></row>
+ <row><entry>Separate tiled images</entry><entry>Each image is internally
+ regular but stored in its own table or partition</entry><entry>Keeping
+ source-image identity and lifecycle separate</entry></row>
+ <row><entry>Raster-object coverage</entry><entry>Each row is a rasterized
+ feature; extents and sizes may differ and overlap</entry><entry>Object
+ models where cells replace or supplement vector geometry</entry></row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <para>Use <xref linkend="RT_AddRasterConstraints"/> to record common
+ SRID, scale, alignment, band, extent, and regular-blocking properties, and
+ use spatial indexes and application constraints for relationships that the
+ catalog cannot express.</para>
+ <para>Queries against a tiled coverage normally have two stages:</para>
+ <orderedlist>
+ <listitem><para>Use the raster spatial index and
+ <xref linkend="RT_ST_Intersects"/> to select candidate tiles.</para></listitem>
+ <listitem><para>Read, clip, aggregate, or vectorize values inside those
+ tiles with functions such as <xref linkend="RT_ST_Value"/>,
+ <xref linkend="RT_ST_Clip"/>,
+ <xref linkend="RT_ST_SummaryStatsAgg"/>, and
+ <xref linkend="RT_ST_DumpAsPolygons"/>.</para></listitem>
+ </orderedlist>
+ <para><xref linkend="RT_ST_DumpAsPolygons"/> returns
+ <xref linkend="geomval"/> rows that pair geometries with cell values. This
+ allows ordinary geometry overlay and filtering to answer inverse coverage
+ queries, but polygonizing many cells is usually more expensive than keeping
+ the operation in raster space.</para>
+ <para>Choose boundary semantics deliberately. Clipping and aggregating raster
+ pixels is usually the shorter and faster path. If a partial boundary cell must
+ contribute in proportion to its covered area, intersect the geometry with the
+ <xref linkend="geomval"/> rows and calculate an area-weighted result in an
+ appropriate projected coordinate system. That exact partial-cell method costs
+ more because it vectorizes the selected cells.</para>
+ <para>Tile size affects both sides of the indexed query: smaller tiles reduce
+ the amount of raster data inspected for each candidate row, while increasing
+ row and index overhead. Benchmark representative queries instead of treating
+ one tile size as a universal default.</para>
+ <para>For a current end-to-end raster/vector pattern, load and tile data with
+ <xref linkend="RT_Raster_Loader"/>, then see the building example in
+ <xref linkend="RT_ST_SummaryStats"/>. It selects intersecting tiles, clips
+ them to each polygon, and combines per-tile statistics into one result per
+ feature. For point observations such as animal locations, first buffer the
+ points in an appropriate projected coordinate system, then apply the same
+ tile selection, clipping, and aggregation pattern to an elevation or other
+ continuous raster coverage.</para>
+ </section>
<section xml:id="RT_Raster_Catalog">
<title>Raster Catalogs</title>
<para>There are two raster catalog views that come packaged with PostGIS. Both views utilize information embedded in the constraints of the raster tables. As a result
diff --git a/postgis/lwgeom_geos.c b/postgis/lwgeom_geos.c
index 25688680b6..89d0501f56 100644
--- a/postgis/lwgeom_geos.c
+++ b/postgis/lwgeom_geos.c
@@ -2370,9 +2370,7 @@ Datum ST_Snap(PG_FUNCTION_ARGS)
* from Regione Toscana - Sistema Informativo per il Governo
* del Territorio e dell'Ambiente (RT-SIGTA).
*
- * Thanks to the PostGIS community for sharing poly/line ideas [1]
- *
- * [1] http://trac.osgeo.org/postgis/wiki/UsersWikiSplitPolygonWithLineString
+ * Thanks to the PostGIS community for sharing poly/line ideas.
*
*/
Datum ST_Split(PG_FUNCTION_ARGS);
diff --git a/raster/loader/raster2pgsql.c b/raster/loader/raster2pgsql.c
index c093a412ee..e0575a5926 100644
--- a/raster/loader/raster2pgsql.c
+++ b/raster/loader/raster2pgsql.c
@@ -1,7 +1,6 @@
/*
*
* PostGIS raster loader
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright 2001-2003 Refractions Research Inc.
* Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
diff --git a/raster/loader/raster2pgsql.h b/raster/loader/raster2pgsql.h
index a18e76ea88..1ca2baca92 100644
--- a/raster/loader/raster2pgsql.h
+++ b/raster/loader/raster2pgsql.h
@@ -1,7 +1,6 @@
/*
*
* PostGIS Raster loader
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright 2001-2003 Refractions Research Inc.
* Copyright 2009 Paul Ramsey <pramsey at cleverelephant.ca>
diff --git a/raster/rt_core/librtcore.h b/raster/rt_core/librtcore.h
index 97cc83bff7..5e0e19fef8 100644
--- a/raster/rt_core/librtcore.h
+++ b/raster/rt_core/librtcore.h
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/librtcore_internal.h b/raster/rt_core/librtcore_internal.h
index 32ff7ec9df..827399f118 100644
--- a/raster/rt_core/librtcore_internal.h
+++ b/raster/rt_core/librtcore_internal.h
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_band.c b/raster/rt_core/rt_band.c
index c9738782be..d086647934 100644
--- a/raster/rt_core/rt_band.c
+++ b/raster/rt_core/rt_band.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2018 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2011-2013 Regents of the University of California
diff --git a/raster/rt_core/rt_context.c b/raster/rt_core/rt_context.c
index 8ee187cc49..6483e5f50d 100644
--- a/raster/rt_core/rt_context.c
+++ b/raster/rt_core/rt_context.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_gdal.c b/raster/rt_core/rt_gdal.c
index f41c246f42..93f238ba42 100644
--- a/raster/rt_core/rt_gdal.c
+++ b/raster/rt_core/rt_gdal.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2021 Paul Ramsey <pramsey at cleverelephant.ca>
* Copyright (C) 2025 Darafei Praliaskouski <me at komzpa.net>
diff --git a/raster/rt_core/rt_geometry.c b/raster/rt_core/rt_geometry.c
index 1eb2b87f67..8b3fdd4f83 100644
--- a/raster/rt_core/rt_geometry.c
+++ b/raster/rt_core/rt_geometry.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_mapalgebra.c b/raster/rt_core/rt_mapalgebra.c
index ec56a5ada3..82201de2dd 100644
--- a/raster/rt_core/rt_mapalgebra.c
+++ b/raster/rt_core/rt_mapalgebra.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_pixel.c b/raster/rt_core/rt_pixel.c
index 15793e82e1..2ad38115ea 100644
--- a/raster/rt_core/rt_pixel.c
+++ b/raster/rt_core/rt_pixel.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_raster.c b/raster/rt_core/rt_raster.c
index 9d5fe7c388..3bfe0b9ae4 100644
--- a/raster/rt_core/rt_raster.c
+++ b/raster/rt_core/rt_raster.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2013 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2026 Darafei Praliaskouski <me at komzpa.net>
diff --git a/raster/rt_core/rt_serialize.c b/raster/rt_core/rt_serialize.c
index dbb7cd5270..91b4796c66 100644
--- a/raster/rt_core/rt_serialize.c
+++ b/raster/rt_core/rt_serialize.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_serialize.h b/raster/rt_core/rt_serialize.h
index bef32904ca..a424751f56 100644
--- a/raster/rt_core/rt_serialize.h
+++ b/raster/rt_core/rt_serialize.h
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_spatial_relationship.c b/raster/rt_core/rt_spatial_relationship.c
index 0388a8ff13..625b2ead26 100644
--- a/raster/rt_core/rt_spatial_relationship.c
+++ b/raster/rt_core/rt_spatial_relationship.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_statistics.c b/raster/rt_core/rt_statistics.c
index 8be627161d..af6b89a97e 100644
--- a/raster/rt_core/rt_statistics.c
+++ b/raster/rt_core/rt_statistics.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_util.c b/raster/rt_core/rt_util.c
index 95f4eb8f3f..0c698fc280 100644
--- a/raster/rt_core/rt_util.c
+++ b/raster/rt_core/rt_util.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_core/rt_warp.c b/raster/rt_core/rt_warp.c
index 8058529ba2..f029f70a39 100644
--- a/raster/rt_core/rt_warp.c
+++ b/raster/rt_core/rt_warp.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2013 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2011-2013 Regents of the University of California
diff --git a/raster/rt_core/rt_wkb.c b/raster/rt_core/rt_wkb.c
index 86efe1e744..4f6632b552 100644
--- a/raster/rt_core/rt_wkb.c
+++ b/raster/rt_core/rt_wkb.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_band_properties.c b/raster/rt_pg/rtpg_band_properties.c
index 8ec500a9a6..c5ea9060b7 100644
--- a/raster/rt_pg/rtpg_band_properties.c
+++ b/raster/rt_pg/rtpg_band_properties.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_create.c b/raster/rt_pg/rtpg_create.c
index f69865af3f..f6e0cfe7fa 100644
--- a/raster/rt_pg/rtpg_create.c
+++ b/raster/rt_pg/rtpg_create.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_gdal.c b/raster/rt_pg/rtpg_gdal.c
index 1c10aa1e0c..fdc3333fd2 100644
--- a/raster/rt_pg/rtpg_gdal.c
+++ b/raster/rt_pg/rtpg_gdal.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_geometry.c b/raster/rt_pg/rtpg_geometry.c
index 474aa62b77..fc66359542 100644
--- a/raster/rt_pg/rtpg_geometry.c
+++ b/raster/rt_pg/rtpg_geometry.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_inout.c b/raster/rt_pg/rtpg_inout.c
index b959cf204c..ec251dbfe6 100644
--- a/raster/rt_pg/rtpg_inout.c
+++ b/raster/rt_pg/rtpg_inout.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_internal.c b/raster/rt_pg/rtpg_internal.c
index 630b6c82cb..706b984b34 100644
--- a/raster/rt_pg/rtpg_internal.c
+++ b/raster/rt_pg/rtpg_internal.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_internal.h b/raster/rt_pg/rtpg_internal.h
index 8a6dc4ec68..ceca24fb7e 100644
--- a/raster/rt_pg/rtpg_internal.h
+++ b/raster/rt_pg/rtpg_internal.h
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_mapalgebra.c b/raster/rt_pg/rtpg_mapalgebra.c
index 601c795e6c..bd27a2abca 100644
--- a/raster/rt_pg/rtpg_mapalgebra.c
+++ b/raster/rt_pg/rtpg_mapalgebra.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_pixel.c b/raster/rt_pg/rtpg_pixel.c
index 3791353f35..2685ae6669 100644
--- a/raster/rt_pg/rtpg_pixel.c
+++ b/raster/rt_pg/rtpg_pixel.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_raster_properties.c b/raster/rt_pg/rtpg_raster_properties.c
index c2717585e0..dc37f6cbae 100644
--- a/raster/rt_pg/rtpg_raster_properties.c
+++ b/raster/rt_pg/rtpg_raster_properties.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_spatial_relationship.c b/raster/rt_pg/rtpg_spatial_relationship.c
index 4a83d76d53..1278512989 100644
--- a/raster/rt_pg/rtpg_spatial_relationship.c
+++ b/raster/rt_pg/rtpg_spatial_relationship.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_statistics.c b/raster/rt_pg/rtpg_statistics.c
index 03219f74ee..5053b5d4ca 100644
--- a/raster/rt_pg/rtpg_statistics.c
+++ b/raster/rt_pg/rtpg_statistics.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2013 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2011-2013 Regents of the University of California
diff --git a/raster/rt_pg/rtpg_utility.c b/raster/rt_pg/rtpg_utility.c
index d0293e7467..8dffcf2c53 100644
--- a/raster/rt_pg/rtpg_utility.c
+++ b/raster/rt_pg/rtpg_utility.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpg_wkb.c b/raster/rt_pg/rtpg_wkb.c
index 6cf2b8a95b..d7474649de 100644
--- a/raster/rt_pg/rtpg_wkb.c
+++ b/raster/rt_pg/rtpg_wkb.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2018-2018 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2011-2013 Regents of the University of California
diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c
index 76327b1970..4c8bd1a3fa 100644
--- a/raster/rt_pg/rtpostgis.c
+++ b/raster/rt_pg/rtpostgis.c
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2011-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpostgis.h b/raster/rt_pg/rtpostgis.h
index bef763e15c..d2a77cabad 100644
--- a/raster/rt_pg/rtpostgis.h
+++ b/raster/rt_pg/rtpostgis.h
@@ -1,7 +1,6 @@
/*
*
* WKTRaster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2010-2011 Jorge Arevalo <jorge.arevalo at deimos-space.com>
* Copyright (C) 2010-2011 David Zwarg <dzwarg at azavea.com>
diff --git a/raster/rt_pg/rtpostgis.sql.in b/raster/rt_pg/rtpostgis.sql.in
index 704deecc32..29d79ce7e5 100644
--- a/raster/rt_pg/rtpostgis.sql.in
+++ b/raster/rt_pg/rtpostgis.sql.in
@@ -2,7 +2,6 @@
--
--
-- PostGIS Raster - Raster Type for PostGIS
--- http://trac.osgeo.org/postgis/wiki/WKTRaster
--
-- Copyright (c) 2015-2017 Regina Obe <lr at pcorp.us>
-- Copyright (c) 2009-2024 Sandro Santilli <strk at kbt.io>
diff --git a/raster/rt_pg/rtpostgis_drop.sql.in b/raster/rt_pg/rtpostgis_drop.sql.in
index 284281cf0a..450ba90849 100644
--- a/raster/rt_pg/rtpostgis_drop.sql.in
+++ b/raster/rt_pg/rtpostgis_drop.sql.in
@@ -2,7 +2,6 @@
--
--
-- PostGIS Raster - Raster Type for PostGIS
--- http://trac.osgeo.org/postgis/wiki/WKTRaster
--
-- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
-- Copyright (C) 2011-2012 Regents of the University of California
diff --git a/raster/rt_pg/rtpostgis_legacy.sql.in b/raster/rt_pg/rtpostgis_legacy.sql.in
index b2a73b226c..eb80fb3b71 100644
--- a/raster/rt_pg/rtpostgis_legacy.sql.in
+++ b/raster/rt_pg/rtpostgis_legacy.sql.in
@@ -2,7 +2,6 @@
--
--
-- PostGIS Raster - Raster Type for PostGIS
--- http://trac.osgeo.org/postgis/wiki/WKTRaster
--
-- Copyright (C) 2012 Regents of the University of California
-- <bkpark at ucdavis.edu>
diff --git a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
index 654729567d..a307c01643 100644
--- a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
+++ b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in
@@ -2,7 +2,6 @@
--
--
-- PostGIS Raster - Raster Type for PostGIS
--- http://trac.osgeo.org/postgis/wiki/WKTRaster
--
-- Copyright (c) 2011 Regina Obe <lr at pcorp.us>
-- Copyright (C) 2011 Regents of the University of California
diff --git a/raster/scripts/python/raster2pgsql.py b/raster/scripts/python/raster2pgsql.py
index 82423568d2..a2773064ec 100755
--- a/raster/scripts/python/raster2pgsql.py
+++ b/raster/scripts/python/raster2pgsql.py
@@ -4,8 +4,6 @@
# This is a simple utility used to dump GDAL dataset into HEX WKB stream.
# It's considered as a prototype of raster2pgsql tool planned to develop
# in future.
-# For more details about raster2pgsql tool, see Specification page:
-# http://trac.osgeo.org/postgis/wiki/WKTRaster
#
# The script requires Python bindings for GDAL.
# Available at http://trac.osgeo.org/gdal/wiki/GdalOgrInPython
diff --git a/raster/test/cunit/cu_band_basics.c b/raster/test/cunit/cu_band_basics.c
index 6a67f5d281..a33c860105 100644
--- a/raster/test/cunit/cu_band_basics.c
+++ b/raster/test/cunit/cu_band_basics.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2018 Bborie Park <dustymugs at gmail.com>
* Copyright (C) 2012 Regents of the University of California
diff --git a/raster/test/cunit/cu_band_misc.c b/raster/test/cunit/cu_band_misc.c
index f3af3f0a42..0ee752395c 100644
--- a/raster/test/cunit/cu_band_misc.c
+++ b/raster/test/cunit/cu_band_misc.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_band_stats.c b/raster/test/cunit/cu_band_stats.c
index 499f37afcf..e2af35bd0b 100644
--- a/raster/test/cunit/cu_band_stats.c
+++ b/raster/test/cunit/cu_band_stats.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_gdal.c b/raster/test/cunit/cu_gdal.c
index 67fdaf55c0..66282f57cb 100644
--- a/raster/test/cunit/cu_gdal.c
+++ b/raster/test/cunit/cu_gdal.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_mapalgebra.c b/raster/test/cunit/cu_mapalgebra.c
index 553cc7c361..491042a685 100644
--- a/raster/test/cunit/cu_mapalgebra.c
+++ b/raster/test/cunit/cu_mapalgebra.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_misc.c b/raster/test/cunit/cu_misc.c
index 791d701362..a9506e313c 100644
--- a/raster/test/cunit/cu_misc.c
+++ b/raster/test/cunit/cu_misc.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_pixtype.c b/raster/test/cunit/cu_pixtype.c
index 6ef05cd64e..0e5008d3e5 100644
--- a/raster/test/cunit/cu_pixtype.c
+++ b/raster/test/cunit/cu_pixtype.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_raster_basics.c b/raster/test/cunit/cu_raster_basics.c
index e8eac73a7e..385c076619 100644
--- a/raster/test/cunit/cu_raster_basics.c
+++ b/raster/test/cunit/cu_raster_basics.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_raster_geometry.c b/raster/test/cunit/cu_raster_geometry.c
index 97ebb40f4e..d3340d04d4 100644
--- a/raster/test/cunit/cu_raster_geometry.c
+++ b/raster/test/cunit/cu_raster_geometry.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012-2013 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_raster_misc.c b/raster/test/cunit/cu_raster_misc.c
index 0487491933..1cb68a42c3 100644
--- a/raster/test/cunit/cu_raster_misc.c
+++ b/raster/test/cunit/cu_raster_misc.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_raster_wkb.c b/raster/test/cunit/cu_raster_wkb.c
index e1e6219e11..c210e2d64b 100644
--- a/raster/test/cunit/cu_raster_wkb.c
+++ b/raster/test/cunit/cu_raster_wkb.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/raster/test/cunit/cu_spatial_relationship.c b/raster/test/cunit/cu_spatial_relationship.c
index 7438367e45..6cca6bb157 100644
--- a/raster/test/cunit/cu_spatial_relationship.c
+++ b/raster/test/cunit/cu_spatial_relationship.c
@@ -1,6 +1,5 @@
/*
* PostGIS Raster - Raster Types for PostGIS
- * http://trac.osgeo.org/postgis/wiki/WKTRaster
*
* Copyright (C) 2012 Regents of the University of California
* <bkpark at ucdavis.edu>
diff --git a/regress/core/empty.sql b/regress/core/empty.sql
index d07ce252a3..91c4fd33d7 100644
--- a/regress/core/empty.sql
+++ b/regress/core/empty.sql
@@ -30,7 +30,7 @@ SELECT 'T3.16', ST_AsGML(3,'MULTIPOLYGON EMPTY'::geometry);
SELECT 'T3.17', ST_AsGML(3,'MULTILINESTRING EMPTY'::geometry);
SELECT 'T3.18', ST_AsGML(3,'GEOMETRYCOLLECTION EMPTY'::geometry);
--- See http://trac.osgeo.org/postgis/wiki/DevWikiEmptyGeometry
+-- See https://postgis.net/development/docs/internals/empty-geometry/
WITH inp AS (SELECT
'POLYGON EMPTY'::geometry as empty,
diff --git a/utils/check_all_upgrades.sh b/utils/check_all_upgrades.sh
index 14e9b51f77..90550c9f14 100755
--- a/utils/check_all_upgrades.sh
+++ b/utils/check_all_upgrades.sh
@@ -148,7 +148,7 @@ minimum_postgis_version_for_postgresql_major_version()
supportfile=${TMPDIR}/minimum_supported_version_for_postgresql
if ! test -e ${supportfile}; then
- # Source: https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
+ # Source: https://postgis.net/development/compatibility/
cat > ${supportfile} <<EOF
9.6:2.3
10:2.4
-----------------------------------------------------------------------
Summary of changes:
LICENSE.TXT | 13 +-
SECURITY.md | 2 +-
doc/credits.xml | 38 +++++
.../images/raster-storage/coverage-concepts.png | Bin 0 -> 70063 bytes
.../raster-storage/raster-table-arrangements.gif | Bin 0 -> 148699 bytes
doc/development/internals/raster-gdal-driver.md | 4 +-
doc/development/internals/raster-storage.md | 114 ++++++++++++++-
doc/development/internals/spatial-collections.md | 27 ++--
doc/development/release/api.md | 34 -----
doc/development/todo.md | 162 ++++++---------------
doc/introduction.xml | 11 ++
doc/reference_lrs.xml | 12 +-
doc/reference_output.xml | 18 +++
doc/reference_transformation.xml | 23 ++-
doc/using_raster_dataman.xml | 98 +++++++++++++
postgis/lwgeom_geos.c | 4 +-
raster/loader/raster2pgsql.c | 1 -
raster/loader/raster2pgsql.h | 1 -
raster/rt_core/librtcore.h | 1 -
raster/rt_core/librtcore_internal.h | 1 -
raster/rt_core/rt_band.c | 1 -
raster/rt_core/rt_context.c | 1 -
raster/rt_core/rt_gdal.c | 1 -
raster/rt_core/rt_geometry.c | 1 -
raster/rt_core/rt_mapalgebra.c | 1 -
raster/rt_core/rt_pixel.c | 1 -
raster/rt_core/rt_raster.c | 1 -
raster/rt_core/rt_serialize.c | 1 -
raster/rt_core/rt_serialize.h | 1 -
raster/rt_core/rt_spatial_relationship.c | 1 -
raster/rt_core/rt_statistics.c | 1 -
raster/rt_core/rt_util.c | 1 -
raster/rt_core/rt_warp.c | 1 -
raster/rt_core/rt_wkb.c | 1 -
raster/rt_pg/rtpg_band_properties.c | 1 -
raster/rt_pg/rtpg_create.c | 1 -
raster/rt_pg/rtpg_gdal.c | 1 -
raster/rt_pg/rtpg_geometry.c | 1 -
raster/rt_pg/rtpg_inout.c | 1 -
raster/rt_pg/rtpg_internal.c | 1 -
raster/rt_pg/rtpg_internal.h | 1 -
raster/rt_pg/rtpg_mapalgebra.c | 1 -
raster/rt_pg/rtpg_pixel.c | 1 -
raster/rt_pg/rtpg_raster_properties.c | 1 -
raster/rt_pg/rtpg_spatial_relationship.c | 1 -
raster/rt_pg/rtpg_statistics.c | 1 -
raster/rt_pg/rtpg_utility.c | 1 -
raster/rt_pg/rtpg_wkb.c | 1 -
raster/rt_pg/rtpostgis.c | 1 -
raster/rt_pg/rtpostgis.h | 1 -
raster/rt_pg/rtpostgis.sql.in | 1 -
raster/rt_pg/rtpostgis_drop.sql.in | 1 -
raster/rt_pg/rtpostgis_legacy.sql.in | 1 -
raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in | 1 -
raster/scripts/python/raster2pgsql.py | 2 -
raster/test/cunit/cu_band_basics.c | 1 -
raster/test/cunit/cu_band_misc.c | 1 -
raster/test/cunit/cu_band_stats.c | 1 -
raster/test/cunit/cu_gdal.c | 1 -
raster/test/cunit/cu_mapalgebra.c | 1 -
raster/test/cunit/cu_misc.c | 1 -
raster/test/cunit/cu_pixtype.c | 1 -
raster/test/cunit/cu_raster_basics.c | 1 -
raster/test/cunit/cu_raster_geometry.c | 1 -
raster/test/cunit/cu_raster_misc.c | 1 -
raster/test/cunit/cu_raster_wkb.c | 1 -
raster/test/cunit/cu_spatial_relationship.c | 1 -
regress/core/empty.sql | 2 +-
utils/check_all_upgrades.sh | 2 +-
69 files changed, 375 insertions(+), 241 deletions(-)
create mode 100644 doc/development/internals/images/raster-storage/coverage-concepts.png
create mode 100644 doc/development/internals/images/raster-storage/raster-table-arrangements.gif
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list