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.
database Tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | version N ≥ 1 |
| Wynik | — |
| Wymagania | obowiązkowe |
| Ograniczenia | — |
| Możliwe błędy | KCS-KDB-02xx |
| Wprowadzono | 1.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.
table tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.id: Int primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.title: StringOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.done: Bool default falseOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.index by titleOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | klucz: Int64, Int32, String, UUID, bez ? |
| Wynik | wiersz = rekord KretS o nazwie tabeli |
| Wymagania | dokładnie jeden klucz główny |
| Ograniczenia | — |
| Możliwe błędy | KCS-KDB-0205, KCS-KDB-0206 |
| Wprowadzono | 1.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.
storage {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.mode = "persistent"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.maxSize = 4MBOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | mode tylko "persistent"; maxSize ≥ 4KB (1 KB = 1000 B) |
| Wynik | — |
| Wymagania | opcjonalne |
| Ograniczenia | cached, temporary → KCS-KDB-0102 |
| Możliwe błędy | KCS-KDB-0308 |
| Wprowadzono | 1.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.
query Open() -> List<tasks> {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.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.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | parametry nazwa: Typ |
| Wynik | List<T>, T? albo Int (liczba wierszy) |
| Wymagania | kretdb.read |
| Ograniczenia | 10 000 wierszy; brak złączeń i agregacji |
| Możliwe błędy | KCS-KDB-0310 |
| Wprowadzono | 1.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.
query Add(id: Int, title: String) -> Unit {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.insert into tasks { id = :id, title = :title }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.query Finish(id: Int) -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.update tasks set done = true where id == :idOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | :parametr, literały, now() |
| Wynik | insert → Unit; update/delete → Int |
| Wymagania | kretdb.write |
| Ograniczenia | maxSize, limit pliku |
| Możliwe błędy | KCS-KDB-0308 |
| Wprowadzono | 1.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.
let n = db.getOr("counters", "runs", 0) + 1Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.db.set("counters", "runs", n)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
| Cecha | Wartość |
|---|---|
| Parametry / typy | tabela, klucz[, wartość] |
| Wynik | wartość / Bool / liczba usuniętych |
| Wymagania | kretdb.open + read/write |
| Ograniczenia | tylko tabele klucz→wartość |
| Możliwe błędy | KCS-PERM-* |
| Wprowadzono | 1.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.
db.begin()Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.db.set("balance", "a", 70)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.db.commit()Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
| Cecha | Wartość |
|---|---|
| Parametry / typy | — |
| Wynik | Unit |
| Wymagania | kretdb.write |
| Ograniczenia | zapis poza transakcją = osobna trwała transakcja |
| Możliwe błędy | KCS-KDB-0315 |
| Wprowadzono | 1.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.
migration from 1 {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.update tasks set done = false where done == nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.
| Cecha | Wartość |
|---|---|
| Parametry / typy | operacje update/insert/delete |
| Wynik | — |
| Wymagania | podniesienie version |
| Ograniczenia | delete zablokowane domyślnie (0322); dozwolone tylko dodanie tabeli/kolumny/indeksu; w Core PROVISIONAL (A14–A16, FB-08) |
| Możliwe błędy | KCS-KDB-0302, 0316–0324 |
| Wprowadzono | 1.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 C6D76614F78D1F1899648E72339AFBF977C5E7FE0835F1FB79B83ADC2870ADD0Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →