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 &gt; 
4.0 AND stars &gt;= 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 &gt; 4.0 and the hotel has stars &gt;= 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

Reply via email to