From git at osgeo.org Mon Dec 1 02:48:01 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 1 Dec 2025 02:48:01 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-240-g6fea7a216 Message-ID: <20251201104802.47A6316AD25@trac.osgeo.org> 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 6fea7a21681c0c4d488fe071cba776babdbf37f1 (commit) from 3b585a8fe4c3d3078ee1c4028c2182e9bb2e4690 (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 6fea7a21681c0c4d488fe071cba776babdbf37f1 Author: Teramoto Ikuhiro Date: Mon Dec 1 09:03:50 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 98.9% (5831 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index a714bf2fe..ea7d5b6e0 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-01 02:47+0000\n" +"PO-Revision-Date: 2025-12-01 10:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -10112,7 +10112,7 @@ msgstr "Lauren?iu Nicola" #. Tag: para #, no-c-format msgid "Bug fixes, maintenance, stability, and performance" -msgstr "" +msgstr "???????????????????" #. Tag: title #, no-c-format @@ -10645,7 +10645,7 @@ msgstr "Kris Jurka" #. Tag: member #, no-c-format msgid "Lauren?iu Nicola" -msgstr "" +msgstr "Lauren?iu Nicola" #. Tag: member #, no-c-format @@ -11206,6 +11206,9 @@ msgid "" "past. We used PledgeBank and we got two successful campaigns out of it." msgstr "" +"PostGIS??????????????????????????PledgeBank?????2?????????????" #. Tag: para #, no-c-format @@ -11306,6 +11309,12 @@ msgid "" "toast.html\">the PostgreSQL Documentation for TOAST for more " "information)." msgstr "" +"???PostgreSQL??TOAST??????????????????????????" +"??TOAST??????(???????????????????????????" +"????)????????????????(?????????????)????" +"????????????????????????PostgreSQL???????TOAST????????" #. Tag: para #, no-c-format @@ -12038,6 +12047,9 @@ msgid "" "dimensionality, or coordinate components so that spatial expressions can " "interrogate complex objects in a controlled way." msgstr "" +"??????????????????????????????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" #. Tag: refpurpose #, no-c-format @@ -12582,6 +12594,10 @@ msgid "" "linkend=\"ST_Dump\"/> to extract polygon elements from polygonal geometries: " "ST_DumpRings( (ST_Dump(geom)).geom )" msgstr "" +"POLYGON??????????????MULTIPOLYGON?????????" +"?????????????????????????????????????????: ST_DumpRings( (ST_Dump(geom)).geom " +")" #. Tag: para #, no-c-format @@ -12591,12 +12607,12 @@ msgstr "Availability: PostGIS 1.1.3 PostgreSQL 7.3????????" #. Tag: para #, no-c-format msgid "Extracting all rings as polygons." -msgstr "" +msgstr "??????????????????" #. Tag: para #, no-c-format msgid "Extracting shell and holes from a polygon." -msgstr "" +msgstr "??????????????" #. Tag: para #, no-c-format @@ -14381,6 +14397,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -14434,6 +14453,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -14460,6 +14482,9 @@ msgid "" "linkend=\"ST_ZMax\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -14486,6 +14511,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -14512,17 +14540,21 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , , , " #. Tag: refpurpose #, no-c-format msgid "Returns the M minima of a geometry." -msgstr "" +msgstr "??????M???????????" #. Tag: para #, no-c-format msgid "" "Returns the M minima of a geometry, or null of the geometry lacks M values." -msgstr "" +msgstr "??????M???????????M??????????NULL??????" #. Tag: para #, no-c-format @@ -14531,6 +14563,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: para #, no-c-format @@ -14539,6 +14574,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 52 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 7 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 1 05:00:57 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 01 Dec 2025 13:00:57 -0000 Subject: [PostGIS] #6022: Add documentation on simplification performed by ST_AsMVTGeom Message-ID: <049.8d06e190fc385292e7a351ca01334593@osgeo.org> #6022: Add documentation on simplification performed by ST_AsMVTGeom ---------------------------+------------------- Reporter: robintw | Owner: robe Type: enhancement | Status: new Priority: medium | Milestone: Component: documentation | Version: 3.5.x Keywords: | ---------------------------+------------------- During PostGIS Day 2025, I asked a question about how vector simplification works when producing MVT geometries in PostGIS. Paul Ramsey suggested I raised a ticket suggesting additional documentation on this, which could be added to the docs for the ST_AsMVTGeom function, or anywhere else appropriate. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 1 19:41:54 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 02 Dec 2025 03:41:54 -0000 Subject: [PostGIS] #3651: ST_Orientation crashes the backend In-Reply-To: <053.eddda6c7c6b527b9efa247c07629950c@osgeo.org> References: <053.eddda6c7c6b527b9efa247c07629950c@osgeo.org> Message-ID: <068.460db4ed7473fb87922d5bdf44885d93@osgeo.org> #3651: ST_Orientation crashes the backend --------------------------+----------------------------- Reporter: postgispaul | Owner: Lo?c Bartoletti Type: defect | Status: closed Priority: high | Milestone: PostGIS SFCGAL Component: sfcgal | Version: 2.3.x Resolution: fixed | Keywords: windows --------------------------+----------------------------- Changes (by robe): * resolution: => fixed * status: new => closed Comment: Seems to be fixed by - https://gitlab.com/sfcgal/SFCGAL/-/merge_requests/471#note_2925180828 so will close this out as it will be part of the sfcgal 2.3.0 release -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 2 02:44:03 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 02 Dec 2025 10:44:03 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) Message-ID: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) -------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Keywords: | -------------------------------+------------------- From a set of topology jobs we got a simple feature result table with 115930754 rows. But in this result table we did find both gaps and overlaps in 6677 quite small areas. We always run ValidateTopology so we did know that we had invalid topology i this areas also. So I created a simple test [https://gitlab.com/nibioopensource/resolve- overlap-and-gap/-/blob/118-topology-error-cause-overlap-in-result-mixed- face-labeling-in-ring-54-face-has-multiple- shells/src/test/sql/regress/rog_overlay_test_25.sql?ref_type=heads] for small problem area {{{ face has multiple shells | 3 | -25 mixed face labeling in ring | 1 | [NULL] }}} So from this test I created single sql file attached no_tolerance.sql to reproduce the error. If create the Topology with a tolerance almost all errors seems to go away, see file with_tolerance.sql. This is tested in {{{ PostgreSQL 16.10 (Homebrew) on aarch64-apple-darwin23.6.0, compiled by Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" PROJ="9.7.0 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj DATABASE_PATH=/opt/homebrew/Cellar/proj/9.7.0/share/proj/proj.db" (compiled against PROJ 9.7.0) LIBXML="2.13.0" LIBJSON="0.18" TOPOLOGY }}} and {{{ PostgreSQL 16.4 (Ubuntu 16.4-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 2 02:44:21 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 02 Dec 2025 10:44:21 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.4d98275c17ea80c41565ae2373e9036f@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by Lars Aksel Opsahl): * Attachment "no_tolerance.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 2 02:44:34 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 02 Dec 2025 10:44:34 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.8ed51717c9a622721ea5f288d8208330@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by Lars Aksel Opsahl): * Attachment "with_tolerance.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Tue Dec 2 03:47:53 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 2 Dec 2025 03:47:53 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-241-gab560b38d Message-ID: <20251202114754.47C8D18C707@trac.osgeo.org> 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 ab560b38d7cee7e4ca569f32a55b73e52563f789 (commit) from 6fea7a21681c0c4d488fe071cba776babdbf37f1 (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 ab560b38d7cee7e4ca569f32a55b73e52563f789 Author: Teramoto Ikuhiro Date: Tue Dec 2 09:49:48 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 98.9% (5832 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index ea7d5b6e0..2e273283b 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-01 10:47+0000\n" +"PO-Revision-Date: 2025-12-02 11:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -27696,19 +27696,19 @@ msgid "This function strips the M dimension." msgstr "?????M?????????" #. Tag: title -#, no-c-format +#, fuzzy, no-c-format msgid "Cardinality 2" -msgstr "" +msgstr "??2" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "Nodes with cardinality 2 are merged away." -msgstr "" +msgstr "??2?????????????" #. Tag: title -#, no-c-format +#, fuzzy, no-c-format msgid "Cardinality 3 or More" -msgstr "" +msgstr "??3??" #. Tag: para #, no-c-format @@ -32851,6 +32851,13 @@ msgid "" "and set it to libproj.dll. You'll have to restart your " "PostgreSQL service/daemon after this change." msgstr "" +"????????????????????????PROJSO???????PostGIS?" +"??????????????????????????????????????" +"?????????Windows??????????? -> ???? -> " +"????????? -> ?????? -> ???? ? " +"PROJSO??????????????libproj.dll???????????????PostgreSQL????/???????????" +"???????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 2 17:47:56 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 2 Dec 2025 17:47:56 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-242-g86b94f6b3 Message-ID: <20251203014756.F282C18F399@trac.osgeo.org> 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 86b94f6b39023524572ff3824f8e79614896648d (commit) from ab560b38d7cee7e4ca569f32a55b73e52563f789 (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 86b94f6b39023524572ff3824f8e79614896648d Author: Teramoto Ikuhiro Date: Wed Dec 3 00:34:39 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.1% (5844 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 2e273283b..98fae5178 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-02 11:47+0000\n" +"PO-Revision-Date: 2025-12-03 01:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -9212,6 +9212,10 @@ msgid "" "configure it for your needs, refer to ." msgstr "" +"address_standardizer?????????PostGIS?????????" +"?address_standardizer?????????" +"????????????????????????" #. Tag: para #, no-c-format @@ -9409,6 +9413,12 @@ msgid "" "by default because it takes quite a bit of time to load (20 to 60 minutes), " "takes up quite a bit of disk space, and is not used that often." msgstr "" +"?????????zcta5 (Zip Code 5 digit Tabulation " +"Area, 5??????????)??????ZCTA?????????" +"??????????????????????????????? (20??60????)???" +"??????????????????????????????????????" +"??????????" #. Tag: para #, no-c-format @@ -14960,6 +14970,9 @@ msgid "" "primitives, coordinate sequences, or existing geometries into well-formed " "spatial objects that can participate in subsequent analysis." msgstr "" +"??????????????????????????????????????" +"??????????????????????????????????????" +"?????????????" #. Tag: refpurpose #, no-c-format @@ -15207,13 +15220,18 @@ msgid "" "appear in the collection. can be " "used to collapse repeated points from the output LineString." msgstr "" +"??????????????????????????????????????" +"??????????????????????????????????????" +"?????????????????????????????????" +"???????????????????????????????" #. Tag: para #, no-c-format msgid "" "Availability: 3.7.0 - Support for MultiLineString input elements was " "introduced" -msgstr "" +msgstr "Availability: 3.7.0 - ???????????????????????????" #. Tag: para #, no-c-format @@ -15302,7 +15320,8 @@ msgid "" "When ordering within the aggregate is not possible, ordering in a subquery " "can be used. However, sometimes the query plan may not respect the order of " "the subquery." -msgstr "" +msgstr "??????????????????????????????????????" +"???????????????????????????" #. Tag: para #, no-c-format @@ -16330,24 +16349,26 @@ msgstr "" msgid "" "A window function which adjusts the edges of a set of valid polygonal " "geometries to produce a clean coverage. Cleaning involves:" -msgstr "" +msgstr "??????????????????????????????????????" +"?????????????????????????????:" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "" "snapping vertices and edges to remove small discrepancies and ensure common " "edges are identically noded" -msgstr "" +msgstr "??????????????????????????????????????" +"?????????????????????" #. Tag: para #, no-c-format msgid "merging overlaps into a parent polygon" -msgstr "" +msgstr "???????????????????????????????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "merging narrow gaps into adjacent polygons" -msgstr "" +msgstr "????????????????????" #. Tag: para #, no-c-format @@ -16356,6 +16377,8 @@ msgid "" "are merged. Gaps with width <= this distance are merged into an adjacent " "polygon." msgstr "" +"gapMaximumWidth???????????????????" +"????????????????????????????????" #. Tag: para #, no-c-format @@ -16364,6 +16387,9 @@ msgid "" "edges. The default (-1) automatically determines a snapping distance based " "on the input extent. Set to 0.0 to turn off snapping." msgstr "" +"snappingDistance???????????????????" +"????? (-1)?????????????????????????????0." +"0??????????????????" #. Tag: para #, no-c-format @@ -16371,30 +16397,33 @@ msgid "" "overlapMergeStrategy specifies how overlaps are " "merged into a parent polygon:" msgstr "" +"overlapMergeStrategy?????????????????" +"????????????????????:" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "" "MERGE_LONGEST_BORDER - merges into polygon with longest common " "border" -msgstr "" +msgstr "MERGE_LONGEST_BORDER - ?????????????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "MERGE_MAX_AREA - merges into polygon with maximum area" -msgstr "" +msgstr "MERGE_MAX_AREA - ???????????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "MERGE_MIN_AREA - merges into polygon with minimum area" -msgstr "" +msgstr "MERGE_MIN_AREA - ???????????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "" "MERGE_MIN_INDEX - merges into polygon with smallest input index " "(defined by order of input polygons)" -msgstr "" +msgstr "MERGE_MIN_INDEX - ???????? " +"(???????????????)???????????" #. Tag: para #, no-c-format @@ -16403,6 +16432,8 @@ msgid "" "linkend=\"ST_CoverageInvalidEdges\"/> and can be input to coverage " "processing functions." msgstr "" +"?????????????????????????????????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 65 +++++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 17 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 2 19:47:53 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 2 Dec 2025 19:47:53 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-243-g7d1143e37 Message-ID: <20251203034754.059D318FCD8@trac.osgeo.org> 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 7d1143e37cfb842df01ad28c7fac0cc3d041f986 (commit) from 86b94f6b39023524572ff3824f8e79614896648d (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 7d1143e37cfb842df01ad28c7fac0cc3d041f986 Author: Teramoto Ikuhiro Date: Wed Dec 3 02:49:29 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.2% (5850 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 98fae5178..9fc333f8d 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-03 01:47+0000\n" +"PO-Revision-Date: 2025-12-03 03:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -16446,6 +16446,12 @@ msgid "" "linkend=\"ST_MaximumInscribedCircle\"/> on them; the gap width is twice the " "computed radius." msgstr "" +"????????????????gapMaximumWidth => " +"0????????????????" +"??????????????????????????????????????" +"????????????????????????????????????" +"????????????2???????????" #. Tag: para #, no-c-format @@ -16455,17 +16461,17 @@ msgstr "Availability: 3.6.0 - GEOS >= 3.14.0?????" #. Tag: para #, no-c-format msgid "Polygons with overlaps and gaps" -msgstr "" +msgstr "?????????????" #. Tag: para #, no-c-format msgid "Invalid coverage edges" -msgstr "" +msgstr "????????????" #. Tag: para #, no-c-format msgid "Clean polygonal coverage, with overlaps and narrow gaps removed" -msgstr "" +msgstr "?????????????????????????????" #. Tag: para #, no-c-format @@ -16474,6 +16480,8 @@ msgid "" "linkend=\"ST_CoverageSimplify\"/>, " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format @@ -19559,6 +19567,11 @@ msgid "" "In this case we escape the ' with standard ANSI ', but slashes are not " "escaped" msgstr "" +"PostgreSQL????????standard_conforming_strings????????????" +"??????????????????????????????????????" +"??????????????standard_conforming_strings = " +"on??????????????????????ANSI? ' " +"??????????????????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 2 21:47:53 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 2 Dec 2025 21:47:53 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-244-g423abc284 Message-ID: <20251203054753.AB1431A0E40@trac.osgeo.org> 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 423abc284713d64b9558f807986c85184255a56d (commit) from 7d1143e37cfb842df01ad28c7fac0cc3d041f986 (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 423abc284713d64b9558f807986c85184255a56d Author: Teramoto Ikuhiro Date: Wed Dec 3 04:31:38 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.4% (5860 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 9fc333f8d..2df62febb 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-03 03:47+0000\n" +"PO-Revision-Date: 2025-12-03 05:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -23772,13 +23772,17 @@ msgid "" msgstr "A????????B????????????????????????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "" "The |=| operator returns the 3D distance between two " "trajectories (See ). This is the " "same as but as an operator it can be used " "for doing nearest neighbor searches using an N-dimensional index." msgstr "" +"|=|????????? (??)???3????????????????????N??????????????????????????" #. Tag: para #, no-c-format @@ -23806,7 +23810,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.2.0." -msgstr "" +msgstr "Availability: 2.2.0." #. Tag: para #, no-c-format @@ -23831,6 +23835,9 @@ msgid "" "Useful for doing nearest neighbor approximate distance ordering." msgstr "" +"<#>????????????????????????" +"????????????????????????????????????????????????" #. Tag: para #, no-c-format @@ -23856,7 +23863,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.0.0." -msgstr "" +msgstr "Availability: 2.0.0." #. Tag: para #, no-c-format @@ -24146,6 +24153,9 @@ msgid "" "default. If your GUI tools require the old behavior, then SET " "bytea_output='escape' in your database." msgstr "" +"???????PostgreSQL?16?????????? bytea??" +"??????????GUI?????????????????????????bytea_output='escape'???????" #. Tag: para #, no-c-format @@ -24484,6 +24494,10 @@ msgid "" "function> raises a warning in that case because PostgreSQL jsonb keeps only the last value for duplicate keys." msgstr "" +"????????????????????\"properties" +"\"?????????????????????" +"???????ST_AsGeoJSON????????? PostgreSQL" +"?jsonb??????????????????????????" #. Tag: para #, no-c-format @@ -24556,7 +24570,7 @@ msgstr "Changed: 3.5.0 ???id??????????????? #. Tag: para #, no-c-format msgid "Changed: 3.7.0 added warning about duplicate keys" -msgstr "" +msgstr "Changed: 3.7.0 ?????????????" #. Tag: para #, no-c-format @@ -26339,6 +26353,12 @@ msgid "" "linkend=\"ST_Segmentize\"/> to add geodesic vertices, then cast to geometry " "before subdivision." msgstr "" +"??????????????????????????????????????" +"???????????????????????????????? (?????)" +"??????????????????????????????????????" +"?????????????????????????????????" +"??????????????????????" +"??????????????????????????????????????" #. Tag: para #, no-c-format @@ -26386,6 +26406,10 @@ msgid "" "impact of changes to the geography representation of a geometry when " "subdividing." msgstr "" +"?: ST_Segmentize(geography, distance)??" +"?????????????????????????ST_Subdivide???????" +"???8???????????????????????????????????" +"????????????????????????????????" #. Tag: para #, no-c-format @@ -34856,14 +34880,15 @@ msgstr "?????????????" #. Tag: para #, no-c-format msgid "Complete example of tiles of a coverage with neighborhood." -msgstr "" +msgstr "????????????????????????????" #. Tag: para #, no-c-format msgid "" "Example like the prior one for tiles of a coverage with neighborhood but " "using only basic SQL features." -msgstr "" +msgstr "?????????????????????????????????????SQL" +"?????????????" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 2 23:47:50 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 2 Dec 2025 23:47:50 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-245-g1c23cc3aa Message-ID: <20251203074751.0FC4B1A23BA@trac.osgeo.org> 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 1c23cc3aa3a8aa2328c80d0465b731cb778c5bfd (commit) from 423abc284713d64b9558f807986c85184255a56d (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 1c23cc3aa3a8aa2328c80d0465b731cb778c5bfd Author: Teramoto Ikuhiro Date: Wed Dec 3 06:22:12 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.5% (5867 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 2df62febb..e369f839f 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-03 05:47+0000\n" +"PO-Revision-Date: 2025-12-03 07:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -22806,7 +22806,7 @@ msgstr "" #, no-c-format msgid "" "Availability: 2.3.0 support for Block Range INdexes (BRIN) was introduced." -msgstr "" +msgstr "Availability: 2.3.0 BRIN (Block Range INdexes)?????????" #. Tag: para #, no-c-format @@ -23678,6 +23678,10 @@ msgid "" "nearest-neighbor result sets with true KNN distance search for geometries, " "and distance on the sphere for geographies." msgstr "" +"<->??????????????2??????????" +"\"ORDER BY\"????????????????????????????????" +"??????????????????????????????????????" +"????" #. Tag: para #, no-c-format @@ -23719,13 +23723,16 @@ msgid "" "and geography. Note for geography KNN is based on sphere rather than " "spheroid." msgstr "" +"Enhanced: 2.2.0 -- ??KNN (k???)????????????????????" +"?????????KNN??????????????????" #. Tag: para #, no-c-format msgid "" "Changed: 2.2.0 -- Old hybrid-syntax workarounds may be slower once true KNN " "is available. See examples below." -msgstr "" +msgstr "Changed: 2.2.0 -- ??KNN??????????????????????????" +"?????????????????????" #. Tag: para #, no-c-format @@ -23734,6 +23741,9 @@ msgid "" "centroid distances instead of true distances. Exact results for points, " "inexact for all other types." msgstr "" +"Availability: 2.0.0 -- ??KNN???????????????????????" +"??????????????????????????????????????" +"?????????" #. Tag: para #, no-c-format @@ -23756,6 +23766,10 @@ msgid "" "find the true nearest neighbors. First a CTE query using the index-assisted " "KNN, then an exact query to get correct ordering:" msgstr "" +"??????????????????????????????????????" +"????????????????????KNN???CTE (Common Table " +"Expression, WITH?)?????????????????????????????" +"?????????????????:" #. Tag: para #, no-c-format @@ -25486,6 +25500,11 @@ msgid "" "the x/y axis. By default, ST_AsX3D outputs in database form " "(long,lat or X,Y), but the X3D default of lat/lon, y/x may be preferred." msgstr "" +"'options'??????????????X3D GeoCoordinates " +"Geospatial????????????????X/" +"Y?????????????????ST_AsX3D??" +"???????????????? (??, ?????X, Y)????????X3D?" +"lat/lon, y/x???????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Wed Dec 3 08:46:39 2025 From: git at osgeo.org (git at osgeo.org) Date: Wed, 3 Dec 2025 08:46:39 -0800 (PST) Subject: [SCM] postgis.net branch website updated. clarity-final-169-g665ac7b Message-ID: <20251203164639.47FE01A6DA6@trac.osgeo.org> 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.net". The branch, website has been updated via 665ac7ba7dbb4de4c0cdd8cfd24383b661ae5a4e (commit) from 8e69dfd4f6507ce8c9b9c6f0cff860f7f3101211 (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 665ac7ba7dbb4de4c0cdd8cfd24383b661ae5a4e Author: Sandro Santilli Date: Wed Dec 3 17:46:28 2025 +0100 Add Codeberg mirror diff --git a/content/development/source_code.md b/content/development/source_code.md index cc91a32..c1ed626 100644 --- a/content/development/source_code.md +++ b/content/development/source_code.md @@ -25,3 +25,4 @@ Changes pushed to the official repository will be replicated to the two mirror r * GitHub mirror: https://github.com/postgis/postgis/ * GitLab mirror: https://gitlab.com/postgis/postgis/ +* Codeberg mirror: https://codeberg.org/postgis/postgis/ ----------------------------------------------------------------------- Summary of changes: content/development/source_code.md | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- postgis.net From git at osgeo.org Wed Dec 3 18:47:59 2025 From: git at osgeo.org (git at osgeo.org) Date: Wed, 3 Dec 2025 18:47:59 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-246-g56feffd43 Message-ID: <20251204024800.9BEE11A7562@trac.osgeo.org> 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 56feffd438749ecdad6335a3b6631e5f7fc4635d (commit) from 1c23cc3aa3a8aa2328c80d0465b731cb778c5bfd (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 56feffd438749ecdad6335a3b6631e5f7fc4635d Author: Teramoto Ikuhiro Date: Thu Dec 4 01:29:48 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.6% (5871 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index e369f839f..4f09be7a3 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-03 07:47+0000\n" +"PO-Revision-Date: 2025-12-04 02:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -18385,7 +18385,8 @@ msgid "" "These routines are reserved for diagnosing and repairing data corruption. " "They provide last-resort maintenance operations that are not required during " "normal spatial workflows." -msgstr "" +msgstr "??????????????????????????????????????" +"???????????????????????" #. Tag: refpurpose #, no-c-format @@ -22010,6 +22011,10 @@ msgid "" "false, then the calculation is based on a sphere instead of a " "spheroid." msgstr "" +"????????: ?????????????????????????????" +"????SRID?????????SRID?????????????WGS84??????" +"?use_spheroid = " +"false?????????????????????????" #. Tag: para #, no-c-format @@ -22500,6 +22505,10 @@ msgid "" "use_spheroid = false, then calculations will approximate " "a sphere instead of a spheroid." msgstr "" +"??????????????????????????????????????" +"??????????SRID?????????SRID?????????????WGS84" +"???????use_spheroid = " +"false?????????????????????????" #. Tag: para #, no-c-format @@ -22715,6 +22724,10 @@ msgid "" "follow the same geometric rules as the corresponding functions but are " "optimised for use in SQL expressions and index-supported filtering." msgstr "" +"????PostGIS???????????????????????????????" +"??????????????????????????????????????" +"?????????????????????????????????SQL????" +"?????????????????????????????????" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Thu Dec 4 00:26:23 2025 From: trac at osgeo.org (PostGIS) Date: Thu, 04 Dec 2025 08:26:23 -0000 Subject: [PostGIS] #6024: Remove support for PostgreSQL 12 and 13 in PostGIS 3.7 Message-ID: <046.135994fd8a80fe038f59726ebc9b232a@osgeo.org> #6024: Remove support for PostgreSQL 12 and 13 in PostGIS 3.7 ---------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: assigned Priority: blocker | Milestone: PostGIS 3.7.0 Component: build | Version: master Keywords: | ---------------------+--------------------------- As agreed in https://lists.osgeo.org/pipermail/postgis-devel/2025-November/030681.html We should drop support for PostgreSQL 12 and 13 and remove all conditional code related to those. Both have reached EOL and are no longer packaged by most packagers. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Dec 4 00:48:00 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 4 Dec 2025 00:48:00 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-247-ga92fadc9c Message-ID: <20251204084800.CB27D1A91E1@trac.osgeo.org> 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 a92fadc9c901106a39d5e03220d199bc16f13a31 (commit) from 56feffd438749ecdad6335a3b6631e5f7fc4635d (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 a92fadc9c901106a39d5e03220d199bc16f13a31 Author: Teramoto Ikuhiro Date: Thu Dec 4 07:44:18 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.6% (5875 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 4f09be7a3..aedbbd3d9 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-04 02:47+0000\n" +"PO-Revision-Date: 2025-12-04 08:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -2481,6 +2481,13 @@ msgid "" "cross-platform and also has a reverse geocoder among some other neat " "features." msgstr "" +"GIS " +"Graphy?PostGIS?????Nominatim??????OpenStreetMap (OSM)??" +"????????????????OSM?????????????????????" +"?Nominatim?????????????????????????Nominatim???" +"???????????????Java 1.5????????????????Solr?" +"????????GisGraphy??????????????????????????" +"??????????????" #. Tag: refpurpose #, no-c-format @@ -8993,6 +9000,17 @@ msgid "" "given version of an extension. These behaviors are built into the current " "PostgreSQL extension model." msgstr "" +"???????spatial_ref_sys?layer?<" +"varname>topology??????????????????postgi" +"s???postgis_topology????????????" +"??????????????????????????????????????" +"?????????????PostGIS?????????SRID???????????" +"???????????????????????SRID?????????????" +"??????????????????????????????????????" +"???????????CREATE EXTENSION?????????????" +"??????????????????????????????????????" +"????????????????PostgreSQL?????????????????" +"?????" #. Tag: para #, no-c-format @@ -9068,6 +9086,13 @@ msgid "" "POSTGIS_REGRESS_ROLE_EXT_CREATOR when the extension " "creation role must differ from the database owner." msgstr "" +"PostgreSQL???????????????????????????????POSTGIS_REGRESS_DB_OWNER???????????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" +"???????????????????POSTGIS_REGRESS_ROLE_EXT_CREAT" +"OR???????" #. Tag: para #, no-c-format @@ -9077,6 +9102,10 @@ msgid "" "superuser, provided the target PostgreSQL instance permits extension " "installation by those delegate roles." msgstr "" +"??????????????????????????????????????" +"??????????????????????????????????????" +"???????????????????????PostgreSQL??????????" +"??????????????????????????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 4 00:56:22 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 4 Dec 2025 00:56:22 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-248-g5fa91e48f Message-ID: <20251204085623.260041A9C52@trac.osgeo.org> 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 5fa91e48f65602d1f99c8164e143153a594109e9 (commit) from a92fadc9c901106a39d5e03220d199bc16f13a31 (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 5fa91e48f65602d1f99c8164e143153a594109e9 Author: Regina Obe Date: Thu Dec 4 03:28:45 2025 -0500 Remove support for PostgreSQL 12 and 13 Closes #6024 diff --git a/NEWS b/NEWS index 3d974e88c..a32a41abc 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ xxxx/xx/xx - #5688, [topology] topology building functions now interpret tolerance 0 (old default) to really mean 0 and want -1 (new default) to mean "use topology precision" (Sandro Santilli) + - #6024, Remove support for PostgreSQL 12 and 13 (Regina Obe) * New Features * diff --git a/configure.ac b/configure.ac index 29f66a38c..203740046 100644 --- a/configure.ac +++ b/configure.ac @@ -578,9 +578,9 @@ if test "x$SUPPORT_POSTGRESQL" = "xyes"; then dnl { PGSQL_SHAREDIR=`"$PG_CONFIG" --sharedir` AC_MSG_RESULT([checking PostgreSQL version... $PGSQL_FULL_VERSION]) - dnl Ensure that we are using PostgreSQL >= 12 - if test $POSTGIS_PGSQL_VERSION -lt 120; then - AC_MSG_ERROR([PostGIS requires PostgreSQL >= 12]) + dnl Ensure that we are using PostgreSQL >= 14 + if test $POSTGIS_PGSQL_VERSION -lt 140; then + AC_MSG_ERROR([PostGIS requires PostgreSQL >= 14]) fi HAVE_SPGIST=yes diff --git a/doc/developer.md b/doc/developer.md index f3518021c..1a1fcf33a 100644 --- a/doc/developer.md +++ b/doc/developer.md @@ -363,7 +363,18 @@ run. This avoids the traps described in = 14` + +* Remove all PostgreSQL guards in files for versions lower than minimum supported + You can find these by looking for `POSTGIS_PGSQL_VERSION`, might also find older syntax + `PG_VERSION_NUM` + +* Edit doc/postgis.xml and change entity `min_postgres_version` to new minimum version + +* Add to NEWS Breaking Changes section, your removal of said versions diff --git a/doc/postgis.xml b/doc/postgis.xml index d4b678125..8cd88a62b 100644 --- a/doc/postgis.xml +++ b/doc/postgis.xml @@ -15,7 +15,7 @@ - + diff --git a/libpgcommon/lwgeom_cache.c b/libpgcommon/lwgeom_cache.c index 95b591504..5e4d9207d 100644 --- a/libpgcommon/lwgeom_cache.c +++ b/libpgcommon/lwgeom_cache.c @@ -20,11 +20,7 @@ #include "../postgis_config.h" /* Include for VARATT_EXTERNAL_GET_POINTER */ -#if POSTGIS_PGSQL_VERSION < 130 -#include "access/tuptoaster.h" -#else #include "access/detoast.h" -#endif #include "lwgeom_cache.h" diff --git a/postgis/gserialized_estimate.c b/postgis/gserialized_estimate.c index d616cbeba..7f5e6d89c 100644 --- a/postgis/gserialized_estimate.c +++ b/postgis/gserialized_estimate.c @@ -65,11 +65,7 @@ dimensionality cases. (2D geometry) &&& (3D column), etc. #include "access/gist.h" #include "access/gist_private.h" #include "access/gistscan.h" -#if PG_VERSION_NUM < 130000 -#include "access/tuptoaster.h" /* For toast_raw_datum_size */ -#else #include "access/detoast.h" /* For toast_raw_datum_size */ -#endif #include "utils/datum.h" #include "access/heapam.h" #include "catalog/index.h" diff --git a/postgis/lwgeom_out_geojson.c b/postgis/lwgeom_out_geojson.c index 288b0c89c..5e0a6f589 100644 --- a/postgis/lwgeom_out_geojson.c +++ b/postgis/lwgeom_out_geojson.c @@ -20,11 +20,7 @@ #include "utils/lsyscache.h" #include "utils/json.h" #include "utils/hsearch.h" -#if POSTGIS_PGSQL_VERSION < 130 -#include "utils/jsonapi.h" -#else #include "common/jsonapi.h" -#endif #include "utils/typcache.h" #include "utils/syscache.h" ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + configure.ac | 6 +++--- doc/developer.md | 11 +++++++++++ doc/postgis.xml | 2 +- libpgcommon/lwgeom_cache.c | 4 ---- postgis/gserialized_estimate.c | 4 ---- postgis/lwgeom_out_geojson.c | 4 ---- 7 files changed, 16 insertions(+), 16 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Thu Dec 4 00:56:28 2025 From: trac at osgeo.org (PostGIS) Date: Thu, 04 Dec 2025 08:56:28 -0000 Subject: [PostGIS] #6024: Remove support for PostgreSQL 12 and 13 in PostGIS 3.7 In-Reply-To: <046.135994fd8a80fe038f59726ebc9b232a@osgeo.org> References: <046.135994fd8a80fe038f59726ebc9b232a@osgeo.org> Message-ID: <061.3e047045027509a5e3f04be5e4a722c3@osgeo.org> #6024: Remove support for PostgreSQL 12 and 13 in PostGIS 3.7 ----------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: closed Priority: blocker | Milestone: PostGIS 3.7.0 Component: build | Version: master Resolution: fixed | Keywords: ----------------------+--------------------------- Changes (by Regina Obe ): * resolution: => fixed * status: assigned => closed Comment: In [changeset:"5fa91e48f65602d1f99c8164e143153a594109e9/git" 5fa91e48/git]: {{{#!CommitTicketReference repository="git" revision="5fa91e48f65602d1f99c8164e143153a594109e9" Remove support for PostgreSQL 12 and 13 Closes #6024 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Dec 4 02:47:56 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 4 Dec 2025 02:47:56 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-249-ge1451a669 Message-ID: <20251204104756.9476D1AAE9E@trac.osgeo.org> 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 e1451a6693ed13774962d168d921be65fb6702f1 (commit) from 5fa91e48f65602d1f99c8164e143153a594109e9 (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 e1451a6693ed13774962d168d921be65fb6702f1 Author: Teramoto Ikuhiro Date: Thu Dec 4 09:16:16 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.7% (5876 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index aedbbd3d9..77d3d8bac 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-04 08:47+0000\n" +"PO-Revision-Date: 2025-12-04 10:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -20300,6 +20300,9 @@ msgid "" "fractions or measures along routes and of projecting those measures back " "into spatial coordinates." msgstr "" +"??????????????? (?????????)?????????????" +"??????????????????????????????????????" +"????????????????????????" #. Tag: refpurpose #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 4 12:14:47 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 4 Dec 2025 12:14:47 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-250-gb0dcc8510 Message-ID: <20251204201448.366801AF7EB@trac.osgeo.org> 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 b0dcc8510fd7930752db4e65a9e7f368b63a139c (commit) from e1451a6693ed13774962d168d921be65fb6702f1 (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 b0dcc8510fd7930752db4e65a9e7f368b63a139c Author: Darafei Praliaskouski Date: Fri Dec 5 00:14:34 2025 +0400 [topology] Include representative locations in topology build errors Closes #5889 diff --git a/NEWS b/NEWS index a32a41abc..f4c61cbc6 100644 --- a/NEWS +++ b/NEWS @@ -23,7 +23,7 @@ xxxx/xx/xx - #4332, Clarify the scope of several Function Reference categories (Darafei Praliaskouski) - #4222, [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski) - #5109, Document the meaning of topology.next_left_edge and topology.next_right_edge links (Darafei Praliaskouski) - + - #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski) * Bug Fixes * diff --git a/liblwgeom/topo/lwgeom_topo.c b/liblwgeom/topo/lwgeom_topo.c index 3e7cfdc1e..61edd3ef5 100644 --- a/liblwgeom/topo/lwgeom_topo.c +++ b/liblwgeom/topo/lwgeom_topo.c @@ -19,11 +19,10 @@ ********************************************************************** * * Copyright (C) 2015-2024 Sandro Santilli + * Copyright (C) 2025 Darafei Praliaskouski * **********************************************************************/ - - #include "../postgis_config.h" //#define POSTGIS_DEBUG_LEVEL 1 @@ -38,6 +37,67 @@ #include +/* + * Report a human readable location along with topology errors so callers can + * narrow down robustness issues such as #5886/#5889 without further tracing. + * Using a point-on-surface keeps the message compact while remaining + * representative for any dimensionality of the offending intersection. + */ +static bool +_lwt_describe_intersection_point(const GEOSGeometry *g1, const GEOSGeometry *g2, char *buf, size_t bufsize) +{ + unsigned int n = 0; + POINT2D pt; + GEOSGeometry *isect; + GEOSGeometry *surface_pt; + const GEOSCoordSequence *seq; + + isect = GEOSIntersection(g1, g2); + if (!isect) + return false; + + surface_pt = GEOSPointOnSurface(isect); + GEOSGeom_destroy(isect); + if (!surface_pt) + return false; + + seq = GEOSGeom_getCoordSeq(surface_pt); + if (!seq) + { + GEOSGeom_destroy(surface_pt); + return false; + } + + if (!GEOSCoordSeq_getSize(seq, &n) || !n) + { + GEOSGeom_destroy(surface_pt); + return false; + } + + if (!GEOSCoordSeq_getX(seq, 0, &pt.x) || !GEOSCoordSeq_getY(seq, 0, &pt.y)) + { + GEOSGeom_destroy(surface_pt); + return false; + } + + GEOSGeom_destroy(surface_pt); + snprintf(buf, bufsize, " at POINT(%.15g %.15g)", pt.x, pt.y); + return true; +} + +static bool +_lwt_describe_point(const LWPOINT *pt, char *buf, size_t bufsize) +{ + POINT2D p; + + if (!pt || !pt->point || !pt->point->npoints) + return false; + + getPoint2d_p(pt->point, 0, &p); + snprintf(buf, bufsize, " at POINT(%.15g %.15g)", p.x, p.y); + return true; +} + /********************************************************************* * * Backend iface @@ -527,6 +587,8 @@ _lwt_AddIsoNode( LWT_TOPOLOGY* topo, LWT_ELEMID face, LWPOINT* pt, int skipISOChecks, int checkFace ) { LWT_ELEMID foundInFace = -1; + char locinfo[128] = ""; + const char *locsuffix = _lwt_describe_point(pt, locinfo, sizeof(locinfo)) ? locinfo : ""; if ( lwpoint_is_empty(pt) ) { @@ -539,13 +601,13 @@ _lwt_AddIsoNode( LWT_TOPOLOGY* topo, LWT_ELEMID face, { if ( lwt_be_ExistsCoincidentNode(topo, pt) ) /*x*/ { - lwerror("SQL/MM Spatial exception - coincident node"); - return -1; + lwerror("SQL/MM Spatial exception - coincident node%s", locsuffix); + return -1; } if ( lwt_be_ExistsEdgeIntersectingPoint(topo, pt) ) /*x*/ { - lwerror("SQL/MM Spatial exception - edge crosses node."); - return -1; + lwerror("SQL/MM Spatial exception - edge crosses node.%s", locsuffix); + return -1; } } @@ -634,21 +696,33 @@ _lwt_CheckEdgeCrossing( LWT_TOPOLOGY* topo, } for ( i=0; inode_id == start_node ) continue; - if ( node->node_id == end_node ) continue; - /* check if the edge contains this node (not on boundary) */ - /* ST_RelateMatch(rec.relate, 'T********') */ - pt = getPoint2d_cp(node->geom->point, 0); - int contains = ptarray_contains_point_partial(geom->points, pt, LW_FALSE, NULL) == LW_BOUNDARY; - if ( contains ) - { - GEOSGeom_destroy(edgegg); - _lwt_release_nodes(nodes, num_nodes); - lwerror("SQL/MM Spatial exception - geometry crosses a node"); - return -1; - } + POINT2D p; + LWT_ISO_NODE *node = &(nodes[i]); + if (node->node_id == start_node) + continue; + if (node->node_id == end_node) + continue; + /* check if the edge contains this node (not on boundary) */ + /* ST_RelateMatch(rec.relate, 'T********') */ + if (!node->geom || !node->geom->point || !node->geom->point->npoints) + { + GEOSGeom_destroy(edgegg); + _lwt_release_nodes(nodes, num_nodes); + lwerror("SQL/MM Spatial exception - geometry crosses a node"); + return -1; + } + + getPoint2d_p(node->geom->point, 0, &p); + int contains = ptarray_contains_point_partial(geom->points, &p, LW_FALSE, NULL) == LW_BOUNDARY; + if (contains) + { + char locinfo[128] = ""; + snprintf(locinfo, sizeof(locinfo), " at POINT(%.15g %.15g)", p.x, p.y); + GEOSGeom_destroy(edgegg); + _lwt_release_nodes(nodes, num_nodes); + lwerror("SQL/MM Spatial exception - geometry crosses a node%s", locinfo); + return -1; + } } if ( nodes ) _lwt_release_nodes(nodes, num_nodes); /* may be NULL if num_nodes == 0 */ @@ -691,12 +765,12 @@ _lwt_CheckEdgeCrossing( LWT_TOPOLOGY* topo, /* check if the edge has a non-boundary-boundary intersection with our edge */ relate = GEOSRelateBoundaryNodeRule(eegg, edgegg, 2); - GEOSGeom_destroy(eegg); if ( ! relate ) { - GEOSGeom_destroy(edgegg); - _lwt_release_edges(edges, num_edges); - lwerror("GEOSRelateBoundaryNodeRule error: %s", lwgeom_geos_errmsg); - return -1; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + lwerror("GEOSRelateBoundaryNodeRule error: %s", lwgeom_geos_errmsg); + return -1; } LWDEBUGF(2, "Edge %" LWTFMT_ELEMID " relate pattern is %s", edge_id, relate); @@ -705,87 +779,130 @@ _lwt_CheckEdgeCrossing( LWT_TOPOLOGY* topo, if ( match ) { /* error or no interior intersection */ GEOSFree(relate); + GEOSGeom_destroy(eegg); if ( match == 2 ) { _lwt_release_edges(edges, num_edges); GEOSGeom_destroy(edgegg); lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); return -1; } - else continue; /* no interior intersection */ + continue; /* no interior intersection */ } match = GEOSRelatePatternMatch(relate, "1FFF*FFF2"); if ( match ) { - _lwt_release_edges(edges, num_edges); - GEOSGeom_destroy(edgegg); - GEOSFree(relate); - if ( match == 2 ) { - lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); - } else { - lwerror("SQL/MM Spatial exception - coincident edge %" LWTFMT_ELEMID, - edge_id); - } + char locinfo[128] = ""; + const char *locsuffix = match == 2 ? "" + : _lwt_describe_intersection_point(edgegg, eegg, locinfo, sizeof(locinfo)) ? locinfo + : ""; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + GEOSFree(relate); + if (match == 2) + { + lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); + } + else + { + lwerror("SQL/MM Spatial exception - coincident edge %" LWTFMT_ELEMID "%s", edge_id, locsuffix); + } return -1; } match = GEOSRelatePatternMatch(relate, "1********"); if ( match ) { - _lwt_release_edges(edges, num_edges); - GEOSGeom_destroy(edgegg); - GEOSFree(relate); - if ( match == 2 ) { - lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); - } else { - lwerror("Spatial exception - geometry intersects edge %" - LWTFMT_ELEMID, edge_id); - } + char locinfo[128] = ""; + const char *locsuffix = match == 2 ? "" + : _lwt_describe_intersection_point(edgegg, eegg, locinfo, sizeof(locinfo)) ? locinfo + : ""; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + GEOSFree(relate); + if (match == 2) + { + lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); + } + else + { + lwerror("Spatial exception - geometry intersects edge %" LWTFMT_ELEMID "%s", edge_id, locsuffix); + } return -1; } match = GEOSRelatePatternMatch(relate, "T********"); if ( match ) { - _lwt_release_edges(edges, num_edges); - GEOSGeom_destroy(edgegg); - GEOSFree(relate); - if ( match == 2 ) { - lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); - } else { - lwerror("SQL/MM Spatial exception - geometry crosses edge %" - LWTFMT_ELEMID, edge_id); - } + char locinfo[128] = ""; + const char *locsuffix = match == 2 ? "" + : _lwt_describe_intersection_point(edgegg, eegg, locinfo, sizeof(locinfo)) ? locinfo + : ""; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + GEOSFree(relate); + if (match == 2) + { + lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); + } + else + { + lwerror( + "SQL/MM Spatial exception - geometry crosses edge %" LWTFMT_ELEMID "%s", edge_id, locsuffix); + } return -1; } match = GEOSRelatePatternMatch(relate, "*T*******"); if ( match ) { - _lwt_release_edges(edges, num_edges); - GEOSGeom_destroy(edgegg); - GEOSFree(relate); - if ( match == 2 ) { - lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); - } else { - lwerror("Spatial exception - geometry boundary touches interior of edge %" - LWTFMT_ELEMID, edge_id); - } + char locinfo[128] = ""; + const char *locsuffix = match == 2 ? "" + : _lwt_describe_intersection_point(edgegg, eegg, locinfo, sizeof(locinfo)) ? locinfo + : ""; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + GEOSFree(relate); + if (match == 2) + { + lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); + } + else + { + lwerror("Spatial exception - geometry boundary touches interior of edge %" LWTFMT_ELEMID "%s", + edge_id, + locsuffix); + } return -1; } match = GEOSRelatePatternMatch(relate, "***T*****"); if ( match ) { - _lwt_release_edges(edges, num_edges); - GEOSGeom_destroy(edgegg); - GEOSFree(relate); - if ( match == 2 ) { - lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); - } else { - lwerror("Spatial exception - boundary of edge %" LWTFMT_ELEMID" touches interior of geometry", edge_id); - } + char locinfo[128] = ""; + const char *locsuffix = match == 2 ? "" + : _lwt_describe_intersection_point(edgegg, eegg, locinfo, sizeof(locinfo)) ? locinfo + : ""; + GEOSGeom_destroy(eegg); + GEOSGeom_destroy(edgegg); + _lwt_release_edges(edges, num_edges); + GEOSFree(relate); + if (match == 2) + { + lwerror("GEOSRelatePatternMatch error: %s", lwgeom_geos_errmsg); + } + else + { + lwerror("Spatial exception - boundary of edge %" LWTFMT_ELEMID " touches interior of geometry%s", + edge_id, + locsuffix); + } return -1; } LWDEBUGF(2, "Edge %" LWTFMT_ELEMID " analysis completed, it does no harm", edge_id); GEOSFree(relate); + GEOSGeom_destroy(eegg); } LWDEBUGF(1, "No edge crossing detected among the %llu candidate edges", num_edges); if ( edges ) _lwt_release_edges(edges, num_edges); diff --git a/topology/test/regress/sqlmm_expected b/topology/test/regress/sqlmm_expected index e62599aac..8cf854a19 100644 --- a/topology/test/regress/sqlmm_expected +++ b/topology/test/regress/sqlmm_expected @@ -9,15 +9,15 @@ ERROR: SQL/MM Spatial exception - null argument 4 5 6 -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - coincident node +ERROR: SQL/MM Spatial exception - coincident node at POINT(0 0) +ERROR: SQL/MM Spatial exception - coincident node at POINT(10 0) 7 8 ERROR: SQL/MM Spatial exception - not within face ERROR: SQL/MM Spatial exception - invalid point -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - coincident node +ERROR: SQL/MM Spatial exception - coincident node at POINT(10 0) +ERROR: SQL/MM Spatial exception - coincident node at POINT(0 0) +ERROR: SQL/MM Spatial exception - coincident node at POINT(10 0) -- ST_AddIsoEdge ------------------------ ERROR: SQL/MM Spatial exception - null argument ERROR: SQL/MM Spatial exception - null argument @@ -28,14 +28,14 @@ ERROR: SQL/MM Spatial exception - curve not simple ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - end node not geometry end point. ERROR: SQL/MM Spatial exception - start node not geometry start point. -ERROR: SQL/MM Spatial exception - geometry crosses a node +ERROR: SQL/MM Spatial exception - geometry crosses a node at POINT(5 0) 1 2 ERROR: SQL/MM Spatial exception - not isolated node ERROR: SQL/MM Spatial exception - not isolated node ERROR: SQL/MM Spatial exception - not isolated node -- ST_AddIsoNode(2) ------------------------ -ERROR: SQL/MM Spatial exception - edge crosses node. +ERROR: SQL/MM Spatial exception - edge crosses node. at POINT(5 9.5) -- ST_RemoveIsoEdge --------------------- #3351.1|4| #3351.1|5| diff --git a/topology/test/regress/st_addedgemodface_expected b/topology/test/regress/st_addedgemodface_expected index 26e39df63..d55e6ce19 100644 --- a/topology/test/regress/st_addedgemodface_expected +++ b/topology/test/regress/st_addedgemodface_expected @@ -1,16 +1,16 @@ ERROR: SQL/MM Spatial exception - start node not geometry start point. ERROR: SQL/MM Spatial exception - end node not geometry end point. ERROR: SQL/MM Spatial exception - end node not geometry end point. -ERROR: SQL/MM Spatial exception - geometry crosses a node +ERROR: SQL/MM Spatial exception - geometry crosses a node at POINT(41 40) ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - curve not simple ERROR: Invalid edge (no two distinct vertices exist) ERROR: Invalid edge (no two distinct vertices exist) -ERROR: SQL/MM Spatial exception - coincident edge 8 -ERROR: SQL/MM Spatial exception - geometry crosses edge 5 -ERROR: SQL/MM Spatial exception - geometry crosses edge 4 -ERROR: Spatial exception - geometry intersects edge 4 +ERROR: SQL/MM Spatial exception - coincident edge 8 at POINT(35 22) +ERROR: SQL/MM Spatial exception - geometry crosses edge 5 at POINT(48.0714285714286 41.9285714285714) +ERROR: SQL/MM Spatial exception - geometry crosses edge 4 at POINT(45 32) +ERROR: Spatial exception - geometry intersects edge 4 at POINT(36 38) L1 L2 T1|E7|8|-19|0|10 diff --git a/topology/test/regress/st_addedgenewfaces_expected b/topology/test/regress/st_addedgenewfaces_expected index 9f14187a6..bb2a7a572 100644 --- a/topology/test/regress/st_addedgenewfaces_expected +++ b/topology/test/regress/st_addedgenewfaces_expected @@ -1,16 +1,16 @@ ERROR: SQL/MM Spatial exception - start node not geometry start point. ERROR: SQL/MM Spatial exception - end node not geometry end point. ERROR: SQL/MM Spatial exception - end node not geometry end point. -ERROR: SQL/MM Spatial exception - geometry crosses a node +ERROR: SQL/MM Spatial exception - geometry crosses a node at POINT(41 40) ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - curve not simple ERROR: Invalid edge (no two distinct vertices exist) ERROR: Invalid edge (no two distinct vertices exist) -ERROR: SQL/MM Spatial exception - coincident edge 8 -ERROR: SQL/MM Spatial exception - geometry crosses edge 5 -ERROR: SQL/MM Spatial exception - geometry crosses edge 4 -ERROR: Spatial exception - geometry intersects edge 4 +ERROR: SQL/MM Spatial exception - coincident edge 8 at POINT(35 22) +ERROR: SQL/MM Spatial exception - geometry crosses edge 5 at POINT(48.0714285714286 41.9285714285714) +ERROR: SQL/MM Spatial exception - geometry crosses edge 4 at POINT(45 32) +ERROR: Spatial exception - geometry intersects edge 4 at POINT(36 38) L1 L2 T1|E7|8|-19|0|11 diff --git a/topology/test/regress/st_addisoedge_expected b/topology/test/regress/st_addisoedge_expected index f1ae4f023..46d9f9916 100644 --- a/topology/test/regress/st_addisoedge_expected +++ b/topology/test/regress/st_addisoedge_expected @@ -15,7 +15,7 @@ ERROR: SQL/MM Spatial exception - curve not simple ERROR: SQL/MM Spatial exception - non-existent node ERROR: SQL/MM Spatial exception - end node not geometry end point. ERROR: SQL/MM Spatial exception - start node not geometry start point. -ERROR: SQL/MM Spatial exception - geometry crosses a node +ERROR: SQL/MM Spatial exception - geometry crosses a node at POINT(5 0) E1 E2 N1| @@ -29,5 +29,5 @@ ERROR: SQL/MM Spatial exception - not isolated node ERROR: SQL/MM Spatial exception - not isolated node ERROR: Closed edges would not be isolated, try ST_AddEdgeNewFaces ERROR: SQL/MM Spatial exception - not isolated node -ERROR: SQL/MM Spatial exception - geometry crosses edge 2 +ERROR: SQL/MM Spatial exception - geometry crosses edge 2 at POINT(10 3.33333333333333) Topology 'tt' dropped diff --git a/topology/test/regress/st_addisonode_expected b/topology/test/regress/st_addisonode_expected index 31f74e5a6..6a7093778 100644 --- a/topology/test/regress/st_addisonode_expected +++ b/topology/test/regress/st_addisonode_expected @@ -7,10 +7,10 @@ ERROR: SQL/MM Spatial exception - invalid topology name ERROR: SQL/MM Spatial exception - not within face ERROR: SQL/MM Spatial exception - not within face ERROR: SQL/MM Spatial exception - not within face -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - coincident node -ERROR: SQL/MM Spatial exception - edge crosses node. +ERROR: SQL/MM Spatial exception - coincident node at POINT(21 22) +ERROR: SQL/MM Spatial exception - coincident node at POINT(21 22) +ERROR: SQL/MM Spatial exception - coincident node at POINT(21 22) +ERROR: SQL/MM Spatial exception - edge crosses node. at POINT(28 14) T1|23|5 T2|24|0 T3|25|9 diff --git a/topology/test/regress/st_changeedgegeom_expected b/topology/test/regress/st_changeedgegeom_expected index bfb094b73..c4dd61a06 100644 --- a/topology/test/regress/st_changeedgegeom_expected +++ b/topology/test/regress/st_changeedgegeom_expected @@ -1,11 +1,11 @@ T1|Edge 25 changed ERROR: SQL/MM Spatial exception - start node not geometry start point. ERROR: SQL/MM Spatial exception - end node not geometry end point. -ERROR: SQL/MM Spatial exception - geometry crosses a node +ERROR: SQL/MM Spatial exception - geometry crosses a node at POINT(20 37) ERROR: SQL/MM Spatial exception - curve not simple ERROR: Invalid edge (no two distinct vertices exist) ERROR: SQL/MM Spatial exception - non-existent edge 666 -ERROR: SQL/MM Spatial exception - geometry crosses edge 1 +ERROR: SQL/MM Spatial exception - geometry crosses edge 1 at POINT(11.8 38) T2|Edge 5 changed T3|Edge 5 changed T4|Edge 26 changed diff --git a/topology/test/regress/topology_error_location.sql b/topology/test/regress/topology_error_location.sql new file mode 100644 index 000000000..37c199e4e --- /dev/null +++ b/topology/test/regress/topology_error_location.sql @@ -0,0 +1,38 @@ +-- Ensure prior runs do not leak topologies or noisy notices +SET client_min_messages TO NOTICE; +DO $$ +BEGIN + PERFORM topology.DropTopology('err_loc'); +EXCEPTION WHEN OTHERS THEN + -- Topology may not exist yet; ignore. +END; +$$ LANGUAGE plpgsql; + +SELECT 'created', topology.CreateTopology('err_loc', 0, 0) > 0; + +SELECT 'n1', topology.ST_AddIsoNode('err_loc', NULL::integer, ST_GeomFromText('POINT(0 0)', 0)); +SELECT 'n2', topology.ST_AddIsoNode('err_loc', NULL::integer, ST_GeomFromText('POINT(10 0)', 0)); +SELECT 'n3', topology.ST_AddIsoNode('err_loc', NULL::integer, ST_GeomFromText('POINT(5 -5)', 0)); +SELECT 'n4', topology.ST_AddIsoNode('err_loc', NULL::integer, ST_GeomFromText('POINT(5 5)', 0)); + +DO $$ +BEGIN + PERFORM topology.ST_AddIsoNode('err_loc', NULL::integer, ST_GeomFromText('POINT(0 0)', 0)); +EXCEPTION WHEN OTHERS THEN + RAISE NOTICE 'duplicate node: %', regexp_replace(SQLERRM, E'^.*: ', ''); +END; +$$ LANGUAGE plpgsql; + +SELECT 'base_edge', topology.ST_AddEdgeModFace('err_loc', 1, 2, ST_GeomFromText('LINESTRING(0 0, 10 0)', 0)); + +DO $$ +BEGIN + PERFORM topology.ST_AddEdgeModFace('err_loc', 3, 4, ST_GeomFromText('LINESTRING(5 -5, 5 5)', 0)); +EXCEPTION WHEN OTHERS THEN + RAISE NOTICE 'crossing edge: %', regexp_replace(SQLERRM, E'^.*: ', ''); +END; +$$ LANGUAGE plpgsql; + +SET client_min_messages TO WARNING; +SELECT 'dropped', topology.DropTopology('err_loc') IS NOT NULL; +RESET client_min_messages; diff --git a/topology/test/regress/topology_error_location_expected b/topology/test/regress/topology_error_location_expected new file mode 100644 index 000000000..85bd4abe3 --- /dev/null +++ b/topology/test/regress/topology_error_location_expected @@ -0,0 +1,9 @@ +created|t +n1|1 +n2|2 +n3|3 +n4|4 +NOTICE: duplicate node: SQL/MM Spatial exception - coincident node at POINT(0 0) +base_edge|1 +NOTICE: crossing edge: SQL/MM Spatial exception - geometry crosses edge 1 at POINT(5 0) +dropped|t diff --git a/topology/test/tests.mk b/topology/test/tests.mk index 0b0ab3ff9..ba1d2e204 100644 --- a/topology/test/tests.mk +++ b/topology/test/tests.mk @@ -88,6 +88,7 @@ TESTS += \ $(top_srcdir)/topology/test/regress/topogeometry_srid.sql \ $(top_srcdir)/topology/test/regress/topogeometry_type.sql \ $(top_srcdir)/topology/test/regress/topojson.sql \ + $(top_srcdir)/topology/test/regress/topology_error_location.sql \ $(top_srcdir)/topology/test/regress/topologysummary.sql \ $(top_srcdir)/topology/test/regress/totaltopologysize.sql \ $(top_srcdir)/topology/test/regress/totopogeom.sql \ ----------------------------------------------------------------------- Summary of changes: NEWS | 2 +- liblwgeom/topo/lwgeom_topo.c | 259 +++++++++++++++------ topology/test/regress/sqlmm_expected | 14 +- topology/test/regress/st_addedgemodface_expected | 10 +- topology/test/regress/st_addedgenewfaces_expected | 10 +- topology/test/regress/st_addisoedge_expected | 4 +- topology/test/regress/st_addisonode_expected | 8 +- topology/test/regress/st_changeedgegeom_expected | 4 +- topology/test/regress/topology_error_location.sql | 38 +++ .../test/regress/topology_error_location_expected | 9 + topology/test/tests.mk | 1 + 11 files changed, 262 insertions(+), 97 deletions(-) create mode 100644 topology/test/regress/topology_error_location.sql create mode 100644 topology/test/regress/topology_error_location_expected hooks/post-receive -- PostGIS From trac at osgeo.org Thu Dec 4 12:14:52 2025 From: trac at osgeo.org (PostGIS) Date: Thu, 04 Dec 2025 20:14:52 -0000 Subject: [PostGIS] #5889: Include location in topology errors In-Reply-To: <046.3c240c50e31de7a47e9aae513347842f@osgeo.org> References: <046.3c240c50e31de7a47e9aae513347842f@osgeo.org> Message-ID: <061.7dee29bca92972a457b80b4c0bc9c9f9@osgeo.org> #5889: Include location in topology errors --------------------------+--------------------------- Reporter: strk | Owner: ankoure Type: enhancement | Status: closed Priority: medium | Milestone: PostGIS 3.7.0 Component: topology | Version: master Resolution: fixed | Keywords: --------------------------+--------------------------- Changes (by Darafei Praliaskouski ): * resolution: => fixed * status: assigned => closed Comment: In [changeset:"b0dcc8510fd7930752db4e65a9e7f368b63a139c/git" b0dcc85/git]: {{{#!CommitTicketReference repository="git" revision="b0dcc8510fd7930752db4e65a9e7f368b63a139c" [topology] Include representative locations in topology build errors Closes #5889 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Sun Dec 7 18:48:14 2025 From: git at osgeo.org (git at osgeo.org) Date: Sun, 7 Dec 2025 18:48:14 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-251-g74c857046 Message-ID: <20251208024815.8E7A113296D@trac.osgeo.org> 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 74c85704638ab378a8efbc5fb82e46eb33f979a1 (commit) from b0dcc8510fd7930752db4e65a9e7f368b63a139c (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 74c85704638ab378a8efbc5fb82e46eb33f979a1 Author: Teramoto Ikuhiro Date: Mon Dec 8 00:51:55 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.7% (5878 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 77d3d8bac..fa284038a 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-04 10:47+0000\n" +"PO-Revision-Date: 2025-12-08 02:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -418,17 +418,17 @@ msgid "Soft upgrade without extensions" msgstr "???????????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "Extensions have been the supported installation method for many releases. If " "you still rely on an unpackaged installation, perform a HARD UPGRADE into a database created with " "extensions and migrate your data there." msgstr "" -"??????????????????????????????????????" -"??????????????????????????????????????" -"??????????????HARD UPGRADE???????????????????????" +"??????????????????????????????????????" +"???????????????????????????????" +"?????????????????????HARD UPGRADE?????????????????????????" #. Tag: title #, no-c-format @@ -859,7 +859,7 @@ msgid "max_parallel_workers_per_gather" msgstr "max_parallel_workers_per_gather" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "Parallel query support in modern PostgreSQL and PostGIS uses this setting to " "decide how many workers a plan may request. If set to higher than 0, then " @@ -872,11 +872,11 @@ msgid "" msgstr "" "???PostgreSQL?PostGIS??????????????1???????????" "?????????????????????????????0?????????" -"??????????????? ST_Intersects ?????????" -"???????????????????????????2???????????" -"??????????????????????????????????????" -"????????????????max_worker_processes??????" -"??????????" +"??????????????? ST_Intersects ?????????" +"????????????????????????????2??????????" +"??????????????????????????????????????" +"???????????????max_worker_processes???????" +"??????????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Sun Dec 7 22:47:57 2025 From: git at osgeo.org (git at osgeo.org) Date: Sun, 7 Dec 2025 22:47:57 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-252-g944e4b714 Message-ID: <20251208064757.C54EE13455E@trac.osgeo.org> 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 944e4b714db5a98e39713039ef520d3a45250ce7 (commit) from 74c85704638ab378a8efbc5fb82e46eb33f979a1 (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 944e4b714db5a98e39713039ef520d3a45250ce7 Author: Teramoto Ikuhiro Date: Mon Dec 8 06:18:32 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.8% (5884 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index fa284038a..47360239f 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-08 02:47+0000\n" +"PO-Revision-Date: 2025-12-08 06:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -3997,14 +3997,14 @@ msgid "" "faces." msgstr "" "?????????????????????edge_data? " -"node,?face??????????????" -"?????????????????????" -"???edge_data????????????????????" -"start_node??end_node????????" -"??????????????????????? (left_face)" -"?????? (right_face)????????????????" -"??????????2??????????????????2? (?????1??" -"?)????????????" +"node?face????????????" +"?????????????????????" +"?????edge_data???????????????????" +"?start_node??end_node???????" +"???????????????????????? " +"(left_face)?????? (right_face)?" +"?????????????????????????2?????????????" +"?????2? (?????1???)????????????" #. Tag: para #, no-c-format @@ -5593,8 +5593,9 @@ msgid "" "identifiers forming it up (negative identifies mean the edge goes in the " "opposite direction of the input linestring)." msgstr "" -"??????????????????????????????????????" -"??? (???????????????????????????)?" +"???????????????????????" +"???????????????????? " +"(???????????????????????????)?" #. Tag: para #, no-c-format @@ -5603,18 +5604,19 @@ msgid "" "Existing edges and faces may be split by the line. New nodes and faces may " "be added, in addition to new edges." msgstr "" -"??????????????????????????????????????" -"??????????????????????????????????????" -"?????????????????????????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" +"????????????????????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "The returned edge identifiers may be either existing edges or newly created " "edges as needed to fully represent the input line as closely as possible." msgstr "" -"??????????????????????????????????????" -"?????????????????????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" +"?" #. Tag: para #, fuzzy, no-c-format @@ -16395,7 +16397,7 @@ msgid "merging overlaps into a parent polygon" msgstr "???????????????????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "merging narrow gaps into adjacent polygons" msgstr "????????????????????" @@ -23831,17 +23833,17 @@ msgid "" msgstr "A????????B????????????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "The |=| operator returns the 3D distance between two " "trajectories (See ). This is the " "same as but as an operator it can be used " "for doing nearest neighbor searches using an N-dimensional index." msgstr "" -"|=|????????? (|=|??????????????? (??)???3????????????????????N??????????????????????????" +"/>?????????????N???????????????????????" #. Tag: para #, no-c-format @@ -27828,17 +27830,17 @@ msgid "This function strips the M dimension." msgstr "?????M?????????" #. Tag: title -#, fuzzy, no-c-format +#, no-c-format msgid "Cardinality 2" msgstr "??2" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "Nodes with cardinality 2 are merged away." msgstr "??2?????????????" #. Tag: title -#, fuzzy, no-c-format +#, no-c-format msgid "Cardinality 3 or More" msgstr "??3??" ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 50 +++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 24 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 8 05:12:59 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 08 Dec 2025 13:12:59 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.4439cf137e9b5aa8de0415da9bb3de52@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by Lars Aksel Opsahl): This problem also seems to happen much more often up far north in Norway and we also see this problem when running with a tolerance up north. Can this problem be related big latitude and longitude distance differences. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 8 18:27:16 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 09 Dec 2025 02:27:16 -0000 Subject: [PostGIS] #6025: Upgrade debbie jenkins and nodes Message-ID: <046.aa3a285f19cf6f077933bc0fb4ce3002@osgeo.org> #6025: Upgrade debbie jenkins and nodes --------------------------+-------------------------------------- Reporter: robe | Owner: robe Type: defect | Status: new Priority: medium | Milestone: Website Management, Bots Component: QA/buildbots | Version: Keywords: | --------------------------+-------------------------------------- All jenkins and nodes are using Java OpenJDK 17. this will be EOL in March 2026 and the newest stable Jenkins 2.540 does not support JDK 17. In doing so I've already upgrade debbie from Bullseye to Trixie as trixie has JDK 25 already in main repo. But I'll need to upgrade the Berries and Bessies as well. Winnie I had already upgrade a couple of months ago to OpenJDK 25 and she's been running the latest jenkins since. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 8 18:36:57 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 09 Dec 2025 02:36:57 -0000 Subject: [PostGIS] #6025: Upgrade debbie jenkins and nodes In-Reply-To: <046.aa3a285f19cf6f077933bc0fb4ce3002@osgeo.org> References: <046.aa3a285f19cf6f077933bc0fb4ce3002@osgeo.org> Message-ID: <061.c14f9076c2d77f5facd2db9343b785e1@osgeo.org> #6025: Upgrade debbie jenkins and nodes ---------------------------+-------------------------------------- Reporter: robe | Owner: robe Type: defect | Status: new Priority: medium | Milestone: Website Management, Bots Component: QA/buildbots | Version: Resolution: | Keywords: ---------------------------+-------------------------------------- Comment (by robe): Okay upgraded debbie, now all nodes are broken. Forgot other nodes: * docker * docker-universal * reallie need to be upgraded too -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 8 20:47:54 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 8 Dec 2025 20:47:54 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-253-g9389d7fca Message-ID: <20251209044754.CE1AA1650DF@trac.osgeo.org> 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 9389d7fcad80c4187d29e7f6de85e7fac4a1fe22 (commit) from 944e4b714db5a98e39713039ef520d3a45250ce7 (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 9389d7fcad80c4187d29e7f6de85e7fac4a1fe22 Author: Teramoto Ikuhiro Date: Tue Dec 9 02:57:29 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.8% (5886 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 47360239f..67431cd71 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-08 06:47+0000\n" +"PO-Revision-Date: 2025-12-09 04:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -3978,7 +3978,7 @@ msgstr "" "???????? --without-topology ?????????????????" #. Tag: title -#, fuzzy, no-c-format +#, no-c-format msgid "Topology Primitive Tables" msgstr "???????????????" @@ -5619,15 +5619,15 @@ msgstr "" "?" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "The number of newly created edges (either covering space previously " "uncovered or resulting from split of existing edges) may be limited by the " "max_edges parameter." msgstr "" -"???????????? (?????????????????????????" -"?????????)? max_edges?????????????" -"??????" +"?????????? " +"(??????????????????????????????????)??? " +"max_edges?????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Dec 8 22:47:50 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 8 Dec 2025 22:47:50 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-254-g5c0716b54 Message-ID: <20251209064751.21CE81663F3@trac.osgeo.org> 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 5c0716b54e25714bfbb2d46125d48fb9f1ac7e99 (commit) from 9389d7fcad80c4187d29e7f6de85e7fac4a1fe22 (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 5c0716b54e25714bfbb2d46125d48fb9f1ac7e99 Author: Teramoto Ikuhiro Date: Tue Dec 9 05:19:00 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.8% (5886 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 67431cd71..06435efcf 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-09 04:47+0000\n" +"PO-Revision-Date: 2025-12-09 06:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -16428,33 +16428,34 @@ msgid "" "overlapMergeStrategy specifies how overlaps are " "merged into a parent polygon:" msgstr "" -"overlapMergeStrategy?????????????????" -"????????????????????:" +"overlapMergeStrategy?????????????????" +"?????????????????????????:" #. Tag: para #, fuzzy, no-c-format msgid "" "MERGE_LONGEST_BORDER - merges into polygon with longest common " "border" -msgstr "MERGE_LONGEST_BORDER - ?????????????" +msgstr "MERGE_LONGEST_BORDER - ???????????????????" #. Tag: para #, fuzzy, no-c-format msgid "MERGE_MAX_AREA - merges into polygon with maximum area" -msgstr "MERGE_MAX_AREA - ???????????" +msgstr "MERGE_MAX_AREA - ????????????????" #. Tag: para #, fuzzy, no-c-format msgid "MERGE_MIN_AREA - merges into polygon with minimum area" -msgstr "MERGE_MIN_AREA - ???????????" +msgstr "MERGE_MIN_AREA - ????????????????" #. Tag: para #, fuzzy, no-c-format msgid "" "MERGE_MIN_INDEX - merges into polygon with smallest input index " "(defined by order of input polygons)" -msgstr "MERGE_MIN_INDEX - ???????? " -"(???????????????)???????????" +msgstr "" +"MERGE_MIN_INDEX - ???????? " +"(???????????????)??????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 9 08:47:52 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 9 Dec 2025 08:47:52 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-255-ga73ca01ec Message-ID: <20251209164753.6814C16BF52@trac.osgeo.org> 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 a73ca01ec7c6c21b4d1d6b80643e44a99297bfd4 (commit) from 5c0716b54e25714bfbb2d46125d48fb9f1ac7e99 (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 a73ca01ec7c6c21b4d1d6b80643e44a99297bfd4 Author: Rodrigo Smarzaro Date: Tue Dec 9 14:49:45 2025 +0000 Translated PostGIS Manual using Weblate (Portuguese (Brazil)) Currently translated at 41.0% (2420 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/pt_BR/ diff --git a/doc/po/pt_BR/postgis-manual.po b/doc/po/pt_BR/postgis-manual.po index 52c4c30d9..2d1b1b5ce 100644 --- a/doc/po/pt_BR/postgis-manual.po +++ b/doc/po/pt_BR/postgis-manual.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-11-11 12:47+0000\n" +"PO-Revision-Date: 2025-12-09 16:47+0000\n" "Last-Translator: Rodrigo Smarzaro \n" "Language-Team: Portuguese (Brazil) \n" @@ -4254,8 +4254,9 @@ msgid "" "varname> in schema schema_name and unregisters the " "columns from topology.layer table." msgstr "" -"Derruba a coluna topogeometry da table nomeada table_name " -"no esquema schema_name e tira os registros da" +"Remove a coluna topogeometry da tabela table_name no " +"esquema schema_name e tira os registros das colunas da " +"tabela topology.layer." #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/pt_BR/postgis-manual.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Wed Dec 10 02:33:35 2025 From: trac at osgeo.org (PostGIS) Date: Wed, 10 Dec 2025 10:33:35 -0000 Subject: [PostGIS] #6026: Distance operator <-> returns "tuple order" error Message-ID: <046.61c89b29de719ab748d312199cfaaacb@osgeo.org> #6026: Distance operator <-> returns "tuple order" error ----------------------------------------------+--------------------- Reporter: dirc | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: Component: postgis | Version: 3.5.x Keywords: distance, operator, tuple, order | ----------------------------------------------+--------------------- Since Postgis v3.5 the distance operator sometimes returns: "ERROR: index returned tuples in wrong order" In Postgis v3.4 we do not get this error. The issue can be reproduced with this small table of 5 rows contain a Polygon. The table index. We want to order the Polygons by distance to a given Point. For some Points it returns the above error. I have added two points, one that works and one with the error. Reproduce: {{{#!sql CREATE TABLE reproduce ( id SERIAL PRIMARY KEY, geometry GEOMETRY(POLYGON, 28992) ); INSERT INTO reproduce (geometry) VALUES (ST_GeomFromText('POLYGON ((133894.531 490000, 132700 490000, 132460 490000, 131703.958 489011.71, 131695 489000, 132880 489000, 132880 488416.725, 133206.605 488583.011, 134029.81 489022.36, 133917.695 490000, 133894.531 490000))', 28992)), (ST_GeomFromText('POLYGON ((138000 492000, 141276.49 492000, 141050 492550, 140967.11 492751.305, 139951.651 495217.42, 139490.072 495217.42, 136358.892 495217.42, 135900 495217.42, 135301.1 495217.42, 135118.887 495296.573, 135115.873 495264.338, 135106.301 495164.456, 135098.485 495065.802, 135090.476 494967.014, 135085.764 494917.296, 135078.439 494866.459, 135070.381 494817.483, 135060.353 494767.172, 135036.351 494674.319, 135017.779 494615.505, 134991.438 494544.049, 134972.66 494501.055, 134948.148 494446.666, 134922.544 494398.914, 134872.859 494311.273, 134859.929 494292.444, 134843.402 494264.587, 134815.107 494200.454, 134770.855 494120.756, 134728.422 494053.048, 134932.74 493923.77, 133708.3 491825.92, 133917.695 490000, 134029.81 489022.36, 138000 492000))', 28992)), (ST_GeomFromText('POLYGON ((131215.201 487105.005, 134029.81 486992.15, 134029.81 489022.36, 133206.605 488583.011, 132880 488416.725, 132198.685 488069.845, 131375.721 487651.916, 131199.012 487560.733, 131198.76 487560.603, 131215.201 487105.005))', 28992)), (ST_GeomFromText('POLYGON ((134029.81 489022.36, 136889.1 488581.7, 138000 492000, 134029.81 489022.36))', 28992)), (ST_GeomFromText('POLYGON ((133917.695 490000, 133708.3 491825.92, 133541.312 491951.805, 133460 491840, 132820 491000, 132210 490190, 132460 490000, 132700 490000, 133894.531 490000, 133917.695 490000))', 28992)); --- create index CREATE INDEX idx_reproduce_geometry ON reproduce USING GIST(geometry); --- Query without error, that uses the index SET enable_seqscan = OFF; --- Disable the use of Quicksort algoritm, to ensure the index is used. explain analyse SELECT id FROM reproduce ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133000, 489000), 28992) LIMIT 4; --- Reproduce error SET enable_seqscan = OFF; explain analyse SELECT id FROM reproduce ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133718, 489222), 28992) LIMIT 4; }}} To be complete, here is the postgis we use in production: {{{ SELECT version(); SELECT postgis_full_version(); POSTGIS="3.5.2 0" [EXTENSION] PGSQL="160" GEOS="3.13.0-CAPI-1.19.0" PROJ="9.0.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.0.1) LIBXML="2.10.4" LIBJSON="0.15" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" }}} I reproduced it on different postgis version using postgis docker images: postgis/postgis:16-3.4 -> no errors postgis/postgis:16-3.5 -> gives error postgis/postgis:18-3.6 -> gives error {{{ TAG=16-3.4 PORT=${TAG//[^0-9]/} docker run --rm -d --name postgis-$TAG -e POSTGRES_PASSWORD=postgres -p $PORT:5432 postgis/postgis:$TAG psql -h localhost -p $PORT -U postgres -W postgres #pwd: postgres }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Dec 10 04:32:30 2025 From: trac at osgeo.org (PostGIS) Date: Wed, 10 Dec 2025 12:32:30 -0000 Subject: [PostGIS] #6026: Distance operator <-> returns "tuple order" error In-Reply-To: <046.61c89b29de719ab748d312199cfaaacb@osgeo.org> References: <046.61c89b29de719ab748d312199cfaaacb@osgeo.org> Message-ID: <061.793ce63868621b5044824c5bb8fa1a37@osgeo.org> #6026: Distance operator <-> returns "tuple order" error ----------------------+---------------------------------------------- Reporter: dirc | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: Component: postgis | Version: 3.5.x Resolution: | Keywords: distance, operator, tuple, order ----------------------+---------------------------------------------- Description changed by dirc: Old description: > Since Postgis v3.5 the distance operator sometimes returns: > "ERROR: index returned tuples in wrong order" > > In Postgis v3.4 we do not get this error. > > The issue can be reproduced with this small table of 5 rows contain a > Polygon. The table index. We want to order the Polygons by distance to a > given Point. > For some Points it returns the above error. > I have added two points, one that works and one with the error. > > Reproduce: > > {{{#!sql > CREATE TABLE reproduce ( > id SERIAL PRIMARY KEY, > geometry GEOMETRY(POLYGON, 28992) > ); > INSERT INTO reproduce (geometry) VALUES > (ST_GeomFromText('POLYGON ((133894.531 490000, 132700 490000, 132460 > 490000, 131703.958 489011.71, 131695 489000, 132880 489000, 132880 > 488416.725, 133206.605 488583.011, 134029.81 489022.36, 133917.695 > 490000, 133894.531 490000))', 28992)), > (ST_GeomFromText('POLYGON ((138000 492000, 141276.49 492000, 141050 > 492550, 140967.11 492751.305, 139951.651 495217.42, 139490.072 495217.42, > 136358.892 495217.42, 135900 495217.42, 135301.1 495217.42, 135118.887 > 495296.573, 135115.873 495264.338, 135106.301 495164.456, 135098.485 > 495065.802, 135090.476 494967.014, 135085.764 494917.296, 135078.439 > 494866.459, 135070.381 494817.483, 135060.353 494767.172, 135036.351 > 494674.319, 135017.779 494615.505, 134991.438 494544.049, 134972.66 > 494501.055, 134948.148 494446.666, 134922.544 494398.914, 134872.859 > 494311.273, 134859.929 494292.444, 134843.402 494264.587, 134815.107 > 494200.454, 134770.855 494120.756, 134728.422 494053.048, 134932.74 > 493923.77, 133708.3 491825.92, 133917.695 490000, 134029.81 489022.36, > 138000 492000))', 28992)), > (ST_GeomFromText('POLYGON ((131215.201 487105.005, 134029.81 > 486992.15, 134029.81 489022.36, 133206.605 488583.011, 132880 488416.725, > 132198.685 488069.845, 131375.721 487651.916, 131199.012 487560.733, > 131198.76 487560.603, 131215.201 487105.005))', 28992)), > (ST_GeomFromText('POLYGON ((134029.81 489022.36, 136889.1 488581.7, > 138000 492000, 134029.81 489022.36))', 28992)), > (ST_GeomFromText('POLYGON ((133917.695 490000, 133708.3 491825.92, > 133541.312 491951.805, 133460 491840, 132820 491000, 132210 490190, > 132460 490000, 132700 490000, 133894.531 490000, 133917.695 490000))', > 28992)); > > --- create index > CREATE INDEX idx_reproduce_geometry > ON reproduce USING GIST(geometry); > > --- Query without error, that uses the index > SET enable_seqscan = OFF; --- Disable the use of Quicksort algoritm, to > ensure the index is used. > explain analyse > SELECT id > FROM reproduce > ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133000, 489000), 28992) > LIMIT 4; > > --- Reproduce error > SET enable_seqscan = OFF; > explain analyse > SELECT id > FROM reproduce > ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133718, 489222), 28992) > LIMIT 4; > }}} > > To be complete, here is the postgis we use in production: > > {{{ > SELECT version(); > SELECT postgis_full_version(); > POSTGIS="3.5.2 0" [EXTENSION] PGSQL="160" GEOS="3.13.0-CAPI-1.19.0" > PROJ="9.0.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" > (compiled against PROJ 9.0.1) LIBXML="2.10.4" LIBJSON="0.15" > LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" > }}} > > I reproduced it on different postgis version using postgis docker images: > postgis/postgis:16-3.4 -> no errors > postgis/postgis:16-3.5 -> gives error > postgis/postgis:18-3.6 -> gives error > > {{{ > TAG=16-3.4 > PORT=${TAG//[^0-9]/} > docker run --rm -d --name postgis-$TAG -e POSTGRES_PASSWORD=postgres -p > $PORT:5432 postgis/postgis:$TAG > > psql -h localhost -p $PORT -U postgres -W postgres > #pwd: postgres > }}} New description: Since Postgis v3.5 the distance operator sometimes returns: "ERROR: index returned tuples in wrong order" In Postgis v3.4 we do not get this error. The issue can be reproduced with this small table of 5 rows together with an index as shown below. We want to order the Polygons by distance to a given Point. For some Points it returns the above error. I have added two points, one that works and one with the error. Reproduce: {{{#!sql CREATE TABLE reproduce ( id SERIAL PRIMARY KEY, geometry GEOMETRY(POLYGON, 28992) ); INSERT INTO reproduce (geometry) VALUES (ST_GeomFromText('POLYGON ((133894.531 490000, 132700 490000, 132460 490000, 131703.958 489011.71, 131695 489000, 132880 489000, 132880 488416.725, 133206.605 488583.011, 134029.81 489022.36, 133917.695 490000, 133894.531 490000))', 28992)), (ST_GeomFromText('POLYGON ((138000 492000, 141276.49 492000, 141050 492550, 140967.11 492751.305, 139951.651 495217.42, 139490.072 495217.42, 136358.892 495217.42, 135900 495217.42, 135301.1 495217.42, 135118.887 495296.573, 135115.873 495264.338, 135106.301 495164.456, 135098.485 495065.802, 135090.476 494967.014, 135085.764 494917.296, 135078.439 494866.459, 135070.381 494817.483, 135060.353 494767.172, 135036.351 494674.319, 135017.779 494615.505, 134991.438 494544.049, 134972.66 494501.055, 134948.148 494446.666, 134922.544 494398.914, 134872.859 494311.273, 134859.929 494292.444, 134843.402 494264.587, 134815.107 494200.454, 134770.855 494120.756, 134728.422 494053.048, 134932.74 493923.77, 133708.3 491825.92, 133917.695 490000, 134029.81 489022.36, 138000 492000))', 28992)), (ST_GeomFromText('POLYGON ((131215.201 487105.005, 134029.81 486992.15, 134029.81 489022.36, 133206.605 488583.011, 132880 488416.725, 132198.685 488069.845, 131375.721 487651.916, 131199.012 487560.733, 131198.76 487560.603, 131215.201 487105.005))', 28992)), (ST_GeomFromText('POLYGON ((134029.81 489022.36, 136889.1 488581.7, 138000 492000, 134029.81 489022.36))', 28992)), (ST_GeomFromText('POLYGON ((133917.695 490000, 133708.3 491825.92, 133541.312 491951.805, 133460 491840, 132820 491000, 132210 490190, 132460 490000, 132700 490000, 133894.531 490000, 133917.695 490000))', 28992)); --- create index CREATE INDEX idx_reproduce_geometry ON reproduce USING GIST(geometry); --- Query without error, that uses the index SET enable_seqscan = OFF; --- Disable the use of Quicksort algoritm, to ensure the index is used. explain analyse SELECT id FROM reproduce ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133000, 489000), 28992) LIMIT 4; --- Reproduce error SET enable_seqscan = OFF; explain analyse SELECT id FROM reproduce ORDER BY geometry <-> ST_SetSRID(ST_MakePoint(133718, 489222), 28992) LIMIT 4; }}} To be complete, here is the postgis we use in production: {{{ SELECT version(); SELECT postgis_full_version(); POSTGIS="3.5.2 0" [EXTENSION] PGSQL="160" GEOS="3.13.0-CAPI-1.19.0" PROJ="9.0.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.0.1) LIBXML="2.10.4" LIBJSON="0.15" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" }}} I reproduced it on different postgis version using postgis docker images: postgis/postgis:16-3.4 -> no errors postgis/postgis:16-3.5 -> gives error postgis/postgis:18-3.6 -> gives error {{{ TAG=16-3.4 PORT=${TAG//[^0-9]/} docker run --rm -d --name postgis-$TAG -e POSTGRES_PASSWORD=postgres -p $PORT:5432 postgis/postgis:$TAG psql -h localhost -p $PORT -U postgres -W postgres #pwd: postgres }}} -- -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Dec 12 01:45:55 2025 From: trac at osgeo.org (PostGIS) Date: Fri, 12 Dec 2025 09:45:55 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist Message-ID: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist ----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Keywords: | ----------------------+--------------------------- The RemoveUnusedPrimitives function lacks full qualification of topology function calls: {{{ # select topology.removeunusedprimitives('topo_ar5web_sysdata_webclient'); ERROR: function findtopology(text) does not exist LINE 1: topo := findTopology(atopology) ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. QUERY: topo := findTopology(atopology) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sun Dec 14 00:46:20 2025 From: trac at osgeo.org (PostGIS) Date: Sun, 14 Dec 2025 08:46:20 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.5ae664e73fd06b58fd661febdf5990cd@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by Lars Aksel Opsahl): This errors seems happen quite often up north. Added some more tests here https://gitlab.com/nibioopensource/resolve-overlap-and- gap/-/jobs/12430099315 that we can test on after it's fixed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Sun Dec 14 17:47:58 2025 From: git at osgeo.org (git at osgeo.org) Date: Sun, 14 Dec 2025 17:47:58 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-256-gc9a00a2df Message-ID: <20251215014758.A2640193CDA@trac.osgeo.org> 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 c9a00a2dfbdde5adcf7f9c419b035fd70024e6ab (commit) from a73ca01ec7c6c21b4d1d6b80643e44a99297bfd4 (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 c9a00a2dfbdde5adcf7f9c419b035fd70024e6ab Author: Teramoto Ikuhiro Date: Mon Dec 15 00:17:26 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (5893 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 06435efcf..c543c5792 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-09 06:47+0000\n" +"PO-Revision-Date: 2025-12-15 01:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -4023,7 +4023,7 @@ msgstr "" "?? (???? e????):" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "abs(next_left_edge) is the identifier of the edge reached " "by continuing around the face that lies to the left of e. " @@ -4033,10 +4033,10 @@ msgid "" "face remains on the walker?s left." msgstr "" "abs(next_left_edge)?e????????" -"?????????????????????????????????" -"e????????????????????????????" -"??????????????????????????????????????" -"??????????????????????" +"?????????????????????????????????e<" +"/varname>??????????????????????????????????" +"??????????????????????????????????????" +"???????????????" #. Tag: para #, no-c-format @@ -4057,7 +4057,7 @@ msgstr "" "??????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "A zero value indicates that the edge is dangling on the corresponding side " "(for example an isolated edge whose incident face is the universal face " @@ -4065,11 +4065,11 @@ msgid "" "abs_next_right_edge columns exposed by the edge view are convenience projections of these absolute values." msgstr "" -"???????????????????????????? (????????" -"????? 0?????????????????????" -"?)? edge??????abs_next_left_edge????abs_next_right_edge???????????" -"??????????" +"???????????????????????????? (" +"????????????? " +"0??????????????????????)? " +"edge??????abs_next_left_edge????abs_next_right_edge?????????????????????" #. Tag: para #, no-c-format @@ -16384,12 +16384,12 @@ msgstr "???????????????????????? "?????????????????????????????:" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "snapping vertices and edges to remove small discrepancies and ensure common " "edges are identically noded" -msgstr "??????????????????????????????????????" -"?????????????????????" +msgstr "??????????????????????????????????????" +"????????????????" #. Tag: para #, no-c-format @@ -16432,24 +16432,24 @@ msgstr "" "?????????????????????????:" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "MERGE_LONGEST_BORDER - merges into polygon with longest common " "border" msgstr "MERGE_LONGEST_BORDER - ???????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "MERGE_MAX_AREA - merges into polygon with maximum area" msgstr "MERGE_MAX_AREA - ????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "MERGE_MIN_AREA - merges into polygon with minimum area" msgstr "MERGE_MIN_AREA - ????????????????" #. Tag: para -#, fuzzy, no-c-format +#, no-c-format msgid "" "MERGE_MIN_INDEX - merges into polygon with smallest input index " "(defined by order of input polygons)" ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 09:06:49 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 17:06:49 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend Message-ID: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ---------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Keywords: | ---------------------+--------------------- From the mailing list {{{ drop table if exists fault; create table fault (fid integer, geom geometry(Polygon,5015)); CREATE INDEX fault_geom_index ON fault USING GIST (geom); INSERT INTO fault (fid, geom) VALUES (1, '0103000020971300000100000000000000'::GEOMETRY); }} The polygon in the WKB is a polygon with one ring, which has zero points. This is legal WKB, but not really distinct from an empty polygon represented with zero rings, from a spatial logic point of view. It still covers no space and is a polygon. When parsing this input WKB, it makes sense to just convert the input into a standard empty polygon. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 09:07:01 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 17:07:01 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.da12672747b59d961b911b6183368b46@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Description changed by pramsey: Old description: > From the mailing list > {{{ > drop table if exists fault; > create table fault (fid integer, geom geometry(Polygon,5015)); > CREATE INDEX fault_geom_index ON fault USING GIST (geom); > INSERT INTO fault (fid, geom) VALUES (1, > '0103000020971300000100000000000000'::GEOMETRY); > }} > The polygon in the WKB is a polygon with one ring, which has zero points. > This is legal WKB, but not really distinct from an empty polygon > represented with zero rings, from a spatial logic point of view. It still > covers no space and is a polygon. > > When parsing this input WKB, it makes sense to just convert the input > into a standard empty polygon. New description: From the mailing list {{{ drop table if exists fault; create table fault (fid integer, geom geometry(Polygon,5015)); CREATE INDEX fault_geom_index ON fault USING GIST (geom); INSERT INTO fault (fid, geom) VALUES (1, '0103000020971300000100000000000000'::GEOMETRY); }}} The polygon in the WKB is a polygon with one ring, which has zero points. This is legal WKB, but not really distinct from an empty polygon represented with zero rings, from a spatial logic point of view. It still covers no space and is a polygon. When parsing this input WKB, it makes sense to just convert the input into a standard empty polygon. -- -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 09:53:04 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 17:53:04 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.0ae88e89ecba4af6a29ee51c292a4557@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by pramsey): Quick interpretation of the WKB of this example: {{{ 01 // LITTLE ENDIAN. 03000020 // POLYGON, WITH SRID 97130000 // SRID 5015 01000000 // ONE RING 00000000 // ZERO POINTS }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 10:10:16 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 18:10:16 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.75c2df2794e9302a329d6f7b0dd70989@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Description changed by pramsey: Old description: > From the mailing list > {{{ > drop table if exists fault; > create table fault (fid integer, geom geometry(Polygon,5015)); > CREATE INDEX fault_geom_index ON fault USING GIST (geom); > INSERT INTO fault (fid, geom) VALUES (1, > '0103000020971300000100000000000000'::GEOMETRY); > }}} > The polygon in the WKB is a polygon with one ring, which has zero points. > This is legal WKB, but not really distinct from an empty polygon > represented with zero rings, from a spatial logic point of view. It still > covers no space and is a polygon. > > When parsing this input WKB, it makes sense to just convert the input > into a standard empty polygon. New description: From the [https://lists.osgeo.org/pipermail/postgis- users/2025-December/046990.html mailing list] {{{ drop table if exists fault; create table fault (fid integer, geom geometry(Polygon,5015)); CREATE INDEX fault_geom_index ON fault USING GIST (geom); INSERT INTO fault (fid, geom) VALUES (1, '0103000020971300000100000000000000'::GEOMETRY); }}} The polygon in the WKB is a polygon with one ring, which has zero points. This is legal WKB, but not really distinct from an empty polygon represented with zero rings, from a spatial logic point of view. It still covers no space and is a polygon. When parsing this input WKB, it makes sense to just convert the input into a standard empty polygon. -- -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 15:14:38 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 15:14:38 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-257-g119f8390a Message-ID: <20251215231439.045DF19C154@trac.osgeo.org> 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 119f8390a9c775ce97af2cab93643af7e3133994 (commit) from c9a00a2dfbdde5adcf7f9c419b035fd70024e6ab (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 119f8390a9c775ce97af2cab93643af7e3133994 Author: Paul Ramsey Date: Mon Dec 15 15:14:17 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 6df3aa1f8..dd32828c7 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 5c40615f5..f2d824b17 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index 476ff8ee2..26a59f1fc 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { diff --git a/regress/core/tickets.sql b/regress/core/tickets.sql index e24bcef05..eec195810 100644 --- a/regress/core/tickets.sql +++ b/regress/core/tickets.sql @@ -1664,3 +1664,15 @@ SELECT FROM (VALUES ('LINESTRING (170 290, 205 272)'),('LINESTRING (120 215, 176 197)'),('LINESTRING (170 290, 205 272)')) AS a(geom), (VALUES ('POLYGON ((100 200, 140 230, 180 310, 280 310, 390 270, 400 210, 320 140, 215 141, 150 170, 100 200))')) AS b(geom); + + +-- ------------------------------------------------------------------------------------- +-- #6028 + +CREATE TABLE fault6028 (fid integer, geom geometry(Polygon,5015)); +CREATE INDEX fault6028_x ON fault6028 USING GIST (geom); +INSERT INTO fault6028 (fid, geom) + VALUES (1, '0103000020971300000100000000000000'::GEOMETRY); +SELECT * FROM fault6028; +DROP TABLE IF EXISTS fault6028; + diff --git a/regress/core/tickets_expected b/regress/core/tickets_expected index 6637f2d89..d8f7f5cf5 100644 --- a/regress/core/tickets_expected +++ b/regress/core/tickets_expected @@ -499,3 +499,4 @@ public|test5978|shape|2|4326|POINT #5938|1FF00F212|t #5938|1FF00F212|t #5938|1FF00F212|t +1|01030000209713000000000000 ----------------------------------------------------------------------- Summary of changes: liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ regress/core/tickets.sql | 12 +++++++++ regress/core/tickets_expected | 1 + 5 files changed, 95 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 15:14:49 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 23:14:49 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.51cbe5ce94e6c47bfe7787372c02c2c7@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"119f8390a9c775ce97af2cab93643af7e3133994/git" 119f839/git]: {{{#!CommitTicketReference repository="git" revision="119f8390a9c775ce97af2cab93643af7e3133994" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 15:59:38 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 15:59:38 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.6 updated. 3.6.1-7-g5a6e332f9 Message-ID: <20251215235938.BFCD619CF1C@trac.osgeo.org> 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, stable-3.6 has been updated via 5a6e332f97dcc3018615e07e58b97c8df929369c (commit) from 11021e049f8b8a2c1031c37d0c0c41d1b0cbb3bb (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 5a6e332f97dcc3018615e07e58b97c8df929369c Author: Paul Ramsey Date: Mon Dec 15 15:16:15 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index d1c1e0708..bfa8bc8ba 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,7 @@ SELECT topology.FixCorruptTopoGeometryColumn(schema_name, table_name, feature_co - #6019, make clean does not remove cunit generated files (Bas Couwenberg) - #6020, schema qualify call in ST_MPointFromText (Paul Ramsey) +- #6028, crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.6.1 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 6df3aa1f8..dd32828c7 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 5c40615f5..f2d824b17 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index 476ff8ee2..26a59f1fc 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 83 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 15:59:41 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 23:59:41 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.637da661e3f7bc4b15634e4f0533db59@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"5a6e332f97dcc3018615e07e58b97c8df929369c/git" 5a6e332/git]: {{{#!CommitTicketReference repository="git" revision="5a6e332f97dcc3018615e07e58b97c8df929369c" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 15:59:55 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 15:59:55 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.5 updated. 3.5.4-10-g6439eaff7 Message-ID: <20251215235955.7258619CC37@trac.osgeo.org> 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, stable-3.5 has been updated via 6439eaff7e42a33ca67d37ca594e8898ac78640c (commit) via b6df80ce8b985c880377273e2acce2a839002dab (commit) from c3afc11077b801cd3b88462519a4b1d9d79d8bc3 (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 6439eaff7e42a33ca67d37ca594e8898ac78640c Author: Paul Ramsey Date: Mon Dec 15 15:23:51 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index fbedc58aa..ad05e6f57 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ PostgreSQL 12-18 required. GEOS 3.8+ required. Proj 6.1+ required. - #5959, #5984, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski) - #6020, schema qualify call in ST_MPointFromText (Paul Ramsey) + - #6028, crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.5.4 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 6df3aa1f8..dd32828c7 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 714bae9b7..fdc0b3eaa 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index 476ff8ee2..26a59f1fc 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { commit b6df80ce8b985c880377273e2acce2a839002dab Author: Paul Ramsey Date: Mon Dec 15 15:23:22 2025 -0800 Ignore generated file diff --git a/.gitignore b/.gitignore index 6a3e23eba..2f202aba1 100644 --- a/.gitignore +++ b/.gitignore @@ -123,6 +123,7 @@ macros/ltversion.m4 *.o postgis_config.h postgis/Makefile +postgis/cunit/Makefile postgis/geobuf.pb-c.c postgis/geobuf.pb-c.h postgis/legacy_gist.sql ----------------------------------------------------------------------- Summary of changes: .gitignore | 1 + NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 5 files changed, 84 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 15:59:56 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 15 Dec 2025 23:59:56 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.e4a5fd526bcb53be88d4dc47ef964e8c@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"6439eaff7e42a33ca67d37ca594e8898ac78640c/git" 6439eaf/git]: {{{#!CommitTicketReference repository="git" revision="6439eaff7e42a33ca67d37ca594e8898ac78640c" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 15:59:59 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 15:59:59 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.4 updated. 3.4.4-64-g17bbfcba0 Message-ID: <20251215235959.ECF1B19D02C@trac.osgeo.org> 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, stable-3.4 has been updated via 17bbfcba02587ffcc38057c1fdd429d0ea532164 (commit) from c1613ccca5df7d587bd4ade0a49c34de5e0434b7 (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 17bbfcba02587ffcc38057c1fdd429d0ea532164 Author: Paul Ramsey Date: Mon Dec 15 15:28:24 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index 68a4c5130..142179f47 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,7 @@ Proj 6.1+ required. - #5962, Consistent clipping of MULTI/POINT (Paul Ramsey) - #5754, ST_ForcePolygonCCW reverses lines (Paul Ramsey) - #6020, schema qualify call in ST_MPointFromText (Paul Ramsey) + - #6028, crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.4.4 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 1f86dd080..6f8217c15 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 6f2c9ec01..9c582798d 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index f1b0a568e..f92256cb5 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 83 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 16:00:03 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:00:03 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.2b93b35ad5ccb7fa0f5a66cb0afb7e67@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"17bbfcba02587ffcc38057c1fdd429d0ea532164/git" 17bbfcb/git]: {{{#!CommitTicketReference repository="git" revision="17bbfcba02587ffcc38057c1fdd429d0ea532164" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 16:00:11 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 16:00:11 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.3 updated. 3.3.7-63-g97f63fdcd Message-ID: <20251216000011.7109919CB7D@trac.osgeo.org> 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, stable-3.3 has been updated via 97f63fdcda8ae90007f5310d2e9e832afe507da7 (commit) from 7288ef04d22ee6828e9811bed19c5b91068fb1a9 (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 97f63fdcda8ae90007f5310d2e9e832afe507da7 Author: Paul Ramsey Date: Mon Dec 15 15:29:44 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index 610253a33..e9cfdb1f4 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ Proj 4.9+ required. - #5991, CircularString distance error (Paul Ramsey) - #5962, Consistent clipping of MULTI/POINT (Paul Ramsey) - #5989, CurvePolygon distance error (Paul Ramsey) + - #6028, crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.3.8 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 1f86dd080..6f8217c15 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 353c107c1..ddf8250ed 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index f1b0a568e..f92256cb5 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 83 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 16:00:12 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:00:12 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.38d24ccc5e3b9bb0d593136efa3b78bb@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"97f63fdcda8ae90007f5310d2e9e832afe507da7/git" 97f63fdc/git]: {{{#!CommitTicketReference repository="git" revision="97f63fdcda8ae90007f5310d2e9e832afe507da7" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 16:13:29 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 16:13:29 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.1 updated. 3.1.11-46-gd4ba80220 Message-ID: <20251216001329.BB82819D230@trac.osgeo.org> 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, stable-3.1 has been updated via d4ba80220e80650b112fafa201b0deea95b5c875 (commit) from 741aaa5891fb8064cc40f29eceb0362289c5ba8f (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 d4ba80220e80650b112fafa201b0deea95b5c875 Author: Paul Ramsey Date: Mon Dec 15 15:57:38 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index ec9f6bd22..6df4cf20a 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,7 @@ YYYY/MM/DD - #5917, ST_Relate becomes unresponsive (Paul Ramsey) - #5991, CircularString distance error (Paul Ramsey) - #5962, Consistent clipping of MULTI/POINT (Paul Ramsey) + - #6028, Crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.1.12 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 1f86dd080..6f8217c15 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 353c107c1..ddf8250ed 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index f1b0a568e..f92256cb5 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 83 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Dec 15 16:13:29 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 16:13:29 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.2 updated. 3.2.7-57-g87f9a82db Message-ID: <20251216001329.D435619D232@trac.osgeo.org> 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, stable-3.2 has been updated via 87f9a82dbf195c0f3d57e12b32be4d4b5b5eb4ac (commit) from 6e2102f01c0f9019c53ba5ca7a975834805326e5 (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 87f9a82dbf195c0f3d57e12b32be4d4b5b5eb4ac Author: Paul Ramsey Date: Mon Dec 15 15:56:20 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index 3832d8c37..fcbb2210c 100644 --- a/NEWS +++ b/NEWS @@ -23,6 +23,7 @@ Proj 4.9+ required. - #5991, CircularString distance error (Paul Ramsey) - #5962, Consistent clipping of MULTI/POINT (Paul Ramsey) - #5989, CurvePolygon distance error (Paul Ramsey) + - #6028, Crash indexing malformed empty polygon (Paul Ramsey) PostGIS 3.2.8 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index 1f86dd080..6f8217c15 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index 353c107c1..ddf8250ed 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -224,16 +224,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -244,14 +247,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index f1b0a568e..f92256cb5 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -578,6 +578,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 83 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 16:13:37 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:13:37 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.bd642f38dce087e65fec11ac9cf0466d@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"d4ba80220e80650b112fafa201b0deea95b5c875/git" d4ba8022/git]: {{{#!CommitTicketReference repository="git" revision="d4ba80220e80650b112fafa201b0deea95b5c875" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 16:13:37 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:13:37 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.ae9b1816384d4a8b9a572dc99d762d29@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"87f9a82dbf195c0f3d57e12b32be4d4b5b5eb4ac/git" 87f9a82/git]: {{{#!CommitTicketReference repository="git" revision="87f9a82dbf195c0f3d57e12b32be4d4b5b5eb4ac" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 16:15:22 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 16:15:22 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.0 updated. 3.0.11-21-g8736b619a Message-ID: <20251216001522.9BCDE19C871@trac.osgeo.org> 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, stable-3.0 has been updated via 8736b619abe7f5c75848521b03e2e626e58d3e01 (commit) from 58ef17e4fc45651f8b3e92ea9cefc34942f35e71 (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 8736b619abe7f5c75848521b03e2e626e58d3e01 Author: Paul Ramsey Date: Mon Dec 15 15:58:43 2025 -0800 Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 diff --git a/NEWS b/NEWS index d5bc6657c..1a7c37d08 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,8 @@ Proj 4.9+ required. - #5795, [topology] Fix ST_NewEdgesSplit can cause invalid topology (Bj?rn Harrtell) - Handle null returns from wkb parser, Paul Ramsey - #5818, GT-244 Fix CG_IsSolid function (Lo?c Bartoletti) + - #6028, Crash indexing malformed empty polygon (Paul Ramsey) + PostGIS 3.0.11 2024/02/06 diff --git a/liblwgeom/cunit/cu_gserialized2.c b/liblwgeom/cunit/cu_gserialized2.c index f88c74d00..34aa021f3 100644 --- a/liblwgeom/cunit/cu_gserialized2.c +++ b/liblwgeom/cunit/cu_gserialized2.c @@ -271,33 +271,48 @@ static void test_gserialized2_is_empty(void) { int i = 0; struct gserialized_empty_cases { - const char* wkt; + int ishex; + const char* txt; int isempty; }; struct gserialized_empty_cases cases[] = { - { "POINT EMPTY", 1 }, - { "POINT(1 1)", 0 }, - { "LINESTRING EMPTY", 1 }, - { "MULTILINESTRING EMPTY", 1 }, - { "MULTILINESTRING(EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,EMPTY)", 1 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, - { "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, - { "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, - { "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, - { NULL, 0 } + { 0, "POINT EMPTY", 1 }, + { 0, "POINT(1 1)", 0 }, + { 0, "LINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING EMPTY", 1 }, + { 0, "MULTILINESTRING(EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY)", 1 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1))", 0 }, + { 0, "MULTILINESTRING((0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,(0 0,1 1),EMPTY)", 0 }, + { 0, "MULTILINESTRING(EMPTY,EMPTY,EMPTY)", 1 }, + { 0, "MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY,EMPTY))", 1 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY),POINT(1 1))", 0 }, + { 0, "GEOMETRYCOLLECTION(POINT EMPTY,MULTILINESTRING(EMPTY, (0 0)),POINT EMPTY)", 0 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,POINT EMPTY,MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 0, "GEOMETRYCOLLECTION(POLYGON EMPTY,GEOMETRYCOLLECTION(POINT EMPTY),MULTILINESTRING(EMPTY,EMPTY),POINT EMPTY)", 1 }, + { 1, "0101000000000000000000F87F000000000000F87F", 1 }, /* POINT EMPTY */ + { 1, "010200000000000000", 1 }, /* LINESTRING EMPTY */ + { 1, "010400000000000000", 1 }, /* MULTIPOINT EMPTY */ + { 1, "0105000000020000000102000000020000000000000000000000000000000000000000000000000000000000000000000000010200000000000000", 0 }, /* MULTILINESTRING ((0 0, 0 0), EMPTY) */ + { 1, "0105000000020000000102000000000000000102000000020000000000000000000000000000000000000000000000000000000000000000000000", 0 }, /* MULTILINESTRING (EMPTY,(0 0, 0 0)) */ + { 1, "010300000000000000", 1 }, /* POLYGON EMPTY */ + { 1, "01030000000100000000000000", 1 }, /* POLYGON(EMPTY) */ + { 1, "010300000002000000000000000100000000000000000000000000000000000000", 0 }, /* POLYGON(EMPTY, (0 0)) */ + { 1, "0107000000030000000102000000000000000103000000020000000000000000000000010200000000000000", 1}, /* GEOMETRYCOLLECTION(LINESTRING EMPTY, POLYGON(EMPTY, EMPTY), LINESTRING EMPTY) */ + { 1, NULL, 0 } }; - while( cases[i].wkt ) + while( cases[i].txt ) { - // i = 11; - LWGEOM *lw = lwgeom_from_wkt(cases[i].wkt, LW_PARSER_CHECK_NONE); + LWGEOM *lw = NULL; + if (cases[i].ishex) + lw = lwgeom_from_hexwkb(cases[i].txt, LW_PARSER_CHECK_NONE); + else + lw = lwgeom_from_wkt(cases[i].txt, LW_PARSER_CHECK_NONE); + GSERIALIZED *g = gserialized2_from_lwgeom(lw, 0); int ie = gserialized2_is_empty(g); // printf("%s: we say %d, they say %d\n", cases[i].wkt, cases[i].isempty, ie); @@ -309,7 +324,6 @@ static void test_gserialized2_is_empty(void) } - static void test_on_gser2_lwgeom_count_vertices(void) { LWGEOM *lwgeom; diff --git a/liblwgeom/gserialized2.c b/liblwgeom/gserialized2.c index da6adb84d..572b36e2d 100644 --- a/liblwgeom/gserialized2.c +++ b/liblwgeom/gserialized2.c @@ -223,16 +223,19 @@ void gserialized2_set_srid(GSERIALIZED *g, int32_t srid) static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty); static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) { - int i; - int32_t type, num; + uint32_t type = 0, num = 0; + + /* Short circuit if we found any non-empty component */ + if (!*isempty) return 0; memcpy(&type, p, 4); memcpy(&num, p+4, 4); if (lwtype_is_collection(type)) { + /* Recurse into collections */ size_t lz = 8; - for ( i = 0; i < num; i++ ) + for ( uint32_t i = 0; i < num; i++ ) { lz += gserialized2_is_empty_recurse(p+lz, isempty); if (!*isempty) @@ -243,14 +246,44 @@ static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty) } else { - *isempty = (num == 0 ? LW_TRUE : LW_FALSE); - return 8; + size_t lz = 8; + /* Any non-collection with zero elements is empty */ + if ( num == 0 ) + { + *isempty = LW_TRUE; + } + /* + * Special case to handle polygon with a non-zero + * set of empty rings + * https://trac.osgeo.org/postgis/ticket/6028 + */ + else if ( num > 0 && type == POLYGONTYPE ) + { + for ( uint32_t i = 0; i < num; i++ ) + { + uint32_t lrnum; + memcpy(&lrnum, p+lz, 4); + lz += 4; + if ( lrnum > 0 ) + { + *isempty = LW_FALSE; + return lz; + } + } + *isempty = LW_TRUE; + } + /* Any other non-collection with more than zero elements is not empty */ + else + { + *isempty = LW_FALSE; + } + return lz; } } int gserialized2_is_empty(const GSERIALIZED *g) { - int isempty = 0; + int isempty = LW_TRUE; uint8_t *p = gserialized2_get_geometry_p(g); gserialized2_is_empty_recurse(p, &isempty); return isempty; diff --git a/liblwgeom/lwin_wkb.c b/liblwgeom/lwin_wkb.c index 1013ab89c..e2f3c7471 100644 --- a/liblwgeom/lwin_wkb.c +++ b/liblwgeom/lwin_wkb.c @@ -567,6 +567,14 @@ static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s) return NULL; } + /* Skip zero-member rings, they add nothing */ + if ( pa->npoints == 0) + { + LWDEBUGF(2, "Skipping empty ring [%d]", i); + ptarray_free(pa); + continue; + } + /* Add ring to polygon */ if ( lwpoly_add_ring(poly, pa) == LW_FAILURE ) { ----------------------------------------------------------------------- Summary of changes: NEWS | 2 ++ liblwgeom/cunit/cu_gserialized2.c | 56 ++++++++++++++++++++++++--------------- liblwgeom/gserialized2.c | 45 ++++++++++++++++++++++++++----- liblwgeom/lwin_wkb.c | 8 ++++++ 4 files changed, 84 insertions(+), 27 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 16:15:26 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:15:26 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.f62f56d3b3e5dfed001dcfe940871a85@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+--------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: Component: postgis | Version: 3.2.x Resolution: | Keywords: ----------------------+--------------------- Comment (by Paul Ramsey ): In [changeset:"8736b619abe7f5c75848521b03e2e626e58d3e01/git" 8736b61/git]: {{{#!CommitTicketReference repository="git" revision="8736b619abe7f5c75848521b03e2e626e58d3e01" Convert POLYGON(EMPTY) a polygon with an empty ring into POLYGON EMPTY a polygon with no rings, in the WKB input routine. Handle any existing POLYGON(EMPTY) in the gserialized_is_empty routine. References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 16:34:54 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:34:54 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.5c47a167a1a8246d31503c3b25153336@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+---------------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: new Priority: blocker | Milestone: PostGIS 3.0.12 Component: postgis | Version: 3.0.x Resolution: | Keywords: ----------------------+---------------------------- Changes (by pramsey): * milestone: => PostGIS 3.0.12 * version: 3.2.x => 3.0.x -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 16:35:03 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 00:35:03 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.a034559aedf196a4e33e6a7bd060fc46@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+---------------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: closed Priority: blocker | Milestone: PostGIS 3.0.12 Component: postgis | Version: 3.0.x Resolution: fixed | Keywords: ----------------------+---------------------------- Changes (by pramsey): * resolution: => fixed * status: new => closed -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 21:02:48 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 21:02:48 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-258-g265af64a7 Message-ID: <20251216050249.AEE8319D81F@trac.osgeo.org> 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 265af64a73582e6cdfed0fea1c69c618eda369ae (commit) from 119f8390a9c775ce97af2cab93643af7e3133994 (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 265af64a73582e6cdfed0fea1c69c618eda369ae Author: Regina Obe Date: Tue Dec 16 00:02:39 2025 -0500 Change GHA pg14 testing to use GEOS 3.10. GEOS 3.9 is already EOL diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58a876f08..d8bee82ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,8 @@ jobs: - { tag: pg15-geos311-gdal35-proj90, mode: coverage } - { tag: pg15-clang-geos311-gdal35-proj90, mode: usan_clang } # - { tag: pg13-geos39-gdal31-proj71, mode: garden } - - { tag: pg14-geos39-gdal33-proj71, mode: tests } + #- { tag: pg14-geos39-gdal33-proj71, mode: tests } + - { tag: pg14-geos310-gdal33-proj71, mode: tests } # - { tag: pg14-clang-geos39-gdal33-proj71, mode: usan_clang } #- { tag: pg13-geos39-gdal31-proj71, mode: tests } #- { tag: pg13-geos39-gdal31-proj71, mode: coverage } ----------------------------------------------------------------------- Summary of changes: .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 21:14:39 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 05:14:39 -0000 Subject: [PostGIS] #6029: sfcgal-master branch failing garden test CG_ForceLHR Message-ID: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> #6029: sfcgal-master branch failing garden test CG_ForceLHR ---------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: new Priority: blocker | Milestone: PostGIS SFCGAL Component: sfcgal | Version: master Keywords: | ---------------------+----------------------------- This crashes {{{ SELECT CG_ForceLHR(ST_GeomFromText('MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)', 4326)) }}} Trace from GHA: https://github.com/Snowflake- Labs/postgis/actions/runs/20250727656/job/58141922950#step:4:1409 {{{ [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/local/pgsql/bin/postgres '''. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f699894f519 in CGAL::Sign CGAL::Polygon::internal::orientation_2_no_precondition<__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, CGAL::Epeck>(__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, __gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, CGAL::Epeck const&) [clone .isra.0] () from /usr/local/lib/libSFCGAL.so.2 Thread 1 (Thread 0x7f69a4f50780 (LWP 11120)): #0 0x00007f699894f519 in CGAL::Sign CGAL::Polygon::internal::orientation_2_no_precondition<__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, CGAL::Epeck>(__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, __gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, CGAL::Epeck const&) [clone .isra.0] () from /usr/local/lib/libSFCGAL.so.2 }}} I just compiled in windows against sfcgal-master and had same error: -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 21:21:26 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 05:21:26 -0000 Subject: [PostGIS] #6029: sfcgal-master branch failing garden test CG_ForceLHR In-Reply-To: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> References: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> Message-ID: <061.62e7a0556406fc7d15d0e4ed5d5ac4f0@osgeo.org> #6029: sfcgal-master branch failing garden test CG_ForceLHR ----------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: new Priority: blocker | Milestone: PostGIS SFCGAL Component: sfcgal | Version: master Resolution: | Keywords: ----------------------+----------------------------- Comment (by robe): Also here - https://github.com/postgis/postgis/actions/runs/20257107239/job/58161404260 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 21:25:17 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 05:25:17 -0000 Subject: [PostGIS] #6029: sfcgal-master branch failing garden test CG_ForceLHR In-Reply-To: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> References: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> Message-ID: <061.41b09ff422f5157b6418123dd100c974@osgeo.org> #6029: sfcgal-master branch failing garden test CG_ForceLHR ----------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: new Priority: blocker | Milestone: PostGIS SFCGAL Component: sfcgal | Version: master Resolution: | Keywords: ----------------------+----------------------------- Comment (by robe): Related sfcgal ticket - https://gitlab.com/sfcgal/SFCGAL/-/issues/314 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 15 22:07:59 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 15 Dec 2025 22:07:59 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-259-g00bfa7206 Message-ID: <20251216060759.5426619EC04@trac.osgeo.org> 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 00bfa7206e6890cbcb86ca57060bfc7f749df139 (commit) from 265af64a73582e6cdfed0fea1c69c618eda369ae (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 00bfa7206e6890cbcb86ca57060bfc7f749df139 Author: Regina Obe Date: Tue Dec 16 01:06:38 2025 -0500 GARDEN TEST HARNESS IMPROVEMNETS - Change table and verison to 3.7 - Add Mis-shapen empty polygon to garden References #6028 diff --git a/doc/xsl/postgis_gardentest.sql.xsl b/doc/xsl/postgis_gardentest.sql.xsl index cb367a6b7..ad9b80801 100644 --- a/doc/xsl/postgis_gardentest.sql.xsl +++ b/doc/xsl/postgis_gardentest.sql.xsl @@ -11,9 +11,9 @@ using a garden variety of geometries. Its intent is to flag major crashes. ******************************************************************** --> - 3.6.0 + 3.7.0 AddGeometryColumn DropGeometryColumn DropGeometryTable - AddGeometryColumn DropGeometryColumn DropGeometryTable CG_Visibility CG_YMonotonePartition ST_AlphaShape ST_OptimalAlphaShape + AddGeometryColumn DropGeometryColumn DropGeometryTable 3395 @@ -36,7 +36,7 @@ 'FF1FF0102' false the_geom - postgis_garden_log36 + postgis_garden_log37 UPDATE SET log_end = clock_timestamp() FROM (SELECT logid FROM ORDER BY logid DESC limit 1) As foo WHERE .logid = foo.logid AND .log_end IS NULL; @@ -278,6 +278,11 @@ FROM (VALUES ( ST_GeomFromEWKT('SRID=4326;MULTIPOLYGON(((-71.0821 42.3036 2,-71. UNION ALL SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(1 2, 1 2,1 2, 1 2, 3 2, 1 2)',4326)) As the_geom ) + (SELECT ST_SetSRID('0103000020971300000100000000000000'::GEOMETRY,4326) AS the_geom + ) + + + (SELECT '0106000020E61000000100000001030000000100000005000000000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F'::geometry AS the_geom ) diff --git a/doc/xsl/raster_gardentest.sql.xsl b/doc/xsl/raster_gardentest.sql.xsl index 01ed0e637..e89e89951 100644 --- a/doc/xsl/raster_gardentest.sql.xsl +++ b/doc/xsl/raster_gardentest.sql.xsl @@ -10,7 +10,7 @@ using a garden variety of rasters. Its intent is to flag major crashes. ******************************************************************** --> - 3.6.0 + 3.7.0 AddRasterColumn AddRasterConstraints DropRasterConstraints DropRasterColumn DropRasterTable @@ -33,7 +33,7 @@ 'rast' 'pgis_rgarden_1bb' false - raster_garden_log36 + raster_garden_log37 {8BUI,1BB} {255,0} 'Lanczos' @@ -134,7 +134,7 @@ CREATE TABLE (logid serial PRIMARY KEY, l DROP TABLE IF EXISTS _output; CREATE TABLE _output(logid integer PRIMARY KEY, log_output xml); - + diff --git a/doc/xsl/sfcgal_gardentest.sql.xsl b/doc/xsl/sfcgal_gardentest.sql.xsl index 5cd41b796..0e48ecd1c 100644 --- a/doc/xsl/sfcgal_gardentest.sql.xsl +++ b/doc/xsl/sfcgal_gardentest.sql.xsl @@ -11,7 +11,7 @@ using a garden variety of geometries. Its intent is to flag major crashes. ******************************************************************** --> - 3.6.0 + 3.7.0 AddGeometryColumn DropGeometryColumn DropGeometryTable CG_Simplify CG_Visibility CG_YMonotonePartition ST_AlphaShape ST_OptimalAlphaShape @@ -36,7 +36,7 @@ 'FF1FF0102' false the_geom - postgis_garden_log36 + postgis_garden_log37 UPDATE SET log_end = clock_timestamp() FROM (SELECT logid FROM ORDER BY logid DESC limit 1) As foo WHERE .logid = foo.logid AND .log_end IS NULL; ----------------------------------------------------------------------- Summary of changes: doc/xsl/postgis_gardentest.sql.xsl | 11 ++++++++--- doc/xsl/raster_gardentest.sql.xsl | 6 +++--- doc/xsl/sfcgal_gardentest.sql.xsl | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 15 22:08:05 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 06:08:05 -0000 Subject: [PostGIS] #6028: Mis-shapen Empty Polygon Crashes Backend In-Reply-To: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> References: <049.1662fce002067c0cc1bbb0c6d3dcfbcb@osgeo.org> Message-ID: <064.0416c8e28808ea48aa2c5083b8630809@osgeo.org> #6028: Mis-shapen Empty Polygon Crashes Backend ----------------------+---------------------------- Reporter: pramsey | Owner: pramsey Type: defect | Status: closed Priority: blocker | Milestone: PostGIS 3.0.12 Component: postgis | Version: 3.0.x Resolution: fixed | Keywords: ----------------------+---------------------------- Comment (by Regina Obe ): In [changeset:"00bfa7206e6890cbcb86ca57060bfc7f749df139/git" 00bfa72/git]: {{{#!CommitTicketReference repository="git" revision="00bfa7206e6890cbcb86ca57060bfc7f749df139" GARDEN TEST HARNESS IMPROVEMNETS - Change table and verison to 3.7 - Add Mis-shapen empty polygon to garden References #6028 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 15 22:43:56 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 16 Dec 2025 06:43:56 -0000 Subject: [PostGIS] #6029: sfcgal-master branch failing garden test CG_ForceLHR In-Reply-To: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> References: <046.7d5e4e352e858088650cb5200226352f@osgeo.org> Message-ID: <061.8054888a8b135a3233a20ec257d7569c@osgeo.org> #6029: sfcgal-master branch failing garden test CG_ForceLHR ----------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: closed Priority: blocker | Milestone: PostGIS SFCGAL Component: sfcgal | Version: master Resolution: fixed | Keywords: ----------------------+----------------------------- Changes (by robe): * resolution: => fixed * status: new => closed Comment: Fixed in https://gitlab.com/sfcgal/SFCGAL/-/merge_requests/642 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Tue Dec 16 02:47:54 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 16 Dec 2025 02:47:54 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-260-g6c0946011 Message-ID: <20251216104755.271EE1A0BC6@trac.osgeo.org> 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 6c0946011041fce3c50cb8fc07bdc26e2e6e0363 (commit) from 00bfa7206e6890cbcb86ca57060bfc7f749df139 (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 6c0946011041fce3c50cb8fc07bdc26e2e6e0363 Author: Teramoto Ikuhiro Date: Tue Dec 16 08:59:34 2025 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.9% (5892 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index c543c5792..75423f7db 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-15 01:47+0000\n" +"PO-Revision-Date: 2025-12-16 10:47+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -76,21 +76,19 @@ msgstr "" msgid "" "In order to enable all GDAL drivers available in your GDAL install, set this " "environment variable as follows" -msgstr "" -"????????GDAL??????????????????????????:" +msgstr "????????GDAL???????????????????????????:" #. Tag: para #, no-c-format msgid "" "If you want to only enable specific drivers, set your environment variable " "as follows:" -msgstr "" -"???????????????????????????????????:" +msgstr "????????????????????????????????????:" #. Tag: para #, no-c-format msgid "If you are on windows, do not quote the driver list" -msgstr "Windows???????????????????????????" +msgstr "Windows????????????????????????????" #. Tag: para #, no-c-format @@ -8345,9 +8343,9 @@ msgid "" "Also make sure to enable the drivers you want to use as described in ." msgstr "" -"GDAL (?????)????????????????????????????????????????" -"??????" +"GDAL (?????)????????????????????????????????????????????????" #. Tag: para #, no-c-format @@ -10199,7 +10197,7 @@ msgstr "Jorge Ar?valo" #. Tag: para #, no-c-format msgid "Raster development, GDAL driver support, loader" -msgstr "??????GDAL???????????" +msgstr "???????GDAL?????????????" #. Tag: term #, no-c-format @@ -18625,7 +18623,7 @@ msgid "" "A configuration option to set the enabled GDAL drivers in the PostGIS " "environment. Affects the GDAL configuration variable GDAL_SKIP." msgstr "" -"PostGIS???GDAL?????????????????????????????" +"PostGIS???GDAL??????????????????????????????" "GDAL?????????????GDAL_SKIP?????????" #. Tag: para @@ -18636,10 +18634,10 @@ msgid "" "can be set in PostgreSQL's configuration file: postgresql.conf. It can also " "be set by connection or transaction." msgstr "" -"PostGIS???GDAL?????????????????????????????" -"GDAL?????????????GDAL_SKIP??????????????????" -"PostgreSQL????????????????postgresql.conf??????????" -"????????????????????????" +"PostGIS???GDAL??????????????????????????????" +"GDAL?????????????GDAL_SKIP??????????????????Po" +"stgreSQL????????????????postgresql." +"conf??????????????????????????????????" #. Tag: para #, no-c-format @@ -18650,8 +18648,8 @@ msgid "" "drivers to the process starting PostgreSQL." msgstr "" "postgis.gdal_enabled_drivers??????PostgreSQL????" -"????????????????????????????" -"POSTGIS_GDAL_ENABLED_DRIVERS???????????" +"?????????????????????????????POSTGIS_GD" +"AL_ENABLED_DRIVERS???????????" #. Tag: para #, no-c-format @@ -18661,10 +18659,10 @@ msgid "" "href=\"http://www.gdal.org/formats_list.html\">GDAL Raster Formats. " "Multiple drivers can be specified by putting a space between each driver." msgstr "" -"?????GDAL???????????????????????????????" -"???????????GDAL Raster Formats??????????????????????" -"?????????????????" +"?????GDAL?????????????????????????????" +"????????????????GDAL Raster Formats???????????????" +"??????????????????????????" #. Tag: para #, no-c-format @@ -18682,14 +18680,14 @@ msgid "" "DISABLE_ALL overrides all other values in " "postgis.gdal_enabled_drivers." msgstr "" -"DISABLE_ALL ???GDAL????????????" -"DISABLE_ALL?postgis.gdal_enabled_drivers?????????????????" +"DISABLE_ALL ???GDAL?????????????D" +"ISABLE_ALL?postgis." +"gdal_enabled_drivers?????????????????" #. Tag: para #, no-c-format msgid "ENABLE_ALL enables all GDAL drivers." -msgstr "ENABLE_ALL ???GDAL????????????" +msgstr "ENABLE_ALL ???GDAL?????????????" #. Tag: para #, no-c-format @@ -18743,7 +18741,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Set for all new connections to a specific database to specific drivers" -msgstr "????????????????????????????????" +msgstr "?????????????????????????????????" #. Tag: para #, no-c-format @@ -18752,9 +18750,9 @@ msgid "" "user access. Also note that database, session, and user settings override " "this." msgstr "" -"?????????????????????????????????????" -"??????????????????????????????????????" -"????????????" +"??????????????????????????????????????" +"??????????????????????????????????????" +"???????????????" #. Tag: para #, no-c-format @@ -29880,7 +29878,7 @@ msgstr "" "can_write=True???????????ST_AsGDALRaster??????" #. Tag: para -#, no-c-format +#, fuzzy, no-c-format msgid "" "Returns a list of raster formats short_name,long_name and creator options of " "each format supported by GDAL. Use the short_name as input in the " @@ -29891,13 +29889,14 @@ msgid "" "varname>, description and set of VALUE " "for each creator option for the specific driver." msgstr "" -"??????GDAL????????????????short_name, long_name????" -"?????????????short_name???format????????????????GDAL??????" -"????????????????????create_options??" -"XML???CretionOptionList/Option?????????????????????" -"?????????????type, description?VALUE?????????" +"??????GDAL????????????????short_name, " +"long_name?????????????????short_name???format?????????????" +"?????GDAL???????????????????????????" +"create_options??XML???CretionOptionList/Option????????" +"???????????????????????????type, " +"description?VALUE?????????" #. Tag: para #, no-c-format @@ -29911,8 +29910,8 @@ msgid "" "Environment variable gdal_enabled_drivers is set." msgstr "" "Changed: 2.0.6, 2.1.3 - GUC (??: Grand Unified Configuration???????" -"?????PostgreSQL?????)???????gdal_enabled_drivers??????" -"??????????????????????????" +"?????PostgreSQL??????)???????gdal_enabled_drivers?????" +"????????????????????????????" #. Tag: para #, no-c-format @@ -29922,12 +29921,12 @@ msgstr "Availability: 2.0.0 - GDAL 1.6.0????????" #. Tag: title #, no-c-format msgid "Examples: List of Drivers" -msgstr "?: ??????" +msgstr "?: ???????" #. Tag: title #, no-c-format msgid "Example: List of options for each driver" -msgstr "?: ?????????????" +msgstr "?: ??????????????" #. Tag: para #, no-c-format @@ -33762,10 +33761,11 @@ msgid "" "'PNG'. Use to get a list of formats " "supported by your library." msgstr "" -"format ???????libgdal???????????????" -"??????????????'JPEG', 'GTIff', 'PNG'?????????????" -"????????????????????" -"????" +"format " +"???????libgdal?????????????????????????" +"?????'JPEG', 'GTIff', 'PNG'???????????" +"??????????????????????????" #. Tag: para #, no-c-format @@ -50214,9 +50214,9 @@ msgid "" "band 1,2,3 of a raster to a PHP request stream that can then be embedded in " "an img src html tag." msgstr "" -"?????PHP?PostgreSQL???????" -"???????HTML img?????????????PHP?????????????" -"??1?2?3????????????????" +"?????PHP?PostgreSQL???????????????HTML img?????????????PHP??????????" +"??????1?2?3????????????????" #. Tag: para #, no-c-format @@ -50260,9 +50260,9 @@ msgid "" "band 1,2,3 of a raster to a PHP request stream that can then be embedded in " "an img src html tag." msgstr "" -"?????Npgsql PostgreSQL .NET??????????????HTML img?????????" -"????????????1?2?3????????????????" +"?????Npgsql PostgreSQL .NET???????????????HTML img?????????????" +"?????????1?2?3????????????????" #. Tag: para #, no-c-format @@ -50273,10 +50273,10 @@ msgid "" "download the latest and drop into your ASP.NET bin folder and you'll be good " "to go." msgstr "" -"?????Npgsql .NET PostgreSQL??????????????http://npgsql.projects." -"postgresql.org/???????????????????ASP.NET ? bin" -"???????????????????" +"?????Npgsql .NET PostgreSQL???????????????http://npgsql.projects." +"postgresql.org/???????????????????ASP.NET ? " +"bin???????????????????" #. Tag: para #, no-c-format @@ -50319,9 +50319,9 @@ msgid "" "href=\"http://jdbc.postgresql.org/download.html\">http://jdbc.postgresql.org/" "download.html" msgstr "" -"???PostgreSQL JDBC?????http://jdbc.postgresql.org/download.html???????" -"??????" +"???PostgreSQL JDBC??????http://jdbc.postgresql.org/download." +"html?????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 116 ++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 58 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 16 08:59:23 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 16 Dec 2025 08:59:23 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-261-g5aa5abb7b Message-ID: <20251216165923.7AF941A6259@trac.osgeo.org> 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 5aa5abb7b11ad8ac782e00c2f708c93741843420 (commit) from 6c0946011041fce3c50cb8fc07bdc26e2e6e0363 (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 5aa5abb7b11ad8ac782e00c2f708c93741843420 Author: Sandro Santilli Date: Tue Dec 16 17:59:04 2025 +0100 Use https to be less scary to users diff --git a/CREDITS b/CREDITS index f648bd78d..268a912d7 100644 --- a/CREDITS +++ b/CREDITS @@ -1,4 +1,4 @@ For updated credits, see the PostGIS manual. Offline: see doc/README -Online: http://postgis.net/docs/manual-dev/postgis_introduction.html#credits +Online: https://postgis.net/docs/manual-dev/postgis_introduction.html#credits ----------------------------------------------------------------------- Summary of changes: CREDITS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Dec 16 22:47:56 2025 From: git at osgeo.org (git at osgeo.org) Date: Tue, 16 Dec 2025 22:47:56 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-262-gac50f4c22 Message-ID: <20251217064757.08F443AA0@trac.osgeo.org> 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 ac50f4c2220884b4008a5d6f9abbdc950b59f1f3 (commit) from 5aa5abb7b11ad8ac782e00c2f708c93741843420 (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 ac50f4c2220884b4008a5d6f9abbdc950b59f1f3 Author: Denys Kovshun Date: Wed Dec 17 05:39:33 2025 +0000 Translated PostGIS Manual using Weblate (Ukrainian) Currently translated at 79.5% (4690 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/uk/ diff --git a/doc/po/uk/postgis-manual.po b/doc/po/uk/postgis-manual.po index ee07a2171..b71ae3f03 100644 --- a/doc/po/uk/postgis-manual.po +++ b/doc/po/uk/postgis-manual.po @@ -6,10 +6,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-11-12 11:47+0000\n" +"PO-Revision-Date: 2025-12-17 06:47+0000\n" "Last-Translator: Denys Kovshun \n" -"Language-Team: Ukrainian \n" +"Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -52,6 +52,12 @@ msgid "" "You can also use the more cross-platform approach of setting the " "corresponding ." msgstr "" +"??????? ???? ????? ????? ?? ??? ???????? ???????? ?? ????????????? ????????. " +"??? ????? ????????? ??, ???????? ?????????? ???? ?????? ?????????? " +"POSTGIS_GDAL_ENABLED_DRIVERS ?? " +"POSTGIS_ENABLE_OUTDB_RASTERS ? ?????????? ???????. ?? " +"????? ?????? ??????????????? ????? ?????????????? ??????, ??????????? " +"??????????? ." #. Tag: para #, no-c-format @@ -97,6 +103,12 @@ msgid "" "CLUSTER/environment where the " "placeholders refer to the PostgreSQL major version and cluster name." msgstr "" +"???????????? ??????? ?????????? ???????? ??? ??????????? ???????. ??? " +"PostgreSQL, ????????????? ?? Ubuntu ??? Debian ?? ????????? apt-postgresql, " +"????????? ???????? ? ??????????? ????? /etc/postgresql/MAJOR/CLUSTER/environment, ?? ??????? ??????? ?????????? ??????? ?????? PostgreSQL ?? ??'? " +"????????." #. Tag: para #, no-c-format @@ -141,6 +153,8 @@ msgid "" "If you have compiled and installed the extensions/postgis modules, you can " "turn a database into a spatial one using the EXTENSION mechanism." msgstr "" +"???? ?? ???????????? ?? ?????????? ?????? extensions/postgis, ?? ?????? " +"??????????? ???? ????? ?? ?????????? ?? ????????? ????????? EXTENSION." #. Tag: para #, no-c-format @@ -298,7 +312,7 @@ msgstr "" #. Tag: title #, no-c-format msgid "Soft upgrade using extensions" -msgstr "" +msgstr "?'??? ????????? ?? ????????? ?????????" #. Tag: para #, no-c-format @@ -307,6 +321,8 @@ msgid "" "upgrade using extensions as well. Doing a minor upgrade with extensions is " "fairly painless." msgstr "" +"???? ?? ???????? ?????????? PostGIS ? ????????????, ?? ??? ???????? ????? " +"??????? ??????????. ???????? ????????? ? ???????????? ? ?????? ???????." #. Tag: para #, no-c-format @@ -314,6 +330,8 @@ msgid "" "Use the function to upgrade " "to the latest version you have installed." msgstr "" +"?????????????? ??????? ??? " +"????????? ?? ????????? ??????, ??? ?? ??????????." #. Tag: para #, no-c-format @@ -324,6 +342,11 @@ msgid "" "postgis_raster objects are folded back into the main " "extension." msgstr "" +"???? ?? ????????? ???? ?????, ??? ??? ?? ?????? ?? PostGIS 2.5, ????????? " +"??????? ALTER EXTENSION, ? ????? " +"postgis_extensions_upgrade(), ??? ????????????, ?? " +"????????? ??'???? postgis_raster ????????? ? ??????? " +"??????????." #. Tag: para #, no-c-format @@ -397,7 +420,7 @@ msgstr "" #. Tag: title #, no-c-format msgid "Soft upgrade without extensions" -msgstr "" +msgstr "?'??? ????????? ??? ?????????" #. Tag: para #, no-c-format @@ -407,6 +430,10 @@ msgid "" "linkend=\"hard_upgrade\">HARD UPGRADE into a database created with " "extensions and migrate your data there." msgstr "" +"?????????? ? ????????????? ??????? ?????????? ??? ???????? ??????. ???? ?? " +"??? ?? ?????????????? ?????????? ??? ???????, ????????? ??????? ????????? ? ???? ?????, ???????? ?? " +"????????? ?????????, ? ?????????? ???? ???? ????." #. Tag: title #, no-c-format @@ -675,6 +702,9 @@ msgid "" "postgresql.conf or postgresql.auto.conf by using " "the ALTER SYSTEM command." msgstr "" +"???????????? PostgreSQL ????? ??????????? ?? ????? ???????, ?? ?????????? " +"?????? postgresql.conf ??? postgresql.auto.conf, " +"?? ????????? ??????? ALTER SYSTEM." #. Tag: para #, no-c-format @@ -713,6 +743,10 @@ msgid "" "they are in an inherited hierarchy and avoids paying the planner penalty " "otherwise." msgstr "" +"???????? ???????????????? ??? ?????????? ???????. ?? ????????????? " +"\"partition\" ?????? ???????????? ??????????? ??????? ?? ??????? ???????? " +"?????? ? ???? ???????, ???? ???? ??????????? ? ???????????? ????????, ? " +"???????? ???????? ???????? ??????? ????????????? ? ????? ????????." #. Tag: link #, no-c-format @@ -722,7 +756,7 @@ msgstr "shared_buffers" #. Tag: para #, no-c-format msgid "Default: ~128MB" -msgstr "" +msgstr "?? ?????????????: ~128 ??" #. Tag: para #, no-c-format @@ -742,6 +776,11 @@ msgid "" "and therefore also bounds how many workers can participate in parallel " "queries." msgstr "" +"max_worker_processes " +"????????? ??????????? ????????? ??????? ????????, ????????? ??? ???????, ?, " +"????, ????? ??????? ????????? ???????????, ??? ?????? ????? ?????? ? " +"??????????? ???????." #. Tag: para #, no-c-format @@ -847,6 +886,14 @@ msgid "" "sure to bump up max_worker_processes to at least as high as " "this number." msgstr "" +"????????? ??????????? ??????? ? ???????? PostgreSQL ?? PostGIS ???????????? " +"?? ???????????? ??? ?????????? ????????? ??????? ????????, ??? ???? ???????? " +"????. ???? ???????? ??????????? ???? 0, ?? ????? ??????, ????????? ??, ?? " +"??????? ??????? ??????????, ???? ?? ST_Intersects, ?????? " +"??????????????? ?????? ???????? ? ??? ????? ????????? ?????? ??????. ???? ? " +"??? ? ?????? ??????? ??????????, ??? ???? ??????? ???????? ????? ????????? " +"?? ????????? ??????????, ??? ? ??? ?. ????? ?????????????, ?? ???????? " +"max_worker_processes ????????? ????????? ?? ????? ?????." #. Tag: para #, no-c-format @@ -1500,7 +1547,7 @@ msgstr "?????? ???????? ????????? ????" #. Tag: para #, no-c-format msgid "(28). A 5 digit number. Identifies a ZIP code" -msgstr "" +msgstr "(28). 5-?????? ?????. ??????????? ???????? ??????" #. Tag: para #, no-c-format @@ -1630,6 +1677,9 @@ msgid "" "(token number \"13\"). (SADS elements \"ZIP CODE\" , \"PLUS 4\" ). This " "attribute is used for both the US ZIP and the Canadian postal codes." msgstr "" +"(????? ?????? ?13?). (???????? SADS ?ZIP CODE? , ?PLUS 4? ). ??? ??????? " +"???????????????? ?? ??? ???????? ???????? ???, ??? ? ??? ???????? ???????? " +"??????." #. Tag: para #, no-c-format @@ -2125,6 +2175,9 @@ msgid "" "located in the extras/history_table directory of the " "PostGIS source tree." msgstr "" +"?????????? history_table ???????? ?? ???? plpgsql ? " +"??????????? ? ???????? extras/history_table ?????? " +"????????? ???? PostGIS." #. Tag: para #, no-c-format @@ -2293,6 +2346,11 @@ msgid "" "suffixes, states, various control tables for managing data load, and " "skeleton base tables from which all the TIGER-loaded tables inherit." msgstr "" +"?????? ??????? ????? ??? ?????? tiger ??? ?????????? ???? " +"???????, ???'?????? ? TIGER, ????? ??? ?????????? ????????????, ????? ?? " +"???????? ????? ?????, ???????, ?????, ????? ??????? ?????????? ??? ????????? " +"????????????? ?????, ? ????? ?????? ???????-???????, ??? ???? ?????????????? " +"??? ???????, ??????????? TIGER." #. Tag: para #, no-c-format @@ -2306,6 +2364,15 @@ msgid "" "faces, edges, etc located in the " "tiger schema." msgstr "" +"????? ??????????? ???? ????? ??? ?????? tiger_data, ??? " +"??????? ??? ???? ???????? ????????? ??? ??????? ?????, ??? ???????????? " +"?????????? ? ???-????? Census ? ?????????? ? ???? ?????. ? ???????? ?????? " +"????? ????? ??????? ?????? ??? ??????? ? ????? ?????, ????????? " +"ma_addr, ma_edges ????, ? ???????????, " +"?? ???????????? ???????????? ?????? ????? ????? ?????. ????? ? ??? ??????? " +"?????????????? ??? ??????? addr, faces, edges ????, ???????????? ? ????? " +"tiger." #. Tag: para #, no-c-format @@ -2316,6 +2383,11 @@ msgid "" "different schema for each state, as long as all the tables inherit from the " "tables in the tiger schema." msgstr "" +"??? ??????? ???????????? ??????????? ?????? ?? ?????? ???????, ???? ????? " +"??????, ??? ????? ????? ?????????? tiger_data ??? ??? " +"???? ?? ????? ???? ????????? ????????? ?? ???? ????? ? ?????????, ?????? " +"????? ??? ??????? ?????, ???? ??? ??????? ?????????????? ??? ??????? ? ????? " +"tiger." #. Tag: para #, no-c-format @@ -2339,6 +2411,13 @@ msgid "" "have data from tiger_2010 and want to replace with tiger_2015, refer to " "" msgstr "" +"???? ?? ?????????????? TIGER Geocoder (tiger_2010), ?? ?????? ??????? " +"??????? ?? ????????? ???????? ???????? upgrade_geocoder.bat / .sh ? extras/" +"tiger. ?????? ? ???????? ???? ??? tiger_2010 ? " +"tiger_2011+ ? ??, ?? ??????? county ? " +"state ?????? ?? ???????????? ?? ???????. ???? ? ??? ? " +"???? ? tiger_2010 ? ?? ?????? ???????? ?? ?? tiger_2015, ?????????? ?? " #. Tag: para #, no-c-format @@ -2346,6 +2425,8 @@ msgid "" "You can install the TIGER Geocoder with the PostgreSQL extension model. " "Refer to for details." msgstr "" +"?? ?????? ?????????? TIGER Geocoder ? ??????????? PostgreSQL. ?????????? " +"?????????? ???. ? ." #. Tag: para #, no-c-format @@ -2385,6 +2466,8 @@ msgid "" "The reverse_geocode function is useful for deriving the " "street address and cross streets of a GPS location." msgstr "" +"??????? reverse_geocode ??????? ??? ?????????? ?????? ?? " +"?????????? ?????? ?? GPS-????????????." #. Tag: para #, no-c-format @@ -2431,6 +2514,9 @@ msgid "" "There are a couple other open source geocoders for PostGIS, that unlike the " "TIGER Geocoder have the advantage of multi-country geocoding support" msgstr "" +"????? ?? ?????? ?????????? ? ????????? ????? ??? PostGIS, ???, ?? ??????? " +"??? TIGER Geocoder, ????? ???????? ? ??????? ????????? ???????????? ??? " +"????????? ?????" #. Tag: para #, no-c-format @@ -2444,6 +2530,14 @@ msgid "" "interface like the TIGER Geocoder, or if a good deal of the logic is " "implemented in the web interface." msgstr "" +"Nominatim ???????????? ???? ? ??????? OpenStreetMap gazeteer. ??? ???????????? " +"????? ????? ?? PostgreSQL ?? PostGIS ?????????? osm2pgsql. ??? ?????????? ?? " +"????????? ???-??????? ?, ????????, ??????????? ??? ??????? ?? ???-??????. " +"??? ????, ?? ? TIGER Geocoder, ??? ??? ?? ????????, ??? ? ????????? " +"?????????? ?????????. ? ???????????? ?? ?????????, ?? ??? ??? ?????? " +"????????? SQL, ?? TIGER Geocoder, ?? ?????? ??????? ?????? ??????????? ? " +"???-??????????." #. Tag: para #, no-c-format @@ -2456,6 +2550,13 @@ msgid "" "cross-platform and also has a reverse geocoder among some other neat " "features." msgstr "" +"GIS Graphy ???? " +"??????????????? PostGIS ?, ?? ? Nominatim, ???????????? ???? OpenStreetMap " +"(OSM) ????? ? ??????? ?????? ?????????. ??? ????????????? ? ?????????????? " +"??? ???????????? ????? OSM ?, ??????? ?? Nominatim, ??????? ??????????? ?? " +"?????? ???. ?? ? Nominatim, ??? ?????? ?? ???-?????? ? ????????? ?? Java " +"1.5, ???????? Servlet ?? Solr. GisGraphy ? ???????????????? ? ???, ????? " +"????? ???????? ???????, ????????? ????????." #. Tag: refpurpose #, no-c-format @@ -2955,6 +3056,9 @@ msgid "" "scripts, rerun it on the states you have already processed to get these " "additional tables." msgstr "" +"??????? ?? ??????, ??? ???? ?? ?????????? TIGER Geocoder ?? ??????? " +"?????????, ????????? ???? ????? ??? ??? ?????????? ??????, ??? ???????? ?? " +"????????? ???????." #. Tag: para #, no-c-format @@ -3128,6 +3232,10 @@ msgid "" "when enabled, zcta5 data is loaded as a single table called zcta5_all as " "part of the nation script load." msgstr "" +"?????????: 2.4.1 ?????????? ???????????? ????????????? ?????? 5 ?? ???????? " +"???????? (zcta5), ? ???? ?? ??????? ?????????, ???? zcta5 ?????????????? ?? " +"???? ??????? ??? ?????? zcta5_all ? ?????? ???????????? ????????????? " +"???????." #. Tag: para #, no-c-format @@ -3135,6 +3243,8 @@ msgid "" "If you want ZIP Code 5 tabulation area (zcta5) to be included in your nation " "script load, do the following:" msgstr "" +"???? ?? ??????, ??? ??????? ????????? ZIP-???? 5 (zcta5) ???? ???????? ? ??? " +"???????????? ??????, ????????? ???????? ???:" #. Tag: para #, no-c-format @@ -3382,6 +3492,8 @@ msgid "" "zip4 last 4 digits of a 9 digit ZIP Code. Availability: " "PostGIS 2.4.0." msgstr "" +"zip4 ??????? 4 ????? 9-???????? ????????? ???????. " +"???????????: PostGIS 2.4.0." #. Tag: para #, no-c-format @@ -3957,6 +4069,11 @@ msgid "" "functions, fixed known usability issues, documented the features and " "functions, added new functionality, and improved SQL-MM compliance." msgstr "" +"?????? ????????? PostGIS ????? ??? ?????, ??? ?? ?????? ??? ???????? " +"????????? ????????????. ? ?????????? ??????????? ???????? ???? ???????? " +"????????? ???????, ?????????? ?????? ???????? ? ?????????????? ?????????, " +"??????????????? ?????????? ?? ???????, ?????? ???? ??????? ?? ????????? " +"????????????? SQL-MM." #. Tag: para #, no-c-format @@ -3993,11 +4110,14 @@ msgid "" "without-topology configure option at build time as described in " msgstr "" +"????????? ????????? ????????? ?? ????????????? ? ???? ???? ???????? ?????? " +"???????? ????? ???????????? --without-topology ??? ??? ??????????, ?? " +"??????? ? " #. Tag: title #, no-c-format msgid "Topology Primitive Tables" -msgstr "" +msgstr "??????? ???????????? ??????????" #. Tag: para #, no-c-format @@ -4013,6 +4133,17 @@ msgid "" "therefore appear twice?once for each orientation?when it belongs to two " "faces." msgstr "" +"??????? ????????? ????-???? ????????? ???????????? ? ???????? " +"edge_data, node ?? face, ??? ??????????? ? ?????, ????????? ?? ????????? . ????? ????? ??????? edge_data " +"??????????? ??????????? ?????: ??? ??????? ?????????? ????? ??? " +"start_node ?? end_node ????? ? " +"??????????????? ?????, ?? ????????????? ????? ??? ????? ???????? " +"(left_face), ?? ?????, ?? ????????????? ?????? " +"(right_face). ????? ?????, ???? ? ??? ????? ???????????? " +"??????? ???? ?'???????? ????? ? ?? ?????? ???? ??? ??????? ???????? ? ???? " +"??? ???????? ?? ???? ??????." #. Tag: para #, no-c-format @@ -4024,6 +4155,13 @@ msgid "" "the stored orientation has to be followed as-is or reversed when traversing. " "Formally, the following rules hold for every edge e:" msgstr "" +"??????? next_left_edge ?? next_right_edge ?????????? ?? ?????????? ??? ??????????, ??????? ?????? ??????????? " +"???? ??????? ?????. ???? ?????????? ???????????? ???????? ?? ??????, " +"????????? ???????? ???? ? ??????????????? ????????? ???????????? ?????, ? " +"???? ????????, ?? ???? ????????????? ?????????? ?????????? ??? ????, ?? ???? " +"?? ??????? ?? ?????????? ??? ??? ???????????. ????????? ??? ?????? ????? " +"e ????? ???? ???????:" #. Tag: para #, no-c-format @@ -4035,6 +4173,12 @@ msgid "" "negative the referenced edge must be followed backwards so that the shared " "face remains on the walker?s left." msgstr "" +"abs(next_left_edge) ? ?? ????????????? ?????, ?? ????? " +"????? ?????????, ??????????? ??? ??????? ?????, ?? ?????? ??????? ??? " +"e. ???? ???????? ? ????????, ??????????? ????????????? " +"??? ????????? ????? e ?????? ?????????? ?????????? " +"???????????? ?????; ???? ???? ? ???'?????, ?????????? ????? ????????? ?????? " +"?????, ??? ??????? ????? ?????????? ??????? ??? ??'???? ???????????." #. Tag: para #, no-c-format @@ -4046,6 +4190,12 @@ msgid "" "instructs to traverse the referenced edge in reverse, starting from its end " "node, so that the right-hand face is preserved." msgstr "" +"abs(next_right_edge) ?????????? ?????? ?? ????? ?????, " +"???????????? ???????? ??? e. ????????? ???????? ???????, " +"?? ???????? ????? ???????? ? ?? ????????? ???????????, ????????? ? ????????? " +"????? e, ???? ?? ????????? ???????? ?????? ?? " +"???????????? ??????????? ?? ???????? ????? ? ?????????? ????????, ????????? " +"? ?? ????????? ?????, ??? ???????? ????? ?????." #. Tag: para #, no-c-format @@ -4056,6 +4206,11 @@ msgid "" "abs_next_right_edge columns exposed by the edge view are convenience projections of these absolute values." msgstr "" +"???????? ???? ?????? ?? ??, ?? ????? ?????? ? ???????????? ???? (?????????, " +"?????????? ?????, ??????? ????? ????? ? ????????????? ?????? " +"0). ??????? abs_next_left_edge ?? " +"abs_next_right_edge, ?? ?????????????? ? ??????? " +"edge, ? ???????? ?????????? ??? ?????????? ???????." #. Tag: para #, no-c-format @@ -4571,6 +4726,8 @@ msgid "" "Fixes topogeometry corruption caused by upgrade to postgis_topology 3.6.0 " "and higher" msgstr "" +"?????????? ??????????? ?????????????, ?????????? ?????????? ?? " +"postgis_topology 3.6.0 ?? ????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/uk/postgis-manual.po | 173 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 165 insertions(+), 8 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 18 04:47:58 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 18 Dec 2025 04:47:58 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-263-ge936c74a8 Message-ID: <20251218124758.8F46818CA6C@trac.osgeo.org> 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 e936c74a8139d68beb081c2c55c131e8aa6d16e8 (commit) from ac50f4c2220884b4008a5d6f9abbdc950b59f1f3 (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 e936c74a8139d68beb081c2c55c131e8aa6d16e8 Author: Denys Kovshun Date: Thu Dec 18 11:15:50 2025 +0000 Translated PostGIS Manual using Weblate (Ukrainian) Currently translated at 80.7% (4757 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/uk/ diff --git a/doc/po/uk/postgis-manual.po b/doc/po/uk/postgis-manual.po index b71ae3f03..62d344841 100644 --- a/doc/po/uk/postgis-manual.po +++ b/doc/po/uk/postgis-manual.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-17 06:47+0000\n" +"PO-Revision-Date: 2025-12-18 12:47+0000\n" "Last-Translator: Denys Kovshun \n" "Language-Team: Ukrainian \n" @@ -4228,6 +4228,19 @@ msgid "" "linkend=\"TopologyPolygonize\"/>) may intentionally leave the fields unset, " "which is why the documentation flags their behaviour explicitly." msgstr "" +"?? ????????????? ? ????????? ???????? ??'??????? ?????? ????? ? " +"???????????????? ???????? ????????????? ???????????. ???? ???????, ?? ?? , " +"???????????? ?? ??? ??? ??????????? ??? ?????? ?? ??????????? " +"???????????????? ? ?????? ? ???????????? ???????????? ?invalid " +"next_left_edge? ?? ?invalid next_right_edge?, ?? ?'????????? ??? ??? " +"?????????. ????????????, ???? ?? , ????????????? " +"???????? next_* ? ???????????? ???????????????, ???? ?? " +"????????? ???????????, ????????? ?? " +", ????????? ????????? ??? ??? " +"?????????? ??? ????????? ?????. ???? ?????? ???????? (?????????, ) ?????? ???????? ???????? ???? " +"?????????????, ???? ? ???????????? ???? ????????? ????? ?????????." #. Tag: title #, no-c-format @@ -4737,16 +4750,20 @@ msgid "" "topogeometries created before the upgrade. This function fixes this " "corruption in affected tables." msgstr "" +"??? ????????? ????????? PostGIS <3.6.0 ?? ?????? >3.6.0+ ???? ??????? " +"?????????? ??????? topogeometry. ?? ?????????? ??????????? ?????????????, " +"????????? ?? ?????????. ?? ??????? ????????? ?? ??????????? ? ???????? " +"????????." #. Tag: para #, no-c-format msgid "Availability: 3.6.1" -msgstr "" +msgstr "???????????: 3.6.1" #. Tag: para #, no-c-format msgid "Fix all topology columns" -msgstr "" +msgstr "????????? ??? ??????? ?????????" #. Tag: refpurpose #, no-c-format @@ -5533,7 +5550,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Enhanced: 2.0 added support for hasZ." -msgstr "" +msgstr "?????????: ? ?????? 2.0 ?????? ????????? hasZ." #. Tag: para #, no-c-format @@ -5541,6 +5558,8 @@ msgid "" "Enhanced: 3.6.0 added topoid and usesLargeIDs parameters." msgstr "" +"?????????: ? ?????? 3.6.0 ?????? ????????? topoid ?? " +"usesLargeIDs." #. Tag: para #, no-c-format @@ -5728,6 +5747,9 @@ msgid "" "identifiers forming it up (negative identifies mean the edge goes in the " "opposite direction of the input linestring)." msgstr "" +"????? ????? ?? ???????? ????????? ?? ???????? ????? ??????????????? ????? ?? " +"??????, ?? ?? ????????? (????????? ?????????????? ?????????, ?? ????? ??? ? " +"???????????? ???????? ??? ??????? ?????)." #. Tag: para #, no-c-format @@ -5736,6 +5758,9 @@ msgid "" "Existing edges and faces may be split by the line. New nodes and faces may " "be added, in addition to new edges." msgstr "" +"???? ????? ????'??????? ?? ???????? ?????? ??? ????? ? ????? ??????? " +"???????. ??????? ????? ? ????? ?????? ???? ????????? ??????. ???? ????? " +"?????, ?????? ???? ?????? ???? ????? ? ?????." #. Tag: para #, no-c-format @@ -5743,6 +5768,9 @@ msgid "" "The returned edge identifiers may be either existing edges or newly created " "edges as needed to fully represent the input line as closely as possible." msgstr "" +"????????? ?????????????? ????? ?????? ???? ?? ????????? ???????, ??? ? " +"?????????????? ???????, ??????? ??? ????????????, ??? ??????? ??????? " +"??????????? ??????? ?????." #. Tag: para #, no-c-format @@ -5751,6 +5779,9 @@ msgid "" "uncovered or resulting from split of existing edges) may be limited by the " "max_edges parameter." msgstr "" +"????????? ????????????? ????? (??? ?????????? ?????? ?????????? ??????? ??? " +"? ??????????? ?????????? ???????? ?????) ???? ???? ???????? ?????????? " +"max_edges." #. Tag: para #, no-c-format @@ -5775,6 +5806,8 @@ msgid "" "Enhanced: 3.7.0 added support for limiting the number of new edges created " "in the topology." msgstr "" +"?????????: ? ?????? 3.7.0 ?????? ????????? ????????? ????????? ????? ?????, " +"?? ??????????? ? ?????????." #. Tag: para #, no-c-format @@ -7373,6 +7406,9 @@ msgid "" "geometry to existing primitives. The special value -1 (default) means use " "the topology precision as tolerance." msgstr "" +"???? ??????? tolerance, ???? ???? ????????????????? ??? " +"????'???? ??????? ????????? ?? ???????? ??????????. ?????????? ???????? -1 (" +"?? ?????????????) ??????? ???????????? ???????? ????????? ?? ???????." #. Tag: para #, no-c-format @@ -7411,6 +7447,9 @@ msgid "" "Changed: 3.7.0 changes meaning of tolerance 0 to really mean 0 and -1 (new " "default) to request using the topology precision." msgstr "" +"???????: ? ?????? 3.7.0 ??????? ???????? ????????????? 0, ??? ????? ??????? " +"0 ? -1 (???? ???????? ?? ?????????????), ??? ???????? ???????????? ???????? " +"?????????." #. Tag: para #, no-c-format @@ -8612,6 +8651,10 @@ msgid "" "xlink:href=\"http://www.graphicsmagick.org/\"> http://www.graphicsmagick." "org/ ." msgstr "" +"??? ????????? ?????????, ?? ???????????????? ? ????????????, ????????? " +"???????? GraphicsMagick (gm convert). GraphicsMagick " +"???????? ?? ??????? " +"http://www.graphicsmagick.org/ ." #. Tag: title #, no-c-format @@ -8940,6 +8983,12 @@ msgid "" "so no need to make comments if installing from the tar ball. Comments are " "also included as part of the CREATE EXTENSION install." msgstr "" +"??? ??????? ????? ?????????, ??????????? ? ????????????. ???? ?? ??????? " +"??????? ?????????? ?? ????????? ? ???? ?????????? ???? ?????, ????????? " +"???????, ??? ??????? docbook. ????? postgis_comments.sql ?? ???? ????? " +"?????????? ?????? ????? ????????? ? ??????????? tar.gz ? ????? doc, ???? " +"????? ??????? ?????????? ?????????, ???? ?? ???????????? ? tar-??????. " +"????????? ????? ???????? ?? ??????? ?????????? CREATE EXTENSION." #. Tag: para #, no-c-format @@ -8952,6 +9001,12 @@ msgid "" "raster_cheatsheet.html, postgis_cheatsheet." "html" msgstr "" +"???? make cheatsheets ??????? html-?????????, ???????? " +"??? ???????? ???????????? ??? ??? ??????? ?????????. ??? ????? ???????? " +"xsltproc, ???? ???????? 4 ????? ? ????? doc: topology_cheatsheet." +"html, tiger_geocoder_cheatsheet.html, " +"raster_cheatsheet.html, postgis_cheatsheet." +"html" #. Tag: para #, no-c-format @@ -8975,6 +9030,8 @@ msgid "" "The PostGIS extensions are built and installed automatically when PostgreSQL " "extension support is available." msgstr "" +"?????????? PostGIS ??????????? ?? ?????????????? ???????????, ???? ???????? " +"????????? ????????? PostgreSQL." #. Tag: para #, no-c-format @@ -9145,6 +9202,18 @@ msgid "" "given version of an extension. These behaviors are built into the current " "PostgreSQL extension model." msgstr "" +"????????? ??????? spatial_ref_sys, layer, topology ?? ?????? ???? ???? ???????????. ?? " +"????? ???????? ???? ??? ??? ?????????? ?????????? ???????????? ?????????? " +"postgis ??? postgis_topology, ?? " +"???????????? ???? ??? ??? ?????????? ?????????? ????? ???? ?????. ? " +"????????? ?????? ???????????? ???? ?????? srid, ?? ?? ??????? ?? ?????? " +"PostGIS, ???? ?? ???????? ??????, ??? ?? ???????, ? ?? ????????, ?? ????? " +"?????? ?????????. ???? ?? ??????? ????????, ???????? ??????. ????????? " +"??????? ????????? ?????? ?? ????????????, ???????? ???? ??????????? ?? " +"????????? CREATE EXTENSION ? ?????????? ?????????? ??? ????? " +"?????? ??????????. ?? ??????????? ????????? ? ??????? ?????? ????????? " +"PostgreSQL." #. Tag: para #, no-c-format @@ -9220,6 +9289,13 @@ msgid "" "POSTGIS_REGRESS_ROLE_EXT_CREATOR when the extension " "creation role must differ from the database owner." msgstr "" +"?????????? ???????? ??????, ??? ?? ? ?????????????????? PostgreSQL, ?????? " +"?????????? ????? ????????? ?? ???? ????? ??? ??? ????? ????????, ??????????? " +"POSTGIS_REGRESS_DB_OWNER. ?????? ???????? ????????? ???? " +"????? ????????, ?? ???????? ??????????? ????, ??????????? ???????????? ?? " +"????????? ?????????? ?????? ? ??????? ??????????. ????????? ?? ? " +"POSTGIS_REGRESS_ROLE_EXT_CREATOR, ???? ???? ????????? " +"?????????? ??????? ???????????? ??? ???????? ???? ?????." #. Tag: para #, no-c-format @@ -9229,6 +9305,10 @@ msgid "" "superuser, provided the target PostgreSQL instance permits extension " "installation by those delegate roles." msgstr "" +"?? ?????? ?????????? ??????????????? ??????????? ?????????? ????? ????? " +"????????? ?? ???????????? ????????? ??? ?????????? ?????????? ??????, ?? " +"????????, ?? ????????????????, ?? ?????, ?? ???????? ????????? PostgreSQL " +"???????? ???????????? ????????? ???? ???????????? ??????." #. Tag: para #, no-c-format @@ -9364,6 +9444,10 @@ msgid "" "configure it for your needs, refer to ." msgstr "" +"?????????? address_standardizer ??????? ?? ?????? PostGIS. ??? " +"????????? ?????????? ?????????? ??? address_standardizer, ???? ??????? ?? " +"???????????? ?????????? ?? ????? ??????, ?????????? ?? ." #. Tag: para #, no-c-format @@ -9409,6 +9493,8 @@ msgid "" "Windows installation packages include the address_standardizer so you can " "move straight to the CREATE EXTENSION step." msgstr "" +"???????????? ?????? Windows ??????? address_standardizer, ???? ?? ?????? " +"??????? ????????????? ?? ????? CREATE EXTENSION." #. Tag: para #, no-c-format @@ -9564,6 +9650,11 @@ msgid "" "by default because it takes quite a bit of time to load (20 to 60 minutes), " "takes up quite a bit of disk space, and is not used that often." msgstr "" +"???? ???????????? 5-???????? ????????? ??????? zcta5 " +"???????????? ??????? ???? ZCTA ? ? ???????? , ???? ??? ??????????. ??? ????????? ?? " +"?????????????, ???????? ???????????? ?????? ?????? ?????? ???? (??? 20 ?? 60 " +"??????), ?????? ?????? ????? ?? ????? ? ???????????????? ?? ??? ?????." #. Tag: para #, no-c-format @@ -10278,12 +10369,13 @@ msgstr "??????? ?????????, PostgreSQL gist, ???????? ? #. Tag: term #, no-c-format msgid "Lauren?iu Nicola" -msgstr "" +msgstr "????????? ??????" #. Tag: para #, no-c-format msgid "Bug fixes, maintenance, stability, and performance" msgstr "" +"??????????? ???????, ???????? ??????????????, ???????????? ?? ??????????????" #. Tag: title #, no-c-format @@ -10821,7 +10913,7 @@ msgstr "???? ????" #. Tag: member #, no-c-format msgid "Lauren?iu Nicola" -msgstr "" +msgstr "????????? ??????" #. Tag: member #, no-c-format @@ -11383,6 +11475,9 @@ msgid "" "past. We used PledgeBank and we got two successful campaigns out of it." msgstr "" +"PostGIS ??? ??????????????? ?? ?????????? ?????? ??? ????????? ??? ???????? " +"????? ???????. ?? ??????????????? PledgeBank ? ??????? ??? ??????? ????????." #. Tag: para #, no-c-format @@ -11487,6 +11582,14 @@ msgid "" "toast.html\">the PostgreSQL Documentation for TOAST for more " "information)." msgstr "" +"??????? ?????? PostgreSQL ????? ????????? ???????????? ??????? ???? ??????? " +"TOAST. ??????? TOAST ? ?? ????? ???? ??????????? ????????, ?? " +"???????????????? ??? ?????????? ??????? (? ????? ??????? ?????) ???????, ??? " +"?? ?????????? ? ???????? ???????? ????? (?????????, ????? ??????, ?????????? " +"??? ??????? ????????? ? ??????? ????????? ??????). ???. ???????????? PostgreSQL ???? TOAST ??? ????????? ?????????? " +"??????????)." #. Tag: para #, no-c-format @@ -12239,6 +12342,10 @@ msgid "" "dimensionality, or coordinate components so that spatial expressions can " "interrogate complex objects in a controlled way." msgstr "" +"?? ??????? ??????????? ?????????? ?????????? ??? ??????? ?????????, ?? " +"???????? ??. ???? ??????? ?????? ?? ?????????, ????? ?? ??? ?????????, " +"??????????? ??? ??????????? ??????????, ??? ?????????? ?????? ????? " +"???????????? ?????? ?? ???????? ??'?????." #. Tag: refpurpose #, no-c-format @@ -12795,6 +12902,9 @@ msgid "" "linkend=\"ST_Dump\"/> to extract polygon elements from polygonal geometries: " "ST_DumpRings( (ST_Dump(geom)).geom )" msgstr "" +"?? ?????? ?????? ??? ????????? POLYGON, ? ?? ??? MULTIPOLYGON. " +"?????????????? , ??? ??????? ???????? ???????? ? " +"????????????? ?????????: ST_DumpRings( (ST_Dump(geom)).geom )" #. Tag: para #, no-c-format @@ -12804,12 +12914,12 @@ msgstr "???????????: PostGIS 1.1.3. ??????? PostgreSQL 7.3 ? #. Tag: para #, no-c-format msgid "Extracting all rings as polygons." -msgstr "" +msgstr "????? ???? ?????? ?? ?????????." #. Tag: para #, no-c-format msgid "Extracting shell and holes from a polygon." -msgstr "" +msgstr "????????? ???????? ?? ??????? ? ????????." #. Tag: para #, no-c-format @@ -14623,6 +14733,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -14677,6 +14790,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -14703,6 +14819,9 @@ msgid "" "linkend=\"ST_ZMax\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -14729,6 +14848,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -14755,17 +14877,21 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , , , " #. Tag: refpurpose #, no-c-format msgid "Returns the M minima of a geometry." -msgstr "" +msgstr "???????? M-??????? ?????????." #. Tag: para #, no-c-format msgid "" "Returns the M minima of a geometry, or null of the geometry lacks M values." -msgstr "" +msgstr "???????? M-??????? ????????? ??? ????, ???? ????????? ?? ??? M ???????." #. Tag: para #, no-c-format @@ -14774,6 +14900,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: para #, no-c-format @@ -14782,6 +14911,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: title #, no-c-format @@ -15172,6 +15304,9 @@ msgid "" "primitives, coordinate sequences, or existing geometries into well-formed " "spatial objects that can participate in subsequent analysis." msgstr "" +"?? ??????? ????????? ???? ???????? ????????? ??? ?????????. ???? ??'??????? " +"?????????, ????????????? ????????? ??? ??????? ????????? ? ????? ?????????? " +"?????????? ??'????, ??? ?????? ????? ?????? ? ?????????? ???????." #. Tag: refpurpose #, no-c-format @@ -15413,6 +15548,11 @@ msgid "" "appear in the collection. can be " "used to collapse repeated points from the output LineString." msgstr "" +"??????????? ????? ?? ??????? ??????? LineStrings ????????? ?? ?????? ?????. " +"??????????? ????? ? ??????? Point ? MultiPoint ?? ?????????. ?????????? " +"MultiLineString ???????????? ? ??????? ?? ????? ? ????????. ???? ????????????????? ??? ???????? " +"???????????? ????? ? ????????? LineString." #. Tag: para #, no-c-format @@ -15420,6 +15560,7 @@ msgid "" "Availability: 3.7.0 - Support for MultiLineString input elements was " "introduced" msgstr "" +"???????????: 3.7.0 ? ?????? ????????? ????????? ???????? MultiLineString" #. Tag: para #, no-c-format @@ -15509,6 +15650,8 @@ msgid "" "can be used. However, sometimes the query plan may not respect the order of " "the subquery." msgstr "" +"???? ?????????? ? ????? ???????? ?????????, ????? ???????????? ??????????? ? " +"?????????. ????? ????? ???? ?????? ???? ?? ??????????? ??????? ?????????." #. Tag: para #, no-c-format @@ -16577,6 +16720,8 @@ msgid "" "A window function which adjusts the edges of a set of valid polygonal " "geometries to produce a clean coverage. Cleaning involves:" msgstr "" +"??????? ???????, ??? ??????? ????? ?????? ??????? ????????????? ????????? " +"??? ????????? ??????? ????????. ???????? ???????:" #. Tag: para #, no-c-format @@ -16584,16 +16729,18 @@ msgid "" "snapping vertices and edges to remove small discrepancies and ensure common " "edges are identically noded" msgstr "" +"????'???????? ?????? ? ????? ??? ???????? ????????? ???????????? ? " +"???????????? ?????????? ????? ???????? ?????" #. Tag: para #, no-c-format msgid "merging overlaps into a parent polygon" -msgstr "" +msgstr "??'??????? ??????????? ? ???????????? ????????????" #. Tag: para #, no-c-format msgid "merging narrow gaps into adjacent polygons" -msgstr "" +msgstr "??'??????? ??????? ????????? ? ??????? ?????????????" #. Tag: para #, no-c-format @@ -16602,6 +16749,9 @@ msgid "" "are merged. Gaps with width <= this distance are merged into an adjacent " "polygon." msgstr "" +"gapMaximumWidth ?????????, ??? ???????? ??? " +"?????????? ??'?????????. ???????? ??????? <= ?? ???????? ??'????????? ? " +"???????? ???????." #. Tag: para #, no-c-format @@ -16610,6 +16760,9 @@ msgid "" "edges. The default (-1) automatically determines a snapping distance based " "on the input extent. Set to 0.0 to turn off snapping." msgstr "" +"snappingDistance ????????? ????'???? ?????? ? ?????. " +"?? ????????????? (-1) ??????????? ???????????? ???????? ????'???? ?? ?????? " +"????????? ???????. ?????????? ???????? 0,0, ??? ???????? ????'????." #. Tag: para #, no-c-format @@ -16617,6 +16770,8 @@ msgid "" "overlapMergeStrategy specifies how overlaps are " "merged into a parent polygon:" msgstr "" +"overlapMergeStrategy ????????, ?? ?????????? " +"??'????????? ? ???????????? ????????????:" #. Tag: para #, no-c-format @@ -16624,16 +16779,20 @@ msgid "" "MERGE_LONGEST_BORDER - merges into polygon with longest common " "border" msgstr "" +"MERGE_LONGEST_BORDER ? ??'????? ? ???????????? ? ????????? " +"???????? ?????" #. Tag: para #, no-c-format msgid "MERGE_MAX_AREA - merges into polygon with maximum area" msgstr "" +"MERGE_MAX_AREA - ??'????? ? ???????????? ? ???????????? ??????" #. Tag: para #, no-c-format msgid "MERGE_MIN_AREA - merges into polygon with minimum area" msgstr "" +"MERGE_MIN_AREA - ??'????? ? ???????????? ? ??????????? ??????" #. Tag: para #, no-c-format @@ -16641,6 +16800,8 @@ msgid "" "MERGE_MIN_INDEX - merges into polygon with smallest input index " "(defined by order of input polygons)" msgstr "" +"MERGE_MIN_INDEX - ??'????? ? ???????????? ? ????????? ???????? " +"???????? (???????????? ???????? ???????? ??????????????)" #. Tag: para #, no-c-format @@ -16649,6 +16810,9 @@ msgid "" "linkend=\"ST_CoverageInvalidEdges\"/> and can be input to coverage " "processing functions." msgstr "" +"??????????? ? ????? ???????????? ????????, ??? ?????? ????????? ?? ????????? " +" ? ???? ???? ??????? ? ??????? " +"??????? ????????." #. Tag: para #, no-c-format @@ -16661,6 +16825,13 @@ msgid "" "linkend=\"ST_MaximumInscribedCircle\"/> on them; the gap width is twice the " "computed radius." msgstr "" +"??? ????????? ?????????? ???????????? ?????? ?????????, ?? ????? ?????????, " +"????????? ?? ????????? gapMaximumWidth => 0 ? ?????????????? " +"??? ??'??????? ?????????? ????????. " +"????? ? ??'??????? ???????????? ????????? ? ????????????? ?????? ?????. " +"?????? ????????? ????? ????????, ?????????? ?????? ? ??????? ?????????????? " +"? ????????? ?? ??? ; ?????? " +"???????? ???????? ?????????? ??????????? ???????." #. Tag: para #, no-c-format @@ -16670,17 +16841,18 @@ msgstr "???????????: 3.6.0 - ??????? GEOS >= 3.14.0" #. Tag: para #, no-c-format msgid "Polygons with overlaps and gaps" -msgstr "" +msgstr "???????? ? ???????????? ?? ?????????" #. Tag: para #, no-c-format msgid "Invalid coverage edges" -msgstr "" +msgstr "???????? ????? ????????" #. Tag: para #, no-c-format msgid "Clean polygonal coverage, with overlaps and narrow gaps removed" msgstr "" +"????? ???????????? ????????, ? ????????? ??????????? ? ??????? ?????????" #. Tag: para #, no-c-format @@ -16689,6 +16861,8 @@ msgid "" "linkend=\"ST_CoverageSimplify\"/>, " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format @@ -18659,6 +18833,9 @@ msgid "" "They provide last-resort maintenance operations that are not required during " "normal spatial workflows." msgstr "" +"?? ????????? ?????????? ??? ??????????? ?? ??????????? ??????????? ?????. " +"???? ???????????? ???????? ?????????? ?????????????? ? ????????? ???????, " +"??? ?? ???????? ??? ??? ????????? ??????????? ??????? ????????." #. Tag: refpurpose #, no-c-format @@ -19874,6 +20051,12 @@ msgid "" "In this case we escape the ' with standard ANSI ', but slashes are not " "escaped" msgstr "" +"? PostgreSQL ???????? standard_conforming_strings ?? ????????????? " +"???????????? ?? on. ?? ?????? ??????? ???????? ?? ????????????? ?? " +"???????????? ??? ???????? ?????? ??? ?? ????? ???? ????? ?? ???????. ????? " +"????????, ?? ?? ???????, ???? standard_conforming_strings = on. ? ????? " +"??????? ?? ????????? ? ?? ????????? ???????????? ANSI ?, ??? ????? ?? " +"???????????" #. Tag: para #, no-c-format @@ -20585,6 +20768,10 @@ msgid "" "fractions or measures along routes and of projecting those measures back " "into spatial coordinates." msgstr "" +"?? ??????? ????????? ? ?????????? ????? ???????????? ????? ?????? ???????? " +"??'?????. ???? ??????????? ????????? ??????? ?????? ????????? ?????????, ?? " +"??????? ? ????????? ??????? ? ??????? ?????? ??? ??????? ?????? ????????? ? " +"???????????? ??? ??????? ????? ? ?????????? ??????????." #. Tag: refpurpose #, no-c-format @@ -22371,6 +22558,11 @@ msgid "" "false, then the calculation is based on a sphere instead of a " "spheroid." msgstr "" +"??? ???????????? ?????: ?????????? ??????????? ?? ????????? ?????????? " +"???????????? ??????????. ??????? ??????? ??????????? ? ??????. ??????? " +"???????????? SRID; ???? SRID ?? ???????, ???????????????? WGS84. ???? " +"use_spheroid = false, ?????????? ????????? ?? ?????, ? ?? " +"?? ????????." #. Tag: para #, no-c-format @@ -22872,6 +23064,11 @@ msgid "" "use_spheroid = false, then calculations will approximate " "a sphere instead of a spheroid." msgstr "" +"??? ???????????? ????? ?????????? ??????????? ?? ????????? ????????? " +"??????????? ??????, ?? ??????? ????????? ??????????? ? ??????. ??????? " +"???????????? SRID; ???? SRID ?? ???????, ???????????????? WGS84. ???? " +"use_spheroid = false, ?????????? ?????? ??????????? ?? " +"?????, ? ?? ?? ????????." #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/uk/postgis-manual.po | 225 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 211 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Sat Dec 20 18:35:24 2025 From: trac at osgeo.org (PostGIS) Date: Sun, 21 Dec 2025 02:35:24 -0000 Subject: [PostGIS] #6030: sfcgal-master branch failing on CG_Orientation Message-ID: <046.7861320a84526e863d0c451a950d8572@osgeo.org> #6030: sfcgal-master branch failing on CG_Orientation --------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: new Priority: medium | Milestone: PostGIS SFCGAL Component: sfcgal | Version: master Keywords: | --------------------+----------------------------- {{{ SELECT CG_Orientation(ST_GeomFromText('POLYGON EMPTY',4326)) }}} Failure seen in https://github.com/postgis/postgis/actions/runs/20337485931/job/58427648985#step:4:1425 {{{ }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Dec 20 19:38:56 2025 From: trac at osgeo.org (PostGIS) Date: Sun, 21 Dec 2025 03:38:56 -0000 Subject: [PostGIS] #6031: CG_Extrude /ST_Extrude fails on MULITPOLYGON that has an Empty ring Message-ID: <046.ee2c46e94bdcad27088d996cf7d91582@osgeo.org> #6031: CG_Extrude /ST_Extrude fails on MULITPOLYGON that has an Empty ring ---------------------+----------------------------- Reporter: robe | Owner: Lo?c Bartoletti Type: defect | Status: new Priority: blocker | Milestone: PostGIS SFCGAL Component: sfcgal | Version: 3.5.x Keywords: | ---------------------+----------------------------- This is similar to the CG_ForceLHR of #6029 but accept with ST_Extrude / CG_Extrude {{{ SELECT ST_Extrude(ST_GeomFromText('MULTIPOLYGON (((9 9, 9 1, 1 1, 2 4, 7 7, 9 9)), EMPTY)', 4326), 20.1, 20.1, 20.1) As result; }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 22 04:56:57 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 04:56:57 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-264-ga12775a18 Message-ID: <20251222125657.4026A7611@trac.osgeo.org> 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 a12775a18c6d89c1c825795c51df6fb80d9bcc8b (commit) from e936c74a8139d68beb081c2c55c131e8aa6d16e8 (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 a12775a18c6d89c1c825795c51df6fb80d9bcc8b Author: Sandro Santilli Date: Mon Dec 22 13:42:26 2025 +0100 Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in master branch (3.7.0dev) diff --git a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in index 8c3f497ad..288655a5b 100644 --- a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in +++ b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in @@ -41,7 +41,7 @@ DECLARE moreMergedFaces BIGINT[]; BEGIN - topo := findTopology(atopology); + topo := topology.findTopology(atopology); IF topo.id IS NULL THEN RAISE EXCEPTION 'Could not find topology "%"', atopology; END IF; diff --git a/topology/test/regress/removeunusedprimitives.sql b/topology/test/regress/removeunusedprimitives.sql index 1abb4953e..23817d0c6 100644 --- a/topology/test/regress/removeunusedprimitives.sql +++ b/topology/test/regress/removeunusedprimitives.sql @@ -1,4 +1,5 @@ set client_min_messages to WARNING; +set search_path to public,pg_catalog; \i :top_builddir/topology/test/load_topology.sql \i ../load_features.sql @@ -74,7 +75,7 @@ WITH deleted AS ( DELETE FROM features.city_streets WHERE feature_name IN ( 'R1' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -88,7 +89,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S3' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -102,7 +103,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S4' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -124,16 +125,16 @@ start_point AS ( FROM deleted ), clear AS ( - SELECT sp, clearTopoGeom(feature) + SELECT sp, topology.clearTopoGeom(feature) FROM start_point ) INSERT INTO features.traffic_signs ( feature_name, feature ) SELECT 'TS1', - toTopoGeom( + topology.toTopoGeom( sp, 'city_data', - layer_id(findLayer('features', 'traffic_signs', 'feature')), + layer_id(topology.findLayer('features', 'traffic_signs', 'feature')), 0 ) FROM clear; @@ -174,12 +175,12 @@ WITH node AS ( FROM features.traffic_signs WHERE feature_name = 'S1' ), triangle_right AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, 4, 4) ) FROM node ), triangle_left AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, -4, 4) ) FROM node ) @@ -194,7 +195,7 @@ WITH deleted AS ( RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; @@ -207,7 +208,7 @@ SELECT 't6', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- See https://trac.osgeo.org/postgis/ticket/5289 SELECT NULL FROM ( - SELECT toTopoGeom( + SELECT topology.toTopoGeom( ST_MakeLine( ST_EndPoint( ST_GeometryN(feature,1) ), ST_StartPoint( ST_GeometryN(feature,1) ) @@ -230,7 +231,7 @@ SELECT '#5289', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- being required as endpoint of closed edge 2) while -- edges themselves would still be both used by R4 feature. UPDATE features.city_streets -SET feature = TopoGeom_addElement(feature, ARRAY[2, 2]) +SET feature = topology.TopoGeom_addElement(feature, ARRAY[2, 2]) WHERE feature_name = 'R4'; UPDATE features.city_streets SET geom = feature::geometry WHERE feature_name = 'R4'; @@ -243,6 +244,6 @@ SELECT '#5303', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- Cleanup -- -SELECT NULL FROM DropTopology('city_data'); +SELECT NULL FROM topology.DropTopology('city_data'); DROP SCHEMA features CASCADE; - +RESET search_path; ----------------------------------------------------------------------- Summary of changes: topology/sql/cleanup/RemoveUnusedPrimitives.sql.in | 2 +- topology/test/regress/removeunusedprimitives.sql | 27 +++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 22 04:57:08 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 12:57:08 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist In-Reply-To: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> References: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> Message-ID: <061.ba916f901ee74f17e64a8271746010f0@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist -----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Resolution: | Keywords: -----------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"a12775a18c6d89c1c825795c51df6fb80d9bcc8b/git" a12775a/git]: {{{#!CommitTicketReference repository="git" revision="a12775a18c6d89c1c825795c51df6fb80d9bcc8b" Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in master branch (3.7.0dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 22 04:59:47 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 04:59:47 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.6 updated. 3.6.1-8-ge66e98318 Message-ID: <20251222125947.991B51885AC@trac.osgeo.org> 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, stable-3.6 has been updated via e66e98318c84c325d7d327dccaa0695dc777439a (commit) from 5a6e332f97dcc3018615e07e58b97c8df929369c (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 e66e98318c84c325d7d327dccaa0695dc777439a Author: Sandro Santilli Date: Mon Dec 22 13:42:26 2025 +0100 Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.6 branch (3.6.2dev) diff --git a/NEWS b/NEWS index bfa8bc8ba..222a49a9e 100644 --- a/NEWS +++ b/NEWS @@ -6,16 +6,20 @@ This version requires PostgreSQL 12-18, GEOS 3.8 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.14+ is needed. To take advantage of all SFCGAL features, SFCGAL 2.2+ is needed. -If you are upgrading postgis_topology from a version before 3.6.1 and have topogeometry columns, make sure to run -after the upgrade to fix topogeometry corruption: +If you are upgrading postgis_topology from a version before 3.6.1 and +have topogeometry columns, make sure to run after the upgrade to fix +topogeometry corruption: -SELECT topology.FixCorruptTopoGeometryColumn(schema_name, table_name, feature_column) - FROM topology.layer; + SELECT topology.FixCorruptTopoGeometryColumn( + schema_name, table_name, feature_column + ) FROM topology.layer; * Fixes * +- #6027, Fix RemoveUnusedPrimitives without topology in search_path + (Sandro Santilli) - #6019, make clean does not remove cunit generated files - (Bas Couwenberg) + (Bas Couwenberg) - #6020, schema qualify call in ST_MPointFromText (Paul Ramsey) - #6028, crash indexing malformed empty polygon (Paul Ramsey) diff --git a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in index 8c3f497ad..288655a5b 100644 --- a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in +++ b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in @@ -41,7 +41,7 @@ DECLARE moreMergedFaces BIGINT[]; BEGIN - topo := findTopology(atopology); + topo := topology.findTopology(atopology); IF topo.id IS NULL THEN RAISE EXCEPTION 'Could not find topology "%"', atopology; END IF; diff --git a/topology/test/regress/removeunusedprimitives.sql b/topology/test/regress/removeunusedprimitives.sql index 1abb4953e..23817d0c6 100644 --- a/topology/test/regress/removeunusedprimitives.sql +++ b/topology/test/regress/removeunusedprimitives.sql @@ -1,4 +1,5 @@ set client_min_messages to WARNING; +set search_path to public,pg_catalog; \i :top_builddir/topology/test/load_topology.sql \i ../load_features.sql @@ -74,7 +75,7 @@ WITH deleted AS ( DELETE FROM features.city_streets WHERE feature_name IN ( 'R1' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -88,7 +89,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S3' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -102,7 +103,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S4' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -124,16 +125,16 @@ start_point AS ( FROM deleted ), clear AS ( - SELECT sp, clearTopoGeom(feature) + SELECT sp, topology.clearTopoGeom(feature) FROM start_point ) INSERT INTO features.traffic_signs ( feature_name, feature ) SELECT 'TS1', - toTopoGeom( + topology.toTopoGeom( sp, 'city_data', - layer_id(findLayer('features', 'traffic_signs', 'feature')), + layer_id(topology.findLayer('features', 'traffic_signs', 'feature')), 0 ) FROM clear; @@ -174,12 +175,12 @@ WITH node AS ( FROM features.traffic_signs WHERE feature_name = 'S1' ), triangle_right AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, 4, 4) ) FROM node ), triangle_left AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, -4, 4) ) FROM node ) @@ -194,7 +195,7 @@ WITH deleted AS ( RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; @@ -207,7 +208,7 @@ SELECT 't6', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- See https://trac.osgeo.org/postgis/ticket/5289 SELECT NULL FROM ( - SELECT toTopoGeom( + SELECT topology.toTopoGeom( ST_MakeLine( ST_EndPoint( ST_GeometryN(feature,1) ), ST_StartPoint( ST_GeometryN(feature,1) ) @@ -230,7 +231,7 @@ SELECT '#5289', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- being required as endpoint of closed edge 2) while -- edges themselves would still be both used by R4 feature. UPDATE features.city_streets -SET feature = TopoGeom_addElement(feature, ARRAY[2, 2]) +SET feature = topology.TopoGeom_addElement(feature, ARRAY[2, 2]) WHERE feature_name = 'R4'; UPDATE features.city_streets SET geom = feature::geometry WHERE feature_name = 'R4'; @@ -243,6 +244,6 @@ SELECT '#5303', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- Cleanup -- -SELECT NULL FROM DropTopology('city_data'); +SELECT NULL FROM topology.DropTopology('city_data'); DROP SCHEMA features CASCADE; - +RESET search_path; ----------------------------------------------------------------------- Summary of changes: NEWS | 14 +++++++---- topology/sql/cleanup/RemoveUnusedPrimitives.sql.in | 2 +- topology/test/regress/removeunusedprimitives.sql | 27 +++++++++++----------- 3 files changed, 24 insertions(+), 19 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 22 05:00:01 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:00:01 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist In-Reply-To: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> References: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> Message-ID: <061.e774642f70abfdaab4272d4adf152b98@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist -----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Resolution: | Keywords: -----------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"e66e98318c84c325d7d327dccaa0695dc777439a/git" e66e983/git]: {{{#!CommitTicketReference repository="git" revision="e66e98318c84c325d7d327dccaa0695dc777439a" Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.6 branch (3.6.2dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 22 05:05:25 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 05:05:25 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.6 updated. 3.6.1-9-gf71e8d8a6 Message-ID: <20251222130525.E638E18829B@trac.osgeo.org> 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, stable-3.6 has been updated via f71e8d8a682cfaf72330ae70bdc24c1e1bbd7802 (commit) from e66e98318c84c325d7d327dccaa0695dc777439a (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 f71e8d8a682cfaf72330ae70bdc24c1e1bbd7802 Author: Sandro Santilli Date: Mon Dec 22 14:05:10 2025 +0100 Fix some spelling typos diff --git a/NEWS b/NEWS index 222a49a9e..7fde115d8 100644 --- a/NEWS +++ b/NEWS @@ -228,7 +228,7 @@ PostGIS 3.4.0 This version requires PostgreSQL 12-16, GEOS 3.6 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.12+ is needed. -To take advantage of all SFCGAL featurs, SFCGAL 1.4.1+ is needed. +To take advantage of all SFCGAL features, SFCGAL 1.4.1+ is needed. Many thanks to our translation teams, in particular: @@ -414,7 +414,7 @@ with the new fast index build that requires PG14, we have decided to disable the feature by default until we get more user testing as to the true impact of real-world queries. -If you are running PG14+, you can reenable it by doing +If you are running PG14+, you can re-enable it by doing ALTER OPERATOR FAMILY gist_geometry_ops_2d USING gist ADD FUNCTION 11 (geometry) @@ -559,7 +559,7 @@ Additional features are enabled if you are running GEOS 3.9. - #4710, ST_ClusterKMeans now works with 3D geometries (Darafei Praliaskouski) - #4801, ST_ClusterKMeans supports weights in POINT[Z]M geometries (Darafei Praliaskouski) - - #4805, _ST_SortableHash exposed to work around parallel soring performance issue + - #4805, _ST_SortableHash exposed to work around parallel sorting performance issue in Postgres. If your table is huge, use ORDER BY _ST_SortableHash(geom) instead of ORDER BY geom to make parallel sort faster (Darafei Praliaskouski) - #4625, Correlation statistics now calculated. @@ -571,7 +571,7 @@ Additional features are enabled if you are running GEOS 3.9. - #4789, Sped up TopoJSON output for areal TopoGeometry with many holes (Sandro Santilli) - #4758, Improved topology noding robustness (Sandro Santilli) - - Make ST_Subdivide interruptable (Sandro Santilli) + - Make ST_Subdivide interruptible (Sandro Santilli) - #4660, Changes in double / coordinate printing (Ra?l Mar?n) - Use the shortest representation (enough to guarantee roundtrip). - Uses scientific notation for absolute numbers smaller than 1e-8. @@ -634,7 +634,7 @@ and GEOS 3.8.0 and postgis.backend switch (Darafei Praliaskouski) - #4267, Enable Proj 6 deprecated APIs (Darafei Praliaskouski, Ra?l Mar?n) - #4268, Bump minimum SFCGAL version to 1.3.1 (Darafei Praliaskouski) - - #4331, ST_3DMakeBox now returns error instead of a miniscule box (Regina Obe) + - #4331, ST_3DMakeBox now returns error instead of a minuscule box (Regina Obe) - #4342, Removed "versioned" variants of ST_AsGeoJSON and ST_AsKML (Paul Ramsey) - #4356, ST_Accum removed. Use array_agg instead. (Darafei Praliaskouski) - #4414, Include version number in address_standardizer lib (Ra?l Mar?n) @@ -1524,7 +1524,7 @@ PostGIS 2.1.0 - #2026, ST_Union(raster) now unions all bands of all rasters - #2089, liblwgeom: lwgeom_set_handlers replaces lwgeom_init_allocators. - #2150, regular_blocking is no longer a constraint. column of same name - in raster_columns now checks for existance of spatially_unique + in raster_columns now checks for existence of spatially_unique and coverage_tile constraints - ST_Intersects(raster, geometry) behaves in the same manner as ST_Intersects(geometry, raster). @@ -1610,8 +1610,8 @@ PostGIS 2.1.0 - #2302, ST_Roughness for raster (Nathaniel Clay) - #2290, ST_ColorMap(raster) to generate RGBA bands - #2254, Add SFCGAL backend support. - (Backend selection throught postgis.backend var) - Functions available both throught GEOS or SFCGAL: + (Backend selection through postgis.backend var) + Functions available both through GEOS or SFCGAL: ST_Intersects, ST_3DIntersects, ST_Intersection, ST_Area, ST_Distance, ST_3DDistance New functions available only with SFCGAL backend: @@ -1953,7 +1953,7 @@ PostGIS 2.0.0 (eg CREATE TABLE t (g GEOMETRY(Polgyon, 4326))) - ST_AsBinary and ST_AsText now return 3D/4D results in ISO SQL/MM format when called on 3D/4D features. - - The "unknonwn SRID" is now 0, not -1. + - The "unknown SRID" is now 0, not -1. (eg ST_SRID(ST_GeomFromText('POINT(0 0)')) returns 0) - ST_NumGeometries returns 1 for singletons. ST_GeometryN returns the the geometry for singletons. @@ -2386,7 +2386,7 @@ PostGIS 1.3.1 PostGIS 1.3.0 2007/08/09 - - Began migration of functions to the SQL-MM-centric naming convension + - Began migration of functions to the SQL-MM-centric naming convention using the spatial type (SP) prefix - Performance enhancements: - Created cached and indexed point-in-polygon short-circuits @@ -2495,7 +2495,7 @@ PostGIS 1.1.3 PostGIS 1.1.2 2006/03/30 - - Regress tests can now be run *before* postgis intallation + - Regress tests can now be run *before* postgis installation - BUGFIX in SnapToGrid() computation of output bounding box - More portable ./configure script - Changed ./run_test script to have more sane default behaviour @@ -2545,7 +2545,7 @@ PostGIS 1.1.0 - Bug fixes: - Fixed memory leak in polygonize() - - Fixed bug in lwgeom_as_anytype cast funcions + - Fixed bug in lwgeom_as_anytype cast functions - Fixed USE_GEOS, USE_PROJ and USE_STATS elements of postgis_version() output to always reflect library state. @@ -2555,7 +2555,7 @@ PostGIS 1.1.0 - Changed Z() function to return NULL if requested dimension is not available - - Peformance improvements: + - Performance improvements: - Much faster transform() function, caching proj4 objects - Removed automatic call to fix_geometry_columns() in AddGeometryColumns() and update_geometry_stats() @@ -2675,7 +2675,7 @@ PostGIS 1.0.0 - NEW -p flag for shp2pgsql - BUGFIX in transform() releasing random memory address - BUGFIX in force_3dm() allocating less memory then required - - NEW chapter about OGC compliancy enforcement + - NEW chapter about OGC compliance enforcement - BUGFIX in shp2pgsql escape of values starting with "'" or "\t" - NEW autoconf support for JTS lib - BUGFIX in estimator testers (support for LWGEOM and schema parsing) @@ -2704,7 +2704,7 @@ PostGIS 1.0.0RC4 - jdbc2: code cleanups, Makefile improvements - FLEX & YACC variables set *after* pgsql Makefile.global is included and only if the pgsql *stripped* version - evaulates to the empty string + evaluates to the empty string - added already generated parser in release - build scripts refinements - MultiLine handling BUG fix in loader and dumper @@ -2774,10 +2774,10 @@ PostGIS 1.0.0RC1 - Objects are all now "lightweight" with a smaller disk and index representation. Large databases should see a moderate to large performance increase. - - Objects now have a hexidecimal canonical representation. + - Objects now have a hexadecimal canonical representation. To see a "user friendly" version of the objects use the AsText() function. - - The loader and dumper use the hexidecimal canonical representation, + - The loader and dumper use the hexadecimal canonical representation, so coordinate drift due to floating point string parsing is now eliminated. - New functions: UpdateGeometrySRID(), AsGML(), SnapToGrid(), @@ -2933,7 +2933,7 @@ PostGIS 0.7.0 - xmin(),ymin(),zmin(),xmax(),ymax(),zmax() functions - Bug Fixes - transform() more graceful when grid shifts are missing - - setsrid() made cachable + - setsrid() made cacheable - patches to loader/dumper diff --git a/doc/developer.md b/doc/developer.md index 3c51f4cab..95da8837f 100644 --- a/doc/developer.md +++ b/doc/developer.md @@ -203,7 +203,7 @@ On many occasions, we'll introduce functionality that can only be used if PostGI with a dependency library higher than X? Where X is some version of a dependency library. Dependency guards need to be put in both the C library files and our test files. -On some occassions where we need to do something different based on version of PostgreSQL, +On some occasions where we need to do something different based on version of PostgreSQL, you'll see guards in the SQL files as well. We have guards in place in the code to handle these for dependency libraries ----------------------------------------------------------------------- Summary of changes: NEWS | 36 ++++++++++++++++++------------------ doc/developer.md | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Dec 22 05:06:13 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 05:06:13 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.5 updated. 3.5.4-11-g9edefcf51 Message-ID: <20251222130613.BEA311881F3@trac.osgeo.org> 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, stable-3.5 has been updated via 9edefcf512798655375eb7ae6a0820546f1d45c9 (commit) from 6439eaff7e42a33ca67d37ca594e8898ac78640c (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 9edefcf512798655375eb7ae6a0820546f1d45c9 Author: Sandro Santilli Date: Mon Dec 22 13:42:26 2025 +0100 Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.5 branch (3.5.5dev) diff --git a/NEWS b/NEWS index ad05e6f57..8aef123f7 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ PostgreSQL 12-18 required. GEOS 3.8+ required. Proj 6.1+ required. - #5959, #5984, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski) - #6020, schema qualify call in ST_MPointFromText (Paul Ramsey) + - #6027, Fix RemoveUnusedPrimitives without topology in search_path (Sandro Santilli) - #6028, crash indexing malformed empty polygon (Paul Ramsey) diff --git a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in index 423a7ed94..c3b7c054a 100644 --- a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in +++ b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in @@ -39,7 +39,7 @@ DECLARE moreMergedFaces INT[]; BEGIN - topo := findTopology(atopology); + topo := topology.findTopology(atopology); IF topo.id IS NULL THEN RAISE EXCEPTION 'Could not find topology "%"', atopology; END IF; diff --git a/topology/test/regress/removeunusedprimitives.sql b/topology/test/regress/removeunusedprimitives.sql index 1581c27f2..e6aa4e452 100644 --- a/topology/test/regress/removeunusedprimitives.sql +++ b/topology/test/regress/removeunusedprimitives.sql @@ -1,4 +1,5 @@ set client_min_messages to WARNING; +set search_path to public,pg_catalog; \i :top_builddir/topology/test/load_topology.sql \i ../load_features.sql @@ -74,7 +75,7 @@ WITH deleted AS ( DELETE FROM features.city_streets WHERE feature_name IN ( 'R1' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -88,7 +89,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S3' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -102,7 +103,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S4' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -124,16 +125,16 @@ start_point AS ( FROM deleted ), clear AS ( - SELECT sp, clearTopoGeom(feature) + SELECT sp, topology.clearTopoGeom(feature) FROM start_point ) INSERT INTO features.traffic_signs ( feature_name, feature ) SELECT 'TS1', - toTopoGeom( + topology.toTopoGeom( sp, 'city_data', - layer_id(findLayer('features', 'traffic_signs', 'feature')), + layer_id(topology.findLayer('features', 'traffic_signs', 'feature')), 0 ) FROM clear; @@ -174,12 +175,12 @@ WITH node AS ( FROM features.traffic_signs WHERE feature_name = 'S1' ), triangle_right AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, 4, 4) ) FROM node ), triangle_left AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, -4, 4) ) FROM node ) @@ -194,7 +195,7 @@ WITH deleted AS ( RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; @@ -207,7 +208,7 @@ SELECT 't6', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- See https://trac.osgeo.org/postgis/ticket/5289 SELECT NULL FROM ( - SELECT toTopoGeom( + SELECT topology.toTopoGeom( ST_MakeLine( ST_EndPoint( ST_GeometryN(feature,1) ), ST_StartPoint( ST_GeometryN(feature,1) ) @@ -230,7 +231,7 @@ SELECT '#5289', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- being required as endpoint of closed edge 2) while -- edges themselves would still be both used by R4 feature. UPDATE features.city_streets -SET feature = TopoGeom_addElement(feature, ARRAY[2, 2]) +SET feature = topology.TopoGeom_addElement(feature, ARRAY[2, 2]) WHERE feature_name = 'R4'; SELECT '#5303', 'clean', topology.RemoveUnusedPrimitives('city_data'); @@ -242,6 +243,6 @@ SELECT '#5303', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- Cleanup -- -SELECT NULL FROM DropTopology('city_data'); +SELECT NULL FROM topology.DropTopology('city_data'); DROP SCHEMA features CASCADE; - +RESET search_path; ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + topology/sql/cleanup/RemoveUnusedPrimitives.sql.in | 2 +- topology/test/regress/removeunusedprimitives.sql | 27 +++++++++++----------- 3 files changed, 16 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 22 05:06:29 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:06:29 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist In-Reply-To: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> References: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> Message-ID: <061.108e07158978a22dfd379eaaf6d9723b@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist -----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Resolution: | Keywords: -----------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"9edefcf512798655375eb7ae6a0820546f1d45c9/git" 9edefcf/git]: {{{#!CommitTicketReference repository="git" revision="9edefcf512798655375eb7ae6a0820546f1d45c9" Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.5 branch (3.5.5dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 22 05:14:53 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 05:14:53 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.4 updated. 3.4.4-65-ge7b062794 Message-ID: <20251222131454.0A3C118829F@trac.osgeo.org> 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, stable-3.4 has been updated via e7b06279475fceb45def9292a2c5d6544d184508 (commit) from 17bbfcba02587ffcc38057c1fdd429d0ea532164 (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 e7b06279475fceb45def9292a2c5d6544d184508 Author: Sandro Santilli Date: Mon Dec 22 13:42:26 2025 +0100 Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.4 branch (3.4.5dev) diff --git a/NEWS b/NEWS index 142179f47..a1f1b4576 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ Proj 6.1+ required. * Bug Fixes * + - #6027, Fix RemoveUnusedPrimitives without topology in search_path (Sandro Santilli) - #5978, fix parsing of constraints in geometry_columns (Paul Ramsey) - #5977, Fix downgrade protection with standard conforming strings off (Sandro Santilli) - #5947, [topology] Fix crash in ST_ModEdgeHeal (Sandro Santilli) diff --git a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in index 69b6afcd8..1c864dec9 100644 --- a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in +++ b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in @@ -27,7 +27,7 @@ DECLARE moreMergedFaces INT[]; BEGIN - topo := findTopology(atopology); + topo := topology.findTopology(atopology); IF topo.id IS NULL THEN RAISE EXCEPTION 'Could not find topology "%"', atopology; END IF; diff --git a/topology/test/regress/removeunusedprimitives.sql b/topology/test/regress/removeunusedprimitives.sql index 1581c27f2..e6aa4e452 100644 --- a/topology/test/regress/removeunusedprimitives.sql +++ b/topology/test/regress/removeunusedprimitives.sql @@ -1,4 +1,5 @@ set client_min_messages to WARNING; +set search_path to public,pg_catalog; \i :top_builddir/topology/test/load_topology.sql \i ../load_features.sql @@ -74,7 +75,7 @@ WITH deleted AS ( DELETE FROM features.city_streets WHERE feature_name IN ( 'R1' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -88,7 +89,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S3' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -102,7 +103,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S4' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -124,16 +125,16 @@ start_point AS ( FROM deleted ), clear AS ( - SELECT sp, clearTopoGeom(feature) + SELECT sp, topology.clearTopoGeom(feature) FROM start_point ) INSERT INTO features.traffic_signs ( feature_name, feature ) SELECT 'TS1', - toTopoGeom( + topology.toTopoGeom( sp, 'city_data', - layer_id(findLayer('features', 'traffic_signs', 'feature')), + layer_id(topology.findLayer('features', 'traffic_signs', 'feature')), 0 ) FROM clear; @@ -174,12 +175,12 @@ WITH node AS ( FROM features.traffic_signs WHERE feature_name = 'S1' ), triangle_right AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, 4, 4) ) FROM node ), triangle_left AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, -4, 4) ) FROM node ) @@ -194,7 +195,7 @@ WITH deleted AS ( RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; @@ -207,7 +208,7 @@ SELECT 't6', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- See https://trac.osgeo.org/postgis/ticket/5289 SELECT NULL FROM ( - SELECT toTopoGeom( + SELECT topology.toTopoGeom( ST_MakeLine( ST_EndPoint( ST_GeometryN(feature,1) ), ST_StartPoint( ST_GeometryN(feature,1) ) @@ -230,7 +231,7 @@ SELECT '#5289', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- being required as endpoint of closed edge 2) while -- edges themselves would still be both used by R4 feature. UPDATE features.city_streets -SET feature = TopoGeom_addElement(feature, ARRAY[2, 2]) +SET feature = topology.TopoGeom_addElement(feature, ARRAY[2, 2]) WHERE feature_name = 'R4'; SELECT '#5303', 'clean', topology.RemoveUnusedPrimitives('city_data'); @@ -242,6 +243,6 @@ SELECT '#5303', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- Cleanup -- -SELECT NULL FROM DropTopology('city_data'); +SELECT NULL FROM topology.DropTopology('city_data'); DROP SCHEMA features CASCADE; - +RESET search_path; ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + topology/sql/cleanup/RemoveUnusedPrimitives.sql.in | 2 +- topology/test/regress/removeunusedprimitives.sql | 27 +++++++++++----------- 3 files changed, 16 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 22 05:14:57 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:14:57 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist In-Reply-To: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> References: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> Message-ID: <061.60356f3efe260d975ac9df8e53a810ba@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist -----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Resolution: | Keywords: -----------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"e7b06279475fceb45def9292a2c5d6544d184508/git" e7b0627/git]: {{{#!CommitTicketReference repository="git" revision="e7b06279475fceb45def9292a2c5d6544d184508" Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. References #6027 in stable-3.4 branch (3.4.5dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Dec 22 05:20:18 2025 From: git at osgeo.org (git at osgeo.org) Date: Mon, 22 Dec 2025 05:20:18 -0800 (PST) Subject: [SCM] PostGIS branch stable-3.3 updated. 3.3.7-64-g38c2ccb5e Message-ID: <20251222132018.5EE8B188888@trac.osgeo.org> 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, stable-3.3 has been updated via 38c2ccb5ea604ac456e3297be39663d0cbbce58e (commit) from 97f63fdcda8ae90007f5310d2e9e832afe507da7 (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 38c2ccb5ea604ac456e3297be39663d0cbbce58e Author: Sandro Santilli Date: Mon Dec 22 13:42:26 2025 +0100 Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. Closes #6027 in stable-3.3 branch (3.3.9dev) diff --git a/NEWS b/NEWS index e9cfdb1f4..cd969c30f 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ Proj 4.9+ required. - #5991, CircularString distance error (Paul Ramsey) - #5962, Consistent clipping of MULTI/POINT (Paul Ramsey) - #5989, CurvePolygon distance error (Paul Ramsey) + - #6027, Fix RemoveUnusedPrimitives without topology in search_path (Sandro Santilli) - #6028, crash indexing malformed empty polygon (Paul Ramsey) diff --git a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in index 69b6afcd8..1c864dec9 100644 --- a/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in +++ b/topology/sql/cleanup/RemoveUnusedPrimitives.sql.in @@ -27,7 +27,7 @@ DECLARE moreMergedFaces INT[]; BEGIN - topo := findTopology(atopology); + topo := topology.findTopology(atopology); IF topo.id IS NULL THEN RAISE EXCEPTION 'Could not find topology "%"', atopology; END IF; diff --git a/topology/test/regress/removeunusedprimitives.sql b/topology/test/regress/removeunusedprimitives.sql index 1581c27f2..e6aa4e452 100644 --- a/topology/test/regress/removeunusedprimitives.sql +++ b/topology/test/regress/removeunusedprimitives.sql @@ -1,4 +1,5 @@ set client_min_messages to WARNING; +set search_path to public,pg_catalog; \i :top_builddir/topology/test/load_topology.sql \i ../load_features.sql @@ -74,7 +75,7 @@ WITH deleted AS ( DELETE FROM features.city_streets WHERE feature_name IN ( 'R1' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -88,7 +89,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S3' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -102,7 +103,7 @@ WITH deleted AS ( DELETE FROM features.traffic_signs WHERE feature_name IN ( 'S4' ) RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) FROM deleted + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; --set client_min_messages to DEBUG; @@ -124,16 +125,16 @@ start_point AS ( FROM deleted ), clear AS ( - SELECT sp, clearTopoGeom(feature) + SELECT sp, topology.clearTopoGeom(feature) FROM start_point ) INSERT INTO features.traffic_signs ( feature_name, feature ) SELECT 'TS1', - toTopoGeom( + topology.toTopoGeom( sp, 'city_data', - layer_id(findLayer('features', 'traffic_signs', 'feature')), + layer_id(topology.findLayer('features', 'traffic_signs', 'feature')), 0 ) FROM clear; @@ -174,12 +175,12 @@ WITH node AS ( FROM features.traffic_signs WHERE feature_name = 'S1' ), triangle_right AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, 4, 4) ) FROM node ), triangle_left AS ( - SELECT TopoGeo_addLineString( 'city_data', + SELECT topology.TopoGeo_addLineString( 'city_data', features.triangle(g, -4, 4) ) FROM node ) @@ -194,7 +195,7 @@ WITH deleted AS ( RETURNING feature ), clear AS ( - SELECT clearTopoGeom(feature) + SELECT topology.clearTopoGeom(feature) FROM deleted ) SELECT NULL FROM clear; @@ -207,7 +208,7 @@ SELECT 't6', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- See https://trac.osgeo.org/postgis/ticket/5289 SELECT NULL FROM ( - SELECT toTopoGeom( + SELECT topology.toTopoGeom( ST_MakeLine( ST_EndPoint( ST_GeometryN(feature,1) ), ST_StartPoint( ST_GeometryN(feature,1) ) @@ -230,7 +231,7 @@ SELECT '#5289', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- being required as endpoint of closed edge 2) while -- edges themselves would still be both used by R4 feature. UPDATE features.city_streets -SET feature = TopoGeom_addElement(feature, ARRAY[2, 2]) +SET feature = topology.TopoGeom_addElement(feature, ARRAY[2, 2]) WHERE feature_name = 'R4'; SELECT '#5303', 'clean', topology.RemoveUnusedPrimitives('city_data'); @@ -242,6 +243,6 @@ SELECT '#5303', 'invalidity', * FROM topology.ValidateTopology('city_data'); -- Cleanup -- -SELECT NULL FROM DropTopology('city_data'); +SELECT NULL FROM topology.DropTopology('city_data'); DROP SCHEMA features CASCADE; - +RESET search_path; ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + topology/sql/cleanup/RemoveUnusedPrimitives.sql.in | 2 +- topology/test/regress/removeunusedprimitives.sql | 27 +++++++++++----------- 3 files changed, 16 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Dec 22 05:20:23 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:20:23 -0000 Subject: [PostGIS] #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist In-Reply-To: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> References: <046.061092a7c02f1f9a7d6f1dfde209717f@osgeo.org> Message-ID: <061.55e3c0bb0820567b89ee720dfef51234@osgeo.org> #6027: topology.removeunusedprimitives: ERROR: function findtopology(text) does not exist -----------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: closed Priority: medium | Milestone: PostGIS 3.3.9 Component: topology | Version: 3.3.x Resolution: fixed | Keywords: -----------------------+--------------------------- Changes (by Sandro Santilli ): * resolution: => fixed * status: new => closed Comment: In [changeset:"38c2ccb5ea604ac456e3297be39663d0cbbce58e/git" 38c2ccb/git]: {{{#!CommitTicketReference repository="git" revision="38c2ccb5ea604ac456e3297be39663d0cbbce58e" Fix RemoveUnusedPrimitives without "topology" in search_path Includes regression test. Closes #6027 in stable-3.3 branch (3.3.9dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 22 05:23:44 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:23:44 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.53f6d10b5873a2c6317d9b1aee1325f5@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Description changed by strk: Old description: > From a set of topology jobs we got a simple feature result table with > 115930754 rows. But in this result table we did find both gaps and > overlaps in 6677 quite small areas. > > We always run ValidateTopology so we did know that we had invalid > topology i this areas also. > > So I created a simple test [https://gitlab.com/nibioopensource/resolve- > overlap-and-gap/-/blob/118-topology-error-cause-overlap-in-result-mixed- > face-labeling-in-ring-54-face-has-multiple- > shells/src/test/sql/regress/rog_overlay_test_25.sql?ref_type=heads] for > small problem area > > {{{ > face has multiple shells | 3 | -25 > mixed face labeling in ring | 1 | [NULL] > }}} > > So from this test I created single sql file attached no_tolerance.sql to > reproduce the error. > > If create the Topology with a tolerance almost all errors seems to go > away, see file with_tolerance.sql. > > This is tested in > > {{{ > PostgreSQL 16.10 (Homebrew) on aarch64-apple-darwin23.6.0, compiled by > Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit > > POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" > GEOS="3.14.0-CAPI-1.20.4" PROJ="9.7.0 NETWORK_ENABLED=OFF > URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj > DATABASE_PATH=/opt/homebrew/Cellar/proj/9.7.0/share/proj/proj.db" > (compiled against PROJ 9.7.0) LIBXML="2.13.0" LIBJSON="0.18" TOPOLOGY > > }}} > > and > > {{{ > PostgreSQL 16.4 (Ubuntu 16.4-1.pgdg20.04+1) on x86_64-pc-linux-gnu, > compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit > > POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" > GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 > NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj > DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) > LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 > (Internal)" TOPOLOGY > > }}} New description: From a set of topology jobs we got a simple feature result table with 115,930,754 rows. But in this result table we did find both gaps and overlaps in 6677 quite small areas. We always run ValidateTopology so we did know that we had invalid topology i this areas also. So I created a simple test [https://gitlab.com/nibioopensource/resolve- overlap-and-gap/-/blob/118-topology-error-cause-overlap-in-result-mixed- face-labeling-in-ring-54-face-has-multiple- shells/src/test/sql/regress/rog_overlay_test_25.sql?ref_type=heads] for small problem area {{{ face has multiple shells | 3 | -25 mixed face labeling in ring | 1 | [NULL] }}} So from this test I created single sql file attached no_tolerance.sql to reproduce the error. If create the Topology with a tolerance almost all errors seems to go away, see file with_tolerance.sql. This is tested in {{{ PostgreSQL 16.10 (Homebrew) on aarch64-apple-darwin23.6.0, compiled by Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" PROJ="9.7.0 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj DATABASE_PATH=/opt/homebrew/Cellar/proj/9.7.0/share/proj/proj.db" (compiled against PROJ 9.7.0) LIBXML="2.13.0" LIBJSON="0.18" TOPOLOGY }}} and {{{ PostgreSQL 16.4 (Ubuntu 16.4-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 22 05:32:37 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 13:32:37 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.62277aaa824d69b5513544f61de6166a@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by strk): The URL in the original submission is a 404, and I don't see any branch whose name starts with 118, was the branch moved elsewhere ? -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 22 11:31:15 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 22 Dec 2025 19:31:15 -0000 Subject: [PostGIS] #4283: ST_CurveToLine duplicates last point when linearizing circle In-Reply-To: <049.3d0c689f194a0f6fa2493cc2ddecd7f8@osgeo.org> References: <049.3d0c689f194a0f6fa2493cc2ddecd7f8@osgeo.org> Message-ID: <064.1526595da1817725f130e39d6196937d@osgeo.org> #4283: ST_CurveToLine duplicates last point when linearizing circle ----------------------+--------------------------- Reporter: dbaston | Owner: pramsey Type: defect | Status: closed Priority: medium | Milestone: PostGIS 2.5.2 Component: postgis | Version: 2.5.x -- EOL Resolution: fixed | Keywords: ----------------------+--------------------------- Comment (by dbaston): I'm a little confused about the fix here. (Unfortunately I didn't put the original output in the ticket, so I can't see what the problem was in 2.5). Linearizing a circle with 10 segments per quadrant should produce 40 segments / 41 vertices in the output, no? (The original test result). The following query in PostGIS 3.4.2 shows 39 segments of approximately equal length, except for the final segment which is double the length of the others: {{{ dan=# SELECT ST_Length((ST_DumpSegments(ST_CurveToLine('CIRCULARSTRING (0 0, 1 0, 0 0)', 10, 0, 1))).geom); st_length --------------------- 0.07845909572784487 0.07845909572784494 0.07845909572784497 0.07845909572784492 0.07845909572784496 0.07845909572784496 0.07845909572784492 0.07845909572784497 0.07845909572784492 0.07845909572784494 0.07845909572784499 0.07845909572784492 0.078459095727845 0.07845909572784487 0.078459095727845 0.07845909572784494 0.07845909572784494 0.07845909572784497 0.07845909572784492 0.07845909572784494 0.07845909572784494 0.07845909572784494 0.07845909572784494 0.07845909572784497 0.07845909572784492 0.07845909572784492 0.07845909572784497 0.07845909572784494 0.07845909572784492 0.078459095727845 0.07845909572784442 0.07845909572784542 0.07845909572784539 0.0784590957278445 0.07845909572784451 0.07845909572784537 0.07845909572784537 0.07845909572784447 0.15643446504023106 (39 rows) }}} On the other hand, running the query above with {{{CIRCULARSTRING (0 0, 0.5 0.5, 1 0, 0.5 -0.5, 0 0)}}} as the input gives 40 segments of approximately equal length. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 22 22:26:58 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 06:26:58 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.112939466678a42bf5a755076ec4b3da@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Description changed by Lars Aksel Opsahl: Old description: > From a set of topology jobs we got a simple feature result table with > 115,930,754 rows. But in this result table we did find both gaps and > overlaps in 6677 quite small areas. > > We always run ValidateTopology so we did know that we had invalid > topology i this areas also. > > So I created a simple test [https://gitlab.com/nibioopensource/resolve- > overlap-and-gap/-/blob/118-topology-error-cause-overlap-in-result-mixed- > face-labeling-in-ring-54-face-has-multiple- > shells/src/test/sql/regress/rog_overlay_test_25.sql?ref_type=heads] for > small problem area > > {{{ > face has multiple shells | 3 | -25 > mixed face labeling in ring | 1 | [NULL] > }}} > > So from this test I created single sql file attached no_tolerance.sql to > reproduce the error. > > If create the Topology with a tolerance almost all errors seems to go > away, see file with_tolerance.sql. > > This is tested in > > {{{ > PostgreSQL 16.10 (Homebrew) on aarch64-apple-darwin23.6.0, compiled by > Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit > > POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" > GEOS="3.14.0-CAPI-1.20.4" PROJ="9.7.0 NETWORK_ENABLED=OFF > URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj > DATABASE_PATH=/opt/homebrew/Cellar/proj/9.7.0/share/proj/proj.db" > (compiled against PROJ 9.7.0) LIBXML="2.13.0" LIBJSON="0.18" TOPOLOGY > > }}} > > and > > {{{ > PostgreSQL 16.4 (Ubuntu 16.4-1.pgdg20.04+1) on x86_64-pc-linux-gnu, > compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit > > POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" > GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 > NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj > DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) > LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 > (Internal)" TOPOLOGY > > }}} New description: From a set of topology jobs we got a simple feature result table with 115,930,754 rows. But in this result table we did find both gaps and overlaps in 6677 quite small areas. We always run ValidateTopology so we did know that we had invalid topology i this areas also. So I created a simple test [https://gitlab.com/nibioopensource/resolve- overlap-and- gap/-/blob/1c57b1cfb26c498a6032bf4ecefb73334f7f26c3/src/test/sql/regress/rog_overlay_test_25.sql] for small problem area {{{ face has multiple shells | 3 | -25 mixed face labeling in ring | 1 | [NULL] }}} So from this test I created single sql file attached no_tolerance.sql to reproduce the error. If create the Topology with a tolerance almost all errors seems to go away, see file with_tolerance.sql. This is tested in {{{ PostgreSQL 16.10 (Homebrew) on aarch64-apple-darwin23.6.0, compiled by Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" PROJ="9.7.0 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj DATABASE_PATH=/opt/homebrew/Cellar/proj/9.7.0/share/proj/proj.db" (compiled against PROJ 9.7.0) LIBXML="2.13.0" LIBJSON="0.18" TOPOLOGY }}} and {{{ PostgreSQL 16.4 (Ubuntu 16.4-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit POSTGIS="3.7.0dev 3.6.0rc2-152-g19e25a659" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 22 22:31:56 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 06:31:56 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.ba385979c64761ca292e844811151bae@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by Lars Aksel Opsahl): Replying to [comment:4 strk]: > The URL in the original submission is a 404, and I don't see any branch whose name starts with 118, was the branch moved elsewhere ? Updated url to original test And here is a MR with two more tests with the same problem [https://gitlab.com/nibioopensource/resolve-overlap-and- gap/-/merge_requests/93]. And one where also use a tolerance. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 10:43:23 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 18:43:23 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.dfa1bc99f92dc7887a9678e82ff777e2@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by strk): Great work with the testcase, I could reproduce with: {{{ POSTGIS="3.7.0dev 3.6.0rc2-264-ga12775a18" }}} I'm attaching a simplified test getting to the "mixed face labeling in ring" state. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 10:43:43 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 18:43:43 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.b59749fd8bf2140ad79e3095c47ba931@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "t6023.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:15:37 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:15:37 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.4de7f0bf5d2eaf54094ba2cbbf122d93@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by strk): Further reduction: {{{ SELECT NULL FROM topology.CreateTopology ('t6023'); SELECT NULL FROM topology.TopoGeo_addLinestring('t6023', 'LINESTRING( 11.230021066287687 62.84898276648437, 11.230170431987244 62.84904481447776, 11.230117909393426 62.8489943480894, 11.230121356631185 62.848967479934664, 11.230021066287687 62.84898276648437 )',-1); SELECT 1 as t1, * FROM topology.ValidateTopology('t6023'); BEGIN; SELECT * FROM topology.TopoGeo_addLinestring('t6023', 'LINESTRING( 11.230170431987244 62.84904481447776, 11.23020501303477 62.84900750109812, 11.230120879533905 62.8489711984873, 11.230025758308608 62.84900985182165 )',-1); SELECT 2 as t2, * FROM topology.ValidateTopology('t6023'); }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:20:57 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:20:57 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.3e8b729d63d27ca7160ad0a890a26a41@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot02.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:22:36 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:22:36 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot02.png" removed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:22:36 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:22:36 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.c3beaa5a962425370bd19320485531c1@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot02.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:24:57 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:24:57 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.835266a495130d13c9d511b99ee055fa@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot03.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 11:26:24 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 19:26:24 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.79572d30e4a3a2dbf6c9cb801b7eaba2@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Comment (by strk): Starting condition and incoming line: [[Image(screenshot02.png)]] Upon adding the incoming line, the corruption is a wrong face labeled at the left of the bottom edge (edge 27 in the figure): [[Image(screenshot03.png)]] -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 12:35:23 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 20:35:23 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot03.png" removed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Dec 23 12:35:23 2025 From: trac at osgeo.org (PostGIS) Date: Tue, 23 Dec 2025 20:35:23 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.24956be96b53053deb6b6f164114de62@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+------------------- Changes (by strk): * Attachment "screenshot03.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Dec 25 07:47:59 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 07:47:59 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-265-g62bf28235 Message-ID: <20251225154759.762871A17AE@trac.osgeo.org> 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 62bf28235d207fc41d7f3d23f99215a4d57338a3 (commit) from a12775a18c6d89c1c825795c51df6fb80d9bcc8b (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 62bf28235d207fc41d7f3d23f99215a4d57338a3 Author: Denys Kovshun Date: Thu Dec 25 14:45:37 2025 +0000 Translated PostGIS Manual using Weblate (Ukrainian) Currently translated at 81.3% (4792 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/uk/ diff --git a/doc/po/uk/postgis-manual.po b/doc/po/uk/postgis-manual.po index 62d344841..5480419a5 100644 --- a/doc/po/uk/postgis-manual.po +++ b/doc/po/uk/postgis-manual.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-18 12:47+0000\n" +"PO-Revision-Date: 2025-12-25 15:47+0000\n" "Last-Translator: Denys Kovshun \n" "Language-Team: Ukrainian \n" @@ -23287,6 +23287,12 @@ msgid "" "follow the same geometric rules as the corresponding functions but are " "optimised for use in SQL expressions and index-supported filtering." msgstr "" +"?? ?????? ???????????? ?????????? ?????????, ????????? PostGIS. ????????? " +"?????????? ??????? ???????, ??????? ?????? ?????????? ????????? ??? " +"????????? ????????????? ????? ?? ??????????? ????????. ?? ????????? " +"?????????? ??? ????? ???????????? ????????, ?? ? ?????????? ???????, ??? " +"???????????? ??? ???????????? ? ??????? SQL ?? ???????????? ? ?????????? " +"???????." #. Tag: title #, no-c-format @@ -23380,6 +23386,7 @@ msgstr "" msgid "" "Availability: 2.3.0 support for Block Range INdexes (BRIN) was introduced." msgstr "" +"???????????: 2.3.0 ???? ??????????? ????????? Block Range INdexes (BRIN)." #. Tag: para #, no-c-format @@ -24247,6 +24254,10 @@ msgid "" "nearest-neighbor result sets with true KNN distance search for geometries, " "and distance on the sphere for geographies." msgstr "" +"???????? <-> ???????? 2D-???????? ??? ????? " +"???????????. ???????????????? ? ??????? ?ORDER BY? ??? ??????? ??????? " +"??????????? ?????????? ??????? ? ???????? ?? ????????? ?????? ?????????? " +"???????? KNN ??? ????????? ?? ???????? ?? ????? ??? ???????????? ?????." #. Tag: para #, no-c-format @@ -24289,6 +24300,9 @@ msgid "" "and geography. Note for geography KNN is based on sphere rather than " "spheroid." msgstr "" +"?????????: 2.2.0 ? ????????? True KNN (?K ?????????? ????????) ??? ????????? " +"?? ?????????. ????????: ??? ????????? KNN ????????? ?? ?????, ? ?? ?? " +"????????." #. Tag: para #, no-c-format @@ -24296,6 +24310,9 @@ msgid "" "Changed: 2.2.0 -- Old hybrid-syntax workarounds may be slower once true KNN " "is available. See examples below." msgstr "" +"???????: 2.2.0 ? ????? ??????? ????? ? ????????? ???????????? ???????????? " +"?????? ????????? ?????????? ????? ????? ??????????? KNN. ???????? ???????? " +"?????." #. Tag: para #, no-c-format @@ -24304,6 +24321,9 @@ msgid "" "centroid distances instead of true distances. Exact results for points, " "inexact for all other types." msgstr "" +"???????????: 2.0.0 ? ??????? KNN ????? ?????????? ??????? ?? ?????? " +"???????????? ????????? ?? ??????????, ? ?? ???????? ?????????. ????? " +"?????????? ??? ?????, ??????? ??? ???? ????? ?????." #. Tag: para #, no-c-format @@ -24326,6 +24346,10 @@ msgid "" "find the true nearest neighbors. First a CTE query using the index-assisted " "KNN, then an exact query to get correct ordering:" msgstr "" +"???? ???? ?? ???? ????????????? ????????? ????? ????????, ?????????????? " +"????????? ?????, ??? ?????? ????????? ?????????? ???????. ???????? ????????? " +"????? CTE ? ????????????? KNN ? ????????, ? ????? ?????? ?????, ??? ???????? " +"?????????? ???????:" #. Tag: para #, no-c-format @@ -24350,6 +24374,10 @@ msgid "" "same as but as an operator it can be used " "for doing nearest neighbor searches using an N-dimensional index." msgstr "" +"???????? |=| ???????? 3D ???????? ??? ????? ???????????? (" +"???. ). ?? ?? ????, ?? ? , ??? ?? ???????? ???? ????? ??????????????? ??? " +"?????? ?????????? ??????? ?? ????????? N-????????? ???????." #. Tag: para #, no-c-format @@ -24378,7 +24406,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.2.0." -msgstr "" +msgstr "???????????: 2.2.0." #. Tag: para #, no-c-format @@ -24402,6 +24430,10 @@ msgid "" "Useful for doing nearest neighbor approximate distance ordering." msgstr "" +"???????? <#> ???????? ???????? ??? ????? " +"?????????????? ?????????????? ? ????????? ?????, ??????? ???????? ?? ?? " +"???????????? ???????. ???????? ??? ????????? ??????????? ????????????? ????????? ?????????? ???????." #. Tag: para #, no-c-format @@ -24429,7 +24461,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.0.0." -msgstr "" +msgstr "???????????: 2.0.0." #. Tag: para #, no-c-format @@ -24730,6 +24762,10 @@ msgid "" "default. If your GUI tools require the old behavior, then SET " "bytea_output='escape' in your database." msgstr "" +"PostgreSQL ?? ????????????? ???????? ???????? bytea ? " +"???????????????? ?????????. ???? ???? ???????? ??????????? ????????? ??????? " +"??????? ??????, ?? ?????????? ? ???? ????? SET " +"bytea_output=?escape?." #. Tag: para #, no-c-format @@ -25081,6 +25117,10 @@ msgid "" "function> raises a warning in that case because PostgreSQL jsonb keeps only the last value for duplicate keys." msgstr "" +"???? ??????? ????? ??????? ????????? ???? ????????, ??'??? ????????????? " +"???? ??????? ??????????? ?????. ? ????? ??????? ??????? " +"ST_AsGeoJSON ????? ????????????, ???????? PostgreSQL " +"jsonb ???????? ?????? ??????? ???????? ??? ?????????? ??????." #. Tag: para #, no-c-format @@ -25156,7 +25196,7 @@ msgstr "???????: 3.5.0 ????????? ????????? ?????? #. Tag: para #, no-c-format msgid "Changed: 3.7.0 added warning about duplicate keys" -msgstr "" +msgstr "???????: 3.7.0 ?????? ???????????? ??? ?????????? ??????" #. Tag: para #, no-c-format @@ -26123,6 +26163,11 @@ msgid "" "the x/y axis. By default, ST_AsX3D outputs in database form " "(long,lat or X,Y), but the X3D default of lat/lon, y/x may be preferred." msgstr "" +"???????? ?options? ? ??????? ?????, ??? ????????, ?? ???? ???????????? " +"?????????? ?? ????????? ??????????????? ????? X3D GeoCoordinates ? ?? ???? " +"??????????? ??? x/y. ?? ????????????? ST_AsX3D ???????? ???? ? " +"????? ???? ????? (long,lat ??? X,Y), ??? ?? ????????????? X3D ???? ???? " +"????? ??????????????? lat/lon, y/x." #. Tag: para #, no-c-format @@ -26999,6 +27044,13 @@ msgid "" "linkend=\"ST_Segmentize\"/> to add geodesic vertices, then cast to geometry " "before subdivision." msgstr "" +"??? ???????????? ????????? ????????? ?? ?????????, ???????? ????????? ???? " +"???????????? ??? ?????????. ????? ????? ??????? ? ???????? (?????????????) " +"????????. ???? ??????? ???????????? ?????? ????, ???? ??????? ??????????? " +"?????????????, ?? ???? ??????????????? ?? ?????????? ????????. ??? " +"???????????? ???????????, ???????? ????????? ????????? ?? ????????? , ??? ?????? ?????????? ???????, ? ????? " +"??????????? ?? ????????? ????? ???????." #. Tag: para #, no-c-format @@ -27048,6 +27100,11 @@ msgid "" "impact of changes to the geography representation of a geometry when " "subdividing." msgstr "" +"???????: ????????? ????? ??????????? " +"????? ?? ????????? ST_Segmentize(geography, distance) ? ?????????????? " +"ST_Subdivide, ??? ????????? ???????? ????? ?? ???????? ? 8 ?????????. " +"?????????? ????????? ????? ???? ?? ??????????? ????????????? ????????? ??? " +"??? ??????." #. Tag: para #, no-c-format @@ -27463,6 +27520,11 @@ msgid "" "does not affect POINT or POLYGON geometries. By default end caps are square " "when 'left' or 'right' are specified." msgstr "" +"?side=both|left|right? : ?? ????????????? ?both?. ?left? ??? ?right? ??????? " +"????????????? ????? ?? ?????????, ??????? ?????????? ??????? ???????? ?? " +"???????? ?????. ?? ?????????????? ?????? ?? ????????? LINESTRING ? ?? " +"??????? ?? ????????? POINT ??? POLYGON. ?? ????????????? ??????? ?????? ? " +"???????????, ???? ??????? ?left? ??? ?right?." #. Tag: para #, no-c-format @@ -28465,7 +28527,7 @@ msgstr "????? ?? ??'????????? ?? ????????? ?? ? #. Tag: title #, no-c-format msgid "Non-Touching Lines" -msgstr "" +msgstr "?????, ?? ?? ??????????" #. Tag: para #, no-c-format @@ -28479,7 +28541,7 @@ msgstr "" #. Tag: title #, no-c-format msgid "Directed Parameter" -msgstr "" +msgstr "??????????? ????????" #. Tag: para #, no-c-format @@ -28489,7 +28551,7 @@ msgstr "????? ? ???????????? ?????????? ?? ??'? #. Tag: title #, no-c-format msgid "Z-dimension Handling" -msgstr "" +msgstr "??????? Z-??????" #. Tag: para #, no-c-format @@ -29983,7 +30045,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "The raster in question/" -msgstr "" +msgstr "?????, ??? ???? ??? ????/" #. Tag: para #, no-c-format @@ -31830,7 +31892,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Non-georeferenced rasters and geometries use SRID 0." -msgstr "" +msgstr "??????? ?? ????????? ??? ????????????? ?????????????? SRID 0." #. Tag: refpurpose #, no-c-format @@ -33796,6 +33858,13 @@ msgid "" "and set it to libproj.dll. You'll have to restart your " "PostgreSQL service/daemon after this change." msgstr "" +"???? ?? ???????, ?? ????????? ???????????? ?? ?????? ???????? ?????, " +"???????, ??? ?????????? ?????????? ?????? ?????????? PROJSO ?? ?????????? " +"????????, ??? ???????????? ???? ?????? PostGIS. ??? ????? ???????? ???? " +"??????? ??'? ?????. ?????????, ? Windows ? ?????? ????????? -> ??????? " +"-> ?????? ?????????? ??????? ???????? ?????? ? ?????? PROJSO ? ?????????? ??? ??? ???????? libproj.dll. ????? " +"???? ????? ??? ?????????? ????????????? ??????/????? PostgreSQL." #. Tag: para #, no-c-format @@ -35826,7 +35895,7 @@ msgstr "?????? ???????, ?????? ???????" #. Tag: para #, no-c-format msgid "Complete example of tiles of a coverage with neighborhood." -msgstr "" +msgstr "?????? ??????? ?????? ???????? ? ??????????." #. Tag: para #, no-c-format @@ -35834,6 +35903,8 @@ msgid "" "Example like the prior one for tiles of a coverage with neighborhood but " "using only basic SQL features." msgstr "" +"???????, ???????? ?? ????????????, ??? ?????? ???????? ? ??????????, ??? ? " +"????????????? ???? ???????? ??????? SQL." #. Tag: title #, no-c-format @@ -37466,7 +37537,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Complete example of tiles of a coverage." -msgstr "" +msgstr "?????? ??????? ?????? ????????." #. Tag: para #, no-c-format @@ -38063,6 +38134,8 @@ msgid "" "Changed 3.7.0, the polygonization honours PostgreSQL interrupts so " "cancellations and statement timeouts halt processing promptly." msgstr "" +"??????? 3.7.0, ????????????? ???????? ??????????? PostgreSQL, ???? " +"?????????? ?? ????-???? ?????????? ??????? ????????? ???????." #. Tag: para #, no-c-format @@ -41221,7 +41294,7 @@ msgstr "?????????, ?? ? ???????? ???????" #. Tag: refpurpose #, no-c-format msgid "Test if the geometry is a solid. No validity check is performed." -msgstr "" +msgstr "?????????, ?? ? ????????? ??'?????. ????????? ????????? ?? ???????????." #. Tag: refpurpose #, no-c-format @@ -41230,6 +41303,9 @@ msgid "" "solid, the input geometry must be a closed Polyhedral Surface or a closed " "TIN." msgstr "" +"??????????? ????????? ? ??'???? ????. ????????? ?? ???????????. ??? ???????? " +"?????? ??'???? ????, ?????? ????????? ??????? ???? ???????? ????????????? " +"????????? ??? ???????? TIN." #. Tag: refpurpose #, no-c-format @@ -41277,7 +41353,7 @@ msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Computes area of 3D surface geometries. Will return 0 for solids." -msgstr "" +msgstr "???????? ????? 3D-????????. ??? ??'????? ??? ???????? ???????? 0." #. Tag: para #, no-c-format @@ -41290,6 +41366,9 @@ msgid "" "Note: By default a PolyhedralSurface built from WKT is a surface geometry, " "not solid. It therefore has surface area. Once converted to a solid, no area." msgstr "" +"????????: ?? ????????????? PolyhedralSurface, ??????????? ?? ?????? WKT, ? " +"?????????? ????????, ? ?? ??'????? ?????. ???? ??? ??? ????? ????????. ????? " +"???????????? ?? ??'???? ???? ????? ???????? ??????." #. Tag: para #, no-c-format @@ -41322,6 +41401,10 @@ msgid "" "linkend=\"CG_MakeSolid\"/>. Areal geometries have no volume. Here is an " "example to demonstrate." msgstr "" +"???? ??????? ???????? ??????????? ?? ????????? WKT, ???? ????????????? ?? " +"?????, ? ?? ?? ??'???? ????. ??? ??????? ?? ??'??????, ???????? " +"??????????????? . ????? ?? ????? ??'???. ??? " +"??????? ??? ??????????." #. Tag: para #, no-c-format @@ -42038,11 +42121,12 @@ msgstr "???????????? ????????????, ?????????? #, no-c-format msgid "Hexagon extruded 30 units along Z produces a PolyhedralSurfaceZ" msgstr "" +"???????????, ?????????? ?? 30 ??????? ?????? Z, ??????? PolyhedralSurfaceZ" #. Tag: para #, no-c-format msgid "Original linestring" -msgstr "" +msgstr "??????????? ?????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/uk/postgis-manual.po | 112 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 98 insertions(+), 14 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 25 09:48:01 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 09:48:01 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-266-gf359b90a9 Message-ID: <20251225174801.9CC451A3288@trac.osgeo.org> 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 f359b90a90ef80b69204e61762a0e09e9cc1730d (commit) from 62bf28235d207fc41d7f3d23f99215a4d57338a3 (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 f359b90a90ef80b69204e61762a0e09e9cc1730d Author: Denys Kovshun Date: Thu Dec 25 16:57:27 2025 +0000 Translated PostGIS Manual using Weblate (Ukrainian) Currently translated at 85.6% (5048 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/uk/ diff --git a/doc/po/uk/postgis-manual.po b/doc/po/uk/postgis-manual.po index 5480419a5..8789eb43f 100644 --- a/doc/po/uk/postgis-manual.po +++ b/doc/po/uk/postgis-manual.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-25 15:47+0000\n" +"PO-Revision-Date: 2025-12-25 17:47+0000\n" "Last-Translator: Denys Kovshun \n" "Language-Team: Ukrainian \n" @@ -42131,22 +42131,22 @@ msgstr "??????????? ?????" #. Tag: para #, no-c-format msgid "LineString Extruded along Z produces a PolyhedralSurfaceZ" -msgstr "" +msgstr "LineString, ?????????? ?????? Z, ??????? PolyhedralSurfaceZ" #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Straight Skeleton Extrusion" -msgstr "" +msgstr "????? ????????? ???????" #. Tag: para #, no-c-format msgid "Computes an extrusion with a maximal height of the polygon geometry." -msgstr "" +msgstr "???????? ????????? ? ???????????? ??????? ????????? ?????????????." #. Tag: para #, no-c-format @@ -42169,11 +42169,13 @@ msgid "" "linkend=\"CG_StraightSkeleton\"/>, " msgstr "" +", , , " #. Tag: para #, no-c-format msgid "Computes approximal monotone convex partition of the polygon geometry." -msgstr "" +msgstr "???????? ????????? ????????? ?????? ???????? ????????? ?????????????." #. Tag: para #, no-c-format @@ -42183,6 +42185,9 @@ msgid "" "linkend=\"CG_ApproxConvexPartition\"/> and )" msgstr "" +"????????? ?????? ?????????? ????? (??? ????? ???????, ?? ? , ?? " +")" #. Tag: para #, no-c-format @@ -42190,17 +42195,21 @@ msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format msgid "Performs Minkowski sum" -msgstr "" +msgstr "???????? ???? ????????????" #. Tag: para #, no-c-format msgid "" "is deprecated as of 3.5.0. Use instead." msgstr "" +"? ?????????? ? ?????? 3.5.0. ??????? ????? ?????????????? ." #. Tag: para #, no-c-format @@ -42208,6 +42217,8 @@ msgid "" "This function performs a 2D minkowski sum of a point, line or polygon with a " "polygon." msgstr "" +"?? ??????? ??????? ?????????? ???? ???????????? ?????, ????? ??? " +"????????????? ? ??????????????." #. Tag: para #, no-c-format @@ -42218,6 +42229,11 @@ msgid "" "href=\"https://en.wikipedia.org/wiki/Minkowski_addition\">Wikipedia " "Minkowski addition." msgstr "" +"???? ???????????? ???? ????????? A ? B ? ?? ??????? ???? ?????, ??? ? ????? " +"????-???? ????? ? A ? B. ???? ???????????? ????? ???????????????? ? " +"?????????? ???? ?? ????'???????? ????????????. ????? ???????? ?????????? ?? " +"????????? ???? ????????????." #. Tag: para #, no-c-format @@ -42227,6 +42243,10 @@ msgid "" "leading to possible cases of invalidity. The second parameter must be a 2D " "polygon." msgstr "" +"?????? ???????? ???? ???? ????-???? 2D-?????????? (?????, ?????, " +"????????????). ???? ??????????? 3D-?????????, ???? ???? ??????????? ? 2D " +"?????? ??????????? ???????????? Z ?? 0, ?? ???? ????????? ?? ???????? " +"???????????. ?????? ???????? ??????? ???? 2D-??????????????." #. Tag: para #, no-c-format @@ -42234,6 +42254,8 @@ msgid "" "Implementation utilizes CGAL 2D Minkowskisum." msgstr "" +"?????????? ???????????? CGAL 2D Minkowskisum." #. Tag: para #, no-c-format @@ -42241,27 +42263,31 @@ msgid "" "Minkowski Sum of Linestring and circle polygon where Linestring cuts thru " "the circle" msgstr "" +"???? ???????????? ????????? ??????? ?? ?????????????, ?? ???????? ?????? " +"????????? ????" #. Tag: para #, no-c-format msgid "Before Summing" -msgstr "" +msgstr "????? ???????????????" #. Tag: para #, no-c-format msgid "After summing" -msgstr "" +msgstr "????? ??????????????" #. Tag: para #, no-c-format msgid "Minkowski Sum of a polygon and multipoint" -msgstr "" +msgstr "???? ???????????? ????????????? ? ?????????????? ??????" #. Tag: para #, no-c-format msgid "" "After summing: polygon is duplicated and translated to position of points" msgstr "" +"????? ??????????????: ???????????? ?????????? ? ???????????? ? ????????? " +"?????" #. Tag: refpurpose #, no-c-format @@ -42269,6 +42295,8 @@ msgid "" "Computes an Alpha-shape enclosing a geometry using an \"optimal\" alpha " "value." msgstr "" +"???????? ?????-?????, ?? ??????? ?????????, ?????????????? ???????????? " +"???????? ?????." #. Tag: para #, no-c-format @@ -42276,6 +42304,8 @@ msgid "" "is deprecated as of 3.5.0. Use " "instead." msgstr "" +"? ?????????? ? ?????? 3.5.0. ??????? ????? ?????????????? ." #. Tag: para #, no-c-format @@ -42283,6 +42313,8 @@ msgid "" "Computes the \"optimal\" alpha-shape of the points in a geometry. The alpha-" "shape is computed using a value of ? chosen so that:" msgstr "" +"???????? ???????????? ?????-????? ????? ? ?????????. ?????-????? " +"???????????? ? ????????????? ???????? ?, ???????? ????? ?????, ???:" #. Tag: para #, no-c-format @@ -42290,11 +42322,13 @@ msgid "" "the number of polygon elements is equal to or smaller than " "nb_components (which defaults to 1)" msgstr "" +"????????? ????????? ???????? ???????? ??? ?????, ??? nb_components (?? ????????????? 1)" #. Tag: para #, no-c-format msgid "all input points are contained in the shape" -msgstr "" +msgstr "??? ????? ???????? ????????? ? ??????" #. Tag: para #, no-c-format @@ -42302,11 +42336,13 @@ msgid "" "The result will not contain holes unless the optional allow_holes argument is specified as true." msgstr "" +"????????? ?? ???? ??????? ??????, ???? ???????????? ???????? " +"allow_holes ?? ???? ???????? ?? true." #. Tag: para #, no-c-format msgid "Availability: 3.3.0 - requires SFCGAL >= 1.4.1." -msgstr "" +msgstr "???????????: 3.3.0 ? ??????? SFCGAL >= 1.4.1." #. Tag: para #, no-c-format @@ -42314,6 +42350,8 @@ msgid "" "Optimal alpha-shape of a MultiPoint (same example as )" msgstr "" +"?????????? ?????-????? MultiPoint (??? ????? ???????, ?? ? )" #. Tag: para #, no-c-format @@ -42321,21 +42359,23 @@ msgid "" "Optimal alpha-shape of a MultiPoint, allowing holes (same example as )" msgstr "" +"?????????? ?????-????? MultiPoint, ?? ???????? ?????? (??? ????? ???????, ?? " +"? )" #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Computes an optimal convex partition of the polygon geometry" -msgstr "" +msgstr "???????? ??????????? ??????? ????? ????????? ?????????????" #. Tag: para #, no-c-format msgid "Computes an optimal convex partition of the polygon geometry." -msgstr "" +msgstr "???????? ??????????? ??????? ????? ????????? ?????????????." #. Tag: para #, no-c-format @@ -42345,6 +42385,10 @@ msgid "" "interior of the original polygon P. CG_OptimalConvexPartition produces a " "partition that is optimal in the number of pieces." msgstr "" +"???????? ????????????? P ? ?? ????? ??????????????, ????????? ??????? ???? " +"?? ?????????????, ? ??'??????? ?????????????? ???????? ?????????? ??????? " +"????????? ????????????? P. CG_OptimalConvexPartition ??????? ????????, ??? ? " +"??????????? ?? ????????? ??????." #. Tag: para #, no-c-format @@ -42354,6 +42398,9 @@ msgid "" "linkend=\"CG_ApproxConvexPartition\"/> and )" msgstr "" +"??????????? ??????? ????? (??? ????? ???????, ?? ? , ?? " +")" #. Tag: para #, no-c-format @@ -42361,6 +42408,8 @@ msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format @@ -42371,6 +42420,7 @@ msgstr "" #, no-c-format msgid "Requires SFCGAL >= 1.3.8 for option use_distance_as_m" msgstr "" +"??? ???????????? ????? use_distance_as_m ????????? ?????? SFCGAL >= 1.3.8" #. Tag: para #, no-c-format @@ -42378,11 +42428,13 @@ msgid "" "Note that valid inputs with rings that touch at a single point will raise an " "error." msgstr "" +"???????? ?????, ?? ?????? ?????? ???? ? ????????, ??? ?????????? ? ????? " +"?????, ?????????? ???????." #. Tag: para #, no-c-format msgid "Straight Skeleton of polygon" -msgstr "" +msgstr "?????? ?????? ????????" #. Tag: para #, no-c-format @@ -42390,6 +42442,8 @@ msgid "" "is deprecated as of 3.5.0. Use " "instead." msgstr "" +"? ?????????? ????????? ? ?????? 3.5.0. ??????? ????? ?????????????? ." #. Tag: refpurpose #, no-c-format @@ -42397,12 +42451,16 @@ msgid "" "Perform surface Tessellation of a polygon or polyhedralsurface and returns " "as a TIN or collection of TINS" msgstr "" +"??????? ?????????? ???????? ???????? ??? ????????????? ???????? ? ???????? " +"????????? ? ??????? TIN ??? ?????? TIN" #. Tag: para #, no-c-format msgid "" "is deprecated as of 3.5.0. Use instead." msgstr "" +"? ?????????? ? ?????? 3.5.0. ??????? ????? ?????????????? ." #. Tag: para #, no-c-format @@ -42410,6 +42468,9 @@ msgid "" "Takes as input a surface such a MULTI(POLYGON) or POLYHEDRALSURFACE and " "returns a TIN representation via the process of tessellation using triangles." msgstr "" +"??????? ?? ?????? ???? ???????? ???? MULTI(POLYGON) ??? POLYHEDRALSURFACE ? " +"???????? ????????????? TIN ?? ????????? ??????? ?????????? ? ????????????? " +"???????????." #. Tag: para #, no-c-format @@ -42417,26 +42478,28 @@ msgid "" "does similar to this function except that it returns a geometry collection " "of polygons instead of a TIN and also only works with 2D geometries." msgstr "" +"??????? ??????? ???????, ?? ???????? ????, ?? ???????? ???????? ????????? " +"?????????????? ??????? TIN, ? ????? ?????? ?????? ? 2D-???????????." #. Tag: para #, no-c-format msgid "Original Cube" -msgstr "" +msgstr "???????????? ???" #. Tag: para #, no-c-format msgid "ST_AsText output:" -msgstr "" +msgstr "????????? ST_AsText:" #. Tag: para #, no-c-format msgid "Tessellated Cube with triangles colored" -msgstr "" +msgstr "????????????? ??? ? ??????????? ????????????" #. Tag: para #, no-c-format msgid "Tessellated Polygon" -msgstr "" +msgstr "????????????? ????????????" #. Tag: para #, no-c-format @@ -42444,48 +42507,52 @@ msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format msgid "Triangulates a polygonal geometry" -msgstr "" +msgstr "?????????? ???????????? ?????????" #. Tag: para #, no-c-format msgid "Triangulates a polygonal geometry." -msgstr "" +msgstr "?????????? ???????????? ?????????." #. Tag: para #, no-c-format msgid "" "NOTE: this function returns a geometry representing the triangulated result." msgstr "" +"????????: ?? ??????? ???????? ?????????, ?? ??????????? ??????????????? " +"?????????." #. Tag: refpurpose #, no-c-format msgid "" "Compute a visibility polygon from a point or a segment in a polygon geometry" -msgstr "" +msgstr "????????? ??????? ????????? ? ????? ??? ???????? ? ????????? ????????" #. Tag: para #, no-c-format msgid "Visibility from the point" -msgstr "" +msgstr "????????? ? ?????" #. Tag: para #, no-c-format msgid "Visibility from the segment" -msgstr "" +msgstr "????????? ? ????????" #. Tag: refpurpose #, no-c-format msgid "Computes y-monotone partition of the polygon geometry" -msgstr "" +msgstr "???????? y-?????????? ????? ????????? ?????????????" #. Tag: para #, no-c-format msgid "Computes y-monotone partition of the polygon geometry." -msgstr "" +msgstr "???????? y-?????????? ????? ????????? ?????????????." #. Tag: para #, no-c-format @@ -42498,6 +42565,14 @@ msgid "" "algorithm does not guarantee a bound on the number of polygons produced with " "respect to the optimal number." msgstr "" +"???????? ????????????? P ? ?? ??????? ??????????????, ????, ?? ????????? " +"??????? ?????????????? ?? ?????????????, ? ??'??????? ?????????????? " +"???????? ?????????? ??????? ????????? ????????????? P. Y-?????????? " +"???????????? ? ?? ????????????, ??????? v1,?,vn ????? ????? ????????? ?? ??? " +"??????? v1,?,vk ? vk,?,vn,v1, ????, ?? ????-??? ????????????? ????? " +"????????? ????? ?????? ?? ?????? ?????? ????. ??? ???????? ?? ???????? " +"????????? ????????? ??????????????, ?? ???????????, ???????? ??????????? " +"?????????." #. Tag: para #, no-c-format @@ -42507,11 +42582,15 @@ msgid "" "linkend=\"CG_GreeneApproxConvexPartition\"/> and )" msgstr "" +"Y-?????????? ????? (??? ????? ???????, ?? ? , ?? )" #. Tag: refpurpose #, no-c-format msgid "Computes the straight skeleton partition of a polygon." -msgstr "" +msgstr "???????? ?????? ????????? ????? ?????????????." #. Tag: para #, no-c-format @@ -42523,21 +42602,27 @@ msgid "" "automatically adjust the orientation of the input polygon to ensure correct " "results." msgstr "" +"???????? ????? ???????? ?????????? ??????? ????????? ????????????? " +"geom. ?????? ?????? ? ?? ?????????? ????????????? ?? " +"?????, ???????? ?????? ??????????? ???????? ???? ?????. ???? " +"auto_orientation ??????????? ?? true, ??????? " +"??????????? ???????? ?????????? ???????? ?????????????, ??? ??????????? " +"????????? ??????????." #. Tag: para #, no-c-format msgid "Availability: 3.6.0 - requires SFCGAL >= 2.0.0." -msgstr "" +msgstr "???????????: 3.6.0 ? ??????? SFCGAL >= 2.0.0." #. Tag: para #, no-c-format msgid "Straight Skeleton Partition of polygon" -msgstr "" +msgstr "????? ???????? ????????? ????? ?????????????" #. Tag: refpurpose #, no-c-format msgid "Computes a 3D buffer around a geometry." -msgstr "" +msgstr "???????? 3D-????? ??????? ?????????." #. Tag: para #, no-c-format @@ -42555,12 +42640,12 @@ msgstr "" #. Tag: para #, no-c-format msgid "Input geometry must be a Point or LineString." -msgstr "" +msgstr "????????? ??????? ????? ??????? ???? ?????? ??? ??????." #. Tag: para #, no-c-format msgid "Availability: 3.6.0 - requires SFCGAL >= 2.0.0" -msgstr "" +msgstr "???????????: 3.6.0 ? ??????? SFCGAL >= 2.0.0" #. Tag: para #, no-c-format @@ -42569,36 +42654,39 @@ msgid "" "into X3D Viewer." msgstr "" +"???????? ?????????? ???? ?????????? ?????? ?????????? ?????????? ?????? " +"ST_AsX3D ? X3D Viewer." #. Tag: para #, no-c-format msgid "segments=32 (rounded buffer)" -msgstr "" +msgstr "????????=32 (?????????? ?????)" #. Tag: para #, no-c-format msgid "5 segments rounded" -msgstr "" +msgstr "5 ?????????, ?????????" #. Tag: para #, no-c-format msgid "32 segments, round" -msgstr "" +msgstr "32 ????????, ????" #. Tag: para #, no-c-format msgid "32 segments, square" -msgstr "" +msgstr "32 ????????, ???????" #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry by a given angle around the origin (0,0)." -msgstr "" +msgstr "???????? ????????? ?? ??????? ??? ??????? ??????? ????????? (0,0)." #. Tag: para #, no-c-format @@ -42608,16 +42696,20 @@ msgid "" "in 2D space; Z coordinates are not modified. Positive angles rotate the " "geometry counter-clockwise." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ????? ??????? ????????? (0,0). ??????? ??????????? " +"? 2D-????????; ?????????? Z ?? ??????????. ????????? ???? ?????????? " +"????????? ????? ???????????? ???????." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry by a given angle around a specified point in 2D." -msgstr "" +msgstr "???????? ????????? ?? ??????? ??? ??????? ???????? ????? ? 2D." #. Tag: para #, no-c-format @@ -42628,16 +42720,20 @@ msgid "" "coordinates are dropped. Positive angles rotate the geometry counter-" "clockwise." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ????? (cx, " +"cy). ??????? ??????????? ? 2D-????????; ?????????? Z " +"???????????. ????????? ???? ?????????? ????????? ????? ???????????? ???????." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry in 3D space around an axis vector." -msgstr "" +msgstr "??????? ????????? ? 3D-???????? ??????? ??????? ???." #. Tag: para #, no-c-format @@ -42647,16 +42743,20 @@ msgid "" "parameter>, ay, az) passing " "through the origin (0,0,0)." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ???, ?????????? ???????? (ax, ay, az), ?? " +"????????? ????? ??????? ????????? (0,0,0)." #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry around the X-axis by a given angle." -msgstr "" +msgstr "???????? ????????? ??????? ??? X ?? ??????? ???." #. Tag: para #, no-c-format @@ -42664,16 +42764,18 @@ msgid "" "Rotates the input geometry geom by angle radians around the X-axis." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ??? X." #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry around the Y-axis by a given angle." -msgstr "" +msgstr "???????? ????????? ??????? ??? Y ?? ??????? ???." #. Tag: para #, no-c-format @@ -42681,11 +42783,13 @@ msgid "" "Rotates the input geometry geom by angle radians around the Y-axis passing." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ??? Y." #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry around the Z-axis by a given angle." -msgstr "" +msgstr "???????? ????????? ??????? ??? Z ?? ??????? ???." #. Tag: para #, no-c-format @@ -42693,16 +42797,18 @@ msgid "" "Rotates the input geometry geom by angle radians around the Z-axis." msgstr "" +"???????? ?????? ????????? geom ?? angle ?????? ??????? ??? Z." #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Scales a geometry uniformly in all dimensions by a given factor." -msgstr "" +msgstr "????????? ????????? ?????????? ? ???? ??????? ?? ??????? ????????????." #. Tag: para #, no-c-format @@ -42711,17 +42817,21 @@ msgid "" "factor in all dimensions (X, Y, and Z). The scaling " "is performed relative to the origin point (0,0,0)." msgstr "" +"????????? ?????? ????????? geom ?? ????????? ??????? " +"??????????? ????????????? factor ? ???? ??????? (X, Y " +"?? Z). ????????????? ??????????? ???????? ????? ??????? ????????? (0,0,0)." #. Tag: para #, no-c-format msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format msgid "Scales a geometry by separate factors along X, Y, and Z axes." -msgstr "" +msgstr "????????? ????????? ?? ???????? ????????????? ?????? ???? X, Y ?? Z." #. Tag: para #, no-c-format @@ -42730,16 +42840,19 @@ msgid "" "along the X, Y, and Z axes. The scaling is performed relative to the origin " "point (0,0,0)." msgstr "" +"????????? ?????? ????????? geom ?? ????????? ?????? " +"???????????? ?????? ???? X, Y ?? Z. ????????????? ??????????? ???????? ????? " +"??????? ????????? (0,0,0)." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Scales a geometry in 3D space around a specified center point." -msgstr "" +msgstr "????????? ????????? ? 3D-???????? ??????? ???????? ??????????? ?????." #. Tag: para #, no-c-format @@ -42749,16 +42862,20 @@ msgid "" "(centerX, centerY, " "centerZ)." msgstr "" +"????????? ?????? ????????? geom ?? ????????? ?????? " +"???????????? ?????? ???? X, Y ? Z ???????? ???????? ??????????? ????? " +"(centerX, centerY, " +"centerZ)." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Translates (moves) a geometry by given offsets in 2D space." -msgstr "" +msgstr "?????????? (?????????) ????????? ?? ?????? ???????? ? 2D-????????." #. Tag: para #, no-c-format @@ -42767,16 +42884,19 @@ msgid "" "deltaX to the X coordinates and deltaY to the Y coordinates. Z coordinates are dropped." msgstr "" +"?????????? ?????? ????????? geom, ??????? " +"deltaX ?? ????????? X ? deltaY " +"?? ????????? Y. ?????????? Z ???????????." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Translates (moves) a geometry by given offsets in 3D space." -msgstr "" +msgstr "?????????? (?????????) ????????? ?? ?????? ???????? ? 3D-????????." #. Tag: para #, no-c-format @@ -42786,6 +42906,9 @@ msgid "" "parameter> to the Y coordinates, and deltaZ to the Z " "coordinates." msgstr "" +"?????????? ?????? ????????? geom, ??????? " +"deltaX ?? ????????? X, deltaY " +"?? ????????? Y ? deltaZ ?? ????????? Z." #. Tag: refpurpose #, no-c-format @@ -42793,6 +42916,8 @@ msgid "" "Reduces the complexity of a geometry while preserving essential features and " "Z/M values." msgstr "" +"??????? ?????????? ?????????, ?????????? ??? ????? ??????? ?????????????? ?? " +"???????? Z/M." #. Tag: para #, no-c-format @@ -42801,6 +42926,9 @@ msgid "" "the number of points or vertices while preserving the essential features of " "the geometry. This function preserves Z and M values during simplification." msgstr "" +"??????? ????????? ?? ????????? ????????? ????????? SFCGAL, ???? ??????? " +"????????? ????? ??? ??????, ?????????? ??? ????? ??????? ?????????????? " +"?????????. ?? ??????? ???????? ???????? Z ? M ??? ??? ?????????." #. Tag: para #, no-c-format @@ -42811,6 +42939,11 @@ msgid "" "handling to preserve Z and M coordinates. When topology is preserved and " "geometries intersect, Z and M values are interpolated at intersection points." msgstr "" +"???????? ????????? ?? ????????? ???????????? ?? ???????????? ?????????? " +"CGAL Polyline Simplification 2 ? ?????????? ???????? ??? " +"?????????? ????????? Z ?? M. ???? ????????? ????????????, ? ????????? " +"?????????????, ???????? Z ?? M ?????????????? ? ?????? ????????." #. Tag: para #, no-c-format @@ -42818,26 +42951,28 @@ msgid "" "This function works well with 3D terrain-like geometries (2.5D) but is not " "designed for vertical surfaces like walls." msgstr "" +"?? ??????? ????? ?????? ? ??????????, ?????? ?? 3D-?????? (2,5D), ??? ?? " +"?????????? ??? ???????????? ?????????, ????? ?? ?????." #. Tag: para #, no-c-format msgid "Availability: 3.6.0 - requires SFCGAL >= 2.1.0" -msgstr "" +msgstr "???????????: 3.6.0 ? ??????? SFCGAL >= 2.1.0" #. Tag: title #, no-c-format msgid "Parameters" -msgstr "" +msgstr "?????????" #. Tag: para #, no-c-format msgid "Input geometry" -msgstr "" +msgstr "?????? ?????????" #. Tag: parameter #, no-c-format msgid "threshold" -msgstr "" +msgstr "threshold" #. Tag: para #, no-c-format @@ -42845,11 +42980,13 @@ msgid "" "Maximum distance threshold (in geometry unit) for simplification. The higher " "this value, the more simplified the resulting geometry will be." msgstr "" +"???????????? ????? ???????? (? ???????? ?????????) ??? ?????????. ??? ???? " +"?? ????????, ??? ????? ????????? ???? ???????? ?????????." #. Tag: parameter #, no-c-format msgid "preserveTopology" -msgstr "" +msgstr "preserveTopology" #. Tag: para #, no-c-format @@ -42858,41 +42995,44 @@ msgid "" "preserved. When geometries intersect in this mode, Z and M values at " "intersection points are interpolated. The default value is false." msgstr "" +"???? ??????????? ???????? true, ??????? ???????? ?????????? ????????? " +"?????????. ???? ????????? ????????????? ? ????? ??????, ???????? Z ? M ? " +"?????? ???????? ??????????????. ???????? ?? ????????????? ? false." #. Tag: title #, no-c-format msgid "Return Value" -msgstr "" +msgstr "Return Value" #. Tag: para #, no-c-format msgid "Returns a simplified geometry with preserved Z and M values." -msgstr "" +msgstr "???????? ???????? ????????? ?? ??????????? ?????????? Z ?? M." #. Tag: para #, no-c-format msgid "Originals geometries" -msgstr "" +msgstr "??????????? ?????????" #. Tag: para #, no-c-format msgid "Simplification with 0.5 and topology preserved" -msgstr "" +msgstr "????????? ? 0,5 ? ??????????? ?????????" #. Tag: para #, no-c-format msgid "Simplification with 0.5 without topology preservation" -msgstr "" +msgstr "????????? ? 0,5 ??? ?????????? ?????????" #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Computes a 3D Alpha-wrapping strictly enclosing a geometry." -msgstr "" +msgstr "???????? 3D-???????? ?????, ??? ?????? ??????? ?????????." #. Tag: para #, no-c-format @@ -42903,6 +43043,11 @@ msgid "" "the input. It can be seen as an extension or refinement of an alpha-shape." msgstr "" +"???????? 3D Alpha Wrapping ????? ? ?????????. ?????-?????????? ? ?? " +"?????????????? ?? ??????????? ?????????? ?????, ??? ?????? ??????? ?????? " +"????. ???? ????? ?????????? ?? ?????????? ??? ????????????? ?????-?????." #. Tag: para #, no-c-format @@ -42912,6 +43057,10 @@ msgid "" "relative_alpha values result in simpler outputs, but they are less accurate " "representations of the original input." msgstr "" +"???????? relative_alpha ?????????, ??? ??????? " +"?'???????????? ? ???????? ?????. ??? ???? ???? ???????? ??? 0 ?? " +"??????????????. ????? ???????? relative_alpha ????? ???????? ??????? ????, " +"??? ???? ? ???? ??????? ??????????????? ???????? ?????." #. Tag: para #, no-c-format @@ -42921,6 +43070,10 @@ msgid "" "set to 0, its value is automatically determined based on the relative_alpha " "parameter." msgstr "" +"???????? relative_offset ????????? ???????? ??????????. " +"??? ???? ???? ???????? ??? 0 ?? ??????????????. ???? ??? ???????? " +"???????????? ?? 0, ???? ???????? ??????????? ???????????? ?? ?????? " +"????????? relative_alpha." #. Tag: para #, no-c-format @@ -42928,6 +43081,8 @@ msgid "" "Alpha wrapping of a MultiPoint (same example As )" msgstr "" +"?????-?????????? MultiPoint (??? ????? ???????, ?? ? )" #. Tag: para #, no-c-format @@ -42935,6 +43090,8 @@ msgid "" "Alpha wrapping of a MultiPoint (same example as )" msgstr "" +"?????-?????????? MultiPoint (??? ????? ???????, ?? ? )" #. Tag: para #, no-c-format @@ -42943,11 +43100,14 @@ msgid "" "and 20. A value of 5 results in a coarse output. Increasing the parameter up " "to 20 significantly improves the precision and granularity of the result." msgstr "" +"????? ????????? relative_alpha ?? ?????????? 5, 10 ? 20. " +"???????? 5 ??? ?????? ?????????. ?????????? ????????? ?? 20 ?????? ???????? " +"???????? ? ??????????? ??????????." #. Tag: title #, no-c-format msgid "Spatial Reference System Functions" -msgstr "" +msgstr "??????? ??????????? ??????? ?????????" #. Tag: para #, no-c-format @@ -42955,6 +43115,8 @@ msgid "" "These functions work with the Spatial Reference System of geometries as " "defined in the spatial_ref_sys table." msgstr "" +"?? ??????? ???????? ?? ???????? ??????????? ????????? ?????????, ?????????? " +"? ??????? spatial_ref_sys." #. Tag: refpurpose #, no-c-format @@ -42963,6 +43125,9 @@ msgid "" "reference system using the inverse of a defined coordinate transformation " "pipeline." msgstr "" +"????????? ???? ????????? ? ????????????, ????????????? ? ???? ??????? " +"??????????? ?????????, ?????????????? ???????? ??????? ??????????? ???????? " +"???????????? ?????????." #. Tag: para #, no-c-format @@ -42971,6 +43136,9 @@ msgid "" "reference system using a defined coordinate transformation pipeline to go in " "the inverse direction." msgstr "" +"????????? ???? ????????? ? ????????????, ????????????? ? ???? ??????? " +"??????????? ????????? ?? ????????? ??????????? ???????? ???????????? " +"?????????, ?? ?????? ? ?????????? ????????." #. Tag: para #, no-c-format @@ -42978,6 +43146,8 @@ msgid "" "Refer to for details on writing a " "transformation pipeline." msgstr "" +"???????? ????????? ??? ????????? ???????? ???????????? ???. ? ." #. Tag: para #, no-c-format @@ -42989,6 +43159,12 @@ msgid "" "direction. Using `ST_InverseTransformPipeline()` the pipeline is executed in " "the inverse direction." msgstr "" +"SRID ??????? ????????? ???????????, ? SRID ???????? ????????? ???? " +"??????????? ?? ????, ???? ???????? ?? ???? ??????? ?? ????????? " +"????????????? ????????? to_srid. ??? ???????????? ??????? ??????????? ? ??????? ????????. " +"??? ???????????? `ST_InverseTransformPipeline()` ??????? ??????????? ? " +"?????????? ????????." #. Tag: para #, no-c-format @@ -42998,26 +43174,30 @@ msgid "" "correct operations to convert between coordinate systems, and should be " "preferred." msgstr "" +"???????????? ?? ????????? ????????? ? ??????????????? ??????? . ? ????????? ???????? `ST_Transform` ?????? ????????? " +"???????? ??? ???????????? ??? ????????? ?????????, ? ???? ???? ??????? " +"?????? ?????????." #. Tag: para #, no-c-format msgid "Change WGS 84 long lat to UTM 31N using the EPSG:16031 conversion" -msgstr "" +msgstr "??????? WGS 84 long lat ?? UTM 31N ?? ????????? ???????????? EPSG:16031" #. Tag: para #, no-c-format msgid "GDA2020 example." -msgstr "" +msgstr "??????? GDA2020." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Set the SRID on a geometry." -msgstr "" +msgstr "?????????? SRID ??? ?????????." #. Tag: para #, no-c-format @@ -43025,6 +43205,8 @@ msgid "" "Sets the SRID on a geometry to a particular integer value. Useful in " "constructing bounding boxes for queries." msgstr "" +"?????????? SRID ??? ????????? ?? ????? ???? ????????. ??????? ??? ???????? " +"????????????? ????? ??? ???????." #. Tag: para #, no-c-format @@ -43034,11 +43216,15 @@ msgid "" "is assumed to be in. Use if you want to " "transform the geometry into a new projection." msgstr "" +"?? ??????? ?????? ????? ?? ??????????? ?????????? ????????? ? ???? ?????? " +"?????????? ????????, ?? ?????????? ?????????? ??????? ???????, ? ????, ?? " +"??????????????, ??????????? ?????????. ?????????????? , ???? ?? ?????? ?????????????? ????????? ? ???? ????????." #. Tag: para #, no-c-format msgid "-- Mark a point as WGS 84 long lat --" -msgstr "" +msgstr "-- ???????? ????? ?? WGS 84 long lat --" #. Tag: para #, no-c-format @@ -43046,6 +43232,8 @@ msgid "" "-- Mark a point as WGS 84 long lat and then transform to web mercator " "(Spherical Mercator) --" msgstr "" +"-- ???????? ????? ?? WGS 84 long lat, ? ????? ??????????? ?? ? ???-???????? (" +"????????? ????????) --" #. Tag: para #, no-c-format @@ -43053,16 +43241,18 @@ msgid "" ", , , " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format msgid "Returns the spatial reference identifier for a geometry." -msgstr "" +msgstr "???????? ????????????? ??????????? ????'???? ??? ?????????." #. Tag: para #, no-c-format msgid "&sqlmm_compliant; SQL-MM 3: 5.1.5" -msgstr "" +msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.5" #. Tag: para #, no-c-format @@ -43070,6 +43260,8 @@ msgid "" ", , , , " msgstr "" +", , , , " #. Tag: refpurpose #, no-c-format @@ -43077,6 +43269,8 @@ msgid "" "Return a new geometry with coordinates transformed to a different spatial " "reference system." msgstr "" +"????????? ???? ????????? ? ????????????, ????????????? ? ???? ??????? " +"??????????? ?????????." #. Tag: para #, no-c-format @@ -43102,6 +43296,9 @@ msgid "" "reference system to another, while ST_SetSRID() simply changes the SRID " "identifier of the geometry." msgstr "" +"ST_Transform ????? ???????? ? . ST_Transform " +"???????? ?????? ?????????? ????????? ? ?????? ??????? ??????????? ????????? " +"?? ????, ???? ?? ST_SetSRID() ?????? ?????? ????????????? SRID ?????????." #. Tag: para #, no-c-format @@ -43110,6 +43307,10 @@ msgid "" "source and target spatial reference systems. To use a specific conversion " "method, use ." msgstr "" +"ST_Transform ??????????? ??????? ??????????? ??????? ????????????, " +"?????????? ??????? ?? ??????? ?????????? ??????? ?????????. ??? " +"??????????????? ?????????? ????? ????????????, ????????????? ." #. Tag: para #, no-c-format @@ -43118,6 +43319,8 @@ msgid "" "linkend=\"PostGIS_Full_Version\"/> to confirm you have PROJ support compiled " "in." msgstr "" +"??????? ?????????? PostGIS ? ?????????? PROJ. ?????????????? , ??? ???????????, ?? ????????? PROJ ?????????????." #. Tag: para #, no-c-format @@ -43125,21 +43328,26 @@ msgid "" "If using more than one transformation, it is useful to have a functional " "index on the commonly used transformations to take advantage of index usage." msgstr "" +"???? ???????????????? ?????? ?????? ????????????, ??????? ???? " +"?????????????? ?????? ??? ????? ???????????????? ???????????, ??? " +"???????????? ?????????? ???????????? ???????." #. Tag: para #, no-c-format msgid "Enhanced: 2.3.0 support for direct PROJ.4 text was introduced." -msgstr "" +msgstr "?????????: 2.3.0 ?????? ????????? ??????? ?????? PROJ.4." #. Tag: para #, no-c-format msgid "&sqlmm_compliant; SQL-MM 3: 5.1.6" -msgstr "" +msgstr "&sqlmm_compliant; SQL-MM 3: 5.1.6" #. Tag: para #, no-c-format msgid "Change Massachusetts state plane US feet geometry to WGS 84 long lat" msgstr "" +"??????? ????????? ??????? ????? ??????????? ? ????????????? ????? ?? WGS 84 " +"???????-??????" #. Tag: para #, no-c-format @@ -43149,17 +43357,23 @@ msgid "" "that leaves out null geometries which will both conserve space and make your " "index smaller and more efficient." msgstr "" +"??????? ????????? ?????????? ??????????????? ???????. ??? ???????, ? ???? ?? " +"?? ????????, ?? ??? ????????? ?????? ?????????, ???????? ??????????????? " +"????????? ??????, ???? ?????? ??????? ?????????, ?? ????????? ????????? " +"??????? ? ??????? ??? ?????? ?????? ?? ????????????." #. Tag: para #, no-c-format msgid "" "Examples of using PROJ.4 text to transform with custom spatial references." msgstr "" +"???????? ???????????? ?????? PROJ.4 ??? ???????????? ? ????????????? ??????? " +"??????????? ????????." #. Tag: title #, no-c-format msgid "Configuring transformation behavior" -msgstr "" +msgstr "???????????? ????????? ????????????" #. Tag: para #, no-c-format @@ -43180,6 +43394,8 @@ msgid "" "For example, the proj4text parameter +datum=NAD87 is a shorthand form for " "the following +nadgrids parameter:" msgstr "" +"?????????, ???????? proj4text +datum=NAD87 ? ?????????? ?????? ??? " +"?????????? ????????? +nadgrids:" #. Tag: para #, no-c-format @@ -43188,6 +43404,9 @@ msgid "" "the end of the list is reached with no file having been appropriate (ie. " "found and overlapping) then an error is issued." msgstr "" +"??????? @ ???????, ?? ??????? ?? ??????????????, ???? ????? ????????, ??? " +"???? ?????? ?????? ?????????, ? ??????????? ???? ?? ???????? (????? ???????? " +"? ??????????????), ?? ????????? ???????." #. Tag: para #, no-c-format @@ -43196,6 +43415,9 @@ msgid "" "present, but that if all files were scanned without a hit a null " "transformation is applied you could use:" msgstr "" +"????, ???????, ?? ?????? ????????????, ?? ????????? ?????????? ????? " +"????????, ??? ???? ??? ????? ???? ???????????? ??? ??????????, " +"?????????????? ??????? ????????????, ?? ?????? ???????????????:" #. Tag: para #, no-c-format @@ -43205,6 +43427,11 @@ msgid "" "PostGIS so that transformations to SRID 4267 that didn't lie within the " "correct range did not throw an ERROR, you would use the following:" msgstr "" +"???? ????????? ????? ????? ? ??????? ?????? ????? ?????, ?? ??????? ???? " +"???? ? ?? ?????????? ??????? ?????. ????, ??? ??????? ????????, ???? ?? " +"?????? ??????? PostGIS ???, ??? ???????????? ?? SRID 4267, ??? ?? ?????? ? " +"??????????? ?????????, ?? ????????? ??????? ERROR, ?? ??????? ??????????? " +"????????:" #. Tag: para #, no-c-format @@ -43212,6 +43439,8 @@ msgid "" ", , , , " msgstr "" +", , , , " #. Tag: refpurpose #, no-c-format @@ -43220,6 +43449,9 @@ msgid "" "different spatial reference system using a defined coordinate transformation " "pipeline." msgstr "" +"????????? ???? ????????? ? ????????????, ????????????? ? ???? " +"??????? ??????????? ????????? ?? ????????? ??????????? ???????? ???????????? " +"?????????." #. Tag: para #, no-c-format @@ -43228,6 +43460,9 @@ msgid "" "spatial reference system using a defined coordinate transformation pipeline." "" msgstr "" +"????????? ???? ????????? ? ????????????, ????????????? ? ???? ??????? " +"??????????? ????????? ?? ????????? ??????????? ???????? ???????????? " +"?????????." #. Tag: para #, no-c-format @@ -43235,6 +43470,8 @@ msgid "" "Transformation pipelines are defined using any of the following string " "formats:" msgstr "" +"???????????? ????????????? ???????????? ?? ????????? ????-????? ? ????????? " +"???????? ??????:" #. Tag: para #, no-c-format @@ -43243,6 +43480,10 @@ msgid "" "that a simple EPSG:CODE string does not uniquely identify " "a coordinate operation: the same EPSG code can be used for a CRS definition." msgstr "" +"urn:ogc:def:coordinateOperation:AUTHORITY::CODE. ???????? " +"?????, ?? ??????? ????? EPSG:CODE ?? ??????????? " +"??????????? ???????? ??????????: ??? ????? ??? EPSG ???? ????????????????? " +"??? ?????????? CRS." #. Tag: para #, no-c-format @@ -43252,6 +43493,10 @@ msgid "" "caller will need to add an additional pipeline step, or remove " "axisswap steps." msgstr "" +"????? ???????? PROJ ? ???????: +proj=pipeline .... " +"??????????? ???????????? ???? ?? ???????????????????, ? ?? ???????????? " +"?????????? ??????? ??????? ???? ?????? ?????????? ???? ???????? ??? ???????? " +"????? axisswap." #. Tag: para #, no-c-format @@ -43260,6 +43505,8 @@ msgid "" "coordinateOperation,coordinateOperation:EPSG::3895,coordinateOperation:" "EPSG::1618." msgstr "" +"?'?????? ???????? ? ?????: urn:ogc:def:coordinateOperation,coordinat" +"eOperation:EPSG::3895,coordinateOperation:EPSG::1618." #. Tag: para #, no-c-format @@ -43271,16 +43518,22 @@ msgid "" "linkend=\"ST_InverseTransformPipeline\"/> the pipeline is executed in the " "inverse direction." msgstr "" +"SRID ??????? ????????? ???????????, ? SRID ???????? ????????? ???? " +"??????????? ?? ????, ???? ???????? ?? ???? ??????? ?? ????????? " +"????????????? ????????? to_srid. ??? ???????????? " +"`ST_TransformPipeline()` ??????? ??????????? ? ??????? ????????. ??? " +"???????????? ??????? " +"??????????? ? ?????????? ????????." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Return the list of SRS codes associated with the given authority." -msgstr "" +msgstr "????????? ?????? ????? SRS, ???'?????? ?? ?????????? ???????." #. Tag: para #, no-c-format @@ -43288,27 +43541,30 @@ msgid "" "Returns a set of all auth_srid for the given " "auth_name." msgstr "" +"???????? ????? ???? auth_srid ??? ???????? " +"auth_name." #. Tag: para #, no-c-format msgid "Proj version 6+" -msgstr "" +msgstr "?????? Proj 6+" #. Tag: para #, no-c-format msgid "List the first ten codes associated with the EPSG authority." -msgstr "" +msgstr "?????????? ????? ?????? ?????, ???'?????? ? ??????? EPSG." #. Tag: para #, no-c-format msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format msgid "Return a metadata record for the requested authority and srid." -msgstr "" +msgstr "????????? ????? ????????? ??? ???????????? ?????? ?? srid." #. Tag: para #, no-c-format @@ -43320,11 +43576,17 @@ msgid "" "corners of the area of usage, point_sw and " "point_ne." msgstr "" +"???????? ????? ????????? ??? ???????????? auth_srid ??? " +"???????? auth_name. ????? ???? ??????? " +"auth_name, auth_srid, srname, srtext, proj4text ?? ???? " +"??????? ????????????, point_sw ? " +"point_ne." #. Tag: para #, no-c-format msgid "Get the metadata for EPSG:3005." -msgstr "" +msgstr "???????? ???????? ??? EPSG:3005." #. Tag: refpurpose #, no-c-format @@ -43332,11 +43594,13 @@ msgid "" "Return metadata records for every spatial reference system in the underlying " "Proj database." msgstr "" +"????????? ?????? ????????? ??? ?????? ??????? ??????????? ????????? ? " +"??????? ???? ????? Proj." #. Tag: funcdef #, no-c-format msgid "setof record postgis_srs_all" -msgstr "" +msgstr "????? ??????? postgis_srs_all" #. Tag: para #, no-c-format @@ -43347,17 +43611,23 @@ msgid "" "proj4text, and the corners of the area of usage, " "point_sw and point_ne." msgstr "" +"???????? ????? ???? ??????? ????????? ? ??????? ???? ????? Proj. ?????? " +"???????? auth_name, auth_srid, " +"srname, srtext, proj4text ?? ???? ??????? ????????????, point_sw ? " +"point_ne." #. Tag: para #, no-c-format msgid "Get the first 10 metadata records from the Proj database." -msgstr "" +msgstr "????????? ????? 10 ??????? ????????? ? ???? ????? Proj." #. Tag: para #, no-c-format msgid "" ", , " msgstr "" +", , " #. Tag: refpurpose #, no-c-format @@ -43365,6 +43635,8 @@ msgid "" "Return metadata records for projected coordinate systems that have areas of " "usage that fully contain the bounds parameter." msgstr "" +"????????? ?????? ????????? ??? ???????????? ?????? ?????????, ??????? " +"???????????? ???? ???????? ??????? ???????? ???." #. Tag: para #, no-c-format @@ -43376,6 +43648,12 @@ msgid "" "varname>, and the corners of the area of usage, point_sw " "and point_ne." msgstr "" +"???????? ????? ??????? ????????? ??? ??????????? ?????? ?????????, ??????? " +"???????????? ???? ???????? ??????? ???????? ???. ????? ????? ?????? " +"auth_name, auth_srid, srname, srtext, proj4text ?? ???? " +"??????? ????????????, point_sw ? " +"point_ne." #. Tag: para #, no-c-format @@ -43383,11 +43661,14 @@ msgid "" "The search only looks for projected coordinate systems, and is intended for " "users to explore the possible systems that work for the extent of their data." msgstr "" +"????? ????? ?????? ?????????? ??????? ????????? ? ??????????? ??? ????, ??? " +"??????????? ????? ??????? ??????? ???????, ??? ????????? ??? ?????? ????? " +"?????." #. Tag: para #, no-c-format msgid "Search for projected coordinate systems in Louisiana." -msgstr "" +msgstr "????? ??????????? ?????? ????????? ? ????????." #. Tag: para #, no-c-format @@ -43395,16 +43676,18 @@ msgid "" "Scan a table for max extent and find projected coordinate systems that might " "suit." msgstr "" +"??????????? ??????? ??? ????????????? ????????? ?? ???????? ?????????? " +"??????? ?????????." #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: title #, no-c-format msgid "Trajectory Functions" -msgstr "" +msgstr "??????? ??????????" #. Tag: para #, no-c-format @@ -43414,11 +43697,15 @@ msgid "" "temporal data can be modeled by using relative times (such as the epoch) as " "the measure values." msgstr "" +"?? ??????? ??????????? ?????? ? ????????????. ?????????? ? ?? ??????? " +"????????? ?? ??????????? ?????????? (???????? M) ?? ?????? ??????????. " +"??????????-?????? ???? ????? ??????????, ?????????????? ???????? ???? (" +"?????????, ?????) ?? ???????? ??????????." #. Tag: refpurpose #, no-c-format msgid "Tests if the geometry is a valid trajectory." -msgstr "" +msgstr "?????????, ?? ? ????????? ??????? ???????????." #. Tag: para #, no-c-format @@ -43427,6 +43714,9 @@ msgid "" "represented as a LINESTRING with measures (M values). The " "measure values must increase from each vertex to the next." msgstr "" +"?????????, ?? ????????? ????? ?????? ??????????. ?????? ?????????? " +"???????????? ?? LINESTRING ? ???????? (?????????? M). " +"???????? ??????? ??????? ????????????? ??? ?????? ??????? ?? ?????????." #. Tag: para #, no-c-format @@ -43434,11 +43724,13 @@ msgid "" "Valid trajectories are expected as input to spatio-temporal functions like " "" msgstr "" +"?????????? ?????? ?????????? ?? ?????? ???? ??? ??????????-??????? ???????, " +"????? ?? " #. Tag: refpurpose #, no-c-format msgid "Returns a measure at the closest point of approach of two trajectories." -msgstr "" +msgstr "???????? ???? ? ?????????? ????? ????????? ???? ??????????." #. Tag: para #, no-c-format @@ -43446,6 +43738,8 @@ msgid "" "Returns the smallest measure at which points interpolated along the given " "trajectories are the least distance apart." msgstr "" +"???????? ???????? ????????, ??? ???? ?????, ?????????????? ?????? ??????? " +"??????????, ??????????? ?? ????????? ???????? ???? ??? ?????." #. Tag: para #, no-c-format @@ -43454,6 +43748,9 @@ msgid "" "linkend=\"ST_IsValidTrajectory\"/>. Null is returned if the trajectories do " "not overlap in their M ranges." msgstr "" +"?????? ???? ??????? ???? ???????? ????????????, ???????????? ?? ????????? " +". ???? ?????????? ?? ????????????? ? " +"?????????? M, ???????????? ???????? Null." #. Tag: para #, no-c-format @@ -43461,6 +43758,8 @@ msgid "" "To obtain the actual points at the computed measure use ." msgstr "" +"??? ???????? ???????? ????? ?? ?????????? ???????, ?????????????? ." #. Tag: para #, no-c-format @@ -43468,13 +43767,15 @@ msgid "" ", , , " "" msgstr "" +", , , " +"" #. Tag: refpurpose #, no-c-format msgid "" "Returns the distance between the closest point of approach of two " "trajectories." -msgstr "" +msgstr "???????? ???????? ??? ?????????? ?????? ????????? ???? ??????????." #. Tag: para #, no-c-format @@ -43482,6 +43783,8 @@ msgid "" "Returns the distance (in 2D) between two trajectories at their closest point " "of approach." msgstr "" +"???????? ???????? (? 2D) ??? ????? ???????????? ? ????? ?? ??????????? " +"?????????." #. Tag: para #, no-c-format @@ -43489,6 +43792,8 @@ msgid "" ", , , " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format @@ -43496,6 +43801,8 @@ msgid "" "Tests if the closest point of approach of two trajectories is within the " "specified distance." msgstr "" +"?????????, ?? ????????? ????? ????????? ???? ?????????? ??????????? ? ????? " +"??????? ????????." #. Tag: para #, no-c-format @@ -43503,6 +43810,8 @@ msgid "" "Tests whether two moving objects have ever been closer than the specified " "distance." msgstr "" +"?????????, ?? ??? ?????? ??'???? ????-?????? ???? ??????, ??? ????????? " +"????????." #. Tag: para #, no-c-format @@ -43511,6 +43820,9 @@ msgid "" "linkend=\"ST_IsValidTrajectory\"/>. False is returned if the trajectories do " "not overlap in their M ranges." msgstr "" +"?????? ???? ??????? ???? ???????? ????????????, ???????????? ?? ????????? " +". ???? ?????????? ?? ????????????? ? " +"?????????? M, ???????????? ???????? False." #. Tag: para #, no-c-format @@ -43518,11 +43830,13 @@ msgid "" ", , , " msgstr "" +", , , " #. Tag: title #, no-c-format msgid "Affine Transformations" -msgstr "" +msgstr "?????? ????????????" #. Tag: para #, no-c-format @@ -43531,11 +43845,14 @@ msgid "" "xlink:href=\"https://en.wikipedia.org/wiki/Affine_transformation\">affine " "transformations." msgstr "" +"?? ??????? ???????? ????????? ?? ????? ????????? ?? ????????? ??????? " +"???????????." #. Tag: refpurpose #, no-c-format msgid "Apply a 3D affine transformation to a geometry." -msgstr "" +msgstr "??????????? ?????? ???????????? 3D ?? ?????????." #. Tag: para #, no-c-format @@ -43543,6 +43860,8 @@ msgid "" "Applies a 3D affine transformation to the geometry to do things like " "translate, rotate, scale in one step." msgstr "" +"?????????? 3D ?????? ???????????? ?? ?????????, ??? ???????? ???? ???, ?? " +"???????????, ?????????, ????????????? ?? ???? ????." #. Tag: para #, no-c-format @@ -43558,6 +43877,17 @@ msgid "" "z' = g*x + h*y + i*z + zoff All of the translate / scale " "functions below are expressed via such an affine transformation." msgstr "" +"?????? 1: ?????? ST_Affine(geom, a, b, c, d, e, f, g, h, i, " +"xoff, yoff, zoff) ??????????? ??????? ???????????? " +"/ a b c xoff \\\n" +"| d e f yoff |\n" +"| g h i zoff |\n" +"\\ 0 0 0 1 / ? ??????? ?????????????? ????????? ?????:" +" x' = a*x + b*y + c*z + xoff\n" +"y' = d*x + e*y + f*z + yoff\n" +"z' = g*x + h*y + i*z + zoff ??? ??????? ????????????/" +"?????????????, ???????? ?????, ??????????? ?? ????????? ?????? ???????? " +"????????????." #. Tag: para #, no-c-format @@ -43573,11 +43903,21 @@ msgid "" "y' = d*x + e*y + yoff\n" "z' = z This method is a subcase of the 3D method above." msgstr "" +"?????? 2: ?????????? 2D ?????? ???????????? ?? ?????????. ?????? " +"ST_Affine(geom, a, b, d, e, xoff, yoff) " +"??????????? ??????? ????????????. / a b 0 xoff \\" +" / a b xoff \\\n" +"| d e 0 yoff | rsp. | d e yoff |\n" +"| 0 0 1 0 | \\ 0 0 1 /\n" +"\\ 0 0 0 1 / ? ??????? ??????????????? ????????? " +"?????: x' = a*x + b*y + xoff\n" +"y' = d*x + e*y + yoff\n" +"z' = z ??? ????? ? ???????? ??????????????? 3D-??????." #. Tag: para #, no-c-format msgid "Availability: 1.1.2. Name changed from Affine to ST_Affine in 1.2.2" -msgstr "" +msgstr "???????????: 1.1.2. ????? ??????? ? Affine ?? ST_Affine ? ?????? 1.2.2" #. Tag: para #, no-c-format @@ -43585,11 +43925,13 @@ msgid "" ", , , " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry about an origin point." -msgstr "" +msgstr "??????? ????????? ??????? ????? ??????? ?????????." #. Tag: para #, no-c-format @@ -43599,6 +43941,10 @@ msgid "" "coordinates. If the origin is not specified, the geometry is rotated about " "POINT(0 0)." msgstr "" +"??????? ????????? rotRadians ????? ???????????? ??????? ??????? ????? " +"??????? ?????????. ??????? ????????? ????? ??????? ?? ????????? POINT ??? ?? " +"?????????? x ?? y. ???? ??????? ????????? ?? ???????, ????????? ??????????? " +"??????? POINT(0 0)." #. Tag: para #, no-c-format @@ -43606,11 +43952,12 @@ msgid "" "Enhanced: 2.0.0 additional parameters for specifying the origin of rotation " "were added." msgstr "" +"?????????: 2.0.0 ?????? ????????? ????????? ??? ?????????? ??????? ?????????." #. Tag: para #, no-c-format msgid "Availability: 1.1.2. Name changed from Rotate to ST_Rotate in 1.2.2" -msgstr "" +msgstr "???????????: 1.1.2. ????? ??????? ? Rotate ?? ST_Rotate ? ?????? 1.2.2" #. Tag: para #, no-c-format @@ -43618,16 +43965,18 @@ msgid "" ", , , " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry about the X axis." -msgstr "" +msgstr "??????? ????????? ??????? ??? X." #. Tag: para #, no-c-format msgid "Rotates a geometry geomA - rotRadians about the X axis." -msgstr "" +msgstr "??????? ????????? geomA - rotRadians ??????? ??? X." #. Tag: para #, no-c-format @@ -43636,26 +43985,30 @@ msgid "" "ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, " "sin(rotRadians), cos(rotRadians), 0, 0, 0)." msgstr "" +"ST_RotateX(geomA, rotRadians) ? ?????????? ????????? " +"ST_Affine(geomA, 1, 0, 0, 0, cos(rotRadians), -sin(rotRadians), 0, " +"sin(rotRadians), cos(rotRadians), 0, 0, 0)." #. Tag: para #, no-c-format msgid "Availability: 1.1.2. Name changed from RotateX to ST_RotateX in 1.2.2" msgstr "" +"???????????: 1.1.2. ????? ??????? ? RotateX ?? ST_RotateX ? ?????? 1.2.2" #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry about the Y axis." -msgstr "" +msgstr "??????? ????????? ??????? ??? Y." #. Tag: para #, no-c-format msgid "Rotates a geometry geomA - rotRadians about the y axis." -msgstr "" +msgstr "??????? ????????? geomA - rotRadians ??????? ??? y." #. Tag: para #, no-c-format @@ -43664,31 +44017,35 @@ msgid "" "ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, -" "sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)." msgstr "" +"ST_RotateY(geomA, rotRadians) ? ?????????? ????????? " +"ST_Affine(geomA, cos(rotRadians), 0, sin(rotRadians), 0, 1, 0, " +"-sin(rotRadians), 0, cos(rotRadians), 0, 0, 0)." #. Tag: para #, no-c-format msgid "Availability: 1.1.2. Name changed from RotateY to ST_RotateY in 1.2.2" msgstr "" +"???????????: 1.1.2. ????? ??????? ? RotateY ?? ST_RotateY ? ?????? 1.2.2." #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Rotates a geometry about the Z axis." -msgstr "" +msgstr "??????? ????????? ??????? ??? Z." #. Tag: para #, no-c-format msgid "Rotates a geometry geomA - rotRadians about the Z axis." -msgstr "" +msgstr "??????? ????????? geomA - rotRadians ??????? ??? Z." #. Tag: para #, no-c-format msgid "This is a synonym for ST_Rotate" -msgstr "" +msgstr "?? ??????? ST_Rotate" #. Tag: para #, no-c-format @@ -43697,21 +44054,25 @@ msgid "" "ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, sin(rotRadians), " "cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)." msgstr "" +"ST_RotateZ(geomA, rotRadians) ? ?????????? ????????? " +"SELECT ST_Affine(geomA, cos(rotRadians), -sin(rotRadians), 0, " +"sin(rotRadians), cos(rotRadians), 0, 0, 0, 1, 0, 0, 0)." #. Tag: para #, no-c-format msgid "Availability: 1.1.2. Name changed from RotateZ to ST_RotateZ in 1.2.2" msgstr "" +"???????????: 1.1.2. ????? ??????? ? RotateZ ?? ST_RotateZ ? ?????? 1.2.2" #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Scales a geometry by given factors." -msgstr "" +msgstr "????????? ????????? ?? ???????? ?????????????." #. Tag: para #, no-c-format @@ -43719,6 +44080,8 @@ msgid "" "Scales the geometry to a new size by multiplying the ordinates with the " "corresponding factor parameters." msgstr "" +"????????? ????????? ?? ?????? ???????, ?????????? ???????? ?? ?????????? " +"????????? ????????????." #. Tag: para #, no-c-format @@ -43728,6 +44091,11 @@ msgid "" "supported dimensions. Missing dimensions in the factor " "point are equivalent to no scaling the corresponding dimension." msgstr "" +"??????, ?? ??????? ????????? ?? ???????? factor, ???????? " +"?????????? 2d, 3dm, 3dz ??? 4d ????? ??? ???????????? ??????????? " +"????????????? ??? ???? ????????????? ???????. ???????? ?????? ? ????? " +"factor ???????????? ??????????? ????????????? " +"???????????? ??????." #. Tag: para #, no-c-format @@ -43738,11 +44106,16 @@ msgid "" "place relative to the actual origin, so all coordinates are just multiplied " "by the scale factor." msgstr "" +"??????? ? ?????? ??????????? ???????? ?????????? ?????? ????? ???????? ??? " +"?????????????. ?? ???????? ??????????? ?????????????? ?? ??????, ?????????, " +"?????????????? ???????? ????????? ?? ????? ????? ???????. ??? ?????? ????? " +"??????? ????????????? ???????????? ???????? ????????? ????? ???????, ???? " +"??? ?????????? ?????? ????????? ?? ?????????? ?????????????." #. Tag: para #, no-c-format msgid "Availability: 1.1.0." -msgstr "" +msgstr "???????????: 1.1.0." #. Tag: para #, no-c-format @@ -43750,6 +44123,8 @@ msgid "" "Enhanced: 2.2.0 support for scaling all dimension (factor " "parameter) was introduced." msgstr "" +"?????????: 2.2.0 ?????? ????????? ????????????? ???? ???????? (???????? " +"factor)." #. Tag: para #, no-c-format @@ -43757,16 +44132,18 @@ msgid "" "Enhanced: 2.5.0 support for scaling relative to a local origin " "(origin parameter) was introduced." msgstr "" +"?????????: 2.5.0 ?????? ????????? ????????????? ???????? ?????????? ??????? " +"????????? (???????? origin)." #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Translates a geometry by given offsets." -msgstr "" +msgstr "?????????? ????????? ?? ???????? ??????????." #. Tag: para #, no-c-format @@ -43775,36 +44152,40 @@ msgid "" "delta z units. Units are based on the units defined in spatial reference " "(SRID) for this geometry." msgstr "" +"???????? ???? ?????????, ?????????? ???? ??????? ?? ???????? delta x, delta " +"y, delta z ???????. ??????? ?????? ????????? ?? ????????, ?????????? ? " +"??????????? ??????? ????????? (SRID) ??? ???? ?????????." #. Tag: para #, no-c-format msgid "Move a point 1 degree longitude" -msgstr "" +msgstr "??????????? ????? ?? 1 ?????? ???????" #. Tag: para #, no-c-format msgid "Move a linestring 1 degree longitude and 1/2 degree latitude" -msgstr "" +msgstr "??????????? ????? ?? 1 ?????? ??????? ?? 1/2 ??????? ??????" #. Tag: para #, no-c-format msgid "Move a 3d point" -msgstr "" +msgstr "??????????? 3D-?????" #. Tag: para #, no-c-format msgid "Move a curve and a point" -msgstr "" +msgstr "??????????? ?????? ?? ?????" #. Tag: para #, no-c-format msgid ", , " -msgstr "" +msgstr ", , " #. Tag: refpurpose #, no-c-format msgid "Translates and scales a geometry by given offsets and factors." msgstr "" +"?????????? ?? ????????? ????????? ?? ???????? ?????????? ?? ?????????????." #. Tag: para #, no-c-format @@ -43812,6 +44193,8 @@ msgid "" "Translates the geometry using the deltaX and deltaY args, then scales it " "using the XFactor, YFactor args, working in 2D only." msgstr "" +"?????????? ????????? ?? ????????? ?????????? deltaX ? deltaY, ? ????? " +"????????? ?? ?? ????????? ?????????? XFactor ? YFactor, ???????? ?????? ? 2D." #. Tag: para #, no-c-format @@ -43820,11 +44203,14 @@ msgid "" "hand for ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, " "deltaX*XFactor, deltaY*YFactor, 0)." msgstr "" +"ST_TransScale(geomA, deltaX, deltaY, XFactor, YFactor) ? " +"?????????? ????????? ST_Affine(geomA, XFactor, 0, 0, 0, YFactor, 0, 0, " +"0, 1, deltaX*XFactor, deltaY*YFactor, 0)." #. Tag: title #, no-c-format msgid "Troubleshooting Functions" -msgstr "" +msgstr "??????? ???????? ?????????????" #. Tag: para #, no-c-format @@ -43833,11 +44219,14 @@ msgid "" "data. They are only needed if the geometry data is corrupted in some way, " "which should never happen under normal circumstances." msgstr "" +"?? ??????? ? ????????? ??? ???????? ????????????? ?? ??????????? " +"???????????? ?????. ???? ???????? ???? ? ???????, ???? ??????????? ???? " +"??????? ????? ??????????, ?? ?? ????????? ???????? ?? ??????? ??????????." #. Tag: title #, no-c-format msgid "PostGIS Geometry/Geography/Box Data Types" -msgstr "" +msgstr "???? ????? PostGIS Geometry/Geography/Box" #. Tag: para #, no-c-format @@ -43845,6 +44234,8 @@ msgid "" "This section lists the custom PostgreSQL data types installed by PostGIS to " "represent spatial data." msgstr "" +"? ????? ??????? ?????????? ?????? ???? ????? PostgreSQL, ??????????? PostGIS " +"??? ????????????? ??????????? ?????." #. Tag: para #, no-c-format @@ -43858,6 +44249,14 @@ msgid "" "automatic conversion of a function argument to a type supported by the " "function." msgstr "" +"????? ??? ????? ?????? ???? ????????? ??? ???????????? ?????. ???????????? ????? ?????????? ???????? " +"?????? ???? ????? ? ????? ???. PostgreSQL ???????? ????????? ????????? " +"???????????? ??? ??????? ?????, ? ????? ???????, ?? ???????????????? ??? " +"???????????? ??????? ?????. ???????????? ?????? ???? ??????????? ?????????, ?? ???????? ??????????? ????????????? " +"???????? ??????? ?? ???, ???? ????????????? ????????." #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/uk/postgis-manual.po | 639 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 519 insertions(+), 120 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 25 12:47:57 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 12:47:57 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-267-g4fc88ae35 Message-ID: <20251225204757.BE7191A433C@trac.osgeo.org> 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 4fc88ae3594e75102cbdf7558207455505e7b426 (commit) from f359b90a90ef80b69204e61762a0e09e9cc1730d (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 4fc88ae3594e75102cbdf7558207455505e7b426 Author: Denys Kovshun Date: Thu Dec 25 19:43:35 2025 +0000 Translated PostGIS Manual using Weblate (Ukrainian) Currently translated at 85.6% (5049 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/uk/ diff --git a/doc/po/uk/postgis-manual.po b/doc/po/uk/postgis-manual.po index 8789eb43f..9e55330d7 100644 --- a/doc/po/uk/postgis-manual.po +++ b/doc/po/uk/postgis-manual.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-25 17:47+0000\n" +"PO-Revision-Date: 2025-12-25 20:47+0000\n" "Last-Translator: Denys Kovshun \n" "Language-Team: Ukrainian \n" @@ -44278,6 +44278,8 @@ msgid "" "All data types can be cast to text, so this does not need " "to be specified explicitly." msgstr "" +"??? ???? ????? ?????? ???? ??????????? ? text, ???? ?? ?? " +"???????? ????????? ????." #. Tag: refpurpose #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/uk/postgis-manual.po | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 25 21:41:44 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 21:41:44 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-268-g7e8d735ce Message-ID: <20251226054145.2B95F1A61E9@trac.osgeo.org> 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 7e8d735ce13be723669ffefc7dd81073d4453a27 (commit) from 4fc88ae3594e75102cbdf7558207455505e7b426 (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 7e8d735ce13be723669ffefc7dd81073d4453a27 Author: Wangdapeng Date: Fri Dec 26 05:18:14 2025 +0000 Translated PostGIS Manual using Weblate (Chinese (Simplified)) Currently translated at 97.0% (5718 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/zh_Hans/ diff --git a/doc/po/zh_Hans/postgis-manual.po b/doc/po/zh_Hans/postgis-manual.po index bd88e2564..f73f3e976 100644 --- a/doc/po/zh_Hans/postgis-manual.po +++ b/doc/po/zh_Hans/postgis-manual.po @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-07-28 08:47+0000\n" -"Last-Translator: Weblate \n" +"PO-Revision-Date: 2025-12-26 05:41+0000\n" +"Last-Translator: Wangdapeng \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -54,6 +54,11 @@ msgid "" "You can also use the more cross-platform approach of setting the " "corresponding ." msgstr "" +"Out-of-db ????????????? raster???? raster " +"????????????????????????????????? " +"POSTGIS_GDAL_ENABLED_DRIVERS ? " +"POSTGIS_ENABLE_OUTDB_RASTERS???????????????" +"??????? ?" #. Tag: para #, no-c-format @@ -93,6 +98,10 @@ msgid "" "CLUSTER/environment where the " "placeholders refer to the PostgreSQL major version and cluster name." msgstr "" +"?????????????????????? Ubuntu ? Debian ??? apt-" +"postgresql ??? PostgreSQL?????????/etc/postgresql/MAJOR/CLUSTER/environment ???????????? PostgreSQL ???????????" #. Tag: para #, no-c-format @@ -131,7 +140,8 @@ msgstr "?????EXTENSION????????" msgid "" "If you have compiled and installed the extensions/postgis modules, you can " "turn a database into a spatial one using the EXTENSION mechanism." -msgstr "" +msgstr "???????????? extensions/postgis ???????? EXTENSION " +"??????????????????" #. Tag: para #, no-c-format @@ -273,7 +283,7 @@ msgstr "" #. Tag: title #, no-c-format msgid "Soft upgrade using extensions" -msgstr "" +msgstr "?? EXTENSION ???" #. Tag: para #, no-c-format @@ -282,6 +292,8 @@ msgid "" "upgrade using extensions as well. Doing a minor upgrade with extensions is " "fairly painless." msgstr "" +"??????? EXTENSION ????? PostGIS????????????? " +"EXTENSION ????? EXTENSION ?????????????????????" #. Tag: para #, no-c-format @@ -289,6 +301,8 @@ msgid "" "Use the function to upgrade " "to the latest version you have installed." msgstr "" +"?? ????? PostGIS " +"???????????????" #. Tag: para #, no-c-format @@ -299,6 +313,10 @@ msgid "" "postgis_raster objects are folded back into the main " "extension." msgstr "" +"????????????? PostGIS 2.5?????? ALTER " +"EXTENSION?????? " +"postgis_extensions_upgrade()???????? " +"postgis_raster ???????????????????" #. Tag: para #, no-c-format @@ -369,7 +387,7 @@ msgstr "" #. Tag: title #, no-c-format msgid "Soft upgrade without extensions" -msgstr "" +msgstr "??? EXTENSION ???" #. Tag: para #, no-c-format @@ -379,6 +397,9 @@ msgid "" "linkend=\"hard_upgrade\">HARD UPGRADE into a database created with " "extensions and migrate your data there." msgstr "" +"??? PostGIS ????????????????????????" +"???????? HARD " +"UPGRADE??????????????????????????????" #. Tag: title #, no-c-format @@ -620,6 +641,9 @@ msgid "" "postgresql.conf or postgresql.auto.conf by using " "the ALTER SYSTEM command." msgstr "" +"???? ALTER SYSTEM ?????????? PostgreSQL ???" +"??????? postgresql.conf ? postgresql.auto.conf ?" #. Tag: para #, no-c-format @@ -658,6 +682,8 @@ msgid "" "they are in an inherited hierarchy and avoids paying the planner penalty " "otherwise." msgstr "" +"?????????????? \"partition\" ?????????????????" +"???????????????????????????????????" #. Tag: link #, no-c-format @@ -667,7 +693,7 @@ msgstr "?????" #. Tag: para #, no-c-format msgid "Default: ~128MB" -msgstr "" +msgstr "Default: ~128MB" #. Tag: para #, no-c-format @@ -686,6 +712,9 @@ msgid "" "and therefore also bounds how many workers can participate in parallel " "queries." msgstr "" +"max_worker_processes " +"????????????????????????????????????" #. Tag: para #, no-c-format @@ -782,6 +811,12 @@ msgid "" "sure to bump up max_worker_processes to at least as high as " "this number." msgstr "" +"PostgreSQL / PostGIS " +"??????????????????????????????????????" +"???????? 0?? ST_Intersects " +"??????????????????????????????????" +"?????? CPU ????????????????????????? " +"max_worker_processes ???????????????" #. Tag: para #, no-c-format @@ -1385,7 +1420,7 @@ msgstr "????????" #. Tag: para #, no-c-format msgid "(28). A 5 digit number. Identifies a ZIP code" -msgstr "" +msgstr "(28). ??5???????? ZIP Code" #. Tag: para #, no-c-format @@ -1510,6 +1545,8 @@ msgid "" "(token number \"13\"). (SADS elements \"ZIP CODE\" , \"PLUS 4\" ). This " "attribute is used for both the US ZIP and the Canadian postal codes." msgstr "" +"(token number \"13\"). (SADS elements \"ZIP CODE\" , \"PLUS 4\" ). " +"?????????? ZIP ? ????????" #. Tag: para #, no-c-format @@ -1974,6 +2011,8 @@ msgid "" "located in the extras/history_table directory of the " "PostGIS source tree." msgstr "" +"history_table ???? plpgsql ?????PostGIS??? " +"extras/history_table ????" #. Tag: para #, no-c-format @@ -2126,6 +2165,9 @@ msgid "" "suffixes, states, various control tables for managing data load, and " "skeleton base tables from which all the TIGER-loaded tables inherit." msgstr "" +"??????????? tiger ? schema??????? " +"TIGER ???????????????????????????????? TIGER " +"????????????" #. Tag: para #, no-c-format @@ -2139,6 +2181,13 @@ msgid "" "faces, edges, etc located in the " "tiger schema." msgstr "" +"???????? tiger_data ? schema????????? " +"Census ???????????????????????????????????" +"?????????? ma_addr?ma_edges " +"?????????????????????????????????? " +"tiger schema ????? " +"addr?faces?edges " +"??" #. Tag: para #, no-c-format @@ -2149,6 +2198,10 @@ msgid "" "different schema for each state, as long as all the tables inherit from the " "tables in the tiger schema." msgstr "" +"????????????????????????? schema ?????? " +"tiger_data??????????????? schema ?? " +"?????????? schema?????????? tiger " +"schema ?????????????" #. Tag: para #, no-c-format @@ -2171,6 +2224,12 @@ msgid "" "have data from tiger_2010 and want to replace with tiger_2015, refer to " "" msgstr "" +"????? TIGER Geocoder (tiger_2010)????? extras/tiger ???? " +"upgrade_geocoder.bat / .sh ??????????tiger_2010 " +"? tiger_2011+ ???????????county ? state " +"??????????????????????tiger_2015???? " #. Tag: para #, no-c-format @@ -2178,6 +2237,8 @@ msgid "" "You can install the TIGER Geocoder with the PostgreSQL extension model. " "Refer to for details." msgstr "" +"???? PostgreSQL ??????? TIGER Geocoder???????? ?" #. Tag: para #, no-c-format @@ -2214,7 +2275,8 @@ msgstr "" msgid "" "The reverse_geocode function is useful for deriving the " "street address and cross streets of a GPS location." -msgstr "" +msgstr "reverse_geocode ?????? GPS " +"?????????????????????" #. Tag: para #, no-c-format @@ -2256,7 +2318,8 @@ msgstr "" msgid "" "There are a couple other open source geocoders for PostGIS, that unlike the " "TIGER Geocoder have the advantage of multi-country geocoding support" -msgstr "" +msgstr "????????? PostGIS ????????? TIGER " +"Geocoder?????????????????" #. Tag: para #, no-c-format @@ -2270,6 +2333,13 @@ msgid "" "interface like the TIGER Geocoder, or if a good deal of the logic is " "implemented in the web interface." msgstr "" +"Nominatim ?? OpenStreetMap ?????????????? osm2pgsql ??????" +"???? PostgreSQL ? PostGIS???????? Web Service ???" +"??????? Web ????? TIGER Geocoder " +"??????????????????????????????????" +"???????? TIGER Geocoder ????? SQL ???" +"????????????? Web ??" #. Tag: para #, no-c-format @@ -41639,6 +41709,8 @@ msgid "" "[raster] New GUC postgis.gdal_cpl_debug, enables GDAL debugging messages and " "routes them into the PostgreSQL logging system. (Paul Ramsey)" msgstr "" +"[raster] ?? GUC postgis.gdal_cpl_debug????? GDAL ?????" +"?????? PostgreSQL ??????Paul Ramsey?" #. Tag: para #, no-c-format @@ -41668,6 +41740,9 @@ msgid "" "pulls/242\">GT-242 [topology] Support for bigint (Ayo Adesugba, U.S. " "Census Bureau)" msgstr "" +"#3110, GT-242 [topology] ?bigint??(Ayo Adesugba, U.S. Census Bureau)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/zh_Hans/postgis-manual.po | 93 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 84 insertions(+), 9 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 25 22:31:37 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 22:31:37 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-269-ga984a1966 Message-ID: <20251226063137.BC1741A76DE@trac.osgeo.org> 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 a984a196672c4f36d13f3cb14f4267b7b17961d6 (commit) from 7e8d735ce13be723669ffefc7dd81073d4453a27 (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 a984a196672c4f36d13f3cb14f4267b7b17961d6 Author: Wangdapeng Date: Fri Dec 26 05:42:35 2025 +0000 Translated PostGIS Manual using Weblate (Chinese (Simplified)) Currently translated at 98.3% (5796 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/zh_Hans/ diff --git a/doc/po/zh_Hans/postgis-manual.po b/doc/po/zh_Hans/postgis-manual.po index f73f3e976..65afe130f 100644 --- a/doc/po/zh_Hans/postgis-manual.po +++ b/doc/po/zh_Hans/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-26 05:41+0000\n" +"PO-Revision-Date: 2025-12-26 06:31+0000\n" "Last-Translator: Wangdapeng \n" "Language-Team: Chinese (Simplified) \n" @@ -2352,6 +2352,12 @@ msgid "" "cross-platform and also has a reverse geocoder among some other neat " "features." msgstr "" +"GIS Graphy ????? " +"PostGIS ???? Nominatim ???? OpenStreetMap (OSM) " +"???????????????? OSM ???????? Nominatim " +"?????????????????????????????? Web Service?" +"?? Java 1.5?Servlet " +"???Solr??????????????????????????????" #. Tag: refpurpose #, no-c-format @@ -2799,6 +2805,8 @@ msgid "" "scripts, rerun it on the states you have already processed to get these " "additional tables." msgstr "" +"??????????????????????????? TIGER " +"Geocoder???????????????????????????????" #. Tag: para #, no-c-format @@ -2955,13 +2963,16 @@ msgid "" "when enabled, zcta5 data is loaded as a single table called zcta5_all as " "part of the nation script load." msgstr "" +"Enhanced: 2.4.1 ??? ZIP Code 5 ????zcta5???????????zcta5 " +"?????????????????????zcta5_all?" #. Tag: para #, no-c-format msgid "" "If you want ZIP Code 5 tabulation area (zcta5) to be included in your nation " "script load, do the following:" -msgstr "" +msgstr "??????????????????? ZIP Code 5 " +"????zcta5??????????????????" #. Tag: para #, no-c-format @@ -3184,7 +3195,7 @@ msgstr "" msgid "" "zip4 last 4 digits of a 9 digit ZIP Code. Availability: " "PostGIS 2.4.0." -msgstr "" +msgstr "zip4 9 ? ZIP Code ??? 4 ???????PostGIS 2.4.0?" #. Tag: para #, no-c-format @@ -3709,6 +3720,9 @@ msgid "" "functions, fixed known usability issues, documented the features and " "functions, added new functionality, and improved SQL-MM compliance." msgstr "" +"PostGIS ? topology ????????????????????????????" +"??????????????????????????????????????" +"???????????????????? SQL-MM ???????" #. Tag: para #, no-c-format @@ -3740,11 +3754,14 @@ msgid "" "without-topology configure option at build time as described in " msgstr "" +"Topology ????????????????? --without-topology " +"????????????????????? " #. Tag: title #, no-c-format msgid "Topology Primitive Tables" -msgstr "" +msgstr "?????" #. Tag: para #, no-c-format @@ -3760,6 +3777,14 @@ msgid "" "therefore appear twice?once for each orientation?when it belongs to two " "faces." msgstr "" +"????????????????? " +"edge_data?node ? face ??????????? ??? " +"schema ??edge_data ?????????????????? " +"start_node ?? end_node ???????" +"???????????left_face?????????" +"right_face?????????????????????????????" +"?????????" #. Tag: para #, no-c-format @@ -3771,6 +3796,11 @@ msgid "" "the stored orientation has to be followed as-is or reversed when traversing. " "Formally, the following rules hold for every edge e:" msgstr "" +"next_left_edge ? next_right_edge ??" +"??????????????????????????????????????" +"??????????????????? " +"ID??????????????????????????????? " +"e????????" #. Tag: para #, no-c-format @@ -3782,6 +3812,11 @@ msgid "" "negative the referenced edge must be followed backwards so that the shared " "face remains on the walker?s left." msgstr "" +"abs(next_left_edge) ????????? e ???????????????????? ID??????????" +"??? e ????????????????????????" +"??????????????????????????????????????" +"????????????" #. Tag: para #, no-c-format @@ -3793,6 +3828,10 @@ msgid "" "instructs to traverse the referenced edge in reverse, starting from its end " "node, so that the right-hand face is preserved." msgstr "" +"abs(next_right_edge) ?????????? e ??????????????????????? e " +"??????????????????????????????????????" +"?????????????????????????????????" #. Tag: para #, no-c-format @@ -3803,6 +3842,10 @@ msgid "" "abs_next_right_edge columns exposed by the edge view are convenience projections of these absolute values." msgstr "" +"?? 0 ?????????????????????????????????? " +"0??edge ?????? " +"abs_next_left_edge ? abs_next_right_edge ????????????????????????" #. Tag: para #, no-c-format @@ -3820,6 +3863,17 @@ msgid "" "linkend=\"TopologyPolygonize\"/>) may intentionally leave the fields unset, " "which is why the documentation flags their behaviour explicitly." msgstr "" +"??????????????????????????????? ? " +"?????????????????????????????" +"???????????? ?invalid next_left_edge? ? ?invalid " +"next_right_edge? ????????????? ?" +"?? next_* " +"?????????????????????????????? ????????????????????????????? ????????????????????????????????" #. Tag: title #, no-c-format @@ -4281,7 +4335,8 @@ msgstr "" msgid "" "Fixes topogeometry corruption caused by upgrade to postgis_topology 3.6.0 " "and higher" -msgstr "" +msgstr "?????? postgis_topology 3.6.0 ???????? topogeometry " +"??????" #. Tag: para #, no-c-format @@ -4291,16 +4346,19 @@ msgid "" "topogeometries created before the upgrade. This function fixes this " "corruption in affected tables." msgstr "" +"? PostGIS topology ?? <3.6.0 ??? >3.6.0+ ??topogeometry " +"?????????????????? topogeometry " +"????????????????????????????" #. Tag: para #, no-c-format msgid "Availability: 3.6.1" -msgstr "" +msgstr "????3.6.1" #. Tag: para #, no-c-format msgid "Fix all topology columns" -msgstr "" +msgstr "???? topology ?" #. Tag: refpurpose #, no-c-format @@ -4870,6 +4928,14 @@ msgid "" "relation (topogeo_id column from int4 to int8, element_id from int4 to int8) " "- topology (useslargeids column set to true)" msgstr "" +"?????????????????? ID?int8?????????? ID " +"??????? ID????????? face ?? face_id ? face_id_seq ? int4 " +"??? int8?? node ?? node_id?containing_face ?? node_id_seq ? int4 " +"??? int8?? edge_data ??? " +"edge_id?start_node?end_node?left_face?right_face?next_left_edge?" +"next_right_edge ???? edge_data_edge_id_seq ??? int4 ??? int8?? " +"relation ??? topogeo_id ? element_id ? int4 ??? int8???? " +"topology ??? useslargeids ??? true?????? ID ??" #. Tag: title #, no-c-format @@ -4998,7 +5064,7 @@ msgstr "?? SQL/MM ??????? #. Tag: para #, no-c-format msgid "Enhanced: 2.0 added support for hasZ." -msgstr "" +msgstr "Enhanced: 2.0 ??? hasZ ????" #. Tag: para #, no-c-format @@ -5006,6 +5072,8 @@ msgid "" "Enhanced: 3.6.0 added topoid and usesLargeIDs parameters." msgstr "" +"Enhanced: 3.6.0 ?? topoid ? usesLargeIDs ???" #. Tag: para #, no-c-format @@ -5180,6 +5248,8 @@ msgid "" "identifiers forming it up (negative identifies mean the edge goes in the " "opposite direction of the input linestring)." msgstr "" +"?????????? linestring?????????????? edge ????" +"??????? edge ??????? linestring ???" #. Tag: para #, no-c-format @@ -5187,14 +5257,16 @@ msgid "" "The given line will snap to existing nodes or edges within given tolerance. " "Existing edges and faces may be split by the line. New nodes and faces may " "be added, in addition to new edges." -msgstr "" +msgstr "??????????????????????????????????????" +"???????????????????????????" #. Tag: para #, no-c-format msgid "" "The returned edge identifiers may be either existing edges or newly created " "edges as needed to fully represent the input line as closely as possible." -msgstr "" +msgstr "??? edge ????????????????????????????????" +"????????????" #. Tag: para #, no-c-format @@ -5203,6 +5275,8 @@ msgid "" "uncovered or resulting from split of existing edges) may be limited by the " "max_edges parameter." msgstr "" +"???? edge ?????????????????????????????" +"?????? max_edges ??????" #. Tag: para #, no-c-format @@ -5223,7 +5297,7 @@ msgstr "???3.2.0 ?????????????????" msgid "" "Enhanced: 3.7.0 added support for limiting the number of new edges created " "in the topology." -msgstr "" +msgstr "Enhanced: 3.7.0 ?????????? edge ??????" #. Tag: para #, no-c-format @@ -6677,6 +6751,9 @@ msgid "" "geometry to existing primitives. The special value -1 (default) means use " "the topology precision as tolerance." msgstr "" +"??? tolerance " +"?????????????????????????? " +"-1??????????????????" #. Tag: para #, no-c-format @@ -6710,7 +6787,8 @@ msgstr "???2.1.0???????TopoGeometry????" msgid "" "Changed: 3.7.0 changes meaning of tolerance 0 to really mean 0 and -1 (new " "default) to request using the topology precision." -msgstr "" +msgstr "Changed: 3.7.0 ? tolerance ? 0 ????????? 0?? " +"-1????????????????" #. Tag: para #, no-c-format @@ -7743,6 +7821,15 @@ msgid "" "xlink:href=\"https://gitlab.com/sfcgal/SFCGAL/\">https://gitlab.com/sfcgal/" "SFCGAL/." msgstr "" +"SFCGAL ?? 1.4.1 ??????????????????? 2.1+?SFCGAL ?? " +"PostGIS ????? 2D / 3D ????????? ??????? 2D ????? ST_Intersection?ST_Area " +"?????????????????????? SFCGAL ??? GEOS????? " +"SFCGAL?PostgreSQL ???? postgis.backend " +"??????????????? GEOS?????SFCGAL 1.2 ???? CGAL 4.3 ? " +"Boost 1.54??? https://sfcgal.org ? https://gitlab.com/sfcgal/SFCGAL/??" #. Tag: para #, no-c-format @@ -7819,6 +7906,9 @@ msgid "" "xlink:href=\"http://www.graphicsmagick.org/\"> http://www.graphicsmagick." "org/ ." msgstr "" +"?????????????? GraphicsMagick??????? gm " +"convert???? http://www.graphicsmagick.org/ ???" #. Tag: title #, no-c-format @@ -8014,12 +8104,12 @@ msgstr "????????????????" #. Tag: para #, no-c-format msgid "Disables tiger geocoder support." -msgstr "" +msgstr "?? tiger geocoder ???" #. Tag: para #, no-c-format msgid "Compile without topology support." -msgstr "" +msgstr "??? topology ???" #. Tag: para #, no-c-format @@ -8114,6 +8204,11 @@ msgid "" "so no need to make comments if installing from the tar ball. Comments are " "also included as part of the CREATE EXTENSION install." msgstr "" +"??????????????????????????????????????" +"??????????? docbook ???????????????? tar.gz " +"????doc ???????? postgis_comments.sql " +"?????????????????????? CREATE EXTENSION " +"?????????????????" #. Tag: para #, no-c-format @@ -8126,6 +8221,12 @@ msgid "" "raster_cheatsheet.html, postgis_cheatsheet." "html" msgstr "" +"make cheatsheets ????? HTML " +"?????????????????????????? xsltproc ??????? " +"doc ????? 4 ????topology_cheatsheet." +"html?tiger_geocoder_cheatsheet." +"html?raster_cheatsheet." +"html?postgis_cheatsheet.html" #. Tag: para #, no-c-format @@ -8147,7 +8248,7 @@ msgstr "?????PostGIS??" msgid "" "The PostGIS extensions are built and installed automatically when PostgreSQL " "extension support is available." -msgstr "" +msgstr "? PostgreSQL ????????PostGIS ????????????" #. Tag: para #, no-c-format @@ -8300,6 +8401,15 @@ msgid "" "given version of an extension. These behaviors are built into the current " "PostgreSQL extension model." msgstr "" +"??? spatial_ref_sys?layer?topology ??????????????? postgis ? postgis_topology " +"???????????????????????????????????? " +"?? PostGIS ??? srid ???????????? PostGIS ?????????" +"???????????????????????????????????????" +"???????? CREATE EXTENSION " +"????????????????????????????? PostgreSQL " +"??????????" #. Tag: para #, no-c-format @@ -8369,6 +8479,11 @@ msgid "" "POSTGIS_REGRESS_ROLE_EXT_CREATOR when the extension " "creation role must differ from the database owner." msgstr "" +"????????? PostgreSQL ???????????????????? " +"POSTGIS_REGRESS_DB_OWNER ????????????????" +"??????????????????????????????????????" +"?????????????????????????????????? " +"POSTGIS_REGRESS_ROLE_EXT_CREATOR?" #. Tag: para #, no-c-format @@ -8378,6 +8493,9 @@ msgid "" "superuser, provided the target PostgreSQL instance permits extension " "installation by those delegate roles." msgstr "" +"???????????? PostgreSQL ????????????????????" +"??????????????????????????????????????" +"??????" #. Tag: para #, no-c-format @@ -8507,6 +8625,9 @@ msgid "" "configure it for your needs, refer to ." msgstr "" +"address_standardizer ??? PostGIS " +"????????????????????????????? ?" #. Tag: para #, no-c-format @@ -8548,6 +8669,8 @@ msgid "" "Windows installation packages include the address_standardizer so you can " "move straight to the CREATE EXTENSION step." msgstr "" +"Windows ???????? address_standardizer????????? CREATE " +"EXTENSION ??????" #. Tag: para #, no-c-format @@ -8690,6 +8813,10 @@ msgid "" "by default because it takes quite a bit of time to load (20 to 60 minutes), " "takes up quite a bit of disk space, and is not used that often." msgstr "" +"Zip code 5 ????? zcta5 ??????????? ZCTA " +"??????????????? ???????????????????????????? 20 ? 60 " +"????????????????????????" #. Tag: para #, no-c-format @@ -9346,12 +9473,12 @@ msgstr "?????PostgreSQL GiST?????" #. Tag: term #, no-c-format msgid "Lauren?iu Nicola" -msgstr "" +msgstr "Lauren?iu Nicola" #. Tag: para #, no-c-format msgid "Bug fixes, maintenance, stability, and performance" -msgstr "" +msgstr "Bug fixes??????????" #. Tag: title #, no-c-format @@ -9687,7 +9814,7 @@ msgstr "David Techer" #. Tag: member #, no-c-format msgid "Denys Kovshun" -msgstr "" +msgstr "Denys Kovshun" #. Tag: member #, no-c-format @@ -9877,7 +10004,7 @@ msgstr "Kris Jurka" #. Tag: member #, no-c-format msgid "Lauren?iu Nicola" -msgstr "" +msgstr "Lauren?iu Nicola" #. Tag: member #, no-c-format @@ -10434,6 +10561,9 @@ msgid "" "past. We used PledgeBank and we got two successful campaigns out of it." msgstr "" +"PostGIS ??????????????????????????? PledgeBank??????????????" #. Tag: para #, no-c-format @@ -10529,6 +10659,11 @@ msgid "" "toast.html\">the PostgreSQL Documentation for TOAST for more " "information)." msgstr "" +"??? PostgreSQL ?????????? TOAST ????????TOAST ?????" +"????????????????????????????????????????" +"??????????????????????????????????" +"????? PostgreSQL ?????? TOAST ????" #. Tag: para #, no-c-format @@ -11232,6 +11367,9 @@ msgid "" "dimensionality, or coordinate components so that spatial expressions can " "interrogate complex objects in a controlled way." msgstr "" +"??????????????????????????????????????" +"??????????????????????????????????????" +"?????" #. Tag: refpurpose #, no-c-format @@ -11746,6 +11884,9 @@ msgid "" "linkend=\"ST_Dump\"/> to extract polygon elements from polygonal geometries: " "ST_DumpRings( (ST_Dump(geom)).geom )" msgstr "" +"????? POLYGON????? MULTIPOLYGON?????????????? ??????????????????ST_DumpRings(" +" (ST_Dump(geom)).geom )" #. Tag: para #, no-c-format @@ -11755,12 +11896,12 @@ msgstr "?????? PostGIS 1.1.3 PostgreSQL 7.3 ??????" #. Tag: para #, no-c-format msgid "Extracting all rings as polygons." -msgstr "" +msgstr "??????? polygon?" #. Tag: para #, no-c-format msgid "Extracting shell and holes from a polygon." -msgstr "" +msgstr "? polygon ??????shell????holes??" #. Tag: para #, no-c-format @@ -13460,6 +13601,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -13504,6 +13648,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: refpurpose #, no-c-format @@ -13526,6 +13673,9 @@ msgid "" "linkend=\"ST_ZMax\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -13548,6 +13698,9 @@ msgid "" "linkend=\"ST_ZMin\"/>, , " msgstr "" +", , , , , , " +", " #. Tag: refpurpose #, no-c-format @@ -13570,17 +13723,21 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , , , " #. Tag: refpurpose #, no-c-format msgid "Returns the M minima of a geometry." -msgstr "" +msgstr "??????? M ?????" #. Tag: para #, no-c-format msgid "" "Returns the M minima of a geometry, or null of the geometry lacks M values." -msgstr "" +msgstr "??????? M ???????????? M ???? NULL?" #. Tag: para #, no-c-format @@ -13589,6 +13746,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: para #, no-c-format @@ -13597,6 +13757,9 @@ msgid "" "linkend=\"ST_YMax\"/>, , , " msgstr "" +", , , , , , " +"" #. Tag: title #, no-c-format @@ -13954,6 +14117,8 @@ msgid "" "primitives, coordinate sequences, or existing geometries into well-formed " "spatial objects that can participate in subsequent analysis." msgstr "" +"?????????? geometry ? geography ?????????????????" +"????????????????????????????????" #. Tag: refpurpose #, no-c-format @@ -14186,13 +14351,17 @@ msgid "" "appear in the collection. can be " "used to collapse repeated points from the output LineString." msgstr "" +"?? LineString ????????????????Point ? MultiPoint " +"?????????????MultiLineString " +"???????????????????????????? LineString " +"????????? ?" #. Tag: para #, no-c-format msgid "" "Availability: 3.7.0 - Support for MultiLineString input elements was " "introduced" -msgstr "" +msgstr "????3.7.0 - ???? MultiLineString ???????" #. Tag: para #, no-c-format @@ -14278,7 +14447,8 @@ msgid "" "When ordering within the aggregate is not possible, ordering in a subquery " "can be used. However, sometimes the query plan may not respect the order of " "the subquery." -msgstr "" +msgstr "??????????????????????????????????????" +"??????????????????????????" #. Tag: para #, no-c-format @@ -15260,24 +15430,25 @@ msgstr "" msgid "" "A window function which adjusts the edges of a set of valid polygonal " "geometries to produce a clean coverage. Cleaning involves:" -msgstr "" +msgstr "??????????????????????????????????clean " +"coverage?????????" #. Tag: para #, no-c-format msgid "" "snapping vertices and edges to remove small discrepancies and ensure common " "edges are identically noded" -msgstr "" +msgstr "??????????snapping???????????????????????" #. Tag: para #, no-c-format msgid "merging overlaps into a parent polygon" -msgstr "" +msgstr "???????????polygon ?" #. Tag: para #, no-c-format msgid "merging narrow gaps into adjacent polygons" -msgstr "" +msgstr "??????????? polygon ?" #. Tag: para #, no-c-format @@ -15286,6 +15457,8 @@ msgid "" "are merged. Gaps with width <= this distance are merged into an adjacent " "polygon." msgstr "" +"gapMaximumWidth ?????????????????" +"?? <= ???????????? polygon?" #. Tag: para #, no-c-format @@ -15294,37 +15467,40 @@ msgid "" "edges. The default (-1) automatically determines a snapping distance based " "on the input extent. Set to 0.0 to turn off snapping." msgstr "" +"snappingDistance ??????????snapping??" +"??? -1 ??????????????????? 0.0 ????????" #. Tag: para #, no-c-format msgid "" "overlapMergeStrategy specifies how overlaps are " "merged into a parent polygon:" -msgstr "" +msgstr "overlapMergeStrategy ?????????????? " +"polygon ??" #. Tag: para #, no-c-format msgid "" "MERGE_LONGEST_BORDER - merges into polygon with longest common " "border" -msgstr "" +msgstr "MERGE_LONGEST_BORDER - ??????????? polygon" #. Tag: para #, no-c-format msgid "MERGE_MAX_AREA - merges into polygon with maximum area" -msgstr "" +msgstr "MERGE_MAX_AREA - ???????? polygon" #. Tag: para #, no-c-format msgid "MERGE_MIN_AREA - merges into polygon with minimum area" -msgstr "" +msgstr "MERGE_MIN_AREA - ???????? polygon" #. Tag: para #, no-c-format msgid "" "MERGE_MIN_INDEX - merges into polygon with smallest input index " "(defined by order of input polygons)" -msgstr "" +msgstr "MERGE_MIN_INDEX - ?????????? polygon?????????" #. Tag: para #, no-c-format @@ -15333,6 +15509,8 @@ msgid "" "linkend=\"ST_CoverageInvalidEdges\"/> and can be input to coverage " "processing functions." msgstr "" +"????????????polygonal coverage????? ????????????????????" #. Tag: para #, no-c-format @@ -15345,6 +15523,12 @@ msgid "" "linkend=\"ST_MaximumInscribedCircle\"/> on them; the gap width is twice the " "computed radius." msgstr "" +"??????????????????? gapMaximumWidth => 0 " +"?????????? " +"??????????????????????????????????????" +"????????? polygon????? polygon ?? ???????????????? = " +"???????? ? 2?" #. Tag: para #, no-c-format @@ -15354,7 +15538,7 @@ msgstr "???: 3.6.0 - ?? GEOS >= 3.14.0" #. Tag: para #, no-c-format msgid "Polygons with overlaps and gaps" -msgstr "" +msgstr "??????????" #. Tag: para #, no-c-format @@ -23710,9 +23894,9 @@ msgid "" "org/TR/SVG/paths.html#PathDataBNF\">http://www.w3.org/TR/SVG/paths." "html#PathDataBNF" msgstr "" -"????1.2.2? ????1.4.0 PostGIS 1.4.0 ???????????? L ???" -"?? " -"http://www.w3.org/TR/SVG/paths.html#PathDataBNF" +"????1.2.2. ????1.4.0 PostGIS 1.4.0 ???????????? L " +"????? http://www.w3.org/TR/SVG/paths.html#PathDataBNF" #. Tag: para #, no-c-format @@ -26308,7 +26492,7 @@ msgstr "???????????????????? ??? #. Tag: para #, no-c-format msgid "Availability - 2.3.0" -msgstr "???-2.3.0" +msgstr "??? - 2.3.0" #. Tag: para #, no-c-format @@ -40924,7 +41108,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.0 version taking flags." -msgstr "????2.0 ?????????" +msgstr "????2.0 ?????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/zh_Hans/postgis-manual.po | 264 +++++++++++++++++++++++++++++++++------ 1 file changed, 224 insertions(+), 40 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Dec 25 23:47:55 2025 From: git at osgeo.org (git at osgeo.org) Date: Thu, 25 Dec 2025 23:47:55 -0800 (PST) Subject: [SCM] PostGIS branch master updated. 3.6.0rc2-270-g2cdf739b0 Message-ID: <20251226074755.92BDC1A85EE@trac.osgeo.org> 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 2cdf739b02ec00ff6b784e15ed8d3d87bf3f788f (commit) from a984a196672c4f36d13f3cb14f4267b7b17961d6 (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 2cdf739b02ec00ff6b784e15ed8d3d87bf3f788f Author: Wangdapeng Date: Fri Dec 26 07:06:57 2025 +0000 Translated PostGIS Manual using Weblate (Chinese (Simplified)) Currently translated at 100.0% (5893 of 5893 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/zh_Hans/ diff --git a/doc/po/zh_Hans/postgis-manual.po b/doc/po/zh_Hans/postgis-manual.po index 65afe130f..d319ec99a 100644 --- a/doc/po/zh_Hans/postgis-manual.po +++ b/doc/po/zh_Hans/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-13 16:23+0000\n" -"PO-Revision-Date: 2025-12-26 06:31+0000\n" +"PO-Revision-Date: 2025-12-26 07:47+0000\n" "Last-Translator: Wangdapeng \n" "Language-Team: Chinese (Simplified) \n" @@ -15543,12 +15543,12 @@ msgstr "??????????" #. Tag: para #, no-c-format msgid "Invalid coverage edges" -msgstr "" +msgstr "??????" #. Tag: para #, no-c-format msgid "Clean polygonal coverage, with overlaps and narrow gaps removed" -msgstr "" +msgstr "??????????????????" #. Tag: para #, no-c-format @@ -15557,6 +15557,8 @@ msgid "" "linkend=\"ST_CoverageSimplify\"/>, " msgstr "" +", , , " #. Tag: refpurpose #, no-c-format @@ -17334,7 +17336,8 @@ msgid "" "These routines are reserved for diagnosing and repairing data corruption. " "They provide last-resort maintenance operations that are not required during " "normal spatial workflows." -msgstr "" +msgstr "??????????????????????????????????????" +"?????????" #. Tag: refpurpose #, no-c-format @@ -18453,6 +18456,10 @@ msgid "" "In this case we escape the ' with standard ANSI ', but slashes are not " "escaped" msgstr "" +"? PostgreSQL ??standard_conforming_strings ??? " +"on???????????????????????????????? " +"standard_conforming_strings = on ?????????? ANSI ???? ' " +"?????? ''???????? \\ ???" #. Tag: para #, no-c-format @@ -19126,7 +19133,8 @@ msgid "" "support the classic linear referencing workflow of expressing positions as " "fractions or measures along routes and of projecting those measures back " "into spatial coordinates." -msgstr "" +msgstr "??????????????????????????????????????" +"???????????????????????????????" #. Tag: refpurpose #, no-c-format @@ -20778,6 +20786,9 @@ msgid "" "false, then the calculation is based on a sphere instead of a " "spheroid." msgstr "" +"?? geography ???????????????????????????? SRID " +"??????? SRID?????? WGS84?? use_spheroid = " +"false????????????????" #. Tag: para #, no-c-format @@ -21246,6 +21257,9 @@ msgid "" "use_spheroid = false, then calculations will approximate " "a sphere instead of a spheroid." msgstr "" +"?? geography ????????????????????????????? " +"SRID ???????? SRID?????? WGS84??? use_spheroid = " +"false?????????????????" #. Tag: para #, no-c-format @@ -21453,6 +21467,9 @@ msgid "" "follow the same geometric rules as the corresponding functions but are " "optimised for use in SQL expressions and index-supported filtering." msgstr "" +"???????? PostGIS ??????????????????????????" +"?????????????????????????????????? SQL " +"???????????????????????????" #. Tag: title #, no-c-format @@ -21537,7 +21554,7 @@ msgstr "??????? BRIN ??????????????? #, no-c-format msgid "" "Availability: 2.3.0 support for Block Range INdexes (BRIN) was introduced." -msgstr "" +msgstr "????2.3.0 - ???? BRIN????" #. Tag: para #, no-c-format @@ -22349,6 +22366,9 @@ msgid "" "nearest-neighbor result sets with true KNN distance search for geometries, " "and distance on the sphere for geographies." msgstr "" +"<-> ?????????????? ??????? " +"ORDER BY ????????????????? geometry ????? KNN " +"?????? geography ???????" #. Tag: para #, no-c-format @@ -22388,13 +22408,16 @@ msgid "" "and geography. Note for geography KNN is based on sphere rather than " "spheroid." msgstr "" +"Enhanced: 2.2.0 -- ?? geometry ? geography ??? KNN ????? " +"geography ? KNN ??????????" #. Tag: para #, no-c-format msgid "" "Changed: 2.2.0 -- Old hybrid-syntax workarounds may be slower once true KNN " "is available. See examples below." -msgstr "" +msgstr "Changed: 2.2.0 -- ????? KNN " +"??????????????????????????" #. Tag: para #, no-c-format @@ -22402,7 +22425,8 @@ msgid "" "Availability: 2.0.0 -- Weak KNN provides nearest neighbors based on geometry " "centroid distances instead of true distances. Exact results for points, " "inexact for all other types." -msgstr "" +msgstr "????2.0.0 -- ? KNN ??????????????????????????" +"???????????????????" #. Tag: para #, no-c-format @@ -22424,6 +22448,8 @@ msgid "" "find the true nearest neighbors. First a CTE query using the index-assisted " "KNN, then an exact query to get correct ordering:" msgstr "" +"???????????????????????????????????" +"????? CTE ??????? KNN ????????????????????" #. Tag: para #, no-c-format @@ -22447,6 +22473,9 @@ msgid "" "same as but as an operator it can be used " "for doing nearest neighbor searches using an N-dimensional index." msgstr "" +"|=| ?????????? 3D ????? ????????? ??????????? N ???????????" #. Tag: para #, no-c-format @@ -22472,7 +22501,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.2.0." -msgstr "" +msgstr "????2.2.0?" #. Tag: para #, no-c-format @@ -22496,6 +22525,9 @@ msgid "" "Useful for doing nearest neighbor approximate distance ordering." msgstr "" +"<#> ??????????????????" +"????????? approximate " +"?????" #. Tag: para #, no-c-format @@ -22520,7 +22552,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Availability: 2.0.0." -msgstr "" +msgstr "????2.0.0?" #. Tag: para #, no-c-format @@ -22796,6 +22828,9 @@ msgid "" "default. If your GUI tools require the old behavior, then SET " "bytea_output='escape' in your database." msgstr "" +"PostgreSQL ??????????? bytea????? GUI " +"???????????????????????SET " +"bytea_output='escape'?" #. Tag: para #, no-c-format @@ -23115,6 +23150,10 @@ msgid "" "function> raises a warning in that case because PostgreSQL jsonb keeps only the last value for duplicate keys." msgstr "" +"?????????????????? ?properties? " +"??????????????????ST_AsGeoJSON " +"???????? PostgreSQL ? jsonb " +"???????????????" #. Tag: para #, no-c-format @@ -23186,7 +23225,7 @@ msgstr "???3.5.0 ???????? ID ??" #. Tag: para #, no-c-format msgid "Changed: 3.7.0 added warning about duplicate keys" -msgstr "" +msgstr "Changed: 3.7.0 -- ???????????" #. Tag: para #, no-c-format @@ -24060,6 +24099,10 @@ msgid "" "the x/y axis. By default, ST_AsX3D outputs in database form " "(long,lat or X,Y), but the X3D default of lat/lon, y/x may be preferred." msgstr "" +"options ????????????????? X3D ? GeoCoordinates " +"?????????????? x/y ??????????ST_AsX3D " +"?????????long,lat ? X,Y????????????? X3D ??? lat/" +"lon?y/x ?????" #. Tag: para #, no-c-format @@ -24877,6 +24920,11 @@ msgid "" "linkend=\"ST_Segmentize\"/> to add geodesic vertices, then cast to geometry " "before subdivision." msgstr "" +"????? geometry ?? geography ????? geography ??????????" +"?????????geometry?????????????????????????" +"?????????? geography ??????????????????????" +"???? geography ?? " +"?????????????????????? geometry ??????" #. Tag: para #, no-c-format @@ -24922,6 +24970,10 @@ msgid "" "impact of changes to the geography representation of a geometry when " "subdividing." msgstr "" +"??? ?? ST_Segmentize(geography, " +"distance) ???? geography ????????? ST_Subdivide " +"????????????? 8 ???????????????????? " +"geometry ? geography ???????????" #. Tag: para #, no-c-format @@ -25306,6 +25358,9 @@ msgid "" "does not affect POINT or POLYGON geometries. By default end caps are square " "when 'left' or 'right' are specified." msgstr "" +"'side=both|left|right' :??? both?left ? right ?? geometry " +"?????????????????????????? LINESTRING?? POINT ? " +"POLYGON ?????? left ? right ???????????????" #. Tag: para #, no-c-format @@ -26219,17 +26274,17 @@ msgstr "????? M ???" #. Tag: title #, no-c-format msgid "Cardinality 2" -msgstr "" +msgstr "??2" #. Tag: para #, no-c-format msgid "Nodes with cardinality 2 are merged away." -msgstr "" +msgstr "?? 2 ??????????" #. Tag: title #, no-c-format msgid "Cardinality 3 or More" -msgstr "" +msgstr "??3??" #. Tag: para #, no-c-format @@ -26239,7 +26294,7 @@ msgstr "????????2?????????" #. Tag: title #, no-c-format msgid "Non-Touching Lines" -msgstr "" +msgstr "?????" #. Tag: para #, no-c-format @@ -26251,7 +26306,7 @@ msgstr "??????????????????? MultiLineStrin #. Tag: title #, no-c-format msgid "Directed Parameter" -msgstr "" +msgstr "????" #. Tag: para #, no-c-format @@ -26261,7 +26316,7 @@ msgstr "??directed = TRUE??????????????" #. Tag: title #, no-c-format msgid "Z-dimension Handling" -msgstr "" +msgstr "Z ????" #. Tag: para #, no-c-format @@ -29323,7 +29378,7 @@ msgstr "??? Spatial_ref_sys ??????????????? #. Tag: para #, no-c-format msgid "Non-georeferenced rasters and geometries use SRID 0." -msgstr "" +msgstr "??????? raster ? geometry ?? SRID 0?" #. Tag: refpurpose #, no-c-format @@ -31118,6 +31173,11 @@ msgid "" "and set it to libproj.dll. You'll have to restart your " "PostgreSQL service/daemon after this change." msgstr "" +"??????????????????????? PROJSO??? PostGIS " +"????????????? Windows ????? ????? -> ?? -> " +"????? ??????? PROJSO?????? " +"libproj.dll?????????? PostgreSQL " +"??/?????????" #. Tag: para #, no-c-format @@ -32975,14 +33035,14 @@ msgstr "?????????" #. Tag: para #, no-c-format msgid "Complete example of tiles of a coverage with neighborhood." -msgstr "" +msgstr "??????????????" #. Tag: para #, no-c-format msgid "" "Example like the prior one for tiles of a coverage with neighborhood but " "using only basic SQL features." -msgstr "" +msgstr "????????????? tile ??????????? SQL ??????" #. Tag: title #, no-c-format @@ -34013,7 +34073,8 @@ msgstr "" msgid "" "The new raster will have the same georeference, width, and height as the " "original raster. Bands not designated are returned unchanged." -msgstr "" +msgstr "???? raster ???? raster " +"??????????????????????????????????" #. Tag: para #, no-c-format @@ -34492,7 +34553,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "Complete example of tiles of a coverage." -msgstr "" +msgstr "??????????" #. Tag: para #, no-c-format @@ -35045,7 +35106,8 @@ msgstr "?? 3.3.0?????????????? ????? msgid "" "Changed 3.7.0, the polygonization honours PostgreSQL interrupts so " "cancellations and statement timeouts halt processing promptly." -msgstr "" +msgstr "Changed: 3.7.0 - ????????? PostgreSQL " +"??????????????????????" #. Tag: para #, no-c-format @@ -35179,7 +35241,7 @@ msgstr "???2.1.0 ??????????????????? msgid "" "Calculates the fraction of each raster cell that is covered by a given " "geometry." -msgstr "" +msgstr "???? geometry ????? raster ??????" #. Tag: para #, no-c-format @@ -35193,11 +35255,15 @@ msgid "" "that is covered by the geometry. For linestrings, the value returned for " "each cell is the length contained in the cell." msgstr "" +"???? geometry ???? raster ???????????? " +"raster??????????????????? " +"geometry?????????????????? Polygon ???????? " +"geometry ??????? LineString ?????????????" #. Tag: para #, no-c-format msgid "Availability: 3.6.0 Requires GEOS 3.14 or higher." -msgstr "" +msgstr "????3.6.0 -- ?? GEOS 3.14 ??????" #. Tag: title #, no-c-format @@ -39182,6 +39248,10 @@ msgid "" "parameter> specifies the type of buffer to create: 0: Rounded buffer " "(default) 1: Flat buffer 2: Square buffer" msgstr "" +"??????? geom ??????? radius ? 3D ???????????????????segments ???????????? 4?buffer_type " +"?????????0 ????????1 ????2 ???" #. Tag: para #, no-c-format @@ -39457,7 +39527,7 @@ msgstr "" msgid "" "Reduces the complexity of a geometry while preserving essential features and " "Z/M values." -msgstr "" +msgstr "????????????? Z/M ?????????????" #. Tag: para #, no-c-format @@ -39465,7 +39535,9 @@ msgid "" "Simplifies a geometry using SFCGAL's simplification algorithm, which reduces " "the number of points or vertices while preserving the essential features of " "the geometry. This function preserves Z and M values during simplification." -msgstr "" +msgstr "?? SFCGAL " +"???????????????????????????????????" +"????????? Z ? M ??" #. Tag: para #, no-c-format @@ -39476,13 +39548,17 @@ msgid "" "handling to preserve Z and M coordinates. When topology is preserved and " "geometries intersect, Z and M values are interpolated at intersection points." msgstr "" +"?????????????? CGAL Polyline Simplification 2 " +"?????????? Z?M ????????????????????" +"?????? Z ? M ????????" #. Tag: para #, no-c-format msgid "" "This function works well with 3D terrain-like geometries (2.5D) but is not " "designed for vertical surfaces like walls." -msgstr "" +msgstr "?????? ???? 3D?2.5D????????????????????" #. Tag: para #, no-c-format @@ -39497,7 +39573,7 @@ msgstr "??" #. Tag: para #, no-c-format msgid "Input geometry" -msgstr "" +msgstr "????" #. Tag: parameter #, no-c-format @@ -39509,12 +39585,13 @@ msgstr "threshold" msgid "" "Maximum distance threshold (in geometry unit) for simplification. The higher " "this value, the more simplified the resulting geometry will be." -msgstr "" +msgstr "??????????????????????????????????????" +"??" #. Tag: parameter #, no-c-format msgid "preserveTopology" -msgstr "" +msgstr "preserveTopology" #. Tag: para #, no-c-format @@ -39523,41 +39600,43 @@ msgid "" "preserved. When geometries intersect in this mode, Z and M values at " "intersection points are interpolated. The default value is false." msgstr "" +"???? true????????????????????????????????" +"???? Z ? M ????????????? false?" #. Tag: title #, no-c-format msgid "Return Value" -msgstr "" +msgstr "???" #. Tag: para #, no-c-format msgid "Returns a simplified geometry with preserved Z and M values." -msgstr "" +msgstr "??????? Z ? M ?????????" #. Tag: para #, no-c-format msgid "Originals geometries" -msgstr "" +msgstr "????" #. Tag: para #, no-c-format msgid "Simplification with 0.5 and topology preserved" -msgstr "" +msgstr "? 0.5 ??????????" #. Tag: para #, no-c-format msgid "Simplification with 0.5 without topology preservation" -msgstr "" +msgstr "? 0.5 ????" #. Tag: para #, no-c-format msgid ", " -msgstr "" +msgstr ", " #. Tag: refpurpose #, no-c-format msgid "Computes a 3D Alpha-wrapping strictly enclosing a geometry." -msgstr "" +msgstr "????????????? 3D Alpha ???" #. Tag: para #, no-c-format @@ -39568,6 +39647,10 @@ msgid "" "the input. It can be seen as an extension or refinement of an alpha-shape." msgstr "" +"??????? 3D Alpha Wrapping?Alpha wrapping " +"????????????????????????????? alpha-shape ???????" #. Tag: para #, no-c-format @@ -39577,6 +39660,8 @@ msgid "" "relative_alpha values result in simpler outputs, but they are less accurate " "representations of the original input." msgstr "" +"relative_alpha ???????????????????? 0 " +"??????????????????????????????" #. Tag: para #, no-c-format @@ -39586,6 +39671,8 @@ msgid "" "set to 0, its value is automatically determined based on the relative_alpha " "parameter." msgstr "" +"relative_offset ????????????????? 0 " +"?????????? 0??????relative_alpha?????" #. Tag: para #, no-c-format @@ -39593,13 +39680,16 @@ msgid "" "Alpha wrapping of a MultiPoint (same example As )" msgstr "" +"MultiPoint ? Alpha Wrapping?? " +"?????" #. Tag: para #, no-c-format msgid "" "Alpha wrapping of a MultiPoint (same example as )" -msgstr "" +msgstr "MultiPoint ? Alpha Wrapping?? " +"?????" #. Tag: para #, no-c-format @@ -39608,6 +39698,8 @@ msgid "" "and 20. A value of 5 results in a coarse output. Increasing the parameter up " "to 20 significantly improves the precision and granularity of the result." msgstr "" +"relative_alpha ????? 5?10 ? 20 ??????? 5 " +"????????????? 20 ???????????????????" #. Tag: title #, no-c-format @@ -41180,6 +41272,9 @@ msgid "" "output from the linework. The requirement that no vertices are lost can " "generate complex collections as outputs." msgstr "" +"?linework? ???????????????????????????????nodi" +"ng?????????????????????????????????????" +"???????????" #. Tag: para #, no-c-format @@ -41188,14 +41283,15 @@ msgid "" "exterior rings, building new geometry by unioning exterior rings, and then " "differencing all interior rings. The results tend to be more intuitive, " "where collapsed lines are discarded in the output." -msgstr "" +msgstr "?structure? ????????????????????????????????" +"???????????????????????????" #. Tag: para #, no-c-format msgid "" "The \"keepcollapsed\" key is only valid for the \"structure\" algorithm, and " "takes a value of \"true\" or \"false\"." -msgstr "" +msgstr "?keepcollapsed? ???? structure ???????? true ? false?" #. Tag: para #, no-c-format @@ -41203,14 +41299,15 @@ msgid "" "Keep collapsed of \"false\" is the default, and means that geometry " "components that collapse to a lower dimensionality, for example a one-point " "linestring will be dropped." -msgstr "" +msgstr "?keepcollapsed? ??? false?????????????????" +"???????? LineString??????????" #. Tag: para #, no-c-format msgid "" "Keep collapsed of \"true\" means geometry components that collapse to a " "lower dimensionality will be retained." -msgstr "" +msgstr "?keepcollapsed? ??? true ??????????????????????" #. Tag: para #, no-c-format @@ -41702,12 +41799,12 @@ msgstr "????" #. Tag: title #, no-c-format msgid "PostGIS 3.6.0rc2" -msgstr "" +msgstr "PostGIS 3.6.0rc2" #. Tag: para #, no-c-format msgid "2025/08/25" -msgstr "" +msgstr "2025/08/25" #. Tag: para #, no-c-format @@ -41716,6 +41813,9 @@ msgid "" "6.1+. To take advantage of all features, GEOS 3.14+ is needed. To take " "advantage of all SFCGAL features, SFCGAL 2.2+ is needed." msgstr "" +"????? PostgreSQL 12?18beta3?GEOS 3.8 ???????? Proj 6." +"1+???????????? GEOS 3.14+????? SFCGAL ????????? " +"SFCGAL 2.2+?" #. Tag: para #, no-c-format @@ -41730,17 +41830,17 @@ msgstr "Teramoto Ikuhiro (Japanese Team)" #. Tag: para #, no-c-format msgid "Daniel Nylander (Swedish Team)" -msgstr "" +msgstr "Daniel Nylander (Swedish Team)" #. Tag: para #, no-c-format msgid "Dapeng Wang, Zuo Chenwei from HighGo (Chinese Team)" -msgstr "" +msgstr "Dapeng Wang, Zuo Chenwei from HighGo (Chinese Team)" #. Tag: para #, no-c-format msgid "Denys Kovshun (Ukrainian Team)" -msgstr "" +msgstr "Denys Kovshun (Ukrainian Team)" #. Tag: title #, no-c-format @@ -41754,6 +41854,8 @@ msgid "" "link>, make ST_TileEnvelope clips envelopes to tile plane extent (Paul " "Ramsey)" msgstr "" +"#5799 " +"?? ST_TileEnvelope ?????? tile ?????Paul Ramsey?" #. Tag: para #, no-c-format @@ -41761,6 +41863,8 @@ msgid "" "#5829, remove constraint checking from geometry_columns view (Paul Ramsey)" msgstr "" +"#5829 " +"?? geometry_columns ??????????Paul Ramsey?" #. Tag: para #, no-c-format @@ -41770,6 +41874,10 @@ msgid "" "pulls/255\">GT-255, [topology] Support for upgrading domains (Ayo " "Adesugba, U.S. Census Bureau)" msgstr "" +"#3373?GT-255?[topology] ??????Ayo Adesugba?U.S. " +"Census Bureau?" #. Tag: para #, no-c-format @@ -41779,6 +41887,9 @@ msgid "" "PolyhedralSurface as unitary geometries, use ST_NumPatches/ST_PatchN for " "patch access (Lo?c Bartoletti)" msgstr "" +"GT-252? ST_NumGeometries/ST_GeometryN ? TIN ? PolyhedralSurface " +"????????????????? ST_NumPatches/ST_PatchN?Lo?c Bartoletti?" #. Tag: para #, no-c-format @@ -41788,6 +41899,10 @@ msgid "" "pulls/242\">GT-242, [topology] Support for bigint (Ayo Adesugba, U.S. " "Census Bureau)" msgstr "" +"#3110?GT-242?[topology] ?? bigint?Ayo Adesugba?" +"U.S. Census Bureau?" #. Tag: para #, no-c-format @@ -41799,11 +41914,17 @@ msgid "" "extension@ for PG >= 16 to schema qualify dependent extensions, switch to " "use typmod for tiger tables (Regina Obe)" msgstr "" +"#5359?#5897?GT-260 [tiger_geocoder] ? PG >= 16 ?? " +"@extschema:extension@ ???????? schema???? typmod ?? tiger ??" +"Regina Obe?" #. Tag: title #, no-c-format msgid "Removed / Deprecate signatures" -msgstr "" +msgstr "?? / ???????" #. Tag: para #, no-c-format @@ -41812,11 +41933,14 @@ msgid "" "Drop st_approxquantile(raster, double precision), wasn't usable as it " "triggered is not unique error when used (Regina Obe)" msgstr "" +"#5498 " +"?? `st_approxquantile(raster, double precision)`???????? is not " +"unique ???????Regina Obe?" #. Tag: title #, no-c-format msgid "New Features" -msgstr "" +msgstr "???" #. Tag: para #, no-c-format @@ -41824,6 +41948,8 @@ msgid "" "GH-803, [sfcgal] ADD CG_Simplify function (Lo?c Bartoletti)" msgstr "" +"GH-803?[sfcgal] ?? CG_Simplify ???Lo?c Bartoletti?" #. Tag: para #, no-c-format @@ -41831,6 +41957,9 @@ msgid "" "GH-805, [sfcgal] Add M support for SFCGAL >= 1.5.0 (Lo?c Bartoletti)" msgstr "" +"GH-805?[sfcgal] ? SFCGAL >= 1.5.0 ?? M ????Lo?c " +"Bartoletti?" #. Tag: para #, no-c-format @@ -41838,6 +41967,8 @@ msgid "" "GH-801, [sfcgal] ADD CG_3DAlphaWrapping function (Jean Felder)" msgstr "" +"GH-801?[sfcgal] ?? CG_3DAlphaWrapping ???Jean Felder?" #. Tag: para #, no-c-format @@ -41845,6 +41976,8 @@ msgid "" "#5894, [topology] TotalTopologySize (Sandro Santilli)" msgstr "" +"#5894, [topology] TotalTopologySize (Sandro Santilli)" #. Tag: para #, no-c-format @@ -41853,6 +41986,9 @@ msgid "" "link>, [topology] ValidateTopologyPrecision, MakeTopologyPrecise (Sandro " "Santilli)" msgstr "" +"#5890, [topology] ValidateTopologyPrecision, MakeTopologyPrecise (Sandro " +"Santilli)" #. Tag: para #, no-c-format @@ -41861,6 +41997,9 @@ msgid "" "link>, [topology] Add --drop-topology switch to pgtopo_import (Sandro " "Santilli)" msgstr "" +"#5861?[topology] ? pgtopo_import ?? --drop-topology ???Sandro " +"Santilli?" #. Tag: para #, no-c-format @@ -41868,6 +42007,8 @@ msgid "" "#1247, [raster] ST_AsRasterAgg (Sandro Santilli)" msgstr "" +"#1247, [raster] ST_AsRasterAgg (Sandro Santilli)" #. Tag: para #, no-c-format @@ -41877,6 +42018,10 @@ msgid "" "pulls/223\">GT-223 Export circ_tree_distance_tree_internal for " "mobilitydb use (Maxime Schoemans)" msgstr "" +"#5784?GT-223 ? MobilityDB ?? " +"circ_tree_distance_tree_internal?Maxime Schoemans?" #. Tag: para #, no-c-format @@ -41886,6 +42031,9 @@ msgid "" "Rotate, Buffer 3D and Straight Skeleton Partition) from SFCGAL 2 (Lo?c " "Bartoletti)" msgstr "" +"GT-228?[sfcgal] ? SFCGAL 2 ??????Scale?Translate?Rotate?" +"Buffer 3D ? Straight Skeleton Partition??Lo?c Bartoletti?" #. Tag: para #, no-c-format @@ -41932,7 +42080,7 @@ msgstr "" #, no-c-format msgid "" "[raster] Add ST_ReclassExact to quickly remap values in raster (Paul Ramsey)" -msgstr "" +msgstr "[raster] ?? ST_ReclassExact???????? raster ????Paul Ramsey?" #. Tag: title #, no-c-format @@ -43085,6 +43233,10 @@ msgid "" "custom geodetic spatial reference system as described in ." msgstr "" +"? geometry ?????geography ???????????????SRID?????" +"??????spatial_ref_sys " +"??????????????????????????????????? ???????????????????" #. Tag: para #, no-c-format @@ -45149,6 +45301,14 @@ msgid "" "href=\"https://www.postgresql.org/docs/current/brin.html\">PostgreSQL " "manual." msgstr "" +"BRIN ?? Block Range Index?? PostgreSQL ????????????BRIN " +"??? ?? ??????????????????????" +"??????????????????????????????????????" +"????????????BRIN ????????????????????????" +"??????????????????BRIN " +"???????????????????????????????? PostgreSQL " +"manual?" #. Tag: para #, no-c-format @@ -47607,6 +47767,9 @@ msgid "" "input vertices must fall already on the specified grid, see ." msgstr "" +"????????? gridSize??? GEOS 3.9.0 ?????????" +"??????????????????????????????????????" +"???????? ?" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/zh_Hans/postgis-manual.po | 265 +++++++++++++++++++++++++++++++-------- 1 file changed, 214 insertions(+), 51 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Fri Dec 26 03:30:55 2025 From: trac at osgeo.org (PostGIS) Date: Fri, 26 Dec 2025 11:30:55 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.02f777c1b8a8df6b898743c20d08c0a9@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------------ Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+------------------------ Changes (by strk): * keywords: => robustness Comment: It's a robustness issue, because the bottom-most intersection point is very close to the incoming vertex, so the edge end of Edge4 in the figure above is very short (4.875508987259044e-13): {{{ LINESTRING( 11.230170431987244 62.84904481447776, 11.23020501303477 62.84900750109812, 11.230120879533905 62.8489711984873, <-- very 11.230120879533454 62.84897119848748 <-- close ) }}} Using just that edge as the incoming line is enough to trigger the problem: {{{ BEGIN; SELECT * FROM topology.TopoGeo_addLinestring('t6023', 'LINESTRING( 11.230170431987244 62.84904481447776, 11.23020501303477 62.84900750109812, 11.230120879533905 62.8489711984873, 11.230120879533454 62.84897119848748 )',-1); SELECT 2 as t2, * FROM topology.ValidateTopology('t6023'); }}} While removing the 3rd vertex from the line results in a valid topology: {{{ BEGIN; SELECT * FROM topology.TopoGeo_addLinestring('t6023', 'LINESTRING( 11.230170431987244 62.84904481447776, 11.23020501303477 62.84900750109812, 11.230120879533454 62.84897119848748 )',-1); SELECT 2 as t2, * FROM topology.ValidateTopology('t6023'); }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Dec 27 03:24:24 2025 From: trac at osgeo.org (PostGIS) Date: Sat, 27 Dec 2025 11:24:24 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.053c70bf2dec8e5cf1d5ada5495af0fd@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------------ Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+------------------------ Comment (by strk): The problem seems to be that `ptarray_contains_point` finds the intersection point between edges 2,3 and 4 to be INSIDE the ring formed by edges 2 and 4. These are the relevant logs: {{{ [lwgeom_topo.c:_lwt_AddFaceSplit:2198] _lwt_AddFaceSplit: lwt_be_getEdgeByFace(0) returned 4 edges [lwgeom_topo.c:_lwt_AddFaceSplit:2239] Edge 3 is not a known edge of the new ring [lwgeom_topo.c:_lwt_AddFaceSplit:2257] Edge 3 first point inside new ring [lwgeom_topo.c:_lwt_AddFaceSplit:2284] Edge 3 has new face on the left side }}} The problem is with "Edge 3 first point inside new ring", while it's instead on the boundary of it. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 29 00:11:00 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 29 Dec 2025 08:11:00 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.65a866b44d2f6242cd3b704f4a3e2466@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------------ Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+------------------------ Changes (by Lars Aksel Opsahl): * Attachment "Screenshot 2025-12-29 at 09.05.50.png" added. Error distribution -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Dec 29 00:17:18 2025 From: trac at osgeo.org (PostGIS) Date: Mon, 29 Dec 2025 08:17:18 -0000 Subject: [PostGIS] #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) In-Reply-To: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> References: <050.a31695a98e45a24f12d651112da5e1d1@osgeo.org> Message-ID: <065.f70b383a4e4716e5cbaf11c50b36a65a@osgeo.org> #6023: Silent toplogy error in the result (face has multiple shells,mixed face labeling in ring) --------------------------------+------------------------ Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+------------------------ Comment (by Lars Aksel Opsahl): When look at the area distribution of error this seems be a problem related to all area of Norway [https://trac.osgeo.org/postgis/attachment/ticket/6023/Screenshot%202025-12-29%20at%2009.05.50.png] and not mainly only in the North. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.