import{_ as i,o as l,c as E,a as T,f as R}from"./app-u0F7ej3R.js";const e={},I=R('<h1 id="keywords" tabindex="-1"><a class="header-anchor" href="#keywords" aria-hidden="true">#</a> Keywords</h1><p>Reserved words（Can not be used as identifier）:</p><ul><li>ROOT</li><li>TIME</li><li>TIMESTAMP</li></ul><p>Common Keywords:</p><ul><li>ADD</li><li>AFTER</li><li>ALIAS</li><li>ALIGN</li><li>ALIGNED</li><li>ALL</li><li>ALTER</li><li>ALTER_TIMESERIES</li><li>ANY</li><li>APPEND</li><li>APPLY_TEMPLATE</li><li>AS</li><li>ASC</li><li>ATTRIBUTES</li><li>BEFORE</li><li>BEGIN</li><li>BLOCKED</li><li>BOUNDARY</li><li>BY</li><li>CACHE</li><li>CHILD</li><li>CLEAR</li><li>CLUSTER</li><li>CONCAT</li><li>CONFIGNODES</li><li>CONFIGURATION</li><li>CONTINUOUS</li><li>COUNT</li><li>CONTAIN</li><li>CQ</li><li>CQS</li><li>CREATE</li><li>CREATE_CONTINUOUS_QUERY</li><li>CREATE_FUNCTION</li><li>CREATE_ROLE</li><li>CREATE_TIMESERIES</li><li>CREATE_TRIGGER</li><li>CREATE_USER</li><li>DATA</li><li>DATABASE</li><li>DATABASES</li><li>DATANODES</li><li>DEACTIVATE</li><li>DEBUG</li><li>DELETE</li><li>DELETE_ROLE</li><li>DELETE_STORAGE_GROUP</li><li>DELETE_TIMESERIES</li><li>DELETE_USER</li><li>DESC</li><li>DESCRIBE</li><li>DEVICE</li><li>DEVICEID</li><li>DEVICES</li><li>DISABLE</li><li>DISCARD</li><li>DROP</li><li>DROP_CONTINUOUS_QUERY</li><li>DROP_FUNCTION</li><li>DROP_TRIGGER</li><li>END</li><li>ENDTIME</li><li>EVERY</li><li>EXPLAIN</li><li>FILL</li><li>FILE</li><li>FLUSH</li><li>FOR</li><li>FROM</li><li>FULL</li><li>FUNCTION</li><li>FUNCTIONS</li><li>GLOBAL</li><li>GRANT</li><li>GRANT_ROLE_PRIVILEGE</li><li>GRANT_USER_PRIVILEGE</li><li>GRANT_USER_ROLE</li><li>GROUP</li><li>HAVING</li><li>INDEX</li><li>INFO</li><li>INSERT</li><li>INSERT_TIMESERIES</li><li>INTO</li><li>KILL</li><li>LABEL</li><li>LAST</li><li>LATEST</li><li>LEVEL</li><li>LIKE</li><li>LIMIT</li><li>LINEAR</li><li>LINK</li><li>LIST</li><li>LIST_ROLE</li><li>LIST_USER</li><li>LOAD</li><li>LOCAL</li><li>LOCK</li><li>MERGE</li><li>METADATA</li><li>MODIFY_PASSWORD</li><li>NODES</li><li>NONE</li><li>NOW</li><li>OF</li><li>OFF</li><li>OFFSET</li><li>ON</li><li>ORDER</li><li>ONSUCCESS</li><li>PARTITION</li><li>PASSWORD</li><li>PATHS</li><li>PIPE</li><li>PIPES</li><li>PIPESINK</li><li>PIPESINKS</li><li>PIPESINKTYPE</li><li>POLICY</li><li>PREVIOUS</li><li>PREVIOUSUNTILLAST</li><li>PRIVILEGES</li><li>PROCESSLIST</li><li>PROPERTY</li><li>PRUNE</li><li>QUERIES</li><li>QUERY</li><li>RANGE</li><li>READONLY</li><li>READ_TEMPLATE</li><li>READ_TEMPLATE_APPLICATION</li><li>READ_TIMESERIES</li><li>REGEXP</li><li>REGIONID</li><li>REGIONS</li><li>REMOVE</li><li>RENAME</li><li>RESAMPLE</li><li>RESOURCE</li><li>REVOKE</li><li>REVOKE_ROLE_PRIVILEGE</li><li>REVOKE_USER_PRIVILEGE</li><li>REVOKE_USER_ROLE</li><li>ROLE</li><li>RUNNING</li><li>SCHEMA</li><li>SELECT</li><li>SERIESSLOTID</li><li>SET</li><li>SET_STORAGE_GROUP</li><li>SETTLE</li><li>SGLEVEL</li><li>SHOW</li><li>SLIMIT</li><li>SOFFSET</li><li>STORAGE</li><li>START</li><li>STARTTIME</li><li>STATELESS</li><li>STATEFUL</li><li>STOP</li><li>SYSTEM</li><li>TAGS</li><li>TASK</li><li>TEMPLATE</li><li>TIMEOUT</li><li>TIMESERIES</li><li>TIMESLOTID</li><li>TO</li><li>TOLERANCE</li><li>TOP</li><li>TRACING</li><li>TRIGGER</li><li>TRIGGERS</li><li>TTL</li><li>UNLINK</li><li>UNLOAD</li><li>UNSET</li><li>UPDATE</li><li>UPDATE_TEMPLATE</li><li>UPSERT</li><li>URI</li><li>USER</li><li>USING</li><li>VALUES</li><li>VERIFY</li><li>VERSION</li><li>WATERMARK_EMBEDDING</li><li>WHERE</li><li>WITH</li><li>WITHOUT</li><li>WRITABLE</li></ul>',5);function S(A,L){return l(),E("div",null,[T(`

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
        http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

`),I])}const N=i(e,[["render",S],["__file","Keywords.html.vue"]]);export{N as default};
