[{"data":1,"prerenderedAt":1502},["ShallowReactive",2],{"navigation_docs":3,"-reference-migration-sql-grammar":196,"-reference-migration-sql-grammar-surround":1497},[4,127,166],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":36},"Kinotic Apps","i-lucide-rocket","\u002Fapps","1.apps",[10,14,18,37,58,91,106,122],{"title":11,"path":12,"stem":13},"Introduction","\u002Fapps\u002Fintroduction","1.apps\u002F1.introduction",{"title":15,"path":16,"stem":17},"Quick Start","\u002Fapps\u002Fquick-start","1.apps\u002F2.quick-start",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":36},"Application Structure","i-lucide-folder-tree","\u002Fapps\u002Fapplication-structure","1.apps\u002F3.application-structure",[24,28,32],{"title":25,"path":26,"stem":27},"Overview","\u002Fapps\u002Fapplication-structure\u002Foverview","1.apps\u002F3.application-structure\u002F1.overview",{"title":29,"path":30,"stem":31},"Applications and Projects","\u002Fapps\u002Fapplication-structure\u002Fapplications-and-projects","1.apps\u002F3.application-structure\u002F2.applications-and-projects",{"title":33,"path":34,"stem":35},"Artifact Types","\u002Fapps\u002Fapplication-structure\u002Fartifact-types","1.apps\u002F3.application-structure\u002F3.artifact-types",false,{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":36},"Services","i-lucide-network","\u002Fapps\u002Fservices","1.apps\u002F4.services",[43,46,50,54],{"title":25,"path":44,"stem":45},"\u002Fapps\u002Fservices\u002Foverview","1.apps\u002F4.services\u002F1.overview",{"title":47,"path":48,"stem":49},"Publishing Services","\u002Fapps\u002Fservices\u002Fpublishing-services","1.apps\u002F4.services\u002F2.publishing-services",{"title":51,"path":52,"stem":53},"Service Proxies","\u002Fapps\u002Fservices\u002Fservice-proxies","1.apps\u002F4.services\u002F3.service-proxies",{"title":55,"path":56,"stem":57},"Streaming","\u002Fapps\u002Fservices\u002Fstreaming","1.apps\u002F4.services\u002F4.streaming",{"title":59,"icon":60,"path":61,"stem":62,"children":63,"page":36},"Persistence","i-lucide-database","\u002Fapps\u002Fpersistence","1.apps\u002F5.persistence",[64,67,71,75,79,83,87],{"title":25,"path":65,"stem":66},"\u002Fapps\u002Fpersistence\u002Foverview","1.apps\u002F5.persistence\u002F1.overview",{"title":68,"path":69,"stem":70},"Defining Entities","\u002Fapps\u002Fpersistence\u002Fdefining-entities","1.apps\u002F5.persistence\u002F2.defining-entities",{"title":72,"path":73,"stem":74},"Entity Decorators","\u002Fapps\u002Fpersistence\u002Fentity-decorators","1.apps\u002F5.persistence\u002F3.entity-decorators",{"title":76,"path":77,"stem":78},"CRUD Operations","\u002Fapps\u002Fpersistence\u002Fcrud-operations","1.apps\u002F5.persistence\u002F4.crud-operations",{"title":80,"path":81,"stem":82},"Named Queries","\u002Fapps\u002Fpersistence\u002Fnamed-queries","1.apps\u002F5.persistence\u002F5.named-queries",{"title":84,"path":85,"stem":86},"Multi-Tenancy","\u002Fapps\u002Fpersistence\u002Fmulti-tenancy","1.apps\u002F5.persistence\u002F6.multi-tenancy",{"title":88,"path":89,"stem":90},"Migrations","\u002Fapps\u002Fpersistence\u002Fmigrations","1.apps\u002F5.persistence\u002F7.migrations",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":36},"Security","i-lucide-shield-check","\u002Fapps\u002Fsecurity","1.apps\u002F6.security",[97,101],{"title":98,"path":99,"stem":100,"icon":93},"Access Control","\u002Fapps\u002Fsecurity\u002Faccess-control","1.apps\u002F6.security\u002F1.access-control",{"title":102,"path":103,"stem":104,"icon":105},"Authentication","\u002Fapps\u002Fsecurity\u002Fauthentication","1.apps\u002F6.security\u002F2.authentication","i-lucide-key-round",{"title":107,"icon":108,"path":109,"stem":110,"children":111,"page":36},"Deployment","i-lucide-cloud-upload","\u002Fapps\u002Fdeployment","1.apps\u002F7.deployment",[112,117],{"title":113,"path":114,"stem":115,"icon":116},"Deployment Workflow","\u002Fapps\u002Fdeployment\u002Fworkflow","1.apps\u002F7.deployment\u002F1.workflow","i-lucide-git-branch",{"title":118,"path":119,"stem":120,"icon":121},"Environments","\u002Fapps\u002Fdeployment\u002Fenvironments","1.apps\u002F7.deployment\u002F2.environments","i-lucide-server",{"title":123,"path":124,"stem":125,"icon":126},"CLI Reference","\u002Fapps\u002Fcli-reference","1.apps\u002F8.cli-reference","i-lucide-terminal",{"title":128,"icon":121,"path":129,"stem":130,"children":131,"page":36},"Kinotic OS","\u002Fplatform","2.platform",[132,137,141,146,151,156,161],{"title":133,"path":134,"stem":135,"icon":136},"System Architecture","\u002Fplatform\u002Farchitecture","2.platform\u002F1.architecture","i-lucide-boxes",{"title":138,"path":139,"stem":140,"icon":6},"Deployment Guide","\u002Fplatform\u002Fdeployment-guide","2.platform\u002F2.deployment-guide",{"title":142,"path":143,"stem":144,"icon":145},"Configuration","\u002Fplatform\u002Fconfiguration","2.platform\u002F3.configuration","i-lucide-settings",{"title":147,"path":148,"stem":149,"icon":150},"Organization Management","\u002Fplatform\u002Forganization-management","2.platform\u002F4.organization-management","i-lucide-building-2",{"title":152,"path":153,"stem":154,"icon":155},"System Security","\u002Fplatform\u002Fsystem-security","2.platform\u002F5.system-security","i-lucide-shield",{"title":157,"path":158,"stem":159,"icon":160},"Observability","\u002Fplatform\u002Fobservability","2.platform\u002F6.observability","i-lucide-activity",{"title":162,"path":163,"stem":164,"icon":165},"Contributing","\u002Fplatform\u002Fcontributing","2.platform\u002F7.contributing","i-lucide-git-pull-request",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":36},"Reference","i-lucide-book-open","\u002Freference","3.reference",[172,177,181,186,191],{"title":173,"path":174,"stem":175,"icon":176},"Decorators Reference","\u002Freference\u002Fdecorators","3.reference\u002F1.decorators","i-lucide-at-sign",{"title":178,"path":179,"stem":180,"icon":60},"Migration SQL Grammar","\u002Freference\u002Fmigration-sql-grammar","3.reference\u002F2.migration-sql-grammar",{"title":182,"path":183,"stem":184,"icon":185},"ABAC Expression Language","\u002Freference\u002Fabac-expression-language","3.reference\u002F3.abac-expression-language","i-lucide-file-code",{"title":187,"path":188,"stem":189,"icon":190},"CRI Format","\u002Freference\u002Fcri-format","3.reference\u002F4.cri-format","i-lucide-link",{"title":192,"path":193,"stem":194,"icon":195},"SDK Packages","\u002Freference\u002Fsdk-packages","3.reference\u002F5.sdk-packages","i-lucide-package",{"id":197,"title":178,"body":198,"description":1490,"extension":1491,"links":1492,"meta":1493,"navigation":1494,"path":179,"seo":1495,"stem":180,"__hash__":1496},"docs\u002F3.reference\u002F2.migration-sql-grammar.md",{"type":199,"value":200,"toc":1474},"minimark",[201,205,209,221,225,267,270,273,276,282,298,318,323,369,371,374,377,381,390,395,457,461,495,497,500,503,507,522,530,534,549,551,554,557,561,570,575,728,732,766,773,775,778,781,785,800,818,822,837,839,842,845,849,864,879,883,898,900,903,906,910,919,926,930,939,941,944,953,960,962,966,975,979,1004,1028,1037,1041,1056,1058,1061,1311,1318,1320,1324,1362,1364,1368,1371,1470],[202,203,25],"h2",{"id":204},"overview",[206,207,208],"p",{},"This grammar reference applies to migration scripts used for schema and data migrations in Kinotic. Migration scripts use a SQL dialect designed for Elasticsearch index management and data operations.",[206,210,211,212,216,217,220],{},"All statements must end with a semicolon (",[213,214,215],"code",{},";","). Identifiers must start with a letter or underscore and can contain letters, numbers, and underscores. Strings are enclosed in single quotes (",[213,218,219],{},"'...'",").",[202,222,224],{"id":223},"statements-overview","Statements Overview",[226,227,228,234,239,244,249,254,259,264],"ul",{},[229,230,231],"li",{},[213,232,233],{},"CREATE TABLE",[229,235,236],{},[213,237,238],{},"CREATE COMPONENT TEMPLATE",[229,240,241],{},[213,242,243],{},"CREATE INDEX TEMPLATE",[229,245,246],{},[213,247,248],{},"REINDEX",[229,250,251],{},[213,252,253],{},"INSERT",[229,255,256],{},[213,257,258],{},"UPDATE",[229,260,261],{},[213,262,263],{},"DELETE",[229,265,266],{},"Comments",[268,269],"hr",{},[202,271,233],{"id":272},"create-table",[206,274,275],{},"Creates an Elasticsearch index with the specified field mappings.",[206,277,278],{},[279,280,281],"strong",{},"Syntax:",[283,284,289],"pre",{"className":285,"code":286,"language":287,"meta":288,"style":288},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CREATE TABLE [IF NOT EXISTS] \u003Cindex_name> (\u003Ccolumn_name> \u003Ctype> [, \u003Ccolumn_name> \u003Ctype>]*) ;\n","sql","",[213,290,291],{"__ignoreMap":288},[292,293,296],"span",{"class":294,"line":295},"line",1,[292,297,286],{},[226,299,300,306],{},[229,301,302,305],{},[213,303,304],{},"IF NOT EXISTS"," (optional): Only create the index if it does not already exist.",[229,307,308,311,312,317],{},[213,309,310],{},"\u003Ctype>",": See ",[313,314,316],"a",{"href":315},"#supported-types","Supported Types",".",[206,319,320],{},[279,321,322],{},"Example:",[283,324,326],{"className":285,"code":325,"language":287,"meta":288,"style":288},"CREATE TABLE IF NOT EXISTS products (\n    name TEXT,\n    sku KEYWORD,\n    price DOUBLE,\n    inStock BOOLEAN,\n    createdAt DATE\n) ;\n",[213,327,328,333,339,345,351,357,363],{"__ignoreMap":288},[292,329,330],{"class":294,"line":295},[292,331,332],{},"CREATE TABLE IF NOT EXISTS products (\n",[292,334,336],{"class":294,"line":335},2,[292,337,338],{},"    name TEXT,\n",[292,340,342],{"class":294,"line":341},3,[292,343,344],{},"    sku KEYWORD,\n",[292,346,348],{"class":294,"line":347},4,[292,349,350],{},"    price DOUBLE,\n",[292,352,354],{"class":294,"line":353},5,[292,355,356],{},"    inStock BOOLEAN,\n",[292,358,360],{"class":294,"line":359},6,[292,361,362],{},"    createdAt DATE\n",[292,364,366],{"class":294,"line":365},7,[292,367,368],{},") ;\n",[268,370],{},[202,372,238],{"id":373},"create-component-template",[206,375,376],{},"Creates a reusable component template that can be referenced by index templates.",[206,378,379],{},[279,380,281],{},[283,382,384],{"className":285,"code":383,"language":287,"meta":288,"style":288},"CREATE COMPONENT TEMPLATE \u003Ctemplate_name> (\u003Cdefinition> [, \u003Cdefinition>]*) ;\n",[213,385,386],{"__ignoreMap":288},[292,387,388],{"class":294,"line":295},[292,389,383],{},[206,391,392],{},[279,393,394],{},"Definitions:",[396,397,398,414],"table",{},[399,400,401],"thead",{},[402,403,404,408,411],"tr",{},[405,406,407],"th",{},"Definition",[405,409,410],{},"Allowed Values",[405,412,413],{},"Description",[415,416,417,431,444],"tbody",{},[402,418,419,425,428],{},[420,421,422],"td",{},[213,423,424],{},"NUMBER_OF_SHARDS",[420,426,427],{},"Integer (e.g., 1, 3)",[420,429,430],{},"Number of primary shards for the index",[402,432,433,438,441],{},[420,434,435],{},[213,436,437],{},"NUMBER_OF_REPLICAS",[420,439,440],{},"Integer (e.g., 0, 1)",[420,442,443],{},"Number of replica shards for the index",[402,445,446,451,454],{},[420,447,448],{},[213,449,450],{},"\u003Ccolumn_name> \u003Ctype>",[420,452,453],{},"See Supported Types",[420,455,456],{},"Field mapping (name and type)",[206,458,459],{},[279,460,322],{},[283,462,464],{"className":285,"code":463,"language":287,"meta":288,"style":288},"CREATE COMPONENT TEMPLATE base_settings (\n    NUMBER_OF_SHARDS = 3,\n    NUMBER_OF_REPLICAS = 1,\n    createdAt DATE,\n    updatedAt DATE\n) ;\n",[213,465,466,471,476,481,486,491],{"__ignoreMap":288},[292,467,468],{"class":294,"line":295},[292,469,470],{},"CREATE COMPONENT TEMPLATE base_settings (\n",[292,472,473],{"class":294,"line":335},[292,474,475],{},"    NUMBER_OF_SHARDS = 3,\n",[292,477,478],{"class":294,"line":341},[292,479,480],{},"    NUMBER_OF_REPLICAS = 1,\n",[292,482,483],{"class":294,"line":347},[292,484,485],{},"    createdAt DATE,\n",[292,487,488],{"class":294,"line":353},[292,489,490],{},"    updatedAt DATE\n",[292,492,493],{"class":294,"line":359},[292,494,368],{},[268,496],{},[202,498,243],{"id":499},"create-index-template",[206,501,502],{},"Creates an index template that applies settings and mappings to indices matching a pattern.",[206,504,505],{},[279,506,281],{},[283,508,510],{"className":285,"code":509,"language":287,"meta":288,"style":288},"CREATE INDEX TEMPLATE \u003Ctemplate_name> FOR '\u003Cpattern>' USING '\u003Ccomponent_template>'\n    [WITH (\u003Cdefinition> [, \u003Cdefinition>]*)] ;\n",[213,511,512,517],{"__ignoreMap":288},[292,513,514],{"class":294,"line":295},[292,515,516],{},"CREATE INDEX TEMPLATE \u003Ctemplate_name> FOR '\u003Cpattern>' USING '\u003Ccomponent_template>'\n",[292,518,519],{"class":294,"line":335},[292,520,521],{},"    [WITH (\u003Cdefinition> [, \u003Cdefinition>]*)] ;\n",[226,523,524],{},[229,525,526,529],{},[213,527,528],{},"WITH (...)"," (optional): Additional definitions as in component templates.",[206,531,532],{},[279,533,322],{},[283,535,537],{"className":285,"code":536,"language":287,"meta":288,"style":288},"CREATE INDEX TEMPLATE logs_template FOR 'logs-*' USING 'base_settings'\n    WITH (NUMBER_OF_REPLICAS = 2, level KEYWORD) ;\n",[213,538,539,544],{"__ignoreMap":288},[292,540,541],{"class":294,"line":295},[292,542,543],{},"CREATE INDEX TEMPLATE logs_template FOR 'logs-*' USING 'base_settings'\n",[292,545,546],{"class":294,"line":335},[292,547,548],{},"    WITH (NUMBER_OF_REPLICAS = 2, level KEYWORD) ;\n",[268,550],{},[202,552,248],{"id":553},"reindex",[206,555,556],{},"Copies documents from one index to another with optional transformations.",[206,558,559],{},[279,560,281],{},[283,562,564],{"className":285,"code":563,"language":287,"meta":288,"style":288},"REINDEX \u003Csource_index> INTO \u003Cdest_index> [WITH (\u003Coption> [, \u003Coption>]*)] ;\n",[213,565,566],{"__ignoreMap":288},[292,567,568],{"class":294,"line":295},[292,569,563],{},[206,571,572],{},[279,573,574],{},"Options:",[396,576,577,588],{},[399,578,579],{},[402,580,581,584,586],{},[405,582,583],{},"Option",[405,585,410],{},[405,587,413],{},[415,589,590,609,622,638,651,668,681,694,712],{},[402,591,592,597,606],{},[420,593,594],{},[213,595,596],{},"CONFLICTS",[420,598,599,602,603],{},[213,600,601],{},"ABORT",", ",[213,604,605],{},"PROCEED",[420,607,608],{},"How to handle version conflicts: abort or proceed",[402,610,611,616,619],{},[420,612,613],{},[213,614,615],{},"MAX_DOCS",[420,617,618],{},"Integer (e.g., 1000)",[420,620,621],{},"Maximum number of documents to reindex",[402,623,624,629,635],{},[420,625,626],{},[213,627,628],{},"SLICES",[420,630,631,634],{},[213,632,633],{},"AUTO",", Integer (e.g., 2)",[420,636,637],{},"Number of slices (parallelism); AUTO lets Elasticsearch decide",[402,639,640,645,648],{},[420,641,642],{},[213,643,644],{},"SIZE",[420,646,647],{},"Integer (e.g., 500)",[420,649,650],{},"Batch size for reindexing",[402,652,653,658,665],{},[420,654,655],{},[213,656,657],{},"SOURCE_FIELDS",[420,659,660,661,664],{},"Comma-separated list (e.g., ",[213,662,663],{},"'field1,field2'",")",[420,666,667],{},"Restrict source fields to copy",[402,669,670,675,678],{},[420,671,672],{},[213,673,674],{},"QUERY",[420,676,677],{},"String (Lucene query syntax)",[420,679,680],{},"Query to filter source documents",[402,682,683,688,691],{},[420,684,685],{},[213,686,687],{},"SCRIPT",[420,689,690],{},"String (Painless script)",[420,692,693],{},"Script to transform documents during reindex",[402,695,696,701,709],{},[420,697,698],{},[213,699,700],{},"WAIT",[420,702,703,602,706],{},[213,704,705],{},"TRUE",[213,707,708],{},"FALSE",[420,710,711],{},"If TRUE, wait for completion; if FALSE, return task ID",[402,713,714,719,725],{},[420,715,716],{},[213,717,718],{},"SKIP_IF_NO_SOURCE",[420,720,721,602,723],{},[213,722,705],{},[213,724,708],{},[420,726,727],{},"If TRUE, skip if source index does not exist (default FALSE)",[206,729,730],{},[279,731,322],{},[283,733,735],{"className":285,"code":734,"language":287,"meta":288,"style":288},"REINDEX old_products INTO new_products WITH (\n    CONFLICTS = PROCEED,\n    SLICES = AUTO,\n    QUERY = 'status:active',\n    SKIP_IF_NO_SOURCE = TRUE\n) ;\n",[213,736,737,742,747,752,757,762],{"__ignoreMap":288},[292,738,739],{"class":294,"line":295},[292,740,741],{},"REINDEX old_products INTO new_products WITH (\n",[292,743,744],{"class":294,"line":335},[292,745,746],{},"    CONFLICTS = PROCEED,\n",[292,748,749],{"class":294,"line":341},[292,750,751],{},"    SLICES = AUTO,\n",[292,753,754],{"class":294,"line":347},[292,755,756],{},"    QUERY = 'status:active',\n",[292,758,759],{"class":294,"line":353},[292,760,761],{},"    SKIP_IF_NO_SOURCE = TRUE\n",[292,763,764],{"class":294,"line":359},[292,765,368],{},[206,767,768,769,772],{},"If ",[213,770,771],{},"SKIP_IF_NO_SOURCE = TRUE",", the reindex operation will be skipped (no error) if the source index does not exist. This is useful for idempotent migrations.",[268,774],{},[202,776,253],{"id":777},"insert",[206,779,780],{},"Inserts a document into an index.",[206,782,783],{},[279,784,281],{},[283,786,788],{"className":285,"code":787,"language":287,"meta":288,"style":288},"INSERT INTO \u003Cindex_name> [(\u003Ccolumn_name> [, \u003Ccolumn_name>]*)]\n    VALUES (\u003Cexpression> [, \u003Cexpression>]*) [WITH REFRESH] ;\n",[213,789,790,795],{"__ignoreMap":288},[292,791,792],{"class":294,"line":295},[292,793,794],{},"INSERT INTO \u003Cindex_name> [(\u003Ccolumn_name> [, \u003Ccolumn_name>]*)]\n",[292,796,797],{"class":294,"line":335},[292,798,799],{},"    VALUES (\u003Cexpression> [, \u003Cexpression>]*) [WITH REFRESH] ;\n",[226,801,802,808],{},[229,803,804,807],{},[213,805,806],{},"WITH REFRESH"," (optional): Immediately refresh the index after insert, making the document searchable.",[229,809,810,813,814,817],{},[213,811,812],{},"\u003Cexpression>",": Literal value, parameter (",[213,815,816],{},"?","), or field reference.",[206,819,820],{},[279,821,322],{},[283,823,825],{"className":285,"code":824,"language":287,"meta":288,"style":288},"INSERT INTO products (name, sku, price)\n    VALUES ('Widget', 'WDG-001', 9.99) WITH REFRESH ;\n",[213,826,827,832],{"__ignoreMap":288},[292,828,829],{"class":294,"line":295},[292,830,831],{},"INSERT INTO products (name, sku, price)\n",[292,833,834],{"class":294,"line":335},[292,835,836],{},"    VALUES ('Widget', 'WDG-001', 9.99) WITH REFRESH ;\n",[268,838],{},[202,840,258],{"id":841},"update",[206,843,844],{},"Updates documents matching a where clause.",[206,846,847],{},[279,848,281],{},[283,850,852],{"className":285,"code":851,"language":287,"meta":288,"style":288},"UPDATE \u003Cindex_name> SET \u003Cfield> = \u003Cexpression> [, \u003Cfield> = \u003Cexpression>]*\n    WHERE \u003Cwhere_clause> [WITH REFRESH] ;\n",[213,853,854,859],{"__ignoreMap":288},[292,855,856],{"class":294,"line":295},[292,857,858],{},"UPDATE \u003Cindex_name> SET \u003Cfield> = \u003Cexpression> [, \u003Cfield> = \u003Cexpression>]*\n",[292,860,861],{"class":294,"line":335},[292,862,863],{},"    WHERE \u003Cwhere_clause> [WITH REFRESH] ;\n",[226,865,866,871],{},[229,867,868,870],{},[213,869,806],{}," (optional): Immediately refresh the index after update.",[229,872,873,875,876,220],{},[213,874,812],{},": Literal, parameter, or binary expression (e.g., ",[213,877,878],{},"age + 1",[206,880,881],{},[279,882,322],{},[283,884,886],{"className":285,"code":885,"language":287,"meta":288,"style":288},"UPDATE products SET price = 12.99, updatedAt = '2024-01-15'\n    WHERE sku == 'WDG-001' WITH REFRESH ;\n",[213,887,888,893],{"__ignoreMap":288},[292,889,890],{"class":294,"line":295},[292,891,892],{},"UPDATE products SET price = 12.99, updatedAt = '2024-01-15'\n",[292,894,895],{"class":294,"line":335},[292,896,897],{},"    WHERE sku == 'WDG-001' WITH REFRESH ;\n",[268,899],{},[202,901,263],{"id":902},"delete",[206,904,905],{},"Deletes documents matching a where clause.",[206,907,908],{},[279,909,281],{},[283,911,913],{"className":285,"code":912,"language":287,"meta":288,"style":288},"DELETE FROM \u003Cindex_name> WHERE \u003Cwhere_clause> [WITH REFRESH] ;\n",[213,914,915],{"__ignoreMap":288},[292,916,917],{"class":294,"line":295},[292,918,912],{},[226,920,921],{},[229,922,923,925],{},[213,924,806],{}," (optional): Immediately refresh the index after delete.",[206,927,928],{},[279,929,322],{},[283,931,933],{"className":285,"code":932,"language":287,"meta":288,"style":288},"DELETE FROM products WHERE inStock == false WITH REFRESH ;\n",[213,934,935],{"__ignoreMap":288},[292,936,937],{"class":294,"line":295},[292,938,932],{},[268,940],{},[202,942,266],{"id":943},"comments",[283,945,947],{"className":285,"code":946,"language":287,"meta":288,"style":288},"-- This is a comment\n",[213,948,949],{"__ignoreMap":288},[292,950,951],{"class":294,"line":295},[292,952,946],{},[206,954,955,956,959],{},"Comments start with ",[213,957,958],{},"--"," and continue to the end of the line. Comments are ignored by the parser.",[268,961],{},[202,963,965],{"id":964},"where-clauses","Where Clauses",[206,967,968,969,971,972,974],{},"Where clauses are used in ",[213,970,258],{}," and ",[213,973,263],{}," statements.",[206,976,977],{},[279,978,281],{},[283,980,982],{"className":285,"code":981,"language":287,"meta":288,"style":288},"\u003Cfield> \u003Coperator> \u003Cvalue>\n(\u003Cwhere_clause>)\n\u003Cwhere_clause> AND \u003Cwhere_clause>\n\u003Cwhere_clause> OR \u003Cwhere_clause>\n",[213,983,984,989,994,999],{"__ignoreMap":288},[292,985,986],{"class":294,"line":295},[292,987,988],{},"\u003Cfield> \u003Coperator> \u003Cvalue>\n",[292,990,991],{"class":294,"line":335},[292,992,993],{},"(\u003Cwhere_clause>)\n",[292,995,996],{"class":294,"line":341},[292,997,998],{},"\u003Cwhere_clause> AND \u003Cwhere_clause>\n",[292,1000,1001],{"class":294,"line":347},[292,1002,1003],{},"\u003Cwhere_clause> OR \u003Cwhere_clause>\n",[206,1005,1006,1009,1010,602,1013,602,1016,602,1019,602,1022,602,1025],{},[279,1007,1008],{},"Operators:"," ",[213,1011,1012],{},"==",[213,1014,1015],{},"!=",[213,1017,1018],{},"\u003C",[213,1020,1021],{},">",[213,1023,1024],{},"\u003C=",[213,1026,1027],{},">=",[206,1029,1030,1033,1034,1036],{},[279,1031,1032],{},"Values:"," Literal, parameter (",[213,1035,816],{},"), string, integer, boolean",[206,1038,1039],{},[279,1040,322],{},[283,1042,1044],{"className":285,"code":1043,"language":287,"meta":288,"style":288},"WHERE status == 'archived' AND createdAt \u003C '2023-01-01'\nWHERE (category == 'electronics' OR category == 'appliances') AND price > 100\n",[213,1045,1046,1051],{"__ignoreMap":288},[292,1047,1048],{"class":294,"line":295},[292,1049,1050],{},"WHERE status == 'archived' AND createdAt \u003C '2023-01-01'\n",[292,1052,1053],{"class":294,"line":335},[292,1054,1055],{},"WHERE (category == 'electronics' OR category == 'appliances') AND price > 100\n",[268,1057],{},[202,1059,316],{"id":1060},"supported-types",[396,1062,1063,1073],{},[399,1064,1065],{},[402,1066,1067,1070],{},[405,1068,1069],{},"Type",[405,1071,1072],{},"Elasticsearch Mapping",[415,1074,1075,1085,1095,1105,1115,1125,1135,1145,1155,1165,1175,1185,1195,1205,1215,1225,1235,1245,1255,1265,1275,1284,1293,1302],{},[402,1076,1077,1082],{},[420,1078,1079],{},[213,1080,1081],{},"TEXT",[420,1083,1084],{},"text",[402,1086,1087,1092],{},[420,1088,1089],{},[213,1090,1091],{},"KEYWORD",[420,1093,1094],{},"keyword",[402,1096,1097,1102],{},[420,1098,1099],{},[213,1100,1101],{},"KEYWORD NOT INDEXED",[420,1103,1104],{},"keyword (not indexed, no doc_values)",[402,1106,1107,1112],{},[420,1108,1109],{},[213,1110,1111],{},"INTEGER",[420,1113,1114],{},"integer",[402,1116,1117,1122],{},[420,1118,1119],{},[213,1120,1121],{},"INTEGER NOT INDEXED",[420,1123,1124],{},"integer (not indexed, no doc_values)",[402,1126,1127,1132],{},[420,1128,1129],{},[213,1130,1131],{},"LONG",[420,1133,1134],{},"long",[402,1136,1137,1142],{},[420,1138,1139],{},[213,1140,1141],{},"LONG NOT INDEXED",[420,1143,1144],{},"long (not indexed, no doc_values)",[402,1146,1147,1152],{},[420,1148,1149],{},[213,1150,1151],{},"FLOAT",[420,1153,1154],{},"float",[402,1156,1157,1162],{},[420,1158,1159],{},[213,1160,1161],{},"FLOAT NOT INDEXED",[420,1163,1164],{},"float (not indexed, no doc_values)",[402,1166,1167,1172],{},[420,1168,1169],{},[213,1170,1171],{},"DOUBLE",[420,1173,1174],{},"double",[402,1176,1177,1182],{},[420,1178,1179],{},[213,1180,1181],{},"DOUBLE NOT INDEXED",[420,1183,1184],{},"double (not indexed, no doc_values)",[402,1186,1187,1192],{},[420,1188,1189],{},[213,1190,1191],{},"BOOLEAN",[420,1193,1194],{},"boolean",[402,1196,1197,1202],{},[420,1198,1199],{},[213,1200,1201],{},"BOOLEAN NOT INDEXED",[420,1203,1204],{},"boolean (not indexed, no doc_values)",[402,1206,1207,1212],{},[420,1208,1209],{},[213,1210,1211],{},"DATE",[420,1213,1214],{},"date",[402,1216,1217,1222],{},[420,1218,1219],{},[213,1220,1221],{},"DATE NOT INDEXED",[420,1223,1224],{},"date (not indexed, no doc_values)",[402,1226,1227,1232],{},[420,1228,1229],{},[213,1230,1231],{},"JSON",[420,1233,1234],{},"object (flattened)",[402,1236,1237,1242],{},[420,1238,1239],{},[213,1240,1241],{},"JSON NOT INDEXED",[420,1243,1244],{},"object (not indexed)",[402,1246,1247,1252],{},[420,1248,1249],{},[213,1250,1251],{},"BINARY",[420,1253,1254],{},"binary",[402,1256,1257,1262],{},[420,1258,1259],{},[213,1260,1261],{},"GEO_POINT",[420,1263,1264],{},"geo_point",[402,1266,1267,1272],{},[420,1268,1269],{},[213,1270,1271],{},"GEO_SHAPE",[420,1273,1274],{},"geo_shape",[402,1276,1277,1282],{},[420,1278,1279],{},[213,1280,1281],{},"UUID",[420,1283,1094],{},[402,1285,1286,1291],{},[420,1287,1288],{},[213,1289,1290],{},"UUID NOT INDEXED",[420,1292,1104],{},[402,1294,1295,1300],{},[420,1296,1297],{},[213,1298,1299],{},"DECIMAL",[420,1301,1174],{},[402,1303,1304,1309],{},[420,1305,1306],{},[213,1307,1308],{},"DECIMAL NOT INDEXED",[420,1310,1184],{},[206,1312,1313,1314,1317],{},"The ",[213,1315,1316],{},"NOT INDEXED"," variant of each type stores the value but excludes it from the inverted index and doc_values. This reduces storage and indexing overhead for fields that only need to be returned in results, not queried.",[268,1319],{},[202,1321,1323],{"id":1322},"expressions","Expressions",[226,1325,1326,1343,1350],{},[229,1327,1328,1009,1331,602,1334,602,1337,602,1340],{},[279,1329,1330],{},"Literals:",[213,1332,1333],{},"'string'",[213,1335,1336],{},"123",[213,1338,1339],{},"true",[213,1341,1342],{},"false",[229,1344,1345,1009,1348],{},[279,1346,1347],{},"Parameters:",[213,1349,816],{},[229,1351,1352,1009,1355,602,1358,1361],{},[279,1353,1354],{},"Binary Expressions:",[213,1356,1357],{},"\u003Cfield> + \u003Cvalue>",[213,1359,1360],{},"\u003Cfield> - \u003Cvalue>",", etc.",[268,1363],{},[202,1365,1367],{"id":1366},"reserved-keywords","Reserved Keywords",[206,1369,1370],{},"All keywords in the grammar are reserved and case-insensitive:",[206,1372,1373,602,1376,602,1379,602,1382,602,1385,602,1388,602,1391,602,1394,602,1397,602,1400,602,1403,602,1406,602,1408,602,1411,602,1413,602,1416,602,1418,602,1421,602,1423,602,1426,602,1429,602,1432,602,1435,602,1438,602,1440,602,1442,602,1444,602,1446,602,1448,602,1450,602,1452,602,1454,602,1456,602,1458,602,1460,602,1462,602,1464,602,1466,602,1468],{},[213,1374,1375],{},"CREATE",[213,1377,1378],{},"TABLE",[213,1380,1381],{},"IF",[213,1383,1384],{},"NOT",[213,1386,1387],{},"EXISTS",[213,1389,1390],{},"COMPONENT",[213,1392,1393],{},"TEMPLATE",[213,1395,1396],{},"INDEX",[213,1398,1399],{},"FOR",[213,1401,1402],{},"USING",[213,1404,1405],{},"WITH",[213,1407,248],{},[213,1409,1410],{},"INTO",[213,1412,253],{},[213,1414,1415],{},"VALUES",[213,1417,258],{},[213,1419,1420],{},"SET",[213,1422,263],{},[213,1424,1425],{},"FROM",[213,1427,1428],{},"WHERE",[213,1430,1431],{},"AND",[213,1433,1434],{},"OR",[213,1436,1437],{},"REFRESH",[213,1439,705],{},[213,1441,708],{},[213,1443,424],{},[213,1445,437],{},[213,1447,596],{},[213,1449,601],{},[213,1451,605],{},[213,1453,615],{},[213,1455,628],{},[213,1457,633],{},[213,1459,644],{},[213,1461,657],{},[213,1463,674],{},[213,1465,687],{},[213,1467,700],{},[213,1469,718],{},[1471,1472,1473],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":288,"searchDepth":335,"depth":335,"links":1475},[1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489],{"id":204,"depth":335,"text":25},{"id":223,"depth":335,"text":224},{"id":272,"depth":335,"text":233},{"id":373,"depth":335,"text":238},{"id":499,"depth":335,"text":243},{"id":553,"depth":335,"text":248},{"id":777,"depth":335,"text":253},{"id":841,"depth":335,"text":258},{"id":902,"depth":335,"text":263},{"id":943,"depth":335,"text":266},{"id":964,"depth":335,"text":965},{"id":1060,"depth":335,"text":316},{"id":1322,"depth":335,"text":1323},{"id":1366,"depth":335,"text":1367},"Complete SQL grammar reference for migration scripts.","md",null,{},{"icon":60},{"title":178,"description":1490},"o2b4sf9mcM487X8iq8WdbaGu--hHM9KsYli4_wSuis8",[1498,1500],{"title":173,"path":174,"stem":175,"description":1499,"icon":176,"children":-1},"Complete reference for all Kinotic decorators.",{"title":182,"path":183,"stem":184,"description":1501,"icon":185,"children":-1},"Complete reference for the ABAC policy expression language.",1775187762911]