Skip to content

secondary_index.cpp

GitHub Actions edited this page Jan 2, 2026 · 1 revision

secondary_index.cpp

Stand: 5. Dezember 2025
Version: 1.0.0
Kategorie: Src


Path: src/index/secondary_index.cpp

Purpose: Secondary index implementation for non‑primary key attributes.

Public functions / symbols:

  • inline std::vector<uint8_t> toBytes(std::string_view sv) {
  • if (c == ':' || c == '%') {
  • for (const auto& s : configJson["stopwords"]) {
  • catch (...) { THEMIS_WARN("put(tx): alte Entity für PK={} nicht deserialisierbar", pk); }
  • ``
  • catch (...) { THEMIS_WARN("erase(tx): alte Entity für PK={} nicht deserialisierbar", pk); }
  • if (lastColon != std::string_view::npos) {
  • if (existingPK != pk) {
  • if (conflict) {
  • if (pos == std::string::npos) {
  • for (const auto& c : columns) {
  • if (!maybe) {
  • for (const auto& t : tokens) { if (!t.empty()) tf[t]++; }
  • for (const auto& [token, count] : tf) {
  • for (const auto& col : indexedCols) {
  • if (extractedPK == pk) {
  • for (const auto& rcol : rangeCols) {
  • if (existingPK == pk) {
  • for (const auto& scol : sparseCols) {
  • for (const auto& gcol : geoCols) {
  • for (const auto& tcol : ttlCols) {
  • for (const auto& fcol : fulltextCols) {
  • for (const auto& token : uniqueTokens) {
  • if (!blob) {
  • if (count >= maxProbe) {
  • if (!includeLower) {
  • if (includeUpper) {
  • for (const auto& pk : sameValuePks) {
  • if (pk > anchorPk) {
  • if (*it < anchorPk) {
  • if (!reversed) {
  • for (const auto& pk : more) {
  • if (lat >= minLat && lat <= maxLat && lon >= minLon && lon <= maxLon) {
  • if (dist <= radiusKm) {
  • if (st.ok) {
  • if (c == '"') {
  • if (in_quotes) {
  • for (const auto& pk : intersectionSet) {
  • for (auto ph : phrases) {
  • for (auto& token : tokens) {
  • if (firstColon != std::string::npos) {
  • if (secondColon != std::string::npos) {
  • if (thirdColon != std::string::npos) {
  • if (!maybeVal) { if (!advance()) { aborted = true; return false; } return true; }
  • for (const auto& token : tokens) {
  • if (!maybeLat || !maybeLon) { if (!advance()) { aborted = true; return false; } return true; }
  • for (const auto& col : columns) {
  • catch (...) {
  • if (extractedPK != pk) {
  • THEMIS_WARN("put: Konnte alte Entity für PK={} nicht deserialisieren", pk);

ThemisDB Dokumentation

Version: 1.3.0 | Stand: Dezember 2025


📋 Schnellstart


🏗️ Architektur


🗄️ Basismodell


💾 Storage & MVCC


📇 Indexe & Statistiken


🔍 Query & AQL


💰 Caching


📦 Content Pipeline


🔎 Suche


⚡ Performance & Benchmarks


🏢 Enterprise Features


✅ Qualitätssicherung


🧮 Vektor & GNN


🌍 Geo Features


🛡️ Sicherheit & Governance

Authentication

Schlüsselverwaltung

Verschlüsselung

TLS & Certificates

PKI & Signatures

PII Detection

Vault & HSM

Audit & Compliance

Security Audits

Gap Analysis


🚀 Deployment & Betrieb

Docker

Observability

Change Data Capture

Operations


💻 Entwicklung

API Implementations

Changefeed

Security Development

Development Overviews


📄 Publikation & Ablage


🔧 Admin-Tools


🔌 APIs


📚 Client SDKs


📊 Implementierungs-Zusammenfassungen


📅 Planung & Reports


📖 Dokumentation


📝 Release Notes


📖 Styleguide & Glossar


🗺️ Roadmap & Changelog


💾 Source Code Documentation

Main Programs

Source Code Module


🗄️ Archive


🤝 Community & Support


Vollständige Dokumentation: https://makr-code.github.io/ThemisDB/

Clone this wiki locally