KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Nazwane zapytania: insert, select, update, delete
Tabela z kolumnami i wartościami domyślnymi, indeks, nazwane zapytania z parametrami (`:id`), sortowanie i limit. Kod KretS dostaje typowane funkcje `db.Add`, `db.Open`, `db.Finish`, `db.Remove`, `db.Count`; wiersz tabeli jest rekordem `tasks`. Komenda hosta `tasks.finish` kończy zadanie.
Witryna nie wykonuje kodu ani nie prowadzi walidacji SDK. Wyniki poniżej pochodzą z eksportu określonej wersji i przestają opisywać kod po jego zmianie.
Kanoniczne pliki projektu
# Zapytanie jest strukturą danych: SQL powstaje tylko z identyfikatorów sprawdzonych wzorcem, wartości są wiązane.
database Tasks {
version = 1
table tasks {
storage {
mode = "persistent"
maxSize = 4MB
}
id: Int primary key
title: String
priority: Int default 1
done: Bool default false
index by priority
}
query Add(id: Int, title: String, priority: Int) -> Unit {
insert into tasks { id = :id, title = :title, priority = :priority }
}
query Open() -> List<tasks> {
select tasks where done == false sort by priority desc limit 100
}
query Finish(id: Int) -> Int {
update tasks set done = true where id == :id
}
query Remove(id: Int) -> Int {
delete from tasks where id == :id and done == true
}
query Count() -> Int {
select tasks
}
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# Zapytanie jest strukturą danych: SQL powstaje tylko z identyfikatorów sprawdzonych wzorcem, wartości są wiązane.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.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.Pusta linia oddziela fragmenty źródła.table tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.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.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.priority: Int default 1Odczytaj 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 priorityOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.query Add(id: Int, title: String, priority: Int) -> Unit {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.insert into tasks { id = :id, title = :title, priority = :priority }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.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 priority 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.Pusta linia oddziela fragmenty źródła.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.Pusta linia oddziela fragmenty źródła.query Remove(id: Int) -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.delete from tasks where id == :id and done == trueOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.query Count() -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.select tasksOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.
Wynik i typowy błąd
Start: zadania posortowane po priorytecie malejąco; komenda: „zmieniono 1, usunięto 1; otwarte: …” bez zadania 2.
Porównanie kolumny `Decimal` lub `Bytes` w `where`, złączenia albo zapytania składane z tekstu — poza zakresem (`KCS-KDB-0102`).
Wymagania wersji i procedura lokalna
- sdk
- 1.0.0-rc.3+kret.local.3
- sdkInfoReports
- 1.0.0-rc.3
- core
- 1.0.0-test.6.11-draft.1
- os
- Windows 11 x64
- dotnet
- .NET 10 runtime
Polecenia poniżej są instrukcją do samodzielnego wykonania z właściwym lokalnym SDK. DATA/OUT muszą wskazywać nowe katalogi testowe. Nie ma przycisku uruchamiania na serwerze.
- check
kret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0 - run-invoke
kret run . --policy host-policy.json --data {DATA} --invoke tasks.finish=[2]Katalog: project · Oczekiwany kod wyjścia: 0
Wyniki zapisane w pakiecie źródłowym
To dowód z eksportu, nie wynik bieżącego wykonania w przeglądarce.
# EXPECTED_OUTPUT — KRETDB-I01-NamedQueries
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:27Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.
### 1. check (exit 0, PASS)
> kret check . --json
{
"format": "kret-diagnostics/1",
"project": "<project>",
"succeeded": true,
"plugin": {
"id": "LOCAL-KPL-DBM2QRYS",
"name": "NamedQueries",
"version": "1.0.0",
"profile": "standard",
"database": true
},
"permissions": {
"required": [
"kretdb.open",
"kretdb.read",
"kretdb.write"
],
"optional": []
},
"handlers": {
"lifecycle": [
"start",
"shutdown"
],
"events": [],
"commands": [
"tasks.finish"
]
},
"diagnostics": []
}
### 2. run-invoke (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA} --invoke tasks.finish=[2]
{
"broker": {
"pid": 20672,
"startupMs": 42.2135,
"pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
"allowProvisionalRisk": true,
"memoryIdle": {
"managedBytes": 1193360,
"allocatedBytes": 1190720,
"workingSetBytes": 32530432,
"privateBytes": 10047488,
"peakWorkingSetBytes": 32530432,
"cpuMs": 93.75
}
},
"brokerWithPlugins": {
"memory": {
"managedBytes": 1713520,
"allocatedBytes": 1709920,
"workingSetBytes": 41164800,
"privateBytes": 14434304,
"peakWorkingSetBytes": 41250816,
"cpuMs": 203.125
}
},
"plugins": [
{
"package": "<project>\\Build",
"admitted": true,
"startMs": 162.1488,
"subject": "LOCAL-KPL-DBM2QRYS",
"instance": "01a19725-9f19-70d9-9999-c2343ea3686a",
"pid": 11832,
"jobObject": true,
"isolation": {
"level": "Restricted",
"restrictedToken": true,
"lowIntegrity": true,
"appContainer": false
},
"limits": {
"profile": "standard",
"scriptMemoryBytes": 67108864,
"processMemoryBytes": 201326592,
"cpuPercent": 25,
"maxInstructions": 50000000,
"clamped": []
},
"calls": [
{
"operation": "start",
"ok": true,
"status": "Completed",
"type": "String",
"value": "otwarte: odda\u0107 ksi\u0105\u017Ck\u0119(3), zadzwoni\u0107(2), kupi\u0107 mleko(1)",
"brokerMs": 60.678,
"vmMs": 56.6592,
"instructions": 117,
"hostCalls": 7,
"pluginReportedMemory": {
"managedBytes": 784688,
"allocatedBytes": 782504,
"workingSetBytes": 32481280,
"privateBytes": 11169792,
"peakWorkingSetBytes": 32555008,
"cpuMs": 93.75
}
},
{
"operation": "on tasks.finish",
"ok": true,
"status": "Completed",
"type": "String",
"value": "zmieniono 1, usuni\u0119to 1; otwarte: zadzwoni\u0107(2), kupi\u0107 mleko(1)",
"brokerMs": 12.125,
"vmMs": 11.1469,
"instructions": 89,
"hostCalls": 3,
"pluginReportedMemory": {
"managedBytes": 798496,
"allocatedBytes": 796264,
"workingSetBytes": 32595968,
"privateBytes": 11272192,
"peakWorkingSetBytes": 32595968,
"cpuMs": 93.75
}
},
{
"operation": "shutdown",
"ok": true,
"status": "Completed",
"type": "Unit",
"value": null,
"brokerMs": 0.4928,
"vmMs": 0.0013,
"instructions": 1,
"hostCalls": 0,
"pluginReportedMemory": {
"managedBytes": 814944,
"allocatedBytes": 812664,
"workingSetBytes": 32616448,
"privateBytes": 11337728,
"peakWorkingSetBytes": 32616448,
"cpuMs": 93.75
}
}
],
"processMemoryMeasuredByBroker": {
"workingSetBytes": 32604160,
"privateBytes": 11337728,
"peakWorkingSetBytes": 32604160,
"cpuMs": 109.375
},
"database": {
"backend": "sqlite",
"engineVersion": "3.53.4",
"fileBytes": 20480,
"pageCount": 5,
"engineMemoryBytes": 330120,
"statements": 49
},
"summary": {
"exitCode": 0,
"killed": false,
"hostCalls": 10,
"denials": 0,
"peakCommitBytes": 12034048,
"log": []
}
}
],
"brokerAfterClose": {
"memory": {
"managedBytes": 614856,
"allocatedBytes": 1709920,
"workingSetBytes": 41738240,
"privateBytes": 14987264,
"peakWorkingSetBytes": 41738240,
"cpuMs": 203.125
}
},
"audit": {
"entries": 19,
"denials": 0,
"grantsIssued": 3,
"denied": []
},
"exitCode": 0
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# EXPECTED_OUTPUT — KRETDB-I01-NamedQueriesOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:27Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-DBM2QRYS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "NamedQueries",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."database": truePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."commands": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."tasks.finish"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.]Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 2. run-invoke (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret run . --policy host-policy.json --data {DATA} --invoke tasks.finish=[2]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 20672,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startupMs": 42.2135,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1193360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1190720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 10047488,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1713520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1709920,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 41164800,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14434304,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 41250816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startMs": 162.1488,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-DBM2QRYS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instance": "01a19725-9f19-70d9-9999-c2343ea3686a",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 11832,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "otwarte: odda\u0107 ksi\u0105\u017Ck\u0119(3), zadzwoni\u0107(2), kupi\u0107 mleko(1)",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 60.678,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 56.6592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 117,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 7,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 784688,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 782504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32481280,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11169792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32555008,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "on tasks.finish",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "zmieniono 1, usuni\u0119to 1; otwarte: zadzwoni\u0107(2), kupi\u0107 mleko(1)",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 12.125,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 11.1469,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 89,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 798496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 796264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11272192,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 0.4928,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 0.0013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 814944,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 812664,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32616448,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11337728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32616448,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32604160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11337728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32604160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 109.375Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineMemoryBytes": 330120,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."statements": 49Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 10,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakCommitBytes": 12034048,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."log": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 614856,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1709920,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 41738240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14987264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 41738240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."entries": 19,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."grantsIssued": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów
null
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
Pochodzenie i integralność
KRET_LANGUAGE_KRETDB.zip:KretDB/Examples/INTERMEDIATE_NamedQueries/example.json
02_PLAYGROUND/EXAMPLES/KRETDB-I01-NamedQueries.json
SHA-256 48EA9DD4A4F5318A4554A5921B0A3123D9EF177B5435157487EB780225476DA5Materiały źródłowe do tego tematu
Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.
KRETDB-I01-NamedQueries — Nazwane zapytania: insert, select, update, delete
KRETDB-I01-NamedQueries — Nazwane zapytania: insert, select, update, delete
🇬🇧 English version below.
| Pole | Wartość |
|---|---|
| Technologia | KretDB |
| Poziom | INTERMEDIATE |
| Klasyfikacja | RUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu) |
| Playground | LOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie) |
| SDK | 1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany) |
| Wynik testu | TEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt |
Co pokazuje
Tabela z kolumnami i wartościami domyślnymi, indeks, nazwane zapytania z parametrami (:id), sortowanie i limit. Kod KretS dostaje typowane funkcje db.Add, db.Open, db.Finish, db.Remove, db.Count; wiersz tabeli jest rekordem tasks. Komenda hosta tasks.finish kończy zadanie.
Pliki
| Plik |
|---|
Disk/Schema.kdb |
Script/Main.krs |
host-policy.json |
plugin.kretl |
Jak uruchomić
Katalog roboczy: katalog tego przykładu. kret oznacza <SDK>\Compiler\kret.exe, kretui-host — <SDK>\UiHost\kretui-host.exe. {DATA} / {OUT} to nowe, puste katalogi poza projektem. Wymagania: REQUIREMENTS.md.
kret check . --json— walidacjakret run . --policy host-policy.json --data {DATA} --invoke tasks.finish=[2]— start (wstawia 3 zadania) + komendatasks.finishdla id 2
Oczekiwany wynik
Start: zadania posortowane po priorytecie malejąco; komenda: „zmieniono 1, usunięto 1; otwarte: …” bez zadania 2.
Najczęstszy błąd
Porównanie kolumny Decimal lub Bytes w where, złączenia albo zapytania składane z tekstu — poza zakresem (KCS-KDB-0102).
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →