Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

KretDB — referencja składni

KretDB — referencja składni

Status 1.0: `FROZEN_SUPPORTED_SUBSET` — zamrożony dokładnie opisany zakres; reszta poza kontraktem 1.0. Gramatyka/wersja: kretdb-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.

Opisane są wyłącznie konstrukcje potwierdzone implementacją SDK (i, gdzie zaznaczono, testami tej rundy).

database / version

Baza pluginu i wersja schematu.

database Tasks {
    version = 1
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. database Tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  3. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyversion N ≥ 1
Wynik—
Wymaganiaobowiązkowe
Ograniczenia—
Możliwe błędyKCS-KDB-02xx
Wprowadzono1.0

table / column / primary key / default / index

Tabela z kolumnami, kluczem głównym, domyślnymi wartościami i indeksem.

table tasks {
    id: Int primary key
    title: String
    done: Bool default false
    index by title
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. table tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. id: Int primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. title: StringOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. done: Bool default falseOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. index by titleOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyklucz: Int64, Int32, String, UUID, bez ?
Wynikwiersz = rekord KretS o nazwie tabeli
Wymaganiadokładnie jeden klucz główny
Ograniczenia—
Możliwe błędyKCS-KDB-0205, KCS-KDB-0206
Wprowadzono1.0

storage { mode maxSize }

Tryb przechowywania i limit bajtów wartości tabeli.

storage {
    mode = "persistent"
    maxSize = 4MB
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. storage {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  2. mode = "persistent"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. maxSize = 4MBOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typymode tylko "persistent"; maxSize ≥ 4KB (1 KB = 1000 B)
Wynik—
Wymaganiaopcjonalne
Ograniczeniacached, temporary → KCS-KDB-0102
Możliwe błędyKCS-KDB-0308
Wprowadzono1.0 (maxSize per tabela od 2026-10-17)

query … select

Nazwane zapytanie odczytu.

query Open() -> List<tasks> {
    select tasks where done == false sort by id desc limit 100
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. query Open() -> List<tasks> {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. select tasks where done == false sort by id desc limit 100Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyparametry nazwa: Typ
WynikList<T>, T? albo Int (liczba wierszy)
Wymaganiakretdb.read
Ograniczenia10 000 wierszy; brak złączeń i agregacji
Możliwe błędyKCS-KDB-0310
Wprowadzono1.0

query … insert / update / delete

Nazwane zapytania zapisu.

query Add(id: Int, title: String) -> Unit {
    insert into tasks { id = :id, title = :title }
}
query Finish(id: Int) -> Int {
    update tasks set done = true where id == :id
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. query Add(id: Int, title: String) -> Unit {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. insert into tasks { id = :id, title = :title }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  4. query Finish(id: Int) -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. update tasks set done = true where id == :idOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typy:parametr, literały, now()
Wynikinsert → Unit; update/delete → Int
Wymaganiakretdb.write
OgraniczeniamaxSize, limit pliku
Możliwe błędyKCS-KDB-0308
Wprowadzono1.0

db.get / getOr / set / delete / exists

Operacje na tabeli klucz→wartość (klucz + jedna kolumna).

let n = db.getOr("counters", "runs", 0) + 1
db.set("counters", "runs", n)
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. let n = db.getOr("counters", "runs", 0) + 1Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  2. db.set("counters", "runs", n)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
CechaWartość
Parametry / typytabela, klucz[, wartość]
Wynikwartość / Bool / liczba usuniętych
Wymaganiakretdb.open + read/write
Ograniczeniatylko tabele klucz→wartość
Możliwe błędyKCS-PERM-*
Wprowadzono1.0

db.begin / commit / rollback

Transakcja; niezatwierdzona do końca handlera jest wycofywana.

db.begin()
db.set("balance", "a", 70)
db.commit()
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. db.begin()Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. db.set("balance", "a", 70)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. db.commit()Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
CechaWartość
Parametry / typy—
WynikUnit
Wymaganiakretdb.write
Ograniczeniazapis poza transakcją = osobna trwała transakcja
Możliwe błędyKCS-KDB-0315
Wprowadzono1.0

migration from N (SDK; Core PROVISIONAL)

Krok danych przy przejściu wersji schematu; wykonuje go wyłącznie zaufany host.

migration from 1 {
    update tasks set done = false where done == null
}
Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. migration from 1 {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. update tasks set done = false where done == nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. }Zamknięcie struktury otwartej we wcześniejszych liniach.
CechaWartość
Parametry / typyoperacje update/insert/delete
Wynik—
Wymaganiapodniesienie version
Ograniczeniadelete zablokowane domyślnie (0322); dozwolone tylko dodanie tabeli/kolumny/indeksu; w Core PROVISIONAL (A14–A16, FB-08)
Możliwe błędyKCS-KDB-0302, 0316–0324
Wprowadzono1.0 (SDK)

Źródło i wersja

Zweryfikowany import PUBLIC_CANDIDATE. Identyfikatory źródeł odnoszą się do eksportu i nie dają dostępu do plików serwera.

01_LANGUAGES/KretDB/Documentation/SYNTAX_REFERENCE.md
SHA-256 C6D76614F78D1F1899648E72339AFBF977C5E7FE0835F1FB79B83ADC2870ADD0

Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności