Repository navigation
Conversation
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 14, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032, apache#67907 Problem Summary: The spatial type implementation removed the 0x prefix from nested VARBINARY text, changing ARRAY/MAP/STRUCT casts and empty-byte output. Restore the prefix and test serialization round trips. The shared WKB header reader also rejected legacy EWKB Z/M flags; retain the historical legacy XY interpretation while typed constructors still reject dimension and SRID metadata. Generic file TVFs inferred spatial annotations but discarded CRS/algorithm, silently creating default types outside the Iceberg scope. Explicitly reject these annotations in TVFs, including nested fields, and preserve ordinary unannotated BYTE_ARRAY mapping. Add corresponding unit tests and automatically generated SQL regression results. ### Release note Preserve nested VARBINARY hexadecimal text and legacy EWKB XY behavior. Reject spatial Parquet annotations in generic file TVFs; use an Iceberg catalog for spatial columns. ### Check List (For Author) - Test: FE TVF UT 8/8; BE Varbinary SerDe, WKB, geo functions and spatial type UT 109/109; VARBINARY P0 1/1, GIS P0 5/5, Iceberg nonConcurrent 1/1, with generated golden then non-generation verification; standard FE/BE ASAN builds; clang-format16, header hygiene and changed-line clang-tidy - Behavior changed: Yes; restore binary/legacy compatibility and explicitly limit spatial annotated file support to Iceberg - Does this need documentation: Yes; apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 14, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: OPTIONAL spatial Parquet fields lost nullable types and overcounted NULLs during COUNT pushdown. Typed spatial MySQL results and ST_AsBinary advertised text for raw WKB. Spatial SQL parameters lost literal escaping. Typed Geography reused planar or incomplete legacy relation and bearing helpers, misclassifying date-line edges, open lines, equivalent positions and point containment. Preserve field nullability, use the existing binary result contract, parse/escape SQL literals normally, and dispatch typed spherical calculations through complete S2 operations with explicit rejection of unimplemented pairs. Correct the Groovy Spark probe concatenation and stale FE test expectations. Legacy STRING GIS behavior remains unchanged. ### Release note Correct nullable spatial COUNT results, typed binary WKB result metadata, spatial parameter SQL round trips and default Geography spherical relations/bearings in the development Iceberg V3 feature. ### Check List (For Author) - Test: FE targeted 146/146; BE targeted 148/148; standard FE/BE ASAN builds; clang-format16, header hygiene and changed-line clang-tidy; GIS P0 5/5 and Iceberg nonConcurrent 1/1 after framework golden generation and non-generation verification; Unicode MySQL direct results 4/4 and mathematical reproductions 10/10 - Behavior changed: Yes; fixes apply to this PR's development spatial paths, while legacy STRING behavior is preserved - Does this need documentation: Yes; apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 15, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032, apache#68791 Problem Summary: Apache master added ConnectorScanRange split identity and advanced the connector plugin API to 14.0 while this spatial branch independently used 14.0 for ConnectorType metadata. Merge upstream/master at d3772cb, preserve both frozen interface surfaces, and resolve the version-test conflict by advancing the spatial API to 15.0. No spatial behavior or unrelated implementation is changed by the manual resolution. ### Release note Use connector plugin API 15.0 for the development spatial metadata extension on top of master API 14.0. ### Check List (For Author) - Test: Standard FE build and integrated Checkstyle; full connector SPI suite (34 classes) plus 3 spatial DDL/write classes, 185/185 tests with no failures/errors/skips; build hygiene; filtered SPI resource and Iceberg plugin manifest both report API 15.0 - Behavior changed: Yes; connector API major advances from 14.0 to 15.0 to distinguish the combined interface from upstream's existing API 14.0 - Does this need documentation: No; this resolves the existing development feature's interface version and merge conflict; feature documentation remains apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 15, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032, apache#68934 Problem Summary: Upstream nanosecond timestamp support conflicts with the spatial branch's type-mapping expectations and Parquet writer test includes. Merge Apache master at 4b01aca, preserve both spatial CRS/algorithm metadata and the upstream TIMESTAMP_NS mapping, and update the fallback explanation and test expectation. Manual conflict resolution is limited to three files; connector API 15.0 and both interface snapshots remain intact. CI failures on ca4e916 were traced to a conflicting external MySQL container and kernel global OOM kills of BE and Meta Service; no unrelated feature or CI-resource workaround is added. ### Release note None ### Check List (For Author) - Test: Standard FE build and Checkstyle; 263/263 FE tests across 43 classes; 156/156 targeted BE tests passed under ASAN/clang21 with GLIBC_COMPATIBILITY=OFF; clang-format16 and build hygiene; clang-tidy reports no diagnostics on changed lines (three existing decimal-helper full-file diagnostics retained) - Behavior changed: No additional behavior beyond combining this feature with the existing upstream nanosecond support - Does this need documentation: No additional documentation; existing feature documentation is apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 16, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Spatial MIN/MAX/ANY_VALUE passed analysis but lacked BE value-state dispatch. Reuse the existing owning column state, and reject NDV/HISTOGRAM/COLLECT_SET spatial arguments during analysis because their kernels are not implemented. Analytic erasure retained discarded WKB indefinitely; periodically copy surviving values once and release the old arena. Normalize recognized default CRS case aliases at FE/BE type boundaries so imported Geography values preserve calculation and write identity, while custom CRS strings remain unchanged. ### Release note Fix spatial single-value aggregates, bound retained WKB memory after analytic trimming, and accept case-equivalent default Geography CRS identifiers. ### Check List (For Author) - Test: Unit Test / Regression test / Manual test - BE ASAN 117/117; FE 39 classes, 223/223 including all 149 SPI tests. - New baseline reproductions: BE 14/14 failures; FE 2 failures among 3 tests. - Standard FE/BE ASAN build; isolated-instance health; framework golden generation 1/1 and non-generating spatial_functions P0 verification 5/5. - Checkstyle, clang-format16, header hygiene, changed-line clang-tidy, and two-axis self-review pass. - Behavior changed: Yes. Admitted spatial aggregates work, unsupported kernels fail during analysis, trimming reclaims payloads, and recognized default CRS aliases share identity. - Does this need documentation: No. Repairs the existing spatial contract; feature documentation remains apache/doris-website#4239.
…ructors ### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#67907 Problem Summary: Explain the development-version Iceberg V3 spatial schema and XY WKB read/write contract, parameter preservation, computation limits, legacy constructor compatibility and Arrow Flight output boundary. Add equivalent English and Chinese quick-start and typed constructor examples. Update current docs only because this implementation targets master and is not available in released versions. ### Release note Document development-version Iceberg V3 spatial types and typed WKB constructors. ### Check List (For Author) - Test: Documentation link and SQL-function structural checks; i18n and SEO checks; six constructor examples executed on the isolated task cluster. No full site build because no UI/configuration changes. - Behavior changed: No (documentation only) - Does this need documentation: No (this is the documentation change)
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Explain that spatial Parquet annotations are supported through Iceberg catalogs and are rejected by generic file TVFs, including nested fields. Clarify that unannotated BYTE_ARRAY files retain binary mapping. Keep English and Chinese development documentation aligned. ### Release note None ### Check List (For Author) - Test: Manual content review against the TVF parser and matching EN/ZH text; git diff --check - Behavior changed: No; documentation clarification for the associated code PR - Does this need documentation: Yes; this commit updates both current catalog pages
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: The new development spatial constructor reference pages were missing from the GIS sidebar. Add their entries, align Chinese parameter headings with the website documentation standard and state return types explicitly in both languages. ### Release note None ### Check List (For Author) - Test: Repository document validators, internal links and spatial sidebar checks, six constructor SQL examples, git diff --check - Behavior changed: No - Does this need documentation: Yes; this change updates the development documentation
…mits ### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Clarify that typed ST_AsBinary returns VARBINARY, preserving raw WKB for binary clients. Describe the implemented spherical relation pairs and explicit rejection of unimplemented containment/touch pairs in current English and Chinese documentation. ### Release note None ### Check List (For Author) - Test: Source-contract and EN/ZH review, internal-link checks, git diff --check; corresponding binary and relation tests in apache/doris#69032 - Behavior changed: No - Does this need documentation: Yes; this updates the development spatial documentation
morningman
force-pushed
the
docs/iceberg-spatial-types
branch
from
October 16, 2026 19:25
9b759e4 to
8e1e824
Compare
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 17, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Bare Iceberg spatial join keys can generate runtime filters that reach a BE predicate factory without spatial implementations, and constant-list spatial IN has the same missing dispatch. Suppress spatial runtime filters at creation and after probe rewrites, and reject constant-list spatial IN before coercion while retaining serialized spatial hash joins. A projjson CRS annotation also requires its referenced definition in Parquet file metadata, which the current schema-only sink does not transport. Reject such writes before opening the Parquet writer for both spatial kinds, without expanding metadata transport or changing ordinary CRS writes. ### Release note Spatial hash joins avoid unsupported runtime filters. Unsupported spatial constant-list IN/NOT IN and referenced-CRS Parquet writes fail explicitly before execution or commit. ### Check List (For Author) - Test: Regression test / Unit Test / Manual test - New FE reproductions fail 2/2 and the new BE reproduction fails 1/1 before repair. - Focused FE 93/93 and BE ASAN 19/19 pass; standard ASAN FE/BE build and source/artifact verification pass. - Framework golden generation and non-generation verification pass for Iceberg 1/1 and VARBINARY 1/1; existing spatial-functions regression passes 5/5 on the new isolated instance. - clang-format16, header hygiene, changed-line clang-tidy, Checkstyle, and Standards/Spec self-reviews pass. - Behavior changed: Yes; unsupported spatial predicates and CRS writes fail explicitly, while supported spatial joins remain available. - Does this need documentation: Yes; PR apache#69032 documents the boundaries and links apache/doris-website#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 20, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Restore block-local point reuse for legacy STRING X/Y/Angle/Azimuth instead of allocating an owning shape for every row. Typed Geography point-on-edge tests must allow coordinate-conversion roundoff on meridian lines and polygon boundaries. Nested spatial COLLECT_LIST cells use delimiter-based text state serialization, so delimiter-bearing WKB corrupts partial-state merging; reject these complex inputs before coercion while retaining scalar spatial inputs. ### Release note Correct default Geography meridian boundary relations and explicitly reject nested spatial COLLECT_LIST inputs. ### Check List (For Author) - Test: clang21 ASAN BE UT 119/119; JDK17 FE UT 3/3 with complete reactor success; standard ASAN FE/BE build; Iceberg spatial regression 1/1 and legacy GIS/WKB regressions 5/5 on task-isolated output; clang-format16, build hygiene, changed-line clang-tidy. - Behavior changed: Yes, correct typed Geography boundary relations and reject unsupported nested spatial aggregate inputs. - Does this need documentation: Yes, apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 20, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Merge official upstream/master at 9e98d36. Resolve the overlapping AnalyzeTableCommandTest imports while retaining the spatial statistics exclusion test and upstream SAMPLE ANALYZE HOT VALUE acceptance tests. No new spatial behavior is introduced by the manual resolution. ### Release note None ### Check List (For Author) - Test: AnalyzeTableCommandTest Checkstyle and conflict/import checks pass; independent Standards and merge Spec review pass. Standard FE UT was attempted for AnalyzeTableCommandTest, SpatialAggregateLegalityTest, StatisticsUtilTest, StatisticsAutoCollectorTest and ExpressionEstimationTest, but is blocked during dependency compilation by existing Eclipse/JDT unresolved-compilation placeholder classes repeatedly overwriting target output. Do not count this as a test pass; logs and generated class evidence are retained locally. Temporary editor settings/process pauses were restored. - Behavior changed: No manual behavior change; retain both sides of the upstream merge. - Does this need documentation: No merge-specific documentation; feature documentation is tracked in apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 20, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Spatial plans could reach a backend without spatial type support, including expressions hidden by nonspatial result types. Advertise an optional heartbeat capability, propagate missing fields as unsupported, and inspect both coordinators' actual plans before the first fragment RPC to any selected worker. Skip remote folding for spatial-typed expressions. ### Release note Reject spatial queries before dispatch when a selected backend lacks spatial capability; ordinary queries can still use legacy backends. ### Check List (For Author) - Test: Unit Test: 14 focused FE tests; ASAN BE 312 tests; standard ASAN FE/BE build; Iceberg regression 1/1 and spatial functions 6/6; live missing-capability heartbeat rejection and new-BE success; Checkstyle, format16, hygiene and clang-tidy. - Behavior changed: Yes; explicit pre-dispatch error for unsupported spatial backends. - Does this need documentation: Yes; apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 20, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Typed raw WKB validation rejected standard ISO XYZ/XYM/XYZM before Iceberg storage and writeback. Parse dimensional coordinate strides in the raw reader, preserve bytes and complete WKT ordinates, and retain explicit non-XY rejection before S2 calculations. Keep legacy STRING/EWKB behavior unchanged. ### Release note Preserve ISO WKB Z/M coordinates in typed accessors and Iceberg Parquet read/write; calculations remain XY only. ### Check List (For Author) - Test: Unit Test: ASAN BE 312/312; FE 14/14; standard ASAN FE/BE build; Iceberg generation and non-generation verification 1/1, including V1/V2 and fresh-catalog WKB round trips; spatial functions 6/6; framework-generated golden files; format16, hygiene and changed-line clang-tidy. - Behavior changed: Yes; accept standard ISO dimensional WKB for storage and raw access, without enabling higher-dimensional calculations or typed EWKB flags/SRID. - Does this need documentation: Yes; apache/doris-website#4239
…quisites ### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Align the development English and Chinese spatial references with ISO XY/XYZ/XYM/XYZM raw storage and accessors, XY-only calculations, and pre-dispatch backend capability checks. ### Release note Document dimensional WKB retention and spatial backend prerequisites in development documentation. ### Check List (For Author) - Test: Front matter and internal links; explicit SQL-function structure comparison (zero introduced findings); EN/ZH correspondence and unchanged examples/anchors; git diff --check. Source ASAN BE 312/312, FE 14/14, Iceberg regression 1/1 and spatial regression 6/6. Full website build and browser rendering not run. - Behavior changed: No; documentation only. - Does this need documentation: No; this is the documentation update.
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: The spatial heartbeat capability and pre-dispatch mixed-version guard are being removed per maintainer direction. Update only the current English and Chinese Iceberg catalog prerequisites: all participating FEs/BEs must support spatial types, and this feature does not provide mixed 4.x/5.0 execution compatibility. ### Release note Clarify spatial backend prerequisites in development documentation. ### Check List (For Author) - Test: Front matter and internal links pass for both pages; matching English/Chinese scope, unchanged headings and SQL examples, and git diff --check. Full website build and browser rendering were not run. - Behavior changed: No; documentation only. - Does this need documentation: No; this is the documentation synchronization.
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Document the explicit FE admission limits for scalar spatial MIN/MAX_BY and MULTI_DISTINCT_COUNT, analytic COUNT DISTINCT, spatial TOPN_ARRAY inputs and spatial group-array set operations. Update only the current English and Chinese Iceberg catalog spatial section and retain the ordinary COUNT/grouping/SELECT DISTINCT contract. ### Release note Clarify aggregate limitations for development-version Iceberg spatial types. ### Check List (For Author) - Test: Front matter and internal links pass for both pages; matching English/Chinese scope, unchanged headings and SQL examples, and git diff --check. Full website build and browser rendering were not run. - Behavior changed: No; documentation only. - Does this need documentation: No; this is the documentation synchronization.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 21, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Spatial execution assumes compatible participating FEs/BEs and does not provide mixed 4.x/5.0 execution compatibility. Remove the PR-only spatial heartbeat capability, FE heartbeat persistence/propagation, both coordinator checks, the plan walker and dedicated gate tests. Retain the spatial constant-folding restriction because FE cannot decode spatial PValues. Preserve all other protocol fields and capabilities. ### Release note Spatial queries require participating FEs/BEs with spatial support and do not use a separate heartbeat capability gate for mixed-version execution. ### Check List (For Author) - Test: FE unit tests 17/17, including constant folding, both coordinators and heartbeat/Paimon capability; BE unit tests 242/242 plus raw BYTE_ARRAY reader 1/1; standard ASAN FE/BE build; isolated non-generation Iceberg 1/1, GIS 6/6 and VARBINARY 1/1 regression suites; format16, Checkstyle, hygiene and changed-line clang-tidy. Audited TBackendInfo on five official branch snapshots; other ids unchanged. - Behavior changed: Yes; remove only the spatial mixed-version dispatch gate and its heartbeat capability. - Does this need documentation: Yes; apache/doris-website#4239, synchronized locally in commit 127bb164c (not pushed).
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 21, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Spatial arguments pass the ANY signatures of MIN/MAX_BY, TOPN_ARRAY, MULTI_DISTINCT_COUNT and GROUP_ARRAY_UNION/INTERSECT, but their independent BE factories have no matching dispatch. Reject only the unsupported spatial combinations before execution. Validate MULTI_DISTINCT_COUNT after analytic DISTINCT rewriting and when COUNT converts to that implementation during physical planning. Keep ordinary COUNT, grouping, SELECT DISTINCT and the existing generic-column MIN/MAX_BY paths. Add nullable Geometry/Geography, argument-position, combinator, actual window-rewrite and ordinary-type coverage. ### Release note Unsupported spatial aggregate argument combinations now produce explicit FE errors instead of failing during BE aggregate initialization. ### Check List (For Author) - Test: JDK17 FE unit tests 21/21 and standard FE build including Checkstyle. Task-isolated Iceberg regression generation and non-generation verification each 1/1; all 54 prior golden sections unchanged and exactly two positive-result sections generated by the framework. Source, artifact, configuration and process identities verified. No BE source change; retain the verified BE binary and process. - Behavior changed: Yes; reject only spatial combinations without BE aggregate implementations before execution. - Does this need documentation: Yes; apache/doris-website#4239, synchronized locally without pushing.
### What problem does this PR solve? Issue Number: N/A Related PR: apache#4239 Problem Summary: Upstream moved the Iceberg type mapping tables to Doris 4.2 reference subpages, conflicting with the development spatial additions in the English and Chinese catalog guides. Merge upstream/master, retain its mapping links and navigation, and preserve the spatial sections and existing anchors. Do not add development spatial claims to the 4.2 references. ### Release note None ### Check List (For Author) - Test: Repository internal-link checker passed for ten affected/reference pages; front matter, existing headings, exact spatial-section preservation, six unchanged function pages, sidebar scope and diff checks against upstream passed. Full website build was not run. - Behavior changed: No; resolve documentation merge conflicts only. - Does this need documentation: Yes; this is documentation PR apache#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 21, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032 Problem Summary: Default Geography meridian lines with different endpoints can become disjoint after conversion to rounded S2 vectors. Preserve exact intersections and reuse the existing conversion-scale error bound for nonpoint shape distances. LEAST/GREATEST also admit spatial values without a matching BE implementation; reject their original spatial arguments during FE analysis. Add nullable Iceberg slot, constant, disjoint-control and ordinary-type regressions, retaining ordinary-key spatial-value aggregate states. Clarify the existing normalized-ring calculation contract without changing raw WKB or adding oriented large-region calculations. ### Release note Correct Geography intersections affected by coordinate conversion roundoff and reject unsupported spatial LEAST/GREATEST during analysis. ### Check List (For Author) - Test: Unit Test / Regression test / Manual test - JDK17 FE UT 72/72; clang21 ASAN BE UT 126/126; standard build.sh --fe --be -j16 and Checkstyle passed. - clang-format16, build hygiene and changed-line clang-tidy passed. - Iceberg generation and non-generation verification each 1/1; existing GIS suites 6/6. All 66 prior Iceberg golden sections unchanged; four new sections generated by the framework and independently checked. - Six read-only dateline, polar and hole/winding probes passed with original WKB retained. - An unchanged failed-writer cleanup assertion observed a transient zero-byte object once. Follow-up listing was empty and the original suite passed on rerun; cleanup code is unchanged. Local checks do not certify complete community CI. - Behavior changed: Yes (correct typed Geography relations and move unsupported spatial scalar comparison errors to FE analysis) - Does this need documentation: Yes (apache/doris-website#4239)
### What problem does this PR solve? Issue Number: None Related PR: apache/doris#69032 Problem Summary: Clarify in the existing English and Chinese Iceberg spatial sections that LEAST/GREATEST reject spatial arguments and that spherical calculation rings select the smaller region independently of winding. Raw WKB order and bytes remain preserved; no oriented large-region calculation support is promised. ### Release note None ### Check List (For Author) - Test: Manual test - Both existing current EN/ZH pages checked for matching constraints, unchanged metadata, headings, code fences and links; git diff --check passed. No site build was run. - Corresponding code passed FE/BE unit tests and directed Iceberg/GIS regressions; winding and raw WKB controls were independently checked. - Behavior changed: No (documentation of the companion code fix and existing calculation limits) - Does this need documentation: Yes (this change)
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 22, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032 Problem Summary: Native Geometry/Geography GROUP BY and DISTINCT compare preserved WKB bytes, splitting the same point encoded in different byte orders. MIN/MAX likewise depend on encoding without a defined spatial order. Reject spatial grouping keys, DISTINCT and MIN/MAX in FE, including nested keys, window aggregates and typed NULL/state entry points. Preserve ordinary-key spatial-value aggregates, COUNT/ANY_VALUE and the shared BE column/state implementations. Explicit hex(ST_AsBinary(...)) remains available for byte-level grouping. ### Release note Native spatial GROUP BY, DISTINCT and MIN/MAX now report analysis errors instead of exposing implicit WKB byte semantics. ### Check List (For Author) - Test: Unit Test / Regression test / Manual test - Targeted FE UT 87/87; standard build.sh --fe -j16 and Checkstyle passed. - GIS WKB compatibility and actual Iceberg spatial regression generation/verification each passed 1/1; generated results independently checked, ordinary-key spatial-value map state/merge controls retained. - Only the task FE was redeployed; BE source, artifacts and process were retained. Source/artifact/config/process identities checked; local tests do not certify all community CI. - Behavior changed: Yes (reject undefined native spatial grouping, deduplication and min/max semantics) - Does this need documentation: Yes (apache/doris-website#4239)
### What problem does this PR solve? Issue Number: None Related PR: apache/doris#69032 Problem Summary: Document the FE rejection of native spatial GROUP BY, DISTINCT and MIN/MAX because preserved WKB bytes do not define spatial equality or ordering. Update current English and Chinese Iceberg pages together, retain ordinary-key spatial-value and COUNT/ANY_VALUE support, and explain explicit hex WKB grouping under existing VARBINARY restrictions. ### Release note Clarify native spatial aggregation limits. ### Check List (For Author) - Test: Manual test (front matter/internal-link checks and bilingual review passed; matching code regressions passed; full site build not run for prose-only changes) - Behavior changed: No (documentation only) - Does this need documentation: No (this is the corresponding documentation update)
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 22, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032 Problem Summary: Spatial UNION DISTINCT, INTERSECT/EXCEPT and DISTINCT list aggregates bypassed existing FE grouping restrictions, then compared preserved WKB encodings in later or native set operators. Equivalent little- and big-endian points could incorrectly remain distinct. Check spatial set outputs before lowering and DISTINCT ARRAY_AGG/COLLECT_LIST arguments before coercion and after rewrite. Preserve UNION ALL, nondistinct scalar lists and ordinary-key/spatial-value support without changing spatial equality or BE storage. ### Release note Unsupported spatial set comparisons and DISTINCT list aggregates now report FE analysis errors. ### Check List (For Author) - Test: Unit Test / Regression test / Manual test - Targeted FE UT 89/89; standard build.sh --fe -j16 and Checkstyle passed. - GIS and actual Iceberg spatial generation/verification each passed 1/1, covering both kinds, endian-equivalent points, NULL, UNION ALL and nondistinct lists. Prior golden sections remain unchanged. - Task FE redeployed; BE source/artifacts/process retained. Source/artifact/config/process identities checked. Local checks do not certify full community CI. - Behavior changed: Yes (reject unsupported spatial set comparison and DISTINCT list semantics) - Does this need documentation: Yes (apache/doris-website#4239)
### What problem does this PR solve? Issue Number: None Related PR: apache/doris#69032 Problem Summary: Document FE rejection of spatial UNION DISTINCT, INTERSECT/EXCEPT and DISTINCT ARRAY_AGG/COLLECT_LIST. Keep current English and Chinese Iceberg pages aligned, retaining UNION ALL, nondistinct scalar lists and ordinary-key/spatial-value support. ### Release note Clarify spatial set and list aggregate limits. ### Check List (For Author) - Test: Manual test (two-page front-matter/internal-link checks and bilingual review; matching code regressions passed; full site build not run for prose-only edits) - Behavior changed: No (documentation only) - Does this need documentation: No (this is the corresponding documentation update)
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Describe recursive Geometry and Geography leaves in Array, Map values and Struct fields for Iceberg V3 Parquet. Clarify that native spatial values inside Variant remain unsupported, ordinary Variant columns may coexist with spatial columns, and spatial window partition keys and COUNT_AT_MIN/MAX arguments are rejected. Add matching Chinese and English SQL examples. ### Release note Document nested Iceberg spatial read/write support and its limits in the development version. ### Check List (For Author) - Test: Documentation link and feature governance checks; matching bilingual SQL examples executed against task-owned Doris and Iceberg services. No full website build. - Behavior changed: No - Does this need documentation: Yes, this change updates the English and Chinese Iceberg catalog pages.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 24, 2026
### What problem does this PR solve? Related PR: apache#69032 Problem Summary: Iceberg spatial values inside Array elements, ordinary-key Map values and Struct fields could be read but were rejected on writes. Validate spatial identity and WKB recursively, preserve Parquet spatial annotations and container semantics, and admit nested spatial DDL through an explicit Iceberg capability. Normalize actual typed NULL leaves in INSERT VALUES without relaxing ordinary field shape or nullability checks. Bump the connector API and regenerate its surface baseline as required for the new capability. Reject spatial window partition keys and COUNT_AT_MIN/MAX inputs during analysis. Keep ordinary keys with spatial values supported, and explicitly reject native spatial values entering Variant while preserving ordinary Variant neighbors. ### Release note Support recursive Geometry and Geography read/write in Iceberg V3 Parquet Array, Map values and Struct fields. Native spatial values inside Variant remain unsupported. ### Check List (For Author) - Test: Targeted FE UT 319 passed, including all 149 SPI tests; final constructor-path FE UT 32 passed. BE UT 113 passed with the source-bound local ASAN compatibility overlay. Exact test_iceberg_spatial_v3 regression generated and then verified with zero failures/skips; 80 existing golden sections unchanged and nine added. Spark 4.1/Iceberg 1.12 and PyArrow independently read all seven rows and eight nested columns from three Doris-written files. FE/BE builds, Java checkstyle, clang-format16, BE hygiene and changed-line clang-tidy passed. Local ASAN runtime used an 8-core/32GB task-only BE after retaining a 16GB environment-limit failure. - Behavior changed: Yes, nested spatial connector writes and DDL are admitted; unsupported spatial partition/COUNT_AT/Variant uses fail during analysis. - Does this need documentation: Yes, apache/doris-website#4239 (matching bilingual changes committed locally).
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 24, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032 Problem Summary: Explicit MULTI_DISTINCT_COUNT accepted arrays containing spatial values and compared their raw WKB encodings. Reject spatial leaves recursively through the existing legality checks while retaining ordinary arrays and nondistinct spatial values. Update the obsolete MERGE test expectation for supported matching nested writes, and cover kind, CRS and algorithm mismatches beneath existing target casts without changing production MERGE behavior. ### Release note Reject nested spatial arguments to MULTI_DISTINCT_COUNT during analysis. ### Check List (For Author) - Test: Unit Test: SpatialAggregateLegalityTest and BindExpressionTest, 40 passed; Regression test: test_iceberg_spatial_v3 generation and verification; standard FE build with Checkstyle and verified unchanged ASAN BE - Behavior changed: Yes, explicit nested spatial distinct aggregation now fails during analysis; production MERGE behavior is unchanged - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Document the corrected MIN_MAP/MAX_MAP rejection for recursive spatial values and state combinators, while retaining ordinary-key spatial-value MAP_AGG/COUNT_MAP support. Clarify explicit BINARY external schema compatibility with valid spatial-annotated Parquet leaves in both English and Chinese. ### Release note Clarify the spatial support matrix and binary read boundary. ### Check List (For Author) - Test: Targeted links, feature documentation and translation sync checks; matching targeted code tests - Behavior changed: No, documentation only - Does this need documentation: Yes, this change
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 24, 2026
### What problem does this PR solve? Related PR: apache#69032 Problem Summary: MIN_MAP and MAX_MAP accepted spatial values and ordered raw WKB bytes despite native spatial ordering being unsupported. Reject recursive spatial values through their existing analysis and aggregate-state checks while preserving MAP_AGG and COUNT_MAP with ordinary keys and spatial values. Explicit BINARY external table schemas also failed to read GEOMETRY/GEOGRAPHY-annotated Parquet after spatial schema inference was added. Adapt only the v1 converter and v2 evolution boundary to retain owning WKB bytes and NULLs, without enabling ordinary SQL spatial casts. ### Release note Reject undefined spatial MIN_MAP/MAX_MAP ordering, including nested values and aggregate-state combinators. Preserve explicit binary external table reads of valid spatial-annotated Parquet leaves. ### Check List (For Author) - Test: FE SpatialAggregateLegalityTest (24); focused BE converter/evolution/nested table-reader tests (31); standard ASAN BE+FE build; Iceberg spatial regression generation and verification; clang-format 16, build hygiene and changed-line clang-tidy - Behavior changed: Yes, reject unsupported spatial extrema and restore binary read compatibility - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Distinguish recursively rejected spatial ordering keys from supported nested spatial result values with ordinary keys in the English and Chinese support matrix. ### Release note Clarify MIN_BY/MAX_BY spatial argument restrictions. ### Check List (For Author) - Test: Targeted link, feature documentation and translation sync checks; corresponding FE and Iceberg regression validation - Behavior changed: No, documentation only - Does this need documentation: Yes, this change
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 25, 2026
### What problem does this PR solve? Related PR: apache#69032 Problem Summary: MIN_BY/MAX_BY only rejected scalar spatial arguments, so ARRAY keys could still compare Geometry/Geography WKB bytes and change an ordinary result when only byte order changed. Recursively reject spatial leaves in the ordering argument while preserving the existing scalar-result restriction and nested spatial result values with ordinary keys. Existing rewrite and state validation use the same entry point. ### Release note Reject spatial MIN_BY/MAX_BY ordering keys recursively, including aggregate-state paths; retain ordinary-key nested spatial result values. ### Check List (For Author) - Test: SpatialAggregateLegalityTest (25); standard FE build and Checkstyle; exact Iceberg spatial regression generation and non-generation verification - Behavior changed: Yes, reject unsupported spatial ordering keys before execution - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: The development-version spatial documentation still describes point-only containment and touching and omits the new equality, overlap and distance-threshold functions. Document the admitted spherical Geography domain, precise relation semantics, NULL/error behavior and metre threshold; add paired English/Chinese function pages and current-version navigation. ### Release note Document typed ST_Equals, ST_Overlaps, ST_DWithin and completed Contains/Within/Touches combinations. ### Check List (For Author) - Test: Changed-file links, feature and i18n checks; SQL examples executed on the matching local Doris build; no full website build - Behavior changed: No; documentation only - Does this need documentation: Yes; this commit
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: The new Equals, Overlaps and DWithin pages state NULL propagation without runnable NULL examples. Add matching English and Chinese examples, use formal syntax placeholders and align the English return-value headings with the function-documentation convention. ### Release note None ### Check List (For Author) - Test: Changed-file SQL-function, links, feature and i18n checks; three NULL SELECT examples executed on the verified local function build; no full website build - Behavior changed: No - Does this need documentation: Yes; this commit
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 26, 2026
### What problem does this PR solve? Related PR: apache#69032 Problem Summary: Default typed Geography calculations reject line and polygon containment/touching combinations and lack explicit equality, overlap and distance-threshold functions. Complete those combinations for nonempty XY Point, LineString and Polygon, add ST_Equals/ST_Overlaps/ST_DWithin, and share the typed spherical distance path. Node proven common geodesic edges using original WKB coordinates so equivalent segmentations compare consistently without changing stored WKB or legacy STRING behavior. Keep ordinary keys with spatial values and existing static-container read/write support. ### Release note Add typed ST_Equals, ST_Overlaps and ST_DWithin and complete Contains/Within/Touches combinations for default spherical Geography. Other CRS, Geometry calculations, Multi*/EMPTY/Z/M calculations and spatial key semantics remain outside this change. ### Check List (For Author) - Test: BE geo/WKB 107 tests; FE constructor/aggregate-legality 38 tests; standard ASAN BE+FE build; GIS and Iceberg regression generation and verification; clang-format16, header hygiene, changed-line clang-tidy and Checkstyle - Behavior changed: Yes; complete admitted Geography combinations and add three typed predicates - Does this need documentation: Yes; apache/doris-website#4239 (paired local update)
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 27, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Distinct Geography line endpoints can round to the same S2 point. Contains/Within then accept a shorter raw line as covering a longer one, and Overlaps loses partial or tiny positive overlaps. Reuse the canonical raw atomic edges from the existing shared noding pass for directional coverage and line overlap, while retaining S2 checks for degenerate positions. Row-level UPDATE projects typed NULL assignments before constant folding, so an INT-typed NULL slot is rejected when coerced to a spatial target. Reuse the existing proven-NULL normalizer with the merge sink's data-column ordinals before coercion. Preserve routing, hidden passthrough, ordinary casts, Variant lineage checks and non-NULL spatial identity validation. ### Release note Fix default Geography line containment and overlap at rounded endpoints, and accept proven typed NULL assignments to nullable Iceberg spatial columns during UPDATE. ### Check List (For Author) - Test: ASAN BE geo/WKB UT 136/136 and selected FE UT 45/45, with zero failures or skips; standard ASAN BE+FE build and Java Checkstyle; exact GIS and Iceberg suites generated and verified with zero failures/fatal/skips; 163 prior golden sections unchanged. Private BE UT compatibility overlay used. clang-format16, hygiene, changed-line clang-tidy and diff --check passed. - Behavior changed: Yes, correct existing spatial predicate and NULL-write semantics; preserve ordinary-key/spatial-value support. - Does this need documentation: No, this fixes existing contracts without adding a supported domain; documentation PR remains apache/doris-website#4239.
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Different original Polygon boundaries can collapse to the same S2 region. Explain that typed equality distinguishes raw boundaries while containment/within/overlap reject these ambiguous pairs. Keep the current English and Chinese catalog references aligned, including the ordinary-containment and unchanged-storage limits. ### Release note Document the finite-precision limit for typed Geography polygon predicates. ### Check List (For Author) - Test: Manual bilingual/content review and git diff --check; only two plain-text paragraphs, with original bytes, frontmatter, URLs and navigation preserved. No site build. - Behavior changed: No, documentation follows apache/doris#69032. - Does this need documentation: Yes, this is the documentation update.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 27, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: MERGE synthesizes eager target casts before analysis, so CAST(NULL AS INT) fails when assigned to a spatial target. Retag only cast chains rooted at a literal NULL before the existing eager cast. Preserve actual values, routing, branch selection and write identity checks. Distinct raw Polygon apexes can become the same S2 point and cause false equality or containment. Collect canonical raw boundary edges with ring-depth parity during existing noding. Distinguish equality by those boundaries and explicitly reject containment/within/overlap when different raw boundaries collapse to one S2 region. Preserve normal containment and equivalent subdivisions without adding a raw region solver. Rounded line endpoints across a real raw gap can also produce a false Touches result. Require a genuine raw open endpoint contact for line-line candidates, reusing the existing membership predicate. ### Release note Accept literal-NULL cast chains in spatial MERGE branches. Preserve raw Polygon identity and reject S2-ambiguous polygon containment/overlap explicitly. Reject false line touches across rounded endpoint gaps. ### Check List (For Author) - Test: ASAN BE geo/WKB UT 140/140 and selected FE UT 51/51, zero failures or skips; standard ASAN BE+FE build and Checkstyle; exact GIS and Iceberg suites generated and verified with zero failures/fatal/skips, retaining all 165 prior golden sections and adding three. Private BE UT compatibility overlay used. clang-format16, hygiene, changed-line clang-tidy and diff --check passed. - Behavior changed: Yes, fix MERGE NULLs and relation correctness with a documented finite-precision rejection; preserve ordinary-key/spatial-value and nested support. - Does this need documentation: Yes, apache/doris-website#4239.
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Document the raw boundary contact requirement for typed ST_Touches and the explicit rejection of rounded-away line segments that are not shared Polygon boundary segments. Keep English and Chinese current catalog pages aligned, including the conservative rejection of outside subdivisions. ### Release note None ### Check List (For Author) - Test: Manual test - Mirrored prose checked against implementation; all bytes outside the existing precision paragraph are unchanged; no heading, URL, frontmatter, link or navigation change; git diff --check passed. - Behavior changed: No - Does this need documentation: Yes; this is the current English/Chinese documentation update for apache/doris#69032.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 27, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: A line endpoint at latitude 58 and a Polygon apex at the next representable latitude can convert to the same S2 point, making ST_Touches true for disjoint inputs. Require a shared canonical raw boundary node from the existing noding for Touches pairs involving a Polygon, including the parallel Polygon/Polygon case. Preserve OPEN interior rejection and the existing line/line checks. Explicitly reject rounded-away raw line segments that cannot be proven to lie on the Polygon boundary instead of guessing their interior relationship. ### Release note Typed Geography ST_Touches rejects false rounded Polygon contacts. Candidate line/Polygon contacts with collapsed non-boundary raw line segments fail explicitly, including otherwise equivalent outside subdivisions at that precision. Raw WKB storage and ordinary-key/spatial-value support are unchanged. ### Check List (For Author) - Test: Unit Test / Regression test - ASAN geo/WKB BE UT 142/142, no failures/skips; standard ASAN BE-only build; GIS standard generation and non-generation verification; full selected Iceberg spatial suite verification; clang-format16, hygiene, changed-line clang-tidy and diff checks. Explicit private UT compatibility overlay used. FE sources, complete artifacts and actual process unchanged; no new FE UT claimed. - Behavior changed: Yes; correct typed Polygon boundary contacts and reject unresolved collapsed line fragments. - Does this need documentation: Yes; apache/doris-website#4239.
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Explain the explicit precision limits for points and nonshared raw edges that round onto Polygon boundaries. Update the existing English and Chinese precision paragraphs to match the new interior checks and preserve the defined false Touches result without raw boundary contact. ### Release note Clarify the supported Geography calculation precision limits. ### Check List (For Author) - Test: English/Chinese source review and diff --check; verified all bytes outside the existing precision paragraph, links, headings and frontmatter unchanged. No full website build for this prose-only change. - Behavior changed: No, documentation only. - Does this need documentation: Yes, this PR.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 27, 2026
…literals ### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Extreme coordinate rounding can place distinct raw Geography edges or points on a Polygon boundary and return incorrect interior-dependent relations. Reuse the existing raw-edge noding and S2 boundary models to reject unresolved interior and point-ownership cases explicitly, preserving defined false Touches results without raw boundary contact. Spatial CRS SQL rendering also doubled backslashes under NO_BACKSLASH_ESCAPES. Propagate the rendering mode explicitly through external column and nested type rendering while preserving canonical metadata output and existing nonspatial virtual dispatch. ### Release note Ambiguous spherical Polygon boundary calculations fail explicitly. Spatial CRS literals retain their identity when external table schemas are recreated under either backslash SQL mode. ### Check List (For Author) - Test: ASAN spatial/WKB BE UT 144/144; targeted FE UT 59/59; standard ASAN BE+FE build with Checkstyle; GIS and Iceberg regression generation and verification; format16, hygiene, changed-line clang-tidy and diff checks. All 169 previous golden sections unchanged, three added. Targeted private environment evidence, not full community CI. - Behavior changed: Yes, reject unresolved precision cases and preserve CRS identity across SQL modes; raw WKB and ordinary-key spatial values remain supported. - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Issue Number: N/A Related PR: apache/doris#69032 Problem Summary: Polygon Overlaps cannot reliably classify disjoint rounded interiors when distinct original boundary nodes occupy the same S2 position. Add the explicit rejection condition to the existing English and Chinese precision-limit paragraphs, preserving shared raw boundary subdivisions. ### Release note Clarify the precision limits of typed Geography Polygon overlap calculations. ### Check List (For Author) - Test: Bilingual source review and diff --check; all other bytes, links, headings, frontmatter and navigation unchanged. No website build for this prose-only change. - Behavior changed: No, documentation only. - Does this need documentation: Yes, this PR.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 28, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: A genuine endpoint contact could hide a separate raw interior line crossing after S2 rounding. Polygon Overlaps also missed isolated rounded boundary-vertex collisions. Reuse existing noded raw vertices to exclude those line crossings and explicitly reject unresolved Polygon collisions, preserving shared raw subdivisions. Nested typed-NULL MERGE constructors were rejected by eager target casts before sink normalization; retag only proven NULL leaves in existing container constructors before binding, recomputing bound signatures while retaining actual spatial identity and ordinary keys/fields. ### Release note Correct typed Geography line Touches and reject unresolved Polygon vertex-overlap cases. Accept proven typed NULL leaves in nested Array/Map/Struct MERGE constructors without weakening spatial identity checks. ### Check List (For Author) - Test: ASAN geo/WKB BE UT146/146; selected FE UT33/33; standard ASAN BE+FE build with Checkstyle; GIS and full selected Iceberg generation+verification; all172 prior golden sections unchanged, four added. Format16, hygiene and changed-line clang-tidy passed. Targeted private environment with explicit BE UT compatibility overlay; no full community CI claim. - Behavior changed: Yes, within the existing spatial calculation/write domain. Broader adjacent Polygon micro-boundary behavior remains a separately recorded numerical limitation; no kernel rewrite is included. - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Issue Number: None Related PR: apache/doris#69032 Problem Summary: Align the existing English and Chinese current Iceberg spatial section with strict-coverage precision rejection, recursive COLLECT_SET/state validation and explicit NULL-only Array CASTs in MERGE. Preserve the ordinary-key/spatial-value contract and existing current-version scope. ### Release note Clarify spatial precision errors and supported NULL-array writes. ### Check List (For Author) - Test: Exact mirror/structure, front matter, heading, link, code-fence and diff checks; associated Doris ASAN build, BE222/FE89 and targeted GIS/Iceberg/VARBINARY verification passed. No full website build; only three existing paragraphs per locale change. - Behavior changed: No; documentation follows the related correctness fixes. - Does this need documentation: Yes; this change updates both current locales.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 28, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032 Problem Summary: Shared raw Polygon subdivisions can add duplicate rounded S2 vertices and make OPEN intersection asymmetric. Compact only the calculation ring while retaining original WKB and raw boundary nodes. Move the existing raw-vertex collision check before strict polygon coverage exits so an exterior raw apex cannot be accepted as contained. Recursively reject unsupported nested spatial COLLECT_SET inputs during FE analysis, including aggregate-state paths. Normalize explicit Array CAST wrappers around proven NULL-only MERGE constructors while preserving non-NULL values, original cast flags and invalid array-depth conversions. ### Release note Correct Geography Polygon boundary contact and reject ambiguous strict coverage explicitly. Reject nested spatial COLLECT_SET inputs during analysis and accept NULL-only Array CAST constructors in spatial MERGE branches. Ordinary-key/spatial-value operations remain supported. ### Check List (For Author) - Test: Four new red tests reproduced the defects (BE 2/2 failed; FE 2/2 failed). Standard ASAN BE+FE build, BE UT 222/222, six selected FE classes 89/89, GIS and Iceberg generation plus non-generation verification, and ordinary VARBINARY verification all passed with zero failures/skips. All 176 previous golden sections are byte-identical and three generated witnesses match independent expected values. clang-format16, header hygiene and production/UT changed-line clang-tidy passed. Local gpt-6.1-sol/max Standards and Spec review found no remaining new actionable issue. Explicit source-bound BE UT compatibility overlay used; this is targeted local coverage, not complete community CI. - Behavior changed: Yes; incorrect Polygon booleans and late unsupported-aggregate failures are corrected, and proven NULL-only Array casts retain NULL semantics. No additional spatial calculation domain is added. - Does this need documentation: Yes; apache/doris-website#4239
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Align English and Chinese current Iceberg documentation with the existing precision guard applied to Polygon/LineString containment and the NULL-only array cast handling shared by INSERT SELECT, UPDATE and MERGE. Mixed-dimension Overlaps remains false. ### Release note None ### Check List (For Author) - Test: Matched English/Chinese paragraph validation; headings, frontmatter, links and navigation unchanged; associated GIS and Iceberg regression verification. No full website build. - Behavior changed: No, documentation only. - Does this need documentation: This commit updates the matching current documentation in both languages.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 28, 2026
### What problem does this PR solve? Related PR: apache#69032 Problem Summary: A raw exterior LineString endpoint can round onto a Polygon vertex and incorrectly pass Geography containment. Reuse the existing collision guard for Polygon-containing-LineString predicates, retaining inverse-dimensional false results and exact-boundary controls. Bound INSERT SELECT and UPDATE sinks also reject CAST-wrapped NULL-only arrays supported by MERGE. Reuse the NULL-only proof before validation while preserving cast flags, invalid source dimensions, actual-value identity and ordinary-key spatial values. ### Release note Reject ambiguous Polygon/LineString containment and support proven NULL-only array casts in spatial INSERT SELECT and UPDATE writes. ### Check List (For Author) - Test: Targeted ASAN BE Geo/WKB unit tests 149/149 and FE sink/validator/MERGE unit tests 32/32; standard ASAN BE+FE build; GIS and Iceberg generation and verification, plus VARBINARY verification; format16, hygiene and changed-line clang-tidy. - Behavior changed: Yes, fix admitted spatial containment and NULL-array write paths. - Does this need documentation: Yes, apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 28, 2026
…nodes ### What problem does this PR solve? Related PR: apache#69032 Problem Summary: Geography arithmetic requires precision and exponent range that Apple ARM64 long double does not provide. Select existing Boost software quad only on narrow ABIs while retaining the native path and GCC15 include compatibility. Dense tiny Polygon rings also recall their entire vertex cluster for each directed edge. Select complete raw coordinate bands when conservatively proven small, retaining exact membership proofs, directed rings, holes and the full S2 fallback. ### Release note Fix Geography builds on binary64-long-double platforms and avoid repeated dense-ring candidate scans without changing supported spatial inputs or results. ### Check List (For Author) - Test: ASAN BE Geography/WKB unit tests 152/152; standard ASAN BE+FE build and Checkstyle; targeted native GIS, Iceberg and VARBINARY regression suites; format16, header hygiene and changed-line clang-tidy; native/53-bit-ABI/GCC15 compiler probes. Full Apple build and complete community CI remain outside local verification. - Behavior changed: No. Preserve admitted inputs, raw WKB, exact predicates and ordinary-key spatial values. - Does this need documentation: No. Existing support contract in apache/doris-website#4239 is unchanged.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 29, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#69032, apache#69683, apache#69799 Problem Summary: Upstream partition batching and the spatial SPI extension both used connector API 25.0. Merge official master while retaining both interface surfaces, advance the spatial extension to 26.0, and update its surface-test pin. Preserve both spatial constant-folding protection and upstream HLL exclusions. Apply the two approved HLL constant-result getter calls equivalent to apache#69799; do not change HLL algorithms or its tests. Spatial functionality and ordinary-key spatial-value support remain unchanged. ### Release note None ### Check List (For Author) - Test: Standard ASAN BE+FE build and Checkstyle; selected FE UT 219/219 (including SPI 153/153); GIS, Iceberg and VARBINARY native regressions; API26 resource and ten connector manifests; format16, hygiene and changed-line clang-tidy. BE UT compilation is blocked before execution by unchanged upstream HLL test references to the removed ColumnPtrWrapper; no passing BE UT is claimed. - Behavior changed: No. Preserve both parent features and distinguish the spatial SPI major version from upstream partition batching. - Does this need documentation: No. Internal merge/API reconciliation; public spatial contracts in apache/doris-website#4239 remain unchanged.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 30, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Restricting unsupported spatial calculations in FE inadvertently applied the calculation-only signature to ST_X/ST_Y, rejecting Geometry coordinates in real Iceberg scans. Reuse the existing metadata-preserving accessor signature. Keep calculation rejection unchanged, cover parameterized and nullable accessor inputs and unsupported calculation metadata, and align old regression assertions with FE-side errors. This fixes the corresponding FE UT, P0, cloud_p0 and external regression failures without changing supported calculations or ordinary-key/spatial-value behavior. ### Release note Restore ST_X/ST_Y access to original WKB point coordinates for typed spatial values. ### Check List (For Author) - Test: Standard ASAN BE+FE build, Checkstyle and build hygiene passed. Selected FE/SPI unit tests: 185/185, zero failures/errors/skips. Native test_spatial_wkb_compatibility and test_iceberg_spatial_v3: one suite each, zero failed/fatal/skipped scripts, 67/114 executed tags. All 10,038 existing golden files remain byte-identical. - Behavior changed: Yes. Typed coordinate accessors retain metadata without invoking spherical-calculation admission; unsupported calculation inputs continue to fail explicitly. - Does this need documentation: No. Restore the existing documented accessor contract; related documentation is apache/doris-website#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 30, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: The nonpoint Geography fallback treated a conservative conversion-distance bound as proof of intersection. Reuse existing raw noding to prove contact for these candidates, and explicitly reject unresolved proximity while preserving confirmed contacts and the original S2 intersection path. ### Release note Near nonpoint Geography curves without contact evidence fail explicitly instead of returning a false intersection. ### Check List (For Author) - Test: Standard ASAN BE+FE build; selected FE unit tests 63/63 and BE unit tests 184/184, zero failures/errors/skips; native GIS/Iceberg regression suites, 67/114 executed tags with zero failed/fatal/skipped scripts. Existing golden files are unchanged. Final BE test-only formatting/helper changes were re-tested with 184 passing tests and clang-tidy. - Behavior changed: Yes. Near nonpoint Geography curves without contact evidence fail explicitly instead of returning a false intersection. - Does this need documentation: No new feature or API; the existing spatial precision and write validation contract is enforced. Related documentation: apache/doris-website#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 30, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: MERGE prebinding replaced a NULL cast chain with a target-typed spatial NULL before checking original user casts. Validate every original cast with the existing cast rules before retagging, preserving invalid complex and spatial-to-integer errors and ordinary-key/spatial-value support. ### Release note Invalid casts inside NULL-valued spatial MERGE assignments retain their analysis errors. ### Check List (For Author) - Test: Standard ASAN BE+FE build; selected FE unit tests 63/63 and BE unit tests 184/184, zero failures/errors/skips; native GIS/Iceberg regression suites, 67/114 executed tags with zero failed/fatal/skipped scripts. Existing golden files are unchanged. Final BE test-only formatting/helper changes were re-tested with 184 passing tests and clang-tidy. - Behavior changed: Yes. Invalid casts inside NULL-valued spatial MERGE assignments retain their analysis errors. - Does this need documentation: No new feature or API; the existing spatial precision and write validation contract is enforced. Related documentation: apache/doris-website#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 30, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Referenced spatial CRS validation ran after creating a file writer. Closing an empty S3 writer could upload a zero-byte object, and the async write error could be observed before outer cleanup deleted it. Reuse the recursive CRS validation before creating file-system or output resources and retain schema-level validation. ### Release note Rejected referenced-CRS spatial writes do not create output files. ### Check List (For Author) - Test: Standard ASAN BE+FE build; selected FE unit tests 63/63 and BE unit tests 184/184, zero failures/errors/skips; native GIS/Iceberg regression suites, 67/114 executed tags with zero failed/fatal/skipped scripts. Existing golden files are unchanged. Final BE test-only formatting/helper changes were re-tested with 184 passing tests and clang-tidy. - Behavior changed: Yes. Rejected referenced-CRS spatial writes do not create output files. - Does this need documentation: No new feature or API; the existing spatial precision and write validation contract is enforced. Related documentation: apache/doris-website#4239.
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 31, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: A raw Geography point such as POINT(58.00000000000001 0) can round to a LINESTRING endpoint in S2 although the original coordinates are disjoint. Distance then returned zero and DWithin(..., 0) incorrectly matched. For S2 zero distances involving a point, reuse the existing raw-coordinate contact and polygon-interior certificates; reject unsupported rounded-only or unresolved zero instead of inventing contact. Preserve real contacts, interior points, aliases, point-pair distances, nonzero results and other shape pairs. Upgrade an existing weak near-antipodal distance assertion that accepted the same false zero, keeping all original relation and true-endpoint controls. ### Release note Default Geography point/line and point/polygon calculations explicitly reject ambiguous rounded-only zero distances, including radius-zero proximity checks. ### Check List (For Author) - Test: Unit Test: 130 VGeoFunctionsTest tests passed with zero failures/errors/skips. Real-root clang-format16, build hygiene and diff checks passed. Added 20 native error-path checks; standard build, native regressions and complete PR review are required before push. - Behavior changed: Yes; unsupported rounded-only zero is an explicit error rather than a false match. Ordinary-key/spatial-value support is preserved. - Does this need documentation: Yes; apache/doris-website#4239
OIiveirra
added a commit
to OIiveirra/doris
that referenced
this pull request
Oct 31, 2026
### What problem does this PR solve? Issue Number: N/A Related PR: apache#69032 Problem Summary: Distinct raw WKB coordinates can collapse to the same S2 endpoint. Reuse the existing raw-coordinate intersection certificate before accepting a zero distance for Point, LineString and Polygon combinations. Keep real contacts and nonzero distances, and reject rounded-only or unresolved zeros consistently in ST_Distance and ST_DWithin. Replace the old near-antipodal numeric guess with explicit error coverage while retaining its relation controls. ### Release note Typed Geography distance calculations reject unsupported rounded-only zero distances instead of returning an incorrect zero. ### Check List (For Author) - Test: BE Geography unit tests; targeted spatial SQL regression; clang-format 16 and clang-tidy - Behavior changed: Yes, ambiguous zero distances fail explicitly - Does this need documentation: Yes, apache/doris-website#4239
### What problem does this PR solve? Related PR: apache/doris#69032 Problem Summary: Explain the original-coordinate certificate required for typed Geography zero distances involving a LineString or Polygon, including positive ST_DWithin thresholds. Keep the English and Chinese function documentation consistent. ### Release note Clarify the development-version typed spatial precision boundary. ### Check List (For Author) - Test: Frontmatter, code fences, relative links and git diff --check - Behavior changed: No - Does this need documentation: Yes, this is the documentation change
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Document development spatial support alongside apache/doris#69032:
Versions
This feature targets unreleased master. Only current English
docs/and matching Chinesecurrent/pages are updated; stable-version support claims and versioned navigation remain unchanged.Languages
Docs Checklist
The last item is not applicable: both languages are updated together.
Evidence
apache/doris@f98228f1c0c, docs43bb68f6e): the existing collision guard also protects Polygon-containing-LineString Contains/Within while mixed-dimension Overlaps remains false. CAST-wrapped NULL-only arrays work through bound INSERT SELECT/UPDATE sinks as well as MERGE. Matching EN/CN current pages change two existing paragraphs each; headings, frontmatter, links, fences and navigation are unchanged. Associated ASAN BE+FE build, BE149/149, FE32/32 and all five targeted GIS/Iceberg/VARBINARY runs passed. The 179 old golden sections are unchanged and two generated sections match independent expectations. No full website or community CI pass is claimed.apache/doris@d6e0d4e9146: BE107/FE38 targeted UT, standard ASAN build and exact GIS/Iceberg generation plus verification passed; existing 137 golden sections are unchanged. Current-only English/Chinese pages and navigation preserve the admitted nonempty XY Geography boundary. Changed-file SQL-function, links and feature checks pass; new NULL SELECT examples execute on that verified function runtime. No full website build is claimed.apache/doris@124f9807b6bpassed FE UT 319/319 (including all 149 SPI tests), final constructor-path FE rechecks 32/32, ASAN BE UT 113/113, and exact Iceberg regression generation/verification with zero failures/skips. Existing 80 golden sections are unchanged and nine were added.Merge Danger
Door: Two-way.
Blast Radius: Documentation.
No website layout/runtime change. Coordinate with apache/doris#69032.
Polygon calculation precision
Different Polygon boundaries defined by the original coordinates may collapse to one S2 region. ST_Equals distinguishes them; ST_Contains, ST_Within and ST_Overlaps reject ambiguous equal-region pairs. Their existing one-sided raw-vertex collision guard also runs before strict rounded-coverage returns, including when rounded interiors overlap. The same guard applies to ST_Contains(Polygon, LineString) and ST_Within(LineString, Polygon); mixed-dimension ST_Overlaps remains false. ST_Touches requires raw boundary contact for pairs involving a Polygon and rejects collapsed nonshared raw line fragments after contact, including outside subdivisions. Interior-dependent point/Polygon predicates reject raw-off-boundary points on the rounded S2 boundary. Unresolved positive-length overlap of a nonshared raw edge along a rounded Polygon boundary is rejected when disjoint rounded interiors are required. Touches keeps false without raw boundary contact. Calculation-ring compaction preserves original WKB and raw boundaries; the adjacent-polygon micro-edge regression now has symmetric Overlaps=false and Touches=true. Current English and Chinese paragraphs match apache/doris#69032.