<!-- CANARY: REQ=REQ-API-DOCS-002; FEATURE="APIDocumentation"; ASPECT=BuildTarget; STATUS=EXEMPT; OWNER=tooling; UPDATED=2026-01-03 --> <h2 id="reference" class="position-relative d-flex align-items-center group"> <span>Reference</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="reference" aria-haspopup="dialog" aria-label="Share link: Reference"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h2><div id="headingShareModal" class="heading-share-modal" role="dialog" aria-modal="true" aria-labelledby="headingShareTitle" hidden> <div class="hsm-dialog" role="document"> <div class="hsm-header"> <h2 id="headingShareTitle" class="h6 mb-0 fw-bold">Share this section</h2> <button type="button" class="hsm-close" aria-label="Close"> <i class="fa-solid fa-xmark"></i> </button> </div> <div class="hsm-body"> <label for="headingShareInput" class="form-label small text-muted mb-1 text-uppercase fw-bold" style="font-size: 0.7rem; letter-spacing: 0.5px;">Permalink</label> <div class="input-group mb-4 hsm-url-group"> <input id="headingShareInput" type="text" class="form-control font-monospace" readonly aria-readonly="true" style="font-size: 0.85rem;" /> <button class="btn btn-primary hsm-copy" type="button" aria-label="Copy" title="Copy"> <i class="fa-duotone fa-clipboard" aria-hidden="true"></i> </button> </div> <div class="small fw-bold mb-2 text-muted text-uppercase" style="font-size: 0.7rem; letter-spacing: 0.5px;">Share via</div> <div class="hsm-share-grid"> <a id="share-twitter" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-twitter me-2"></i>Twitter </a> <a id="share-linkedin" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-linkedin me-2"></i>LinkedIn </a> <a id="share-facebook" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener noreferrer"> <i class="fa-brands fa-facebook me-2"></i>Facebook </a> </div> </div> </div> </div> <style> .heading-share-modal { position: fixed; inset: 0; display: flex; justify-content: center; align-items: center; background: rgba(0, 0, 0, 0.6); z-index: 1050; padding: 1rem; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); } .heading-share-modal[hidden] { display: none !important; } .hsm-dialog { max-width: 420px; width: 100%; background: var(--bs-body-bg, #fff); color: var(--bs-body-color, #212529); border: 1px solid var(--bs-border-color, rgba(0,0,0,0.1)); border-radius: 1rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); overflow: hidden; animation: hsm-fade-in 0.2s ease-out; } @keyframes hsm-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } [data-bs-theme="dark"] .hsm-dialog { background: #1e293b; border-color: rgba(255,255,255,0.1); color: #f8f9fa; } .hsm-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid var(--bs-border-color, rgba(0,0,0,0.1)); background: rgba(0,0,0,0.02); } [data-bs-theme="dark"] .hsm-header { background: rgba(255,255,255,0.02); border-color: rgba(255,255,255,0.1); } .hsm-close { background: transparent; border: none; color: inherit; opacity: 0.5; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 1.2rem; line-height: 1; transition: opacity 0.2s; } .hsm-close:hover { opacity: 1; } .hsm-body { padding: 1.5rem; } .hsm-url-group { display: flex !important; align-items: stretch; } .hsm-url-group .form-control { flex: 1; min-width: 0; margin: 0; background: var(--bs-secondary-bg, #f8f9fa); border-color: var(--bs-border-color, #dee2e6); border-top-right-radius: 0; border-bottom-right-radius: 0; height: 42px; } .hsm-url-group .btn { flex: 0 0 auto; margin: 0; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; height: 42px; display: flex; align-items: center; justify-content: center; padding: 0 1.25rem; z-index: 2; } [data-bs-theme="dark"] .hsm-url-group .form-control { background: #0f172a; border-color: #334155; color: #e2e8f0; } .hsm-share-grid { display: flex; flex-direction: column; gap: 0.5rem; } .hsm-share-grid .btn { display: flex; align-items: center; justify-content: center; font-size: 0.9rem; padding: 0.6rem; border-color: var(--bs-border-color); width: 100%; } [data-bs-theme="dark"] .hsm-share-grid .btn { color: #e2e8f0; border-color: #475569; } [data-bs-theme="dark"] .hsm-share-grid .btn:hover { background: #334155; border-color: #cbd5e1; } </style> <script> (function(){ const modal = document.getElementById('headingShareModal'); if(!modal) return; const input = modal.querySelector('#headingShareInput'); const copyBtn = modal.querySelector('.hsm-copy'); const twitter = modal.querySelector('#share-twitter'); const linkedin = modal.querySelector('#share-linkedin'); const facebook = modal.querySelector('#share-facebook'); const closeBtn = modal.querySelector('.hsm-close'); let lastFocus=null; let trapBound=false; function buildUrl(id){ return window.location.origin + window.location.pathname + '#' + id; } function isOpen(){ return !modal.hasAttribute('hidden'); } function hydrate(id){ const url=buildUrl(id); input.value=url; const enc=encodeURIComponent(url); const text=encodeURIComponent(document.title); if(twitter) twitter.href=`https://twitter.com/intent/tweet?url=${enc}&text=${text}`; if(linkedin) linkedin.href=`https://www.linkedin.com/sharing/share-offsite/?url=${enc}`; if(facebook) facebook.href=`https://www.facebook.com/sharer/sharer.php?u=${enc}`; } function openModal(id){ lastFocus=document.activeElement; hydrate(id); if(!isOpen()){ modal.removeAttribute('hidden'); } requestAnimationFrame(()=>{ input.focus(); }); trapFocus(); } function closeModal(){ if(!isOpen()) return; modal.setAttribute('hidden',''); if(lastFocus && typeof lastFocus.focus==='function') lastFocus.focus(); } function copyCurrent(){ try{ navigator.clipboard.writeText(input.value).then(()=>feedback(true),()=>fallback()); } catch(e){ fallback(); } } function fallback(){ input.select(); try{ document.execCommand('copy'); feedback(true);}catch(e){ feedback(false);} } function feedback(ok){ if(!copyBtn) return; const icon=copyBtn.querySelector('i'); if(!icon) return; const prev=copyBtn.getAttribute('data-prev')||icon.className; if(!copyBtn.getAttribute('data-prev')) copyBtn.setAttribute('data-prev',prev); icon.className= ok ? 'fa-duotone fa-clipboard-check':'fa-duotone fa-circle-exclamation'; setTimeout(()=>{ icon.className=prev; },1800); } function handleShareClick(e){ e.preventDefault(); const btn=e.currentTarget; const id=btn.getAttribute('data-share-target'); if(id) openModal(id); } function bindShareButtons(){ document.querySelectorAll('.h-share').forEach(btn=>{ if(!btn.dataset.hShareBound){ btn.addEventListener('click', handleShareClick); btn.dataset.hShareBound='1'; } }); } bindShareButtons(); if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', bindShareButtons); } else { requestAnimationFrame(bindShareButtons); } document.addEventListener('click', function(e){ const shareBtn=e.target.closest && e.target.closest('.h-share'); if(shareBtn && !shareBtn.dataset.hShareBound){ handleShareClick.call(shareBtn, e); } }, true); document.addEventListener('click', e=>{ if(e.target===modal) closeModal(); if(e.target.closest && e.target.closest('.hsm-close')){ e.preventDefault(); closeModal(); } if(copyBtn && (e.target===copyBtn || (e.target.closest && e.target.closest('.hsm-copy')))) { e.preventDefault(); copyCurrent(); } }); document.addEventListener('keydown', e=>{ if(e.key==='Escape' && isOpen()) closeModal(); }); function trapFocus(){ if(trapBound) return; trapBound=true; modal.addEventListener('keydown', f=>{ if(f.key==='Tab' && isOpen()){ const focusable=[...modal.querySelectorAll('a[href],button,input,textarea,select,[tabindex]:not([tabindex="-1"])')].filter(el=>!el.hasAttribute('disabled')); if(!focusable.length) return; const first=focusable[0]; const last=focusable[focusable.length-1]; if(f.shiftKey && document.activeElement===first){ f.preventDefault(); last.focus(); } else if(!f.shiftKey && document.activeElement===last){ f.preventDefault(); first.focus(); } } }); } if(closeBtn) closeBtn.addEventListener('click', e=>{ e.preventDefault(); closeModal(); }); })(); </script><p>Comprehensive technical reference documentation for Geode covering all APIs, commands, error codes, operators, and specifications.</p> <h3 id="overview" class="position-relative d-flex align-items-center group"> <span>Overview</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="overview" aria-haspopup="dialog" aria-label="Share link: Overview"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>This section provides detailed reference material for developers, operators, and administrators working with Geode. Unlike guides that focus on how-to instructions, reference documentation provides exhaustive, structured information about every command, function, operator, and error code.</p> <p>Use this section when you need precise details about specific functionality, error messages, or command syntax. All reference material is organized for quick lookup and includes complete specifications.</p> <h3 id="topics-in-this-section" class="position-relative d-flex align-items-center group"> <span>Topics in This Section</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="topics-in-this-section" aria-haspopup="dialog" aria-label="Share link: Topics in This Section"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><ul> <li><strong><a href="/docs/reference/api-reference-complete/" >Complete API Reference</a> </strong> - Comprehensive API documentation covering all functions, methods, and interfaces</li> <li><strong><a href="/docs/reference/cli-and-api/" >CLI and API</a> </strong> - Command-line interface reference including all CLI commands and options</li> <li><strong><a href="/docs/reference/dsn/" >DSN Specification</a> </strong> - Official DSN format for QUIC/gRPC connection strings</li> <li><strong><a href="/docs/reference/types/" >Data Types</a> </strong> - All 50+ data types with constructors and storage characteristics</li> <li><strong><a href="/docs/reference/indexes/" >Index Types</a> </strong> - B-tree, Hash, Full-text, Spatial, Vector, and specialized indexes</li> <li><strong><a href="/docs/reference/statistics/" >Statistics and Metrics</a> </strong> - Query statistics, storage metrics, and Prometheus integration</li> <li><strong><a href="/docs/reference/error-codes/" >Error Codes</a> </strong> - Complete error code reference with descriptions and resolution steps</li> <li><strong><a href="/docs/reference/status-codes/" >Status Codes</a> </strong> - GQL status codes following ISO/IEC 39075:2024 standard</li> <li><strong><a href="/docs/reference/operators/" >Operators</a> </strong> - All supported operators including comparison, arithmetic, logical, and pattern operators</li> <li><strong><a href="/docs/reference/type-conversion/" >Type Conversion</a> </strong> - Type conversion rules, coercion, and promotion specifications</li> <li><strong><a href="/docs/reference/unicode-support/" >Unicode Support</a> </strong> - Unicode normalization, collation, and string handling</li> <li><strong><a href="/docs/reference/changelog/" >Changelog</a> </strong> - Version history with detailed changes, features, and bug fixes</li> </ul> <h3 id="quick-reference" class="position-relative d-flex align-items-center group"> <span>Quick Reference</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="quick-reference" aria-haspopup="dialog" aria-label="Share link: Quick Reference"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="common-functions" class="position-relative d-flex align-items-center group"> <span>Common Functions</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="common-functions" aria-haspopup="dialog" aria-label="Share link: Common Functions"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p><strong>Aggregation Functions</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">COUNT</span><span class="p">(</span><span class="err">*</span><span class="p">),</span><span class="w"> </span><span class="py">COUNT</span><span class="p">(</span><span class="py">expr</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">SUM</span><span class="p">(</span><span class="py">expr</span><span class="p">),</span><span class="w"> </span><span class="py">AVG</span><span class="p">(</span><span class="py">expr</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">MIN</span><span class="p">(</span><span class="py">expr</span><span class="p">),</span><span class="w"> </span><span class="py">MAX</span><span class="p">(</span><span class="py">expr</span><span class="p">)</span><span class="w"> </span></span></span></code></pre></div><p><strong>String Functions</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">lower</span><span class="p">(</span><span class="py">str</span><span class="p">),</span><span class="w"> </span><span class="py">upper</span><span class="p">(</span><span class="py">str</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">substring</span><span class="p">(</span><span class="py">str</span><span class="p">,</span><span class="w"> </span><span class="py">start</span><span class="p">,</span><span class="w"> </span><span class="py">length</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">trim</span><span class="p">(</span><span class="py">str</span><span class="p">),</span><span class="w"> </span><span class="py">ltrim</span><span class="p">(</span><span class="py">str</span><span class="p">),</span><span class="w"> </span><span class="py">rtrim</span><span class="p">(</span><span class="py">str</span><span class="p">)</span><span class="w"> </span></span></span></code></pre></div><p><strong>Temporal Functions</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">now</span><span class="p">(),</span><span class="w"> </span><span class="py">timestamp</span><span class="p">()</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">date</span><span class="p">(</span><span class="err">&#39;</span><span class="py">2024</span><span class="err">-</span><span class="py">01</span><span class="err">-</span><span class="py">01</span><span class="err">&#39;</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">duration</span><span class="p">({</span><span class="py">days</span><span class="p">:</span><span class="w"> </span><span class="nc">7</span><span class="p">})</span><span class="w"> </span></span></span></code></pre></div><p><strong>Spatial Functions</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">distance</span><span class="p">(</span><span class="py">point1</span><span class="p">,</span><span class="w"> </span><span class="py">point2</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">point</span><span class="p">({</span><span class="py">latitude</span><span class="p">:</span><span class="w"> </span><span class="nc">47</span><span class="mf">.6</span><span class="p">,</span><span class="w"> </span><span class="py">longitude</span><span class="p">:</span><span class="w"> </span><span class="err">-</span><span class="nc">122</span><span class="mf">.3</span><span class="p">})</span><span class="w"> </span></span></span></code></pre></div><p>See <a href="/docs/reference/api-reference-complete/" >API Reference</a> for complete function list.</p> <h4 id="common-operators" class="position-relative d-flex align-items-center group"> <span>Common Operators</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="common-operators" aria-haspopup="dialog" aria-label="Share link: Common Operators"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p><strong>Comparison</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="p">=,</span><span class="w"> </span><span class="err">&lt;&gt;</span><span class="p">,</span><span class="w"> </span><span class="err">&lt;</span><span class="p">,</span><span class="w"> </span><span class="err">&lt;</span><span class="p">=,</span><span class="w"> </span><span class="err">&gt;</span><span class="p">,</span><span class="w"> </span><span class="err">&gt;</span><span class="p">=</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">IS</span><span class="w"> </span><span class="py">NULL</span><span class="p">,</span><span class="w"> </span><span class="py">IS</span><span class="w"> </span><span class="py">NOT</span><span class="w"> </span><span class="py">NULL</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">IN</span><span class="p">,</span><span class="w"> </span><span class="py">NOT</span><span class="w"> </span><span class="py">IN</span><span class="w"> </span></span></span></code></pre></div><p><strong>Arithmetic</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">+</span><span class="p">,</span><span class="w"> </span><span class="err">-</span><span class="p">,</span><span class="w"> </span><span class="err">*</span><span class="p">,</span><span class="w"> </span><span class="err">/</span><span class="p">,</span><span class="w"> </span><span class="err">%</span><span class="w"> </span></span></span></code></pre></div><p><strong>Logical</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">AND</span><span class="p">,</span><span class="w"> </span><span class="py">OR</span><span class="p">,</span><span class="w"> </span><span class="py">NOT</span><span class="p">,</span><span class="w"> </span><span class="py">XOR</span><span class="w"> </span></span></span></code></pre></div><p><strong>Pattern</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="py">STARTS</span><span class="w"> </span><span class="py">WITH</span><span class="p">,</span><span class="w"> </span><span class="py">ENDS</span><span class="w"> </span><span class="py">WITH</span><span class="p">,</span><span class="w"> </span><span class="py">CONTAINS</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="p">=</span><span class="err">~</span><span class="w"> </span><span class="err">--</span><span class="w"> </span><span class="py">Regular</span><span class="w"> </span><span class="py">expression</span><span class="w"> </span><span class="py">match</span><span class="w"> </span></span></span></code></pre></div><p>See <a href="/docs/reference/operators/" >Operators</a> for complete reference.</p> <h4 id="cli-commands" class="position-relative d-flex align-items-center group"> <span>CLI Commands</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="cli-commands" aria-haspopup="dialog" aria-label="Share link: CLI Commands"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p><strong>Server Management</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">geode serve <span class="c1"># Start server</span> </span></span><span class="line"><span class="cl">geode shell <span class="c1"># Interactive shell</span> </span></span><span class="line"><span class="cl">geode --version <span class="c1"># Show version</span> </span></span></code></pre></div><p><strong>Client Operations</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">geode query <span class="s2">&#34;query&#34;</span> <span class="c1"># Execute query</span> </span></span><span class="line"><span class="cl">geode query -f file.gql <span class="c1"># Execute file</span> </span></span><span class="line"><span class="cl">geode query --format json <span class="s2">&#34;RETURN 1&#34;</span> <span class="c1"># JSON output</span> </span></span></code></pre></div><p><strong>Administration</strong>:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">geode backup <span class="c1"># Create backup</span> </span></span><span class="line"><span class="cl">geode restore <span class="c1"># Restore backup</span> </span></span><span class="line"><span class="cl">geode validate <span class="c1"># Validate data</span> </span></span></code></pre></div><p>See <a href="/docs/reference/cli-and-api/" >CLI and API</a> for complete CLI reference.</p> <h3 id="error-code-categories" class="position-relative d-flex align-items-center group"> <span>Error Code Categories</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="error-code-categories" aria-haspopup="dialog" aria-label="Share link: Error Code Categories"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="client-errors-4xxxx" class="position-relative d-flex align-items-center group"> <span>Client Errors (4xxxx)</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="client-errors-4xxxx" aria-haspopup="dialog" aria-label="Share link: Client Errors (4xxxx)"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Errors caused by client requests:</p> <ul> <li><strong>40001</strong>: Syntax error in query</li> <li><strong>40002</strong>: Semantic error (invalid operation)</li> <li><strong>40003</strong>: Parameter mismatch</li> <li><strong>40004</strong>: Constraint violation</li> </ul> <h4 id="server-errors-5xxxx" class="position-relative d-flex align-items-center group"> <span>Server Errors (5xxxx)</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="server-errors-5xxxx" aria-haspopup="dialog" aria-label="Share link: Server Errors (5xxxx)"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Errors caused by server issues:</p> <ul> <li><strong>50001</strong>: Internal server error</li> <li><strong>50002</strong>: Storage error</li> <li><strong>50003</strong>: Network error</li> <li><strong>50004</strong>: Resource exhausted</li> </ul> <h4 id="security-errors-6xxxx" class="position-relative d-flex align-items-center group"> <span>Security Errors (6xxxx)</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="security-errors-6xxxx" aria-haspopup="dialog" aria-label="Share link: Security Errors (6xxxx)"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Authentication and authorization errors:</p> <ul> <li><strong>60001</strong>: Authentication failed</li> <li><strong>60002</strong>: Authorization denied</li> <li><strong>60003</strong>: Session expired</li> <li><strong>60004</strong>: Invalid credentials</li> </ul> <p>See <a href="/docs/reference/error-codes/" >Error Codes</a> for complete list with resolution steps.</p> <h3 id="status-codes-iso-gql" class="position-relative d-flex align-items-center group"> <span>Status Codes (ISO GQL)</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="status-codes-iso-gql" aria-haspopup="dialog" aria-label="Share link: Status Codes (ISO GQL)"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>GQL status codes following ISO/IEC 39075:2024:</p> <ul> <li><strong>00000</strong>: Successful completion</li> <li><strong>01xxx</strong>: Warning conditions</li> <li><strong>02xxx</strong>: No data (query returned empty)</li> <li><strong>22xxx</strong>: Data exception</li> <li><strong>23xxx</strong>: Integrity constraint violation</li> <li><strong>42xxx</strong>: Syntax error or access violation</li> </ul> <p>See <a href="/docs/reference/status-codes/" >Status Codes</a> for ISO compliance details.</p> <h3 id="type-system-reference" class="position-relative d-flex align-items-center group"> <span>Type System Reference</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="type-system-reference" aria-haspopup="dialog" aria-label="Share link: Type System Reference"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="core-types" class="position-relative d-flex align-items-center group"> <span>Core Types</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="core-types" aria-haspopup="dialog" aria-label="Share link: Core Types"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">NULL </span></span><span class="line"><span class="cl">BOOLEAN </span></span><span class="line"><span class="cl">INTEGER </span></span><span class="line"><span class="cl">FLOAT </span></span><span class="line"><span class="cl">STRING </span></span><span class="line"><span class="cl">BYTES </span></span></code></pre></div> <h4 id="temporal-types" class="position-relative d-flex align-items-center group"> <span>Temporal Types</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="temporal-types" aria-haspopup="dialog" aria-label="Share link: Temporal Types"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">DATE </span></span><span class="line"><span class="cl">TIME </span></span><span class="line"><span class="cl">TIMESTAMP </span></span><span class="line"><span class="cl">ZONED_DATETIME </span></span><span class="line"><span class="cl">DURATION </span></span><span class="line"><span class="cl">INTERVAL </span></span></code></pre></div> <h4 id="collection-types" class="position-relative d-flex align-items-center group"> <span>Collection Types</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="collection-types" aria-haspopup="dialog" aria-label="Share link: Collection Types"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">LIST&lt;T&gt; </span></span><span class="line"><span class="cl">MAP&lt;K, V&gt; </span></span><span class="line"><span class="cl">SET&lt;T&gt; </span></span></code></pre></div> <h4 id="advanced-types" class="position-relative d-flex align-items-center group"> <span>Advanced Types</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="advanced-types" aria-haspopup="dialog" aria-label="Share link: Advanced Types"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">VECTOR&lt;T&gt; </span></span><span class="line"><span class="cl">POINT </span></span><span class="line"><span class="cl">POLYGON </span></span><span class="line"><span class="cl">UUID </span></span><span class="line"><span class="cl">JSON </span></span><span class="line"><span class="cl">BIGDECIMAL </span></span><span class="line"><span class="cl">MONEY </span></span><span class="line"><span class="cl">CIDR </span></span></code></pre></div><p>See <a href="/docs/reference/type-conversion/" >Type Conversion</a> for conversion rules.</p> <h3 id="unicode-support" class="position-relative d-flex align-items-center group"> <span>Unicode Support</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="unicode-support" aria-haspopup="dialog" aria-label="Share link: Unicode Support"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Geode provides comprehensive Unicode support:</p> <ul> <li><strong>Normalization</strong>: NFD, NFC, NFKD, NFKC</li> <li><strong>Collation</strong>: Locale-aware string comparison</li> <li><strong>Case Folding</strong>: Unicode case-insensitive comparison</li> <li><strong>Grapheme Clusters</strong>: Proper string length and indexing</li> </ul> <p>See <a href="/docs/reference/unicode-support/" >Unicode Support</a> for details.</p> <h3 id="version-information" class="position-relative d-flex align-items-center group"> <span>Version Information</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="version-information" aria-haspopup="dialog" aria-label="Share link: Version Information"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Current stable release: <strong><strong>v0.2.18</strong></strong> Current development branch: <strong>main</strong> (unreleased)</p> <p>Key metrics:</p> <ul> <li><strong>Full geodetestlab audit</strong>: 3,847 passed, 70 failed, 35 skipped (3,952 total)</li> <li><strong>Unit tests</strong>: 619/619 passing on the <code>v0.2.18</code> release line</li> <li><strong>GQL Compliance</strong>: see conformance profile</li> <li><strong>Known open gaps on main</strong>: CLI auth delegation, FLE role-semicolon sanitization, stdin bulk <code>MERGE</code> error surfacing</li> </ul> <p>See <a href="/docs/reference/changelog/" >Changelog</a> for version history.</p> <h3 id="api-categories" class="position-relative d-flex align-items-center group"> <span>API Categories</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="api-categories" aria-haspopup="dialog" aria-label="Share link: API Categories"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="query-execution-api" class="position-relative d-flex align-items-center group"> <span>Query Execution API</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="query-execution-api" aria-haspopup="dialog" aria-label="Share link: Query Execution API"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Execute GQL queries programmatically:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="c1">// Go client example </span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nx">result</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">client</span><span class="p">.</span><span class="nf">Query</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="s">&#34;MATCH (n) RETURN n LIMIT 10&#34;</span><span class="p">)</span> </span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># Python client example</span> </span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">geode_client</span> <span class="kn">import</span> <span class="n">Client</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">&#34;localhost&#34;</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">connection</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span> </span></span><span class="line"><span class="cl"> <span class="n">page</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="k">await</span> <span class="n">conn</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="s2">&#34;MATCH (n) RETURN n LIMIT 10&#34;</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">page</span><span class="o">.</span><span class="n">rows</span><span class="p">:</span> </span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> </span></span></code></pre></div> <h4 id="transaction-api" class="position-relative d-flex align-items-center group"> <span>Transaction API</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="transaction-api" aria-haspopup="dialog" aria-label="Share link: Transaction API"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Manage transactions:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="nx">tx</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">db</span><span class="p">.</span><span class="nf">BeginTx</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="kc">nil</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="nx">err</span> </span></span><span class="line"><span class="cl"><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="k">defer</span> <span class="nx">tx</span><span class="p">.</span><span class="nf">Rollback</span><span class="p">()</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">tx</span><span class="p">.</span><span class="nf">ExecContext</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="s">&#34;CREATE (:Person {name: &#39;Alice&#39;})&#34;</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="k">return</span> <span class="nx">err</span> </span></span><span class="line"><span class="cl"><span class="p">}</span> </span></span><span class="line"><span class="cl"><span class="k">return</span> <span class="nx">tx</span><span class="p">.</span><span class="nf">Commit</span><span class="p">()</span> </span></span></code></pre></div> <h4 id="schema-api" class="position-relative d-flex align-items-center group"> <span>Schema API</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="schema-api" aria-haspopup="dialog" aria-label="Share link: Schema API"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Manage indexes and constraints:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-gql" data-lang="gql"><span class="line"><span class="cl"><span class="err">--</span><span class="w"> </span><span class="py">Index</span><span class="w"> </span><span class="py">management</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="py">INDEX</span><span class="w"> </span><span class="py">person_email</span><span class="w"> </span><span class="py">ON</span><span class="w"> </span><span class="p">:</span><span class="nc">Person</span><span class="p">(</span><span class="py">email</span><span class="p">)</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">DROP</span><span class="w"> </span><span class="py">INDEX</span><span class="w"> </span><span class="py">person_email</span><span class="err">;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="err">--</span><span class="w"> </span><span class="py">Constraint</span><span class="w"> </span><span class="py">management</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">CREATE</span><span class="w"> </span><span class="py">CONSTRAINT</span><span class="w"> </span><span class="py">person_email_unique</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">FOR</span><span class="w"> </span><span class="p">(</span><span class="py">p</span><span class="p">:</span><span class="nc">Person</span><span class="p">)</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="py">REQUIRE</span><span class="w"> </span><span class="py">p</span><span class="err">.</span><span class="py">email</span><span class="w"> </span><span class="py">IS</span><span class="w"> </span><span class="py">UNIQUE</span><span class="err">;</span><span class="w"> </span></span></span></code></pre></div> <h4 id="security-api" class="position-relative d-flex align-items-center group"> <span>Security API</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="security-api" aria-haspopup="dialog" aria-label="Share link: Security API"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Authentication and authorization:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">geode_client</span> <span class="kn">import</span> <span class="n">AuthClient</span><span class="p">,</span> <span class="n">Client</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s2">&#34;localhost&#34;</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">3141</span><span class="p">)</span> </span></span><span class="line"><span class="cl"><span class="k">async</span> <span class="k">with</span> <span class="n">client</span><span class="o">.</span><span class="n">connection</span><span class="p">()</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span> </span></span><span class="line"><span class="cl"> <span class="n">auth</span> <span class="o">=</span> <span class="n">AuthClient</span><span class="p">(</span><span class="n">conn</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="n">session</span> <span class="o">=</span> <span class="k">await</span> <span class="n">auth</span><span class="o">.</span><span class="n">login</span><span class="p">(</span><span class="s2">&#34;geode&#34;</span><span class="p">,</span> <span class="s2">&#34;secret&#34;</span><span class="p">)</span> </span></span><span class="line"><span class="cl"> <span class="nb">print</span><span class="p">(</span><span class="n">session</span><span class="o">.</span><span class="n">token</span><span class="p">)</span> </span></span></code></pre></div><p>See <a href="/docs/reference/api-reference-complete/" >API Reference</a> for complete API documentation.</p> <h3 id="command-line-interface" class="position-relative d-flex align-items-center group"> <span>Command-Line Interface</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="command-line-interface" aria-haspopup="dialog" aria-label="Share link: Command-Line Interface"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="server-commands" class="position-relative d-flex align-items-center group"> <span>Server Commands</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="server-commands" aria-haspopup="dialog" aria-label="Share link: Server Commands"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Start server</span> </span></span><span class="line"><span class="cl">geode serve <span class="o">[</span>OPTIONS<span class="o">]</span> </span></span><span class="line"><span class="cl"> --listen &lt;address&gt; <span class="c1"># Listen address (default: 127.0.0.1:3141)</span> </span></span><span class="line"><span class="cl"> --data-dir &lt;path&gt; <span class="c1"># Data directory</span> </span></span><span class="line"><span class="cl"> --cert &lt;path&gt; <span class="c1"># TLS certificate</span> </span></span><span class="line"><span class="cl"> --key &lt;path&gt; <span class="c1"># TLS key</span> </span></span><span class="line"><span class="cl"> --config &lt;path&gt; <span class="c1"># Configuration file</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Interactive shell</span> </span></span><span class="line"><span class="cl">geode shell <span class="o">[</span>OPTIONS<span class="o">]</span> </span></span><span class="line"><span class="cl"> --connect &lt;uri&gt; <span class="c1"># Server URI</span> </span></span><span class="line"><span class="cl"> --format &lt;txt<span class="p">|</span>json&gt; <span class="c1"># Output format</span> </span></span><span class="line"><span class="cl"> --file &lt;path&gt; <span class="c1"># Execute script</span> </span></span></code></pre></div> <h4 id="client-commands" class="position-relative d-flex align-items-center group"> <span>Client Commands</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="client-commands" aria-haspopup="dialog" aria-label="Share link: Client Commands"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Execute query</span> </span></span><span class="line"><span class="cl">geode query <span class="o">[</span>OPTIONS<span class="o">]</span> &lt;query&gt; </span></span><span class="line"><span class="cl"> -f, --file &lt;path&gt; <span class="c1"># Execute from file</span> </span></span><span class="line"><span class="cl"> --format &lt;txt<span class="p">|</span>json&gt; <span class="c1"># Output format</span> </span></span><span class="line"><span class="cl"> --params &lt;json&gt; <span class="c1"># Query parameters</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="c1"># Examples</span> </span></span><span class="line"><span class="cl">geode query <span class="s2">&#34;RETURN 1 AS x&#34;</span> </span></span><span class="line"><span class="cl">geode query -f queries.gql --format json </span></span><span class="line"><span class="cl">geode query <span class="s2">&#34;MATCH (n) WHERE n.id = \$id RETURN n&#34;</span> --params <span class="s1">&#39;{&#34;id&#34;: 123}&#39;</span> </span></span></code></pre></div><p>See <a href="/docs/reference/cli-and-api/" >CLI and API</a> for complete command reference.</p> <h3 id="configuration-reference" class="position-relative d-flex align-items-center group"> <span>Configuration Reference</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="configuration-reference" aria-haspopup="dialog" aria-label="Share link: Configuration Reference"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Key configuration options:</p> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">server</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">listen</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;0.0.0.0:3141&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">data_dir</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;/var/lib/geode&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">tls</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">cert</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;/etc/geode/certs/server-cert.pem&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">key</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;/etc/geode/certs/server-key.pem&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">storage</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">page_size</span><span class="p">:</span><span class="w"> </span><span class="m">8192</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">page_cache_size</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;16GB&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">query</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">max_concurrent_queries</span><span class="p">:</span><span class="w"> </span><span class="m">1000</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">query_timeout</span><span class="p">:</span><span class="w"> </span><span class="l">30s</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">security</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tde</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">key_hex</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;&lt;32-byte-hex-key&gt;&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">logging</span><span class="p">:</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">level</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;info&#39;</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">format</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;json&#39;</span><span class="w"> </span></span></span></code></pre></div><p>See <a href="/docs/configuration/" >Configuration Reference</a> for all options.</p> <h3 id="protocol-specification" class="position-relative d-flex align-items-center group"> <span>Protocol Specification</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="protocol-specification" aria-haspopup="dialog" aria-label="Share link: Protocol Specification"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="protobuf-wire-protocol" class="position-relative d-flex align-items-center group"> <span>Protobuf Wire Protocol</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="protobuf-wire-protocol" aria-haspopup="dialog" aria-label="Share link: Protobuf Wire Protocol"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><p>Geode uses <strong>length-prefixed Protobuf messages</strong> over QUIC (default) or gRPC. The full schema is defined in <code>src/proto/geode.proto</code>.</p> <p><strong>Client Messages</strong>:</p> <ul> <li><code>HelloRequest</code> / <code>PingRequest</code></li> <li><code>ExecuteRequest</code> (RUN_GQL)</li> <li><code>PullRequest</code></li> <li><code>BeginRequest</code> / <code>CommitRequest</code> / <code>RollbackRequest</code></li> </ul> <p><strong>Server Responses</strong>:</p> <ul> <li><code>HelloResponse</code></li> <li><code>ExecutionResponse</code> (payloads: <code>SchemaDefinition</code>, <code>DataPage</code>, <code>Error</code>, <code>ExplainPayload</code>, <code>ProfilePayload</code>)</li> </ul> <p>See <a href="/docs/protocol/" >Wire Protocol</a> for the full specification.</p> <ul> <li>PROFILE: Performance metrics</li> </ul> <h3 id="performance-characteristics" class="position-relative d-flex align-items-center group"> <span>Performance Characteristics</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="performance-characteristics" aria-haspopup="dialog" aria-label="Share link: Performance Characteristics"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Reference performance metrics:</p> <p><strong>Query Performance</strong>:</p> <ul> <li>Point lookup: &lt;1ms (typically 100-500us)</li> <li>Short path (1-2 hops): 1-5ms</li> <li>Multi-hop path (3-5 hops): 10-100ms</li> <li>Large aggregation (1M rows): 100-500ms</li> </ul> <p><strong>Architecture</strong>:</p> <ul> <li>Vector similarity: HNSW indexes with SIMD acceleration</li> <li>Storage: Memory-mapped I/O with page-level caching</li> <li>Indexes: Six specialized index types for different workloads</li> </ul> <p><strong>Scalability</strong>:</p> <ul> <li>Distributed deployment with up to 32 shards</li> <li>Connection pooling for concurrent clients</li> </ul> <p>See <a href="/docs/guides/performance-benchmarking/" >Performance Benchmarking</a> for methodology.</p> <h3 id="standards-compliance" class="position-relative d-flex align-items-center group"> <span>Standards Compliance</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="standards-compliance" aria-haspopup="dialog" aria-label="Share link: Standards Compliance"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3> <h4 id="isoiec-390752024-gql" class="position-relative d-flex align-items-center group"> <span>ISO/IEC 39075:2024 (GQL)</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="isoiec-390752024-gql" aria-haspopup="dialog" aria-label="Share link: ISO/IEC 39075:2024 (GQL)"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li>✅ Complete pattern matching syntax</li> <li>✅ All aggregation functions</li> <li>✅ Set operations (UNION, INTERSECT, EXCEPT)</li> <li>✅ Transaction semantics</li> <li>✅ Error handling with standard codes</li> <li>✅ 100% compliance; see conformance profile</li> </ul> <h4 id="other-standards" class="position-relative d-flex align-items-center group"> <span>Other Standards</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="other-standards" aria-haspopup="dialog" aria-label="Share link: Other Standards"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h4><ul> <li><strong>QUIC</strong>: RFC 9000</li> <li><strong>TLS 1.3</strong>: RFC 8446</li> <li><strong>JSON</strong>: RFC 8259</li> <li><strong>UUID</strong>: RFC 4122</li> <li><strong>IPv6</strong>: RFC 4291</li> <li><strong>CIDR</strong>: RFC 4632</li> </ul> <h3 id="learn-more" class="position-relative d-flex align-items-center group"> <span>Learn More</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="learn-more" aria-haspopup="dialog" aria-label="Share link: Learn More"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><ul> <li><a href="/docs/gql/guide/" >GQL Guide</a> - Query language guide</li> <li><a href="/docs/data-types/" >Data Types</a> - Type system reference</li> <li><a href="/docs/architecture/" >Architecture</a> - System architecture</li> <li><a href="/docs/client-libraries/" >Client Libraries</a> - Language-specific APIs</li> <li><a href="/docs/guides/troubleshooting/" >Troubleshooting</a> - Error resolution</li> </ul> <h3 id="contributing-to-documentation" class="position-relative d-flex align-items-center group"> <span>Contributing to Documentation</span> <button type="button" class="h-share btn btn-link p-0 text-decoration-none link-secondary opacity-50 hover-opacity-100 transition-all ms-1" data-share-target="contributing-to-documentation" aria-haspopup="dialog" aria-label="Share link: Contributing to Documentation"> <i class="fa-sharp-duotone fa-solid fa-share-nodes" aria-hidden="true" style="font-size: 0.8em;"></i> <span class="visually-hidden">Share link</span> </button> </h3><p>Found an error or want to improve the reference docs?</p> <p>See <a href="/docs/contribute/" >Contributing Guide</a> for how to submit improvements.</p>

Pages

Complete GQL API Reference

Comprehensive API reference for Geode's GQL implementation including all keywords, functions, data types, operators, and procedures with detailed examples.

16 min read

API Reference and CLI Manual

Command-line reference for `geode` (with geoded/geodec compatibility) and the full Geode GQL surface: keywords, functions, types, procedures, and operational commands

7 min read

DSN (Data Source Name) Specification

Official DSN format for connecting to Geode over QUIC or gRPC, including authentication, graph binding, and TLS options

5 min read

GQL Operators Reference

Complete reference for all GQL operators in Geode including arithmetic, logical, comparison, string, and advanced operators with precedence rules and examples.

14 min read

Index Types Reference

Complete reference for all index types in Geode including B-tree, Hash, Full-text, Spatial, Vector (HNSW), and specialized indexes with configuration options and performance characteristics

10 min read

Data Types Reference

Complete reference for all 50+ data types in Geode including core types, temporal types, collection types, vector types, geographic types, and specialized types with constructors and conversion rules

10 min read

Statistics and Metrics Reference

Complete reference for Geode statistics, metrics, and monitoring including query statistics, storage metrics, index statistics, and Prometheus integration

8 min read

Error Codes Reference

Complete reference for Geode error codes, GQLSTATUS codes, and troubleshooting guidance following ISO/IEC SQL standards

11 min read

ISO GQL Status Codes Reference

Complete reference for ISO GQL status codes and error handling in Geode, including error categories, handling strategies, and troubleshooting guide

14 min read

Changelog

Complete version history and release notes for Geode graph database with breaking changes, new features, and migration guides

5 min read

Type Conversion Functions

Complete reference for GQL type conversion functions in Geode including toString, toInteger, toReal, and type introspection with ISO standard compliance.

9 min read

Unicode Support and Text Processing

Comprehensive Unicode support in Geode including NFC normalization, case folding, UTF-8/UTF-16 conversion, and international text processing capabilities.

10 min read