This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/sedona-db.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 795b9a9 update documentation for tag dev-snapshot-main
795b9a9 is described below
commit 795b9a9ecac8fa82647f55d6b1a3453c7c633ee3
Author: GitHub Actions <[email protected]>
AuthorDate: Fri Sep 12 16:16:41 2025 +0000
update documentation for tag dev-snapshot-main
---
dev-snapshot-main/reference/sql-joins/index.html | 74 +++++++++++++++++++++++-
dev-snapshot-main/search/search_index.json | 2 +-
2 files changed, 74 insertions(+), 2 deletions(-)
diff --git a/dev-snapshot-main/reference/sql-joins/index.html
b/dev-snapshot-main/reference/sql-joins/index.html
index f3ac752..c282adc 100644
--- a/dev-snapshot-main/reference/sql-joins/index.html
+++ b/dev-snapshot-main/reference/sql-joins/index.html
@@ -822,6 +822,30 @@
</ul>
</nav>
+</li>
+
+ <li class="md-nav__item">
+ <a href="#optimization-barrier" class="md-nav__link">
+ <span class="md-ellipsis">
+ Optimization Barrier
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Optimization Barrier">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#example_1" class="md-nav__link">
+ <span class="md-ellipsis">
+ Example
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
</li>
</ul>
@@ -1009,6 +1033,30 @@
</ul>
</nav>
+</li>
+
+ <li class="md-nav__item">
+ <a href="#optimization-barrier" class="md-nav__link">
+ <span class="md-ellipsis">
+ Optimization Barrier
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Optimization Barrier">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#example_1" class="md-nav__link">
+ <span class="md-ellipsis">
+ Example
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
</li>
</ul>
@@ -1075,6 +1123,30 @@
<span class="k">INNER</span><span class="w"> </span><span
class="k">JOIN</span><span class="w"> </span><span class="n">cities</span><span
class="w"> </span><span class="k">AS</span><span class="w"> </span><span
class="n">cities_r</span>
<span class="k">ON</span><span class="w"> </span><span
class="n">ST_KNN</span><span class="p">(</span><span
class="n">cities_l</span><span class="p">.</span><span
class="n">geometry</span><span class="p">,</span><span class="w"> </span><span
class="n">cities_r</span><span class="p">.</span><span
class="n">geometry</span><span class="p">,</span><span class="w"> </span><span
class="mi">5</span><span class="p">,</span><span class="w"> </span><span
class="k">false</span><span class="p">)</span>
</code></pre></div>
+<h2 id="optimization-barrier">Optimization Barrier<a class="headerlink"
href="#optimization-barrier" title="Permanent link">¶</a></h2>
+<p>Use the <code>barrier</code> function to prevent filter pushdown and
control predicate evaluation order in complex spatial joins. This function
creates an optimization barrier by evaluating boolean expressions at
runtime.</p>
+<p>The <code>barrier</code> function takes a boolean expression as a string,
followed by pairs of variable names and their values that will be substituted
into the expression:</p>
+<div class="highlight"><pre><span></span><code><span
class="n">barrier</span><span class="p">(</span><span
class="n">expression</span><span class="p">,</span><span class="w">
</span><span class="n">var_name1</span><span class="p">,</span><span class="w">
</span><span class="n">var_value1</span><span class="p">,</span><span
class="w"> </span><span class="n">var_name2</span><span class="p">,</span><span
class="w"> </span><span class="n">var_value2</span><span
class="p">,</span><span class= [...]
+</code></pre></div>
+<p>The placement of filters relative to KNN joins changes the semantic meaning
of the query:</p>
+<ul>
+<li><strong>Filter before KNN</strong>: First filters the data, then finds K
nearest neighbors from the filtered subset. This answers "What are the K
nearest high-rated restaurants?"</li>
+<li><strong>Filter after KNN</strong>: First finds K nearest neighbors from
all data, then filters those results. This answers "Of the K nearest
restaurants, which ones are high-rated?"</li>
+</ul>
+<h3 id="example_1">Example<a class="headerlink" href="#example_1"
title="Permanent link">¶</a></h3>
+<p>Find the 3 nearest high-rated restaurants to luxury hotels, ensuring the
KNN join completes before filtering.</p>
+<div class="highlight"><pre><span></span><code><span class="k">SELECT</span>
+<span class="w"> </span><span class="n">h</span><span
class="p">.</span><span class="n">name</span><span class="w"> </span><span
class="k">AS</span><span class="w"> </span><span class="n">hotel</span><span
class="p">,</span>
+<span class="w"> </span><span class="n">r</span><span
class="p">.</span><span class="n">name</span><span class="w"> </span><span
class="k">AS</span><span class="w"> </span><span
class="n">restaurant</span><span class="p">,</span>
+<span class="w"> </span><span class="n">r</span><span
class="p">.</span><span class="n">rating</span>
+<span class="k">FROM</span><span class="w"> </span><span
class="n">hotels</span><span class="w"> </span><span class="k">AS</span><span
class="w"> </span><span class="n">h</span>
+<span class="k">INNER</span><span class="w"> </span><span
class="k">JOIN</span><span class="w"> </span><span
class="n">restaurants</span><span class="w"> </span><span
class="k">AS</span><span class="w"> </span><span class="n">r</span>
+<span class="k">ON</span><span class="w"> </span><span
class="n">ST_KNN</span><span class="p">(</span><span class="n">h</span><span
class="p">.</span><span class="n">geometry</span><span class="p">,</span><span
class="w"> </span><span class="n">r</span><span class="p">.</span><span
class="n">geometry</span><span class="p">,</span><span class="w"> </span><span
class="mi">3</span><span class="p">,</span><span class="w"> </span><span
class="k">false</span><span class="p">)</span>
+<span class="k">WHERE</span><span class="w"> </span><span
class="n">barrier</span><span class="p">(</span><span class="s1">'rating >
4.0 AND stars >= 4'</span><span class="p">,</span>
+<span class="w"> </span><span class="s1">'rating'</span><span
class="p">,</span><span class="w"> </span><span class="n">r</span><span
class="p">.</span><span class="n">rating</span><span class="p">,</span>
+<span class="w"> </span><span class="s1">'stars'</span><span
class="p">,</span><span class="w"> </span><span class="n">h</span><span
class="p">.</span><span class="n">stars</span><span class="p">)</span>
+</code></pre></div>
+<p>With the barrier function, this query first finds the 3 nearest restaurants
to each hotel (regardless of rating), then filters to keep only those pairs
where the restaurant has rating > 4.0 and the hotel has stars >= 4.
Without the barrier, an optimizer might push the filters down, changing the
query to first filter for high-rated restaurants and luxury hotels, then find
the 3 nearest among those filtered sets.</p>
@@ -1095,7 +1167,7 @@
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1
7.5 7.1 7.9l-.1.2z"></path></svg>
</span>
- <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 9, 2025 20:06:34
UTC">September 9, 2025 20:06:34</span>
+ <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 12, 2025 16:13:42
UTC">September 12, 2025 16:13:42</span>
</span>
diff --git a/dev-snapshot-main/search/search_index.json
b/dev-snapshot-main/search/search_index.json
index 8f096b0..e890bef 100644
--- a/dev-snapshot-main/search/search_index.json
+++ b/dev-snapshot-main/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":""},{"location":"#sedonadb","title":"SedonaDB","text":"<p>SedonaDB
is a high-performance, dependency-free geospatial compute engine.</p> <p>You
can easily run SedonaDB locally or in the cloud. The first release supports a
core set of vector operations, but the full-suite of common vector and raster
computations will be supported soon.</p> <p>SedonaDB only runs on [...]
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":""},{"location":"#sedonadb","title":"SedonaDB","text":"<p>SedonaDB
is a high-performance, dependency-free geospatial compute engine.</p> <p>You
can easily run SedonaDB locally or in the cloud. The first release supports a
core set of vector operations, but the full-suite of common vector and raster
computations will be supported soon.</p> <p>SedonaDB only runs on [...]
\ No newline at end of file