Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Nazwane zapytania: insert, select, update, delete

INTERMEDIATERUNNABLE_LOCALKretDB

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.

Edycja i zapisane wyniki

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.

  1. # 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.
  2. database Tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  4. Pusta linia oddziela fragmenty źródła.
  5. table tasks {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. storage {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  7. mode = "persistent"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. maxSize = 4MBOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  9. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  10. id: Int primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  11. title: StringOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  12. priority: Int default 1Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  13. done: Bool default falseOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  14. index by priorityOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  15. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  16. Pusta linia oddziela fragmenty źródła.
  17. query Add(id: Int, title: String, priority: Int) -> Unit {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  18. insert into tasks { id = :id, title = :title, priority = :priority }Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  19. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  20. Pusta linia oddziela fragmenty źródła.
  21. query Open() -> List<tasks> {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  22. 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.
  23. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. Pusta linia oddziela fragmenty źródła.
  25. query Finish(id: Int) -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  26. update tasks set done = true where id == :idOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  27. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  28. Pusta linia oddziela fragmenty źródła.
  29. query Remove(id: Int) -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  30. delete from tasks where id == :id and done == trueOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  31. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  32. Pusta linia oddziela fragmenty źródła.
  33. query Count() -> Int {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  34. select tasksOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  35. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  36. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  37. 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.

Na co uważać

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.

  1. checkkret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0
  2. run-invokekret 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.

  1. # EXPECTED_OUTPUT — KRETDB-I01-NamedQueriesOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. # 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.
  3. # Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. Pusta linia oddziela fragmenty źródła.
  5. ### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. > kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. "format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  9. "project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "id": "LOCAL-KPL-DBM2QRYS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "name": "NamedQueries",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  14. "version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  15. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  16. "database": truePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  17. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  18. "permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  21. "kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  22. "kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  23. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  25. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  26. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  27. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  28. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  29. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  30. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  31. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  32. "commands": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. "tasks.finish"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  34. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  35. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  36. "diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  37. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  38. Pusta linia oddziela fragmenty źródła.
  39. ### 2. run-invoke (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  40. > 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.
  41. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  42. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. "pid": 20672,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  44. "startupMs": 42.2135,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  45. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  46. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  47. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  48. "managedBytes": 1193360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  49. "allocatedBytes": 1190720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  50. "workingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  51. "privateBytes": 10047488,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  52. "peakWorkingSetBytes": 32530432,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  53. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  54. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  55. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  56. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  57. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  58. "managedBytes": 1713520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  59. "allocatedBytes": 1709920,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  60. "workingSetBytes": 41164800,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  61. "privateBytes": 14434304,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  62. "peakWorkingSetBytes": 41250816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  63. "cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  64. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  65. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  66. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  67. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  68. "package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  69. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. "startMs": 162.1488,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  71. "subject": "LOCAL-KPL-DBM2QRYS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "instance": "01a19725-9f19-70d9-9999-c2343ea3686a",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. "pid": 11832,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  74. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  75. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  76. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  77. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  79. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  81. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  84. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  85. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  86. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  87. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  89. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  90. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  91. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "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.
  96. "brokerMs": 60.678,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "vmMs": 56.6592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "instructions": 117,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. "hostCalls": 7,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  100. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  101. "managedBytes": 784688,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  102. "allocatedBytes": 782504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  103. "workingSetBytes": 32481280,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  104. "privateBytes": 11169792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  105. "peakWorkingSetBytes": 32555008,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  106. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  107. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  108. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  109. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  110. "operation": "on tasks.finish",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  111. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  112. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  113. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  114. "value": "zmieniono 1, usuni\u0119to 1; otwarte: zadzwoni\u0107(2), kupi\u0107 mleko(1)",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  115. "brokerMs": 12.125,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  116. "vmMs": 11.1469,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  117. "instructions": 89,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  118. "hostCalls": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  119. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  120. "managedBytes": 798496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  121. "allocatedBytes": 796264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  122. "workingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  123. "privateBytes": 11272192,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  124. "peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  125. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  126. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  127. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  128. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  129. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  130. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  131. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  132. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  133. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  134. "brokerMs": 0.4928,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  135. "vmMs": 0.0013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  136. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  137. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  138. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  139. "managedBytes": 814944,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  140. "allocatedBytes": 812664,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  141. "workingSetBytes": 32616448,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  142. "privateBytes": 11337728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  143. "peakWorkingSetBytes": 32616448,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  144. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  145. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  146. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  147. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  148. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  149. "workingSetBytes": 32604160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  150. "privateBytes": 11337728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  151. "peakWorkingSetBytes": 32604160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  152. "cpuMs": 109.375Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  153. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  154. "database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  155. "backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  156. "engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  157. "fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  158. "pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  159. "engineMemoryBytes": 330120,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  160. "statements": 49Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  161. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  162. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  163. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  164. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  165. "hostCalls": 10,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  166. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  167. "peakCommitBytes": 12034048,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  168. "log": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  169. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  170. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  171. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  172. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  173. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  174. "managedBytes": 614856,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  175. "allocatedBytes": 1709920,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  176. "workingSetBytes": 41738240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  177. "privateBytes": 14987264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  178. "peakWorkingSetBytes": 41738240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  179. "cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  180. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  181. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  182. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  183. "entries": 19,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  184. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  185. "grantsIssued": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  186. "denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  187. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  188. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  189. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  190. Pusta linia oddziela fragmenty źródła.
  191. 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.

  1. 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 48EA9DD4A4F5318A4554A5921B0A3123D9EF177B5435157487EB780225476DA5

Materiał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.
PoleWartość
TechnologiaKretDB
PoziomINTERMEDIATE
KlasyfikacjaRUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu)
PlaygroundLOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie)
SDK1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany)
Wynik testuTEST_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.

  1. kret check . --json — walidacja
  2. kret run . --policy host-policy.json --data {DATA} --invoke tasks.finish=[2] — start (wstawia 3 zadania) + komenda tasks.finish dla 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).

Otwórz cały rozdział ze źródłem →

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