Files
Baradb/docs/de/udf.md
T
dimgigov c95bc4cd44
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
docs: synchronize documentation across all languages
- Add mcp.md to: bg, fa, ru, tr, zh, ar
- Add index.md to Bulgarian (bg)
- Add 24 missing German (de) documentation files

Translations for all supported languages now complete.
2026-05-17 16:29:28 +03:00

1.6 KiB

Benutzerdefinierte Funktionen

BaraQL mit benutzerdefinierten Funktionen erweitern.

Verwendung

import barabadb/query/udf

var reg = newUDFRegistry()

# Standard-Bibliothek registrieren
reg.registerStdlib()  # abs, sqrt, pow, lower, upper, len, trim, substr, toString, toInt

# Benutzerdefinierte Funktion
reg.register("greet", @[UDFParam(name: "name", typeName: "str")],
  "str", proc(args: seq[Value]): Value =
    return Value(kind: vkString, strVal: "Hello, " & args[0].strVal & "!"))

Standard-Bibliotheksfunktionen

Funktion Beschreibung Beispiel
abs(n) Absoluter Wert abs(-5) → 5
sqrt(n) Quadratwurzel sqrt(16) → 4
pow(n, e) Potenz pow(2, 3) → 8
lower(s) Kleinbuchstaben lower('ABC') → 'abc'
upper(s) Großbuchstaben upper('abc') → 'ABC'
len(s) Länge len('hello') → 5
trim(s) Leerzeichen trimmen trim(' hello ') → 'hello'
substr(s, start, len) Substring substr('hello', 0, 3) → 'hel'
toString(n) In String konvertieren toString(123) → '123'
toInt(s) In Integer konvertieren toInt('123') → 123

Funktionsregistrierung

reg.register(
  name: "my_function",
  params: @[
    UDFParam(name: "arg1", typeName: "str"),
    UDFParam(name: "arg2", typeName: "int32")
  ],
  returnType: "str",
  body: proc(args: seq[Value]): Value =
    # Implementierung
    result = Value(kind: vkString, strVal: "")
)

UDFs in Abfragen verwenden

SELECT greet(name) FROM users;