diff --git a/cmake/cmake.version b/cmake/cmake.version index d38ac40b90..de85025a8c 100644 --- a/cmake/cmake.version +++ b/cmake/cmake.version @@ -2,7 +2,7 @@ IF (DEFINED VERNUMBER) SET(TD_VER_NUMBER ${VERNUMBER}) ELSE () - SET(TD_VER_NUMBER "3.0.3.0") + SET(TD_VER_NUMBER "3.0.3.1") ENDIF () IF (DEFINED VERCOMPATIBLE) diff --git a/docs/en/07-develop/07-tmq.mdx b/docs/en/07-develop/07-tmq.mdx index 71abe59055..5ee2053210 100644 --- a/docs/en/07-develop/07-tmq.mdx +++ b/docs/en/07-develop/07-tmq.mdx @@ -23,7 +23,7 @@ By subscribing to a topic, a consumer can obtain the latest data in that topic i To implement these features, TDengine indexes its write-ahead log (WAL) file for fast random access and provides configurable methods for replacing and retaining this file. You can define a retention period and size for this file. For information, see the CREATE DATABASE statement. In this way, the WAL file is transformed into a persistent storage engine that remembers the order in which events occur. However, note that configuring an overly long retention period for your WAL files makes database compression inefficient. TDengine then uses the WAL file instead of the time-series database as its storage engine for queries in the form of topics. TDengine reads the data from the WAL file; uses a unified query engine instance to perform filtering, transformations, and other operations; and finally pushes the data to consumers. - +Tips:The default data subscription is to consume data from the wal. If the wal is deleted, the consumed data will be incomplete. At this time, you can set the parameter experimental.snapshot.enable to true to obtain all data from the tsdb, but in this way, the consumption order of the data cannot be guaranteed. Therefore, it is recommended to set a reasonable retention policy for WAL based on your consumption situation to ensure that you can subscribe all data from WAL. ## Data Schema and API @@ -285,18 +285,17 @@ You configure the following parameters when creating a consumer: | Parameter | Type | Description | Remarks | | :----------------------------: | :-----: | -------------------------------------------------------- | ------------------------------------------- | -| `td.connect.ip` | string | Used in establishing a connection; same as `taos_connect` | | -| `td.connect.user` | string | Used in establishing a connection; same as `taos_connect` | | -| `td.connect.pass` | string | Used in establishing a connection; same as `taos_connect` | | -| `td.connect.port` | string | Used in establishing a connection; same as `taos_connect` | | +| `td.connect.ip` | string | Used in establishing a connection; same as `taos_connect` | Only valid for establishing native connection | +| `td.connect.user` | string | Used in establishing a connection; same as `taos_connect` | Only valid for establishing native connection | +| `td.connect.pass` | string | Used in establishing a connection; same as `taos_connect` | Only valid for establishing native connection | +| `td.connect.port` | string | Used in establishing a connection; same as `taos_connect` | Only valid for establishing native connection | | `group.id` | string | Consumer group ID; consumers with the same ID are in the same group | **Required**. Maximum length: 192. | | `client.id` | string | Client ID | Maximum length: 192. | | `auto.offset.reset` | enum | Initial offset for the consumer group | Specify `earliest`, `latest`, or `none`(default) | -| `enable.auto.commit` | boolean | Commit automatically | Specify `true` or `false`. | +| `enable.auto.commit` | boolean | Commit automatically; true: user application doesn't need to explicitly commit; false: user application need to handle commit by itself | Default value is true | | `auto.commit.interval.ms` | integer | Interval for automatic commits, in milliseconds | -| `enable.heartbeat.background` | boolean | Backend heartbeat; if enabled, the consumer does not go offline even if it has not polled for a long time | | -| `experimental.snapshot.enable` | boolean | Specify whether to consume messages from TSDB | | -| `msg.with.table.name` | boolean | Specify whether to deserialize table names from messages | +| `experimental.snapshot.enable` | boolean | Specify whether to consume data in TSDB; true: both data in WAL and in TSDB can be consumed; false: only data in WAL can be consumed | default value: false | +| `msg.with.table.name` | boolean | Specify whether to deserialize table names from messages | default value: false The method of specifying these parameters depends on the language used: diff --git a/docs/en/12-taos-sql/06-select.md b/docs/en/12-taos-sql/06-select.md index 75462c3d96..de7294f7a9 100644 --- a/docs/en/12-taos-sql/06-select.md +++ b/docs/en/12-taos-sql/06-select.md @@ -248,13 +248,13 @@ You can also use the NULLS keyword to specify the position of null values. Ascen The LIMIT keyword controls the number of results that are displayed. You can also use the OFFSET keyword to specify the result to display first. `LIMIT` and `OFFSET` are executed after `ORDER BY` in the query execution. You can include an offset in a LIMIT clause. For example, LIMIT 5 OFFSET 2 can also be written LIMIT 2, 5. Both of these clauses display the third through the seventh results. -In a statement that includes a PARTITION BY clause, the LIMIT keyword is performed on each partition, not on the entire set of results. +In a statement that includes a PARTITION BY/GROUP BY clause, the LIMIT keyword is performed on each partition/group, not on the entire set of results. ## SLIMIT -The SLIMIT keyword is used with a PARTITION BY clause to control the number of partitions that are displayed. You can include an offset in a SLIMIT clause. For example, SLIMIT 5 OFFSET 2 can also be written LIMIT 2, 5. Both of these clauses display the third through the seventh partitions. +The SLIMIT keyword is used with a PARTITION BY/GROUP BY clause to control the number of partitions/groups that are displayed. You can include an offset in a SLIMIT clause. For example, SLIMIT 5 OFFSET 2 can also be written LIMIT 2, 5. Both of these clauses display the third through the seventh partitions/groups. -Note: If you include an ORDER BY clause, only one partition can be displayed. +Note: If you include an ORDER BY clause, only one partition/group can be displayed. ## Special Query diff --git a/docs/en/14-reference/03-connector/07-python.mdx b/docs/en/14-reference/03-connector/07-python.mdx index c885d416c8..69be15f9e8 100644 --- a/docs/en/14-reference/03-connector/07-python.mdx +++ b/docs/en/14-reference/03-connector/07-python.mdx @@ -10,10 +10,11 @@ import TabItem from "@theme/TabItem"; `taospy` is the official Python connector for TDengine. taospy provides a rich API that makes it easy for Python applications to use TDengine. `taospy` wraps both the [native interface](/reference/connector/cpp) and [REST interface](/reference/rest-api) of TDengine, which correspond to the `taos` and `taosrest` modules of the `taospy` package, respectively. In addition to wrapping the native and REST interfaces, `taospy` also provides a set of programming interfaces that conforms to the [Python Data Access Specification (PEP 249)](https://peps.python.org/pep-0249/). It is easy to integrate `taospy` with many third-party tools, such as [SQLAlchemy](https://www.sqlalchemy.org/) and [pandas](https://pandas.pydata.org/). -The direct connection to the server using the native interface provided by the client driver is referred to hereinafter as a "native connection"; the connection to the server using the REST interface provided by taosAdapter is referred to hereinafter as a "REST connection". +`taos-ws-py` is an optional package to enable using WebSocket to connect TDengine. + +The direct connection to the server using the native interface provided by the client driver is referred to hereinafter as a "native connection"; the connection to the server using the REST or WebSocket interface provided by taosAdapter is referred to hereinafter as a "REST connection" or "WebSocket connection". The source code for the Python connector is hosted on [GitHub](https://github.com/taosdata/taos-connector-python). - ## Supported platforms - The [supported platforms](/reference/connector/#supported-platforms) for the native connection are the same as the ones supported by the TDengine client. @@ -114,6 +115,15 @@ For REST connections, verifying that the `taosrest` module can be imported succe import taosrest ``` + + + +For WebSocket connection, verifying that the `taosws` module can be imported successfully can be done in the Python Interactive Shell by typing. + +```python +import taosws +``` + @@ -182,6 +192,28 @@ If the test is successful, it will output the server version information, e.g. } ``` + + + +For WebSocket connection, make sure the cluster and taosAdapter component, are running. This can be testetd using the following `curl` command. + +``` +curl -i -N -d "show databases" -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: :" -H "Origin: http://:" http://:/rest/sql +``` + +The FQDN above is the FQDN of the machine running taosAdapter, PORT is the port taosAdapter listening, default is `6041`. + +If the test is successful, it will output the server version information, e.g. + +```json +HTTP/1.1 200 OK +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Mar 2023 09:29:17 GMT +Transfer-Encoding: chunked + +{"status":"succ","head":["server_version()"],"column_meta":[["server_version()",8,8]],"data":[["2.6.0.27"]],"rows":1} +``` + diff --git a/docs/en/14-reference/03-connector/_linux_install.mdx b/docs/en/14-reference/03-connector/_linux_install.mdx index 97f6cd3339..398593cfe6 100644 --- a/docs/en/14-reference/03-connector/_linux_install.mdx +++ b/docs/en/14-reference/03-connector/_linux_install.mdx @@ -14,7 +14,7 @@ import PkgListV3 from "/components/PkgListV3"; Once the package is unzipped, you will see the following files in the directory: - _ install_client.sh_: install script - - _ taos.tar.gz_: client driver package + - _ package.tar.gz_: client driver package - _ driver_: TDengine client driver - _examples_: some example programs of different programming languages (C/C#/go/JDBC/MATLAB/python/R) You can run `install_client.sh` to install it. diff --git a/docs/en/14-reference/14-taosKeeper.md b/docs/en/14-reference/14-taosKeeper.md index 16c5911547..8176b70e3d 100644 --- a/docs/en/14-reference/14-taosKeeper.md +++ b/docs/en/14-reference/14-taosKeeper.md @@ -4,6 +4,9 @@ title: taosKeeper description: This document describes how to use taosKeeper, a tool for exporting TDengine monitoring metrics. --- +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + ## Introduction taosKeeper is a tool for TDengine that exports monitoring metrics. With taosKeeper, you can easily monitor the operational status of your TDengine deployment. taosKeeper uses the TDengine REST API. It is not necessary to install TDengine Client to use taosKeeper. @@ -18,9 +21,9 @@ Methods of installing taosKeeper: - You can compile taosKeeper separately and install it. Please refer to the [taosKeeper](https://github.com/taosdata/taoskeeper) repository for details. --> You can compile taosKeeper separately and install it. Please refer to the [taosKeeper](https://github.com/taosdata/taoskeeper) repository for details. -## Run +## Configuration and Launch -### Configuration and running methods +### Configuration taosKeeper needs to be executed on the terminal of the operating system, it supports three configuration methods: [Command-line arguments](#command-line-arguments-in-detail), [environment variable](#environment-variable-in-detail) and [configuration file](#configuration-file-parameters-in-detail). The precedence of those is Command-line, environment variable and configuration file. @@ -33,26 +36,79 @@ monitorFqdn localhost # taoskeeper's FQDN For more information, see [TDengine Monitoring Configuration](../config/#monitoring). -### Command-Line Parameters +### Quick Launch -You can use command-line parameters to run taosKeeper and control its behavior: + + -```shell -$ taosKeeper -``` -### Environment variable +After the installation is complete, run the following command to start the taoskeeper service: -You can use Environment variable to run taosKeeper and control its behavior: - -```shell -$ export TAOS_KEEPER_TDENGINE_HOST=192.168.64.3 - -$ taoskeeper +```bash +systemctl start taoskeeper ``` -you can run `taoskeeper -h` for more detail. +Run the following command to confirm that taoskeeper is running normally: -### Configuration File +```bash +systemctl status taoskeeper +``` + +Output similar to the following indicates that taoskeeper is running normally: + +``` +Active: active (running) +``` + +Output similar to the following indicates that taoskeeper has not started successfully: + +``` +Active: inactive (dead) +``` + +The following `systemctl` commands can help you manage taoskeeper service: + +- Start taoskeeper Server: `systemctl start taoskeeper` + +- Stop taoskeeper Server: `systemctl stop taoskeeper` + +- Restart taoskeeper Server: `systemctl restart taoskeeper` + +- Check taoskeeper Server status: `systemctl status taoskeeper` + +:::info + +- The `systemctl` command requires _root_ privileges. If you are not logged in as the _root_ user, use the `sudo` command. +- The `systemctl stop taoskeeper` command will instantly stop taoskeeper Server. +- If your system does not include `systemd`, you can run `/usr/local/taos/bin/taoskeeper` to start taoskeeper manually. + +::: + + + + +After the installation is complete, run `launchctl start com.tdengine.taoskeeper` to start taoskeeper Server. + +The following `launchctl` commands can help you manage taoskeeper service: + +- Start taoskeeper Server: `sudo launchctl start com.tdengine.taoskeeper` + +- Stop taoskeeper Server: `sudo launchctl stop com.tdengine.taoskeeper` + +- Check taoskeeper Server status: `sudo launchctl list | grep taoskeeper` + +:::info +- Please use `sudo` to run `launchctl` to manage _com.tdengine.taoskeeper_ with administrator privileges. +- The administrator privilege is required for service management to enhance security. +- Troubleshooting: +- The first column returned by the command `launchctl list | grep taoskeeper` is the PID of the program. If it's `-`, that means the taoskeeper service is not running. +- If the service is abnormal, please check the `launchd.log` file from the system log. + +::: + + + + +#### Launch With Configuration File You can quickly launch taosKeeper with the following commands. If you do not specify a configuration file, `/etc/taos/keeper.toml` is used by default. If this file does not specify configurations, the default values are used. diff --git a/docs/en/28-releases/01-tdengine.md b/docs/en/28-releases/01-tdengine.md index 088c4ba2dc..9910a3d89a 100644 --- a/docs/en/28-releases/01-tdengine.md +++ b/docs/en/28-releases/01-tdengine.md @@ -10,6 +10,10 @@ For TDengine 2.x installation packages by version, please visit [here](https://w import Release from "/components/ReleaseV3"; +## 3.0.3.1 + + + ## 3.0.3.0 diff --git a/docs/en/28-releases/02-tools.md b/docs/en/28-releases/02-tools.md index 7d45110bb0..a060d2dd77 100644 --- a/docs/en/28-releases/02-tools.md +++ b/docs/en/28-releases/02-tools.md @@ -10,6 +10,10 @@ For other historical version installers, please visit [here](https://www.taosdat import Release from "/components/ReleaseV3"; +## 2.4.10 + + + ## 2.4.9 diff --git a/docs/zh/07-develop/07-tmq.mdx b/docs/zh/07-develop/07-tmq.mdx index 1d834cfff0..b82972ab3e 100644 --- a/docs/zh/07-develop/07-tmq.mdx +++ b/docs/zh/07-develop/07-tmq.mdx @@ -25,6 +25,7 @@ import CDemo from "./_sub_c.mdx"; 本文档不对消息队列本身的基础知识做介绍,如果需要了解,请自行搜索。 +注意:默认是从wal消费数据,如果wal被删除,消费到的数据会不全,此时可以将参数 experimental.snapshot.enable 设置为true,从tsdb获取全部数据,但是这样的话就不能保证数据的消费顺序。所以建议根据自己的消费情况合理的设置wal的保留策略,保证可以从wal里订阅到全部数据。 ## 主要数据结构和 API 不同语言下, TMQ 订阅相关的 API 及数据结构如下: @@ -283,18 +284,17 @@ CREATE TOPIC topic_name AS DATABASE db_name; | 参数名称 | 类型 | 参数说明 | 备注 | | :----------------------------: | :-----: | -------------------------------------------------------- | ------------------------------------------- | -| `td.connect.ip` | string | 用于创建连接,同 `taos_connect` | | -| `td.connect.user` | string | 用于创建连接,同 `taos_connect` | | -| `td.connect.pass` | string | 用于创建连接,同 `taos_connect` | | -| `td.connect.port` | integer | 用于创建连接,同 `taos_connect` | | +| `td.connect.ip` | string | 用于创建连接,同 `taos_connect` | 仅用于建立原生连接 | +| `td.connect.user` | string | 用于创建连接,同 `taos_connect` | 仅用于建立原生连接 | +| `td.connect.pass` | string | 用于创建连接,同 `taos_connect` | 仅用于建立原生连接 | +| `td.connect.port` | integer | 用于创建连接,同 `taos_connect` | 仅用于建立原生连接 | | `group.id` | string | 消费组 ID,同一消费组共享消费进度 | **必填项**。最大长度:192。 | | `client.id` | string | 客户端 ID | 最大长度:192。 | | `auto.offset.reset` | enum | 消费组订阅的初始位置 |
`earliest`: default;从头开始订阅;
`latest`: 仅从最新数据开始订阅;
`none`: 没有提交的 offset 无法订阅 | -| `enable.auto.commit` | boolean | 是否启用消费位点自动提交 | 合法值:`true`, `false`。 | -| `auto.commit.interval.ms` | integer | 以毫秒为单位的消费记录自动提交消费位点时间间隔 | 默认 5000 m | -| `enable.heartbeat.background` | boolean | 启用后台心跳,启用后即使长时间不 poll 消息也不会造成离线 | 默认开启 | -| `experimental.snapshot.enable` | boolean | 是否允许从 TSDB 消费数据 | 实验功能,默认关闭 | -| `msg.with.table.name` | boolean | 是否允许从消息中解析表名, 不适用于列订阅(列订阅时可将 tbname 作为列写入 subquery 语句) | | +| `enable.auto.commit` | boolean | 是否启用消费位点自动提交,true: 自动提交,客户端应用无需commit;false:客户端应用需要自行commit | 默认值为 true | +| `auto.commit.interval.ms` | integer | 消费记录自动提交消费位点时间间隔,单位为毫秒 | 默认值为 5000 | +| `experimental.snapshot.enable` | boolean | 是否允许从 TSDB 消费数据。当其关闭时,只能消费依据 WAL 保留策略仍然在WAL中的数据;当其打开时,除WAL中的数据以外,也能够消费已经从WAL中删除但落盘到TSDB中的数据 | 实验功能,默认关闭 | +| `msg.with.table.name` | boolean | 是否允许从消息中解析表名, 不适用于列订阅(列订阅时可将 tbname 作为列写入 subquery 语句) |默认关闭 | 对于不同编程语言,其设置方式如下: diff --git a/docs/zh/08-connector/30-python.mdx b/docs/zh/08-connector/30-python.mdx index b57f02ac80..fdfb141e11 100644 --- a/docs/zh/08-connector/30-python.mdx +++ b/docs/zh/08-connector/30-python.mdx @@ -10,7 +10,9 @@ import TabItem from "@theme/TabItem"; `taospy` 是 TDengine 的官方 Python 连接器。`taospy` 提供了丰富的 API, 使得 Python 应用可以很方便地使用 TDengine。`taospy` 对 TDengine 的[原生接口](../cpp)和 [REST 接口](../rest-api)都进行了封装, 分别对应 `taospy` 包的 `taos` 模块 和 `taosrest` 模块。 除了对原生接口和 REST 接口的封装,`taospy` 还提供了符合 [Python 数据访问规范(PEP 249)](https://peps.python.org/pep-0249/) 的编程接口。这使得 `taospy` 和很多第三方工具集成变得简单,比如 [SQLAlchemy](https://www.sqlalchemy.org/) 和 [pandas](https://pandas.pydata.org/)。 -使用客户端驱动提供的原生接口直接与服务端建立的连接的方式下文中称为“原生连接”;使用 taosAdapter 提供的 REST 接口与服务端建立的连接的方式下文中称为“REST 连接”。 +`taos-ws-py` 是使用 WebSocket 方式连接 TDengine 的 Python 连接器包。可以选装。 + +使用客户端驱动提供的原生接口直接与服务端建立的连接的方式下文中称为“原生连接”;使用 taosAdapter 提供的 REST 接口或 WebSocket 接口与服务端建立的连接的方式下文中称为“REST 连接”或“WebSocket 连接”。 Python 连接器的源码托管在 [GitHub](https://github.com/taosdata/taos-connector-python)。 @@ -115,6 +117,15 @@ import taos import taosrest ``` + + + +对于 WebSocket 连接,只需验证是否能成功导入 `taosws` 模块。可在 Python 交互式 Shell 中输入: + +```python +import taosws +``` + @@ -183,6 +194,27 @@ curl -u root:taosdata http://:/rest/sql -d "select server_version()" } ``` + + + +对于 WebSocket 连接, 除了确保集群已经启动,还要确保 taosAdapter 组件已经启动。可以使用如下 curl 命令测试: + +``` +curl -i -N -d "show databases" -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: :" -H "Origin: http://:" http://:/rest/sql +``` + +上面的 FQDN 为运行 taosAdapter 的机器的 FQDN, PORT 为 taosAdapter 配置的监听端口, 默认为 6041。 +如果测试成功,会输出服务器版本信息,比如: + +```json +HTTP/1.1 200 OK +Content-Type: application/json; charset=utf-8 +Date: Tue, 21 Mar 2023 09:29:17 GMT +Transfer-Encoding: chunked + +{"status":"succ","head":["server_version()"],"column_meta":[["server_version()",8,8]],"data":[["2.6.0.27"]],"rows":1} +``` + diff --git a/docs/zh/08-connector/_linux_install.mdx b/docs/zh/08-connector/_linux_install.mdx index 0b1f415f54..b16ab2ac5b 100644 --- a/docs/zh/08-connector/_linux_install.mdx +++ b/docs/zh/08-connector/_linux_install.mdx @@ -14,7 +14,7 @@ import PkgListV3 from "/components/PkgListV3"; 解压软件包之后,会在解压目录下看到以下文件(目录): - _ install_client.sh_:安装脚本,用于应用驱动程序 - - _ taos.tar.gz_:应用驱动安装包 + - _ package.tar.gz_:应用驱动安装包 - _ driver_:TDengine 应用驱动 driver - _examples_: 各种编程语言的示例程序(c/C#/go/JDBC/MATLAB/python/R) 运行 install_client.sh 进行安装。 diff --git a/docs/zh/12-taos-sql/06-select.md b/docs/zh/12-taos-sql/06-select.md index dcc085b3bd..e4ba5b76e4 100644 --- a/docs/zh/12-taos-sql/06-select.md +++ b/docs/zh/12-taos-sql/06-select.md @@ -248,11 +248,11 @@ NULLS 语法用来指定 NULL 值在排序中输出的位置。NULLS LAST 是升 LIMIT 控制输出条数,OFFSET 指定从第几条之后开始输出。LIMIT/OFFSET 对结果集的执行顺序在 ORDER BY 之后。LIMIT 5 OFFSET 2 可以简写为 LIMIT 2, 5,都输出第 3 行到第 7 行数据。 -在有 PARTITION BY 子句时,LIMIT 控制的是每个切分的分片中的输出,而不是总的结果集输出。 +在有 PARTITION BY/GROUP BY 子句时,LIMIT 控制的是每个切分的分片中的输出,而不是总的结果集输出。 ## SLIMIT -SLIMIT 和 PARTITION BY 子句一起使用,用来控制输出的分片的数量。SLIMIT 5 SOFFSET 2 可以简写为 SLIMIT 2, 5,都表示输出第 3 个到第 7 个分片。 +SLIMIT 和 PARTITION BY/GROUP BY 子句一起使用,用来控制输出的分片的数量。SLIMIT 5 SOFFSET 2 可以简写为 SLIMIT 2, 5,都表示输出第 3 个到第 7 个分片。 需要注意,如果有 ORDER BY 子句,则输出只有一个分片。 diff --git a/docs/zh/14-reference/14-taosKeeper.md b/docs/zh/14-reference/14-taosKeeper.md index ac0c8754b5..66c21dc1a1 100644 --- a/docs/zh/14-reference/14-taosKeeper.md +++ b/docs/zh/14-reference/14-taosKeeper.md @@ -4,6 +4,9 @@ title: taosKeeper description: TDengine 3.0 版本监控指标的导出工具 --- +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + ## 简介 taosKeeper 是 TDengine 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine 的运行状态。taosKeeper 使用 TDengine RESTful 接口,所以不需要安装 TDengine 客户端即可使用。 @@ -18,9 +21,9 @@ taosKeeper 安装方式: - 单独编译 taosKeeper 并安装,详情请参考 [taosKeeper](https://github.com/taosdata/taoskeeper) 仓库。 -## 运行 +## 配置和运行方式 -### 配置和运行方式 +### 配置 taosKeeper 需要在操作系统终端执行,该工具支持三种配置方式:[命令行参数](#命令行参数启动)、[环境变量](#环境变量启动) 和 [配置文件](#配置文件启动)。优先级为:命令行参数、环境变量、配置文件参数。 @@ -34,27 +37,80 @@ monitorFqdn localhost # taoskeeper 服务的 FQDN TDengine 监控配置相关,具体请参考:[TDengine 监控配置](../config/#监控相关)。 -### 命令行参数启动 +### 启动 -在使用命令行参数运行 taosKeeper 并控制其行为。 + + -```shell -$ taosKeeper +安装后,请使用 `systemctl` 命令来启动 taoskeeper 的服务进程。 + +```bash +systemctl start taoskeeper ``` -### 环境变量启动 +检查服务是否正常工作: -通过设置环境变量达到控制启动参数的目的,通常在容器中运行时使用。 - -```shell -$ export TAOS_KEEPER_TDENGINE_HOST=192.168.64.3 - -$ taoskeeper +```bash +systemctl status taoskeeper ``` -具体参数列表请参照 `taoskeeper -h` 输入结果。 +如果服务进程处于活动状态,则 status 指令会显示如下的相关信息: -### 配置文件启动 +``` +Active: active (running) +``` + +如果后台服务进程处于停止状态,则 status 指令会显示如下的相关信息: + +``` +Active: inactive (dead) +``` + +如下 `systemctl` 命令可以帮助你管理 taoskeeper 服务: + +- 启动服务进程:`systemctl start taoskeeper` + +- 停止服务进程:`systemctl stop taoskeeper` + +- 重启服务进程:`systemctl restart taoskeeper` + +- 查看服务状态:`systemctl status taoskeeper` + +:::info + +- `systemctl` 命令需要 _root_ 权限来运行,如果您非 _root_ 用户,请在命令前添加 `sudo`。 +- 如果系统中不支持 `systemd`,也可以用手动运行 `/usr/local/taos/bin/taoskeeper` 方式启动 taoskeeper 服务。 +- 故障排查: +- 如果服务异常请查看系统日志获取更多信息。 +::: + + + + +安装后,可以运行 `sudo launchctl start com.tdengine.taoskeeper` 来启动 taoskeeper 服务进程。 + +如下 `launchctl` 命令用于管理 taoskeeper 服务: + +- 启动服务进程:`sudo launchctl start com.tdengine.taoskeeper` + +- 停止服务进程:`sudo launchctl stop com.tdengine.taoskeeper` + +- 查看服务状态:`sudo launchctl list | grep taoskeeper` + +:::info + +- `launchctl` 命令管理`com.tdengine.taoskeeper`需要管理员权限,务必在前面加 `sudo` 来增强安全性。 +- `sudo launchctl list | grep taoskeeper` 指令返回的第一列是 `taoskeeper` 程序的 PID,若为 `-` 则说明 taoskeeper 服务未运行。 +- 故障排查: +- 如果服务异常请查看系统日志获取更多信息。 + +::: + + + + + +#### 配置文件启动 执行以下命令即可快速体验 taosKeeper。当不指定 taosKeeper 配置文件时,优先使用 `/etc/taos/keeper.toml` 配置,否则将使用默认配置。 diff --git a/docs/zh/28-releases/01-tdengine.md b/docs/zh/28-releases/01-tdengine.md index 5c8c5edd05..62d5c5f592 100644 --- a/docs/zh/28-releases/01-tdengine.md +++ b/docs/zh/28-releases/01-tdengine.md @@ -10,6 +10,10 @@ TDengine 2.x 各版本安装包请访问[这里](https://www.taosdata.com/all-do import Release from "/components/ReleaseV3"; +## 3.0.3.1 + + + ## 3.0.3.0 diff --git a/docs/zh/28-releases/02-tools.md b/docs/zh/28-releases/02-tools.md index a9c9ea5ac7..0e4eda6001 100644 --- a/docs/zh/28-releases/02-tools.md +++ b/docs/zh/28-releases/02-tools.md @@ -10,6 +10,10 @@ taosTools 各版本安装包下载链接如下: import Release from "/components/ReleaseV3"; +## 2.4.10 + + + ## 2.4.9 diff --git a/include/common/tmsg.h b/include/common/tmsg.h index d9d3c7e297..853be37886 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -846,6 +846,8 @@ typedef struct { int8_t replications; int32_t sstTrigger; int32_t minRows; + int32_t walRetentionPeriod; + int32_t walRetentionSize; } SAlterDbReq; int32_t tSerializeSAlterDbReq(void* buf, int32_t bufLen, SAlterDbReq* pReq); @@ -1655,6 +1657,20 @@ typedef struct { int32_t tSerializeSRedistributeVgroupReq(void* buf, int32_t bufLen, SRedistributeVgroupReq* pReq); int32_t tDeserializeSRedistributeVgroupReq(void* buf, int32_t bufLen, SRedistributeVgroupReq* pReq); +typedef struct { + int32_t useless; +} SBalanceVgroupLeaderReq; + +int32_t tSerializeSBalanceVgroupLeaderReq(void* buf, int32_t bufLen, SBalanceVgroupLeaderReq* pReq); +int32_t tDeserializeSBalanceVgroupLeaderReq(void* buf, int32_t bufLen, SBalanceVgroupLeaderReq* pReq); + +typedef struct { + int32_t vgId; +} SForceElectionReq; + +int32_t tSerializeSForceElectionReq(void* buf, int32_t bufLen, SForceElectionReq* pReq); +int32_t tDeserializeSForceElectionReq(void* buf, int32_t bufLen, SForceElectionReq* pReq); + typedef struct { int32_t vgId; } SSplitVgroupReq; diff --git a/include/common/tmsgdef.h b/include/common/tmsgdef.h index 46ca814e50..67fd832f13 100644 --- a/include/common/tmsgdef.h +++ b/include/common/tmsgdef.h @@ -83,6 +83,7 @@ enum { TD_DEF_MSG_TYPE(TDMT_DND_CONFIG_DNODE, "config-dnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_DND_SYSTABLE_RETRIEVE, "dnode-retrieve", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_DND_MAX_MSG, "dnd-max", NULL, NULL) + TD_DEF_MSG_TYPE(TDMT_DND_FORCE_ELECTION, "balance-force-election", NULL, NULL) TD_NEW_MSG_SEG(TDMT_MND_MSG) TD_DEF_MSG_TYPE(TDMT_MND_CONNECT, "connect", NULL, NULL) @@ -165,6 +166,7 @@ enum { TD_DEF_MSG_TYPE(TDMT_MND_AUTH, "auth", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_APPLY_MSG, "mnode-apply", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_BALANCE_VGROUP, "balance-vgroup", NULL, NULL) + TD_DEF_MSG_TYPE(TDMT_MND_BALANCE_VGROUP_LEADER, "balance-vgroup-leader", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_MERGE_VGROUP, "merge-vgroup", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_REDISTRIBUTE_VGROUP, "redistribute-vgroup", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_SPLIT_VGROUP, "split-vgroup", NULL, NULL) diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 1235dd3447..d1872240f7 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -223,127 +223,128 @@ #define TK_TRANSACTION 205 #define TK_BALANCE 206 #define TK_VGROUP 207 -#define TK_MERGE 208 -#define TK_REDISTRIBUTE 209 -#define TK_SPLIT 210 -#define TK_DELETE 211 -#define TK_INSERT 212 -#define TK_NULL 213 -#define TK_NK_QUESTION 214 -#define TK_NK_ARROW 215 -#define TK_ROWTS 216 -#define TK_QSTART 217 -#define TK_QEND 218 -#define TK_QDURATION 219 -#define TK_WSTART 220 -#define TK_WEND 221 -#define TK_WDURATION 222 -#define TK_IROWTS 223 -#define TK_ISFILLED 224 -#define TK_CAST 225 -#define TK_NOW 226 -#define TK_TODAY 227 -#define TK_TIMEZONE 228 -#define TK_CLIENT_VERSION 229 -#define TK_SERVER_VERSION 230 -#define TK_SERVER_STATUS 231 -#define TK_CURRENT_USER 232 -#define TK_CASE 233 -#define TK_WHEN 234 -#define TK_THEN 235 -#define TK_ELSE 236 -#define TK_BETWEEN 237 -#define TK_IS 238 -#define TK_NK_LT 239 -#define TK_NK_GT 240 -#define TK_NK_LE 241 -#define TK_NK_GE 242 -#define TK_NK_NE 243 -#define TK_MATCH 244 -#define TK_NMATCH 245 -#define TK_CONTAINS 246 -#define TK_IN 247 -#define TK_JOIN 248 -#define TK_INNER 249 -#define TK_SELECT 250 -#define TK_DISTINCT 251 -#define TK_WHERE 252 -#define TK_PARTITION 253 -#define TK_BY 254 -#define TK_SESSION 255 -#define TK_STATE_WINDOW 256 -#define TK_EVENT_WINDOW 257 -#define TK_SLIDING 258 -#define TK_FILL 259 -#define TK_VALUE 260 -#define TK_VALUE_F 261 -#define TK_NONE 262 -#define TK_PREV 263 -#define TK_NULL_F 264 -#define TK_LINEAR 265 -#define TK_NEXT 266 -#define TK_HAVING 267 -#define TK_RANGE 268 -#define TK_EVERY 269 -#define TK_ORDER 270 -#define TK_SLIMIT 271 -#define TK_SOFFSET 272 -#define TK_LIMIT 273 -#define TK_OFFSET 274 -#define TK_ASC 275 -#define TK_NULLS 276 -#define TK_ABORT 277 -#define TK_AFTER 278 -#define TK_ATTACH 279 -#define TK_BEFORE 280 -#define TK_BEGIN 281 -#define TK_BITAND 282 -#define TK_BITNOT 283 -#define TK_BITOR 284 -#define TK_BLOCKS 285 -#define TK_CHANGE 286 -#define TK_COMMA 287 -#define TK_CONCAT 288 -#define TK_CONFLICT 289 -#define TK_COPY 290 -#define TK_DEFERRED 291 -#define TK_DELIMITERS 292 -#define TK_DETACH 293 -#define TK_DIVIDE 294 -#define TK_DOT 295 -#define TK_EACH 296 -#define TK_FAIL 297 -#define TK_FILE 298 -#define TK_FOR 299 -#define TK_GLOB 300 -#define TK_ID 301 -#define TK_IMMEDIATE 302 -#define TK_IMPORT 303 -#define TK_INITIALLY 304 -#define TK_INSTEAD 305 -#define TK_ISNULL 306 -#define TK_KEY 307 -#define TK_MODULES 308 -#define TK_NK_BITNOT 309 -#define TK_NK_SEMI 310 -#define TK_NOTNULL 311 -#define TK_OF 312 -#define TK_PLUS 313 -#define TK_PRIVILEGE 314 -#define TK_RAISE 315 -#define TK_REPLACE 316 -#define TK_RESTRICT 317 -#define TK_ROW 318 -#define TK_SEMI 319 -#define TK_STAR 320 -#define TK_STATEMENT 321 -#define TK_STRICT 322 -#define TK_STRING 323 -#define TK_TIMES 324 -#define TK_VALUES 325 -#define TK_VARIABLE 326 -#define TK_VIEW 327 -#define TK_WAL 328 +#define TK_LEADER 208 +#define TK_MERGE 209 +#define TK_REDISTRIBUTE 210 +#define TK_SPLIT 211 +#define TK_DELETE 212 +#define TK_INSERT 213 +#define TK_NULL 214 +#define TK_NK_QUESTION 215 +#define TK_NK_ARROW 216 +#define TK_ROWTS 217 +#define TK_QSTART 218 +#define TK_QEND 219 +#define TK_QDURATION 220 +#define TK_WSTART 221 +#define TK_WEND 222 +#define TK_WDURATION 223 +#define TK_IROWTS 224 +#define TK_ISFILLED 225 +#define TK_CAST 226 +#define TK_NOW 227 +#define TK_TODAY 228 +#define TK_TIMEZONE 229 +#define TK_CLIENT_VERSION 230 +#define TK_SERVER_VERSION 231 +#define TK_SERVER_STATUS 232 +#define TK_CURRENT_USER 233 +#define TK_CASE 234 +#define TK_WHEN 235 +#define TK_THEN 236 +#define TK_ELSE 237 +#define TK_BETWEEN 238 +#define TK_IS 239 +#define TK_NK_LT 240 +#define TK_NK_GT 241 +#define TK_NK_LE 242 +#define TK_NK_GE 243 +#define TK_NK_NE 244 +#define TK_MATCH 245 +#define TK_NMATCH 246 +#define TK_CONTAINS 247 +#define TK_IN 248 +#define TK_JOIN 249 +#define TK_INNER 250 +#define TK_SELECT 251 +#define TK_DISTINCT 252 +#define TK_WHERE 253 +#define TK_PARTITION 254 +#define TK_BY 255 +#define TK_SESSION 256 +#define TK_STATE_WINDOW 257 +#define TK_EVENT_WINDOW 258 +#define TK_SLIDING 259 +#define TK_FILL 260 +#define TK_VALUE 261 +#define TK_VALUE_F 262 +#define TK_NONE 263 +#define TK_PREV 264 +#define TK_NULL_F 265 +#define TK_LINEAR 266 +#define TK_NEXT 267 +#define TK_HAVING 268 +#define TK_RANGE 269 +#define TK_EVERY 270 +#define TK_ORDER 271 +#define TK_SLIMIT 272 +#define TK_SOFFSET 273 +#define TK_LIMIT 274 +#define TK_OFFSET 275 +#define TK_ASC 276 +#define TK_NULLS 277 +#define TK_ABORT 278 +#define TK_AFTER 279 +#define TK_ATTACH 280 +#define TK_BEFORE 281 +#define TK_BEGIN 282 +#define TK_BITAND 283 +#define TK_BITNOT 284 +#define TK_BITOR 285 +#define TK_BLOCKS 286 +#define TK_CHANGE 287 +#define TK_COMMA 288 +#define TK_CONCAT 289 +#define TK_CONFLICT 290 +#define TK_COPY 291 +#define TK_DEFERRED 292 +#define TK_DELIMITERS 293 +#define TK_DETACH 294 +#define TK_DIVIDE 295 +#define TK_DOT 296 +#define TK_EACH 297 +#define TK_FAIL 298 +#define TK_FILE 299 +#define TK_FOR 300 +#define TK_GLOB 301 +#define TK_ID 302 +#define TK_IMMEDIATE 303 +#define TK_IMPORT 304 +#define TK_INITIALLY 305 +#define TK_INSTEAD 306 +#define TK_ISNULL 307 +#define TK_KEY 308 +#define TK_MODULES 309 +#define TK_NK_BITNOT 310 +#define TK_NK_SEMI 311 +#define TK_NOTNULL 312 +#define TK_OF 313 +#define TK_PLUS 314 +#define TK_PRIVILEGE 315 +#define TK_RAISE 316 +#define TK_REPLACE 317 +#define TK_RESTRICT 318 +#define TK_ROW 319 +#define TK_SEMI 320 +#define TK_STAR 321 +#define TK_STATEMENT 322 +#define TK_STRICT 323 +#define TK_STRING 324 +#define TK_TIMES 325 +#define TK_VALUES 326 +#define TK_VARIABLE 327 +#define TK_VIEW 328 +#define TK_WAL 329 #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index fefcc28bc2..c716d77b32 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -466,6 +466,10 @@ typedef struct SBalanceVgroupStmt { ENodeType type; } SBalanceVgroupStmt; +typedef struct SBalanceVgroupLeaderStmt { + ENodeType type; +} SBalanceVgroupLeaderStmt; + typedef struct SMergeVgroupStmt { ENodeType type; int32_t vgId1; diff --git a/include/libs/nodes/nodes.h b/include/libs/nodes/nodes.h index a2e4c76adc..3556a8ac95 100644 --- a/include/libs/nodes/nodes.h +++ b/include/libs/nodes/nodes.h @@ -209,7 +209,8 @@ typedef enum ENodeType { QUERY_NODE_INSERT_STMT, QUERY_NODE_QUERY, QUERY_NODE_SHOW_DB_ALIVE_STMT, - QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT, + QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT, + QUERY_NODE_BALANCE_VGROUP_LEADER_STMT, // logic plan node QUERY_NODE_LOGIC_PLAN_SCAN = 1000, diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index 189484d1a6..8f3c686ffd 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -245,6 +245,7 @@ bool syncIsReadyForRead(int64_t rid); bool syncSnapshotSending(int64_t rid); bool syncSnapshotRecving(int64_t rid); int32_t syncSendTimeoutRsp(int64_t rid, int64_t seq); +int32_t syncLeaderForceElection(int64_t rid); SSyncState syncGetState(int64_t rid); void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet); diff --git a/packaging/tools/makepkg.sh b/packaging/tools/makepkg.sh index 4cc713c9a3..082a1c8cfc 100755 --- a/packaging/tools/makepkg.sh +++ b/packaging/tools/makepkg.sh @@ -53,7 +53,7 @@ if [ -d ${top_dir}/tools/taos-tools/packaging/deb ]; then cd ${top_dir}/tools/taos-tools/packaging/deb [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0" - taostools_ver=$(git tag |grep -v taos | sort | tail -1) + taostools_ver=$(git for-each-ref --sort=taggerdate --format '%(tag)' refs/tags|grep -v taos | tail -1) taostools_install_dir="${release_dir}/${clientName2}Tools-${taostools_ver}" cd ${curr_dir} diff --git a/source/client/jni/com_taosdata_jdbc_TSDBJNIConnector.h b/source/client/jni/com_taosdata_jdbc_TSDBJNIConnector.h index a88bf0f7a6..2921afc3f8 100644 --- a/source/client/jni/com_taosdata_jdbc_TSDBJNIConnector.h +++ b/source/client/jni/com_taosdata_jdbc_TSDBJNIConnector.h @@ -75,6 +75,14 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_connectImp(JNIEn */ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryImp(JNIEnv *, jobject, jbyteArray, jlong); +/* + * Class: com_taosdata_jdbc_TSDBJNIConnector + * Method: executeQueryWithReqId + * Signature: ([BJJ)I + */ +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryWithReqId(JNIEnv *, jobject, jbyteArray, + jlong, jlong); + /* * Class: com_taosdata_jdbc_TSDBJNIConnector * Method: getErrCodeImp @@ -186,6 +194,14 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_validateCreateTab */ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_prepareStmtImp(JNIEnv *, jobject, jbyteArray, jlong); +/* + * Class: com_taosdata_jdbc_TSDBJNIConnector + * Method: prepareStmtWithReqId + * Signature: ([BJJ)I + */ +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_prepareStmtWithReqId(JNIEnv *, jobject, jbyteArray, + jlong, jlong); + /* * Class: com_taosdata_jdbc_TSDBJNIConnector * Method: setBindTableNameImp @@ -260,6 +276,32 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_insertLinesImp(JN JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertImp(JNIEnv *, jobject, jobjectArray, jlong, jint, jint); +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithReqId(JNIEnv *, jobject, jlong, + jobjectArray, jint, jint, + jlong); + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithTtl(JNIEnv *, jobject, jlong, + jobjectArray, jint, jint, jint); + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithTtlAndReqId(JNIEnv *, jobject, + jlong, jobjectArray, + jint, jint, jint, + jlong); + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRaw(JNIEnv *, jobject, jlong, jstring, + jint, jint); + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithReqId(JNIEnv *, jobject, jlong, + jstring, jint, jint, + jlong); + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithTtl(JNIEnv *, jobject, jlong, + jstring, jint, jint, jint); + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithTtlAndReqId(JNIEnv *, jobject, + jlong, jstring, + jint, jint, jint, + jlong); /** * Class: com_taosdata_jdbc_TSDBJNIConnector * Method: getTableVgID diff --git a/source/client/src/clientJniConnector.c b/source/client/src/clientJniConnector.c index cfa6f84bd2..f97799b000 100644 --- a/source/client/src/clientJniConnector.c +++ b/source/client/src/clientJniConnector.c @@ -55,7 +55,7 @@ jclass g_tmqClass; jmethodID g_createConsumerErrorCallback; jmethodID g_topicListCallback; -jclass g_consumerClass; +jclass g_consumerClass; // deprecated jmethodID g_commitCallback; @@ -331,13 +331,58 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryImp( int32_t code = taos_errno(tres); if (code != TSDB_CODE_SUCCESS) { - jniError("jobj:%p, conn:%p, code:%s, msg:%s", jobj, tscon, tstrerror(code), taos_errstr(tres)); + jniError("jobj:%p, conn:%p, code:0x%x, msg:%s", jobj, tscon, code, taos_errstr(tres)); } else { if (taos_is_update_query(tres)) { int32_t affectRows = taos_affected_rows(tres); - jniDebug("jobj:%p, conn:%p, code:%s, affect rows:%d", jobj, tscon, tstrerror(code), affectRows); + jniDebug("jobj:%p, conn:%p, code:0x%x, affect rows:%d", jobj, tscon, code, affectRows); } else { - jniDebug("jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniDebug("jobj:%p, conn:%p, code:0x%x", jobj, tscon, code); + } + } + + taosMemoryFreeClear(str); + return (jlong)tres; +} + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeQueryWithReqId(JNIEnv *env, jobject jobj, + jbyteArray jsql, jlong con, + jlong reqId) { + TAOS *tscon = (TAOS *)con; + if (tscon == NULL) { + jniError("jobj:%p, connection already closed", jobj); + return JNI_CONNECTION_NULL; + } + + if (jsql == NULL) { + jniError("jobj:%p, conn:%p, empty sql string", jobj, tscon); + return JNI_SQL_NULL; + } + + jsize len = (*env)->GetArrayLength(env, jsql); + + char *str = (char *)taosMemoryCalloc(1, sizeof(char) * (len + 1)); + if (str == NULL) { + jniError("jobj:%p, conn:%p, alloc memory failed", jobj, tscon); + return JNI_OUT_OF_MEMORY; + } + + (*env)->GetByteArrayRegion(env, jsql, 0, len, (jbyte *)str); + if ((*env)->ExceptionCheck(env)) { + // todo handle error + } + + TAOS_RES *tres = taos_query_with_reqid(tscon, str, reqId); + int32_t code = taos_errno(tres); + + if (code != TSDB_CODE_SUCCESS) { + jniError("jobj:%p, conn:%p, code:0x%x, msg:%s", jobj, tscon, code, taos_errstr(tres)); + } else { + if (taos_is_update_query(tres)) { + int32_t affectRows = taos_affected_rows(tres); + jniDebug("jobj:%p, conn:%p, code:0x%x, affect rows:%d", jobj, tscon, code, affectRows); + } else { + jniDebug("jobj:%p, conn:%p, code:0x%x", jobj, tscon, code); } } @@ -489,7 +534,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchRowImp(JNIEn numOfFields); return JNI_FETCH_END; } else { - jniDebug("jobj:%p, conn:%p, interrupted query. fetch row error code: %d, msg:%s", jobj, tscon, code, + jniDebug("jobj:%p, conn:%p, interrupted query. fetch row error code: 0x%x, msg:%s", jobj, tscon, code, taos_errstr(result)); return JNI_RESULT_SET_NULL; } @@ -575,9 +620,9 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchBlockImp(JNI TAOS_RES *tres = (TAOS_RES *)res; int32_t numOfFields = taos_num_fields(tres); - if(numOfFields <= 0){ - jniError("jobj:%p, conn:%p, query interrupted. taos_num_fields error code:%d, msg:%s", jobj, tscon, numOfFields, - taos_errstr(tres)); + if (numOfFields <= 0) { + jniError("jobj:%p, conn:%p, query interrupted. taos_num_fields error code: 0x%x, msg:%s", jobj, tscon, + taos_errno(tres), taos_errstr(tres)); return JNI_RESULT_SET_NULL; } @@ -589,7 +634,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_fetchBlockImp(JNI jniDebug("jobj:%p, conn:%p, resultset:%p, no data to retrieve", jobj, tscon, (void *)res); return JNI_FETCH_END; } else { - jniError("jobj:%p, conn:%p, query interrupted. fetch block error code:%d, msg:%s", jobj, tscon, error_code, + jniError("jobj:%p, conn:%p, query interrupted. fetch block error code: 0x%x, msg:%s", jobj, tscon, error_code, taos_errstr(tres)); return JNI_RESULT_SET_NULL; } @@ -639,7 +684,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_validateCreateTab } int code = taos_validate_sql(tscon, str); - jniDebug("jobj:%p, conn:%p, code is %d", jobj, tscon, code); + jniDebug("jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); taosMemoryFreeClear(str); return code; @@ -704,7 +749,45 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_prepareStmtImp(J int32_t code = taos_stmt_prepare(pStmt, str, len); taosMemoryFreeClear(str); if (code != TSDB_CODE_SUCCESS) { - jniError("prepareStmt jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniError("prepareStmt jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); + return JNI_TDENGINE_ERROR; + } + + return (jlong)pStmt; +} + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_prepareStmtWithReqId(JNIEnv *env, jobject jobj, + jbyteArray jsql, jlong con, + jlong reqId) { + TAOS *tscon = (TAOS *)con; + if (tscon == NULL) { + jniError("jobj:%p, connection already closed", jobj); + return JNI_CONNECTION_NULL; + } + + if (jsql == NULL) { + jniError("jobj:%p, conn:%p, empty sql string", jobj, tscon); + return JNI_SQL_NULL; + } + + jsize len = (*env)->GetArrayLength(env, jsql); + + char *str = (char *)taosMemoryCalloc(1, sizeof(char) * (len + 1)); + if (str == NULL) { + jniError("jobj:%p, conn:%p, alloc memory failed", jobj, tscon); + return JNI_OUT_OF_MEMORY; + } + + (*env)->GetByteArrayRegion(env, jsql, 0, len, (jbyte *)str); + if ((*env)->ExceptionCheck(env)) { + // todo handle error + } + + TAOS_STMT *pStmt = taos_stmt_init_with_reqid(tscon, reqId); + int32_t code = taos_stmt_prepare(pStmt, str, len); + taosMemoryFreeClear(str); + if (code != TSDB_CODE_SUCCESS) { + jniError("prepareStmtWithReqId jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); return JNI_TDENGINE_ERROR; } @@ -732,7 +815,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_setBindTableNameI if (code != TSDB_CODE_SUCCESS) { (*env)->ReleaseStringUTFChars(env, jname, name); - jniError("bindTableName jobj:%p, conn:%p, code:%s", jobj, tsconn, tstrerror(code)); + jniError("bindTableName jobj:%p, conn:%p, code: 0x%x", jobj, tsconn, code); return JNI_TDENGINE_ERROR; } @@ -807,7 +890,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_setTableNameTagsI (*env)->ReleaseStringUTFChars(env, tableName, name); if (code != TSDB_CODE_SUCCESS) { - jniError("tableNameTags jobj:%p, conn:%p, code:%s", jobj, tsconn, tstrerror(code)); + jniError("tableNameTags jobj:%p, conn:%p, code: 0x%x", jobj, tsconn, code); return JNI_TDENGINE_ERROR; } return JNI_SUCCESS; @@ -873,7 +956,7 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_bindColDataImp( taosMemoryFreeClear(b); if (code != TSDB_CODE_SUCCESS) { - jniError("bindColData jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniError("bindColData jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); return JNI_TDENGINE_ERROR; } @@ -896,7 +979,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_addBatchImp(JNIEn int32_t code = taos_stmt_add_batch(pStmt); if (code != TSDB_CODE_SUCCESS) { - jniError("add batch jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniError("add batch jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); return JNI_TDENGINE_ERROR; } @@ -920,7 +1003,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_executeBatchImp(J int32_t code = taos_stmt_execute(pStmt); if (code != TSDB_CODE_SUCCESS) { - jniError("excute batch jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniError("excute batch jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); return JNI_TDENGINE_ERROR; } @@ -944,7 +1027,7 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_closeStmt(JNIEnv int32_t code = taos_stmt_close(pStmt); if (code != TSDB_CODE_SUCCESS) { - jniError("close stmt jobj:%p, conn:%p, code:%s", jobj, tscon, tstrerror(code)); + jniError("close stmt jobj:%p, conn:%p, code: 0x%x", jobj, tscon, code); return JNI_TDENGINE_ERROR; } @@ -1006,12 +1089,9 @@ JNIEXPORT jint JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_insertLinesImp(JN TAOS_RES *tres = schemalessInsert(env, jobj, lines, taos, protocol, precision); - if (tres == NULL) { - return JNI_OUT_OF_MEMORY; - } int code = taos_errno(tres); if (code != TSDB_CODE_SUCCESS) { - jniError("jobj:%p, conn:%p, code:%s, msg:%s", jobj, taos, tstrerror(code), taos_errstr(tres)); + jniError("jobj:%p, conn:%p, code: 0x%x, msg:%s", jobj, taos, code, taos_errstr(tres)); taos_free_result(tres); return JNI_TDENGINE_ERROR; } @@ -1030,12 +1110,247 @@ JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsert } TAOS_RES *tres = schemalessInsert(env, jobj, lines, taos, protocol, precision); - if (tres == NULL) { + + return (jlong)tres; +} + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithReqId( + JNIEnv *env, jobject jobj, jlong conn, jobjectArray lines, jint protocol, jint precision, jlong reqId) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + return JNI_CONNECTION_NULL; + } + + int numLines = (*env)->GetArrayLength(env, lines); + char **c_lines = taosMemoryCalloc(numLines, sizeof(char *)); + if (c_lines == NULL) { + jniError("c_lines:%p, alloc memory failed", c_lines); return JNI_OUT_OF_MEMORY; } + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + c_lines[i] = (char *)(*env)->GetStringUTFChars(env, line, 0); + } + + TAOS_RES *tres = taos_schemaless_insert_with_reqid(taos, c_lines, numLines, protocol, precision, reqId); + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + (*env)->ReleaseStringUTFChars(env, line, c_lines[i]); + } + + taosMemoryFreeClear(c_lines); + return (jlong)tres; } +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithTtl(JNIEnv *env, jobject jobj, + jlong conn, jobjectArray lines, + jint protocol, jint precision, + jint ttl) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + return JNI_CONNECTION_NULL; + } + + int numLines = (*env)->GetArrayLength(env, lines); + char **c_lines = taosMemoryCalloc(numLines, sizeof(char *)); + if (c_lines == NULL) { + jniError("c_lines:%p, alloc memory failed", c_lines); + return JNI_OUT_OF_MEMORY; + } + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + c_lines[i] = (char *)(*env)->GetStringUTFChars(env, line, 0); + } + + TAOS_RES *tres = taos_schemaless_insert_ttl(taos, c_lines, numLines, protocol, precision, ttl); + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + (*env)->ReleaseStringUTFChars(env, line, c_lines[i]); + } + + taosMemoryFreeClear(c_lines); + + return (jlong)tres; +} + +JNIEXPORT jlong JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertWithTtlAndReqId( + JNIEnv *env, jobject jobj, jlong conn, jobjectArray lines, jint protocol, jint precision, jint ttl, jlong reqId) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + return JNI_CONNECTION_NULL; + } + + int numLines = (*env)->GetArrayLength(env, lines); + char **c_lines = taosMemoryCalloc(numLines, sizeof(char *)); + if (c_lines == NULL) { + jniError("c_lines:%p, alloc memory failed", c_lines); + return JNI_OUT_OF_MEMORY; + } + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + c_lines[i] = (char *)(*env)->GetStringUTFChars(env, line, 0); + } + + TAOS_RES *tres = taos_schemaless_insert_ttl_with_reqid(taos, c_lines, numLines, protocol, precision, ttl, reqId); + + for (int i = 0; i < numLines; ++i) { + jstring line = (jstring)((*env)->GetObjectArrayElement(env, lines, i)); + (*env)->ReleaseStringUTFChars(env, line, c_lines[i]); + } + + taosMemoryFreeClear(c_lines); + + return (jlong)tres; +} + +JNIEXPORT jobject createSchemalessResp(JNIEnv *env, int totalRows, int code, const char *msg) { + // find class + jclass schemaless_clazz = (*env)->FindClass(env, "com/taosdata/jdbc/SchemalessResp"); + // find methods + jmethodID init_method = (*env)->GetMethodID(env, schemaless_clazz, "", "()V"); + jmethodID setCode_method = (*env)->GetMethodID(env, schemaless_clazz, "setCode", "(I)V"); + jmethodID setMsg_method = (*env)->GetMethodID(env, schemaless_clazz, "setMsg", "(Ljava/lang/String;)V"); + jmethodID setTotalRows_method = (*env)->GetMethodID(env, schemaless_clazz, "setTotalRows", "(I)V"); + // new schemaless + jobject schemaless_obj = (*env)->NewObject(env, schemaless_clazz, init_method); + // set code + (*env)->CallVoidMethod(env, schemaless_obj, setCode_method, code); + // set totalRows + (*env)->CallVoidMethod(env, schemaless_obj, setTotalRows_method, totalRows); + // set message + jstring message = (*env)->NewStringUTF(env, msg); + (*env)->CallVoidMethod(env, schemaless_obj, setMsg_method, message); + + return schemaless_obj; +} + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRaw(JNIEnv *env, jobject jobj, + jlong conn, jstring data, + jint protocol, jint precision) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + char *msg = "JNI connection is NULL"; + return createSchemalessResp(env, 0, JNI_CONNECTION_NULL, msg); + } + + char *line = (char *)(*env)->GetStringUTFChars(env, data, NULL); + jint len = (*env)->GetStringUTFLength(env, data); + int32_t totalRows; + TAOS_RES *tres = taos_schemaless_insert_raw(taos, line, len, &totalRows, protocol, precision); + + (*env)->ReleaseStringUTFChars(env, data, line); + + // if (tres == NULL) { + // jniError("jobj:%p, schemaless raw insert failed", jobj); + // char *msg = "JNI schemaless raw insert return null"; + // return createSchemalessResp(env, 0, JNI_TDENGINE_ERROR, msg); + // } + + int code = taos_errno(tres); + if (code != TSDB_CODE_SUCCESS) { + jniError("jobj:%p, conn:%p, code: 0x%x, msg:%s", jobj, taos, code, taos_errstr(tres)); + taos_free_result(tres); + return createSchemalessResp(env, 0, code, taos_errstr(tres)); + } + taos_free_result(tres); + + return createSchemalessResp(env, totalRows, JNI_SUCCESS, NULL); +} + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithReqId( + JNIEnv *env, jobject jobj, jlong conn, jstring data, jint protocol, jint precision, jlong reqId) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + char *msg = "JNI connection is NULL"; + return createSchemalessResp(env, 0, JNI_CONNECTION_NULL, msg); + } + + char *line = (char *)(*env)->GetStringUTFChars(env, data, NULL); + jint len = (*env)->GetStringUTFLength(env, data); + int32_t totalRows; + TAOS_RES *tres = taos_schemaless_insert_raw_with_reqid(taos, line, len, &totalRows, protocol, precision, reqId); + + (*env)->ReleaseStringUTFChars(env, data, line); + + int code = taos_errno(tres); + if (code != TSDB_CODE_SUCCESS) { + jniError("jobj:%p, conn:%p, code: 0x%x, msg:%s", jobj, taos, code, taos_errstr(tres)); + taos_free_result(tres); + return createSchemalessResp(env, 0, code, taos_errstr(tres)); + } + taos_free_result(tres); + + return createSchemalessResp(env, totalRows, JNI_SUCCESS, NULL); +} + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithTtl(JNIEnv *env, jobject jobj, + jlong conn, jstring data, + jint protocol, + jint precision, jint ttl) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + char *msg = "JNI connection is NULL"; + return createSchemalessResp(env, 0, JNI_CONNECTION_NULL, msg); + } + + char *line = (char *)(*env)->GetStringUTFChars(env, data, NULL); + jint len = (*env)->GetStringUTFLength(env, data); + int32_t totalRows; + TAOS_RES *tres = taos_schemaless_insert_raw_ttl(taos, line, len, &totalRows, protocol, precision, ttl); + + (*env)->ReleaseStringUTFChars(env, data, line); + + int code = taos_errno(tres); + if (code != TSDB_CODE_SUCCESS) { + jniError("jobj:%p, conn:%p, code: 0x%x, msg:%s", jobj, taos, code, taos_errstr(tres)); + taos_free_result(tres); + return createSchemalessResp(env, 0, code, taos_errstr(tres)); + } + taos_free_result(tres); + + return createSchemalessResp(env, totalRows, JNI_SUCCESS, NULL); +} + +JNIEXPORT jobject JNICALL Java_com_taosdata_jdbc_TSDBJNIConnector_schemalessInsertRawWithTtlAndReqId( + JNIEnv *env, jobject jobj, jlong conn, jstring data, jint protocol, jint precision, jint ttl, jlong reqId) { + TAOS *taos = (TAOS *)conn; + if (taos == NULL) { + jniError("jobj:%p, connection already closed", jobj); + char *msg = "JNI connection is NULL"; + return createSchemalessResp(env, 0, JNI_CONNECTION_NULL, msg); + } + + char *line = (char *)(*env)->GetStringUTFChars(env, data, NULL); + jint len = (*env)->GetStringUTFLength(env, data); + int32_t totalRows; + TAOS_RES *tres = + taos_schemaless_insert_raw_ttl_with_reqid(taos, line, len, &totalRows, protocol, precision, ttl, reqId); + + (*env)->ReleaseStringUTFChars(env, data, line); + + int code = taos_errno(tres); + if (code != TSDB_CODE_SUCCESS) { + jniError("jobj:%p, conn:%p, code: 0x%x, msg:%s", jobj, taos, code, taos_errstr(tres)); + taos_free_result(tres); + return createSchemalessResp(env, 0, code, taos_errstr(tres)); + } + taos_free_result(tres); + + return createSchemalessResp(env, totalRows, JNI_SUCCESS, NULL); +} + // TABLE_VG_ID_FID_CACHE cache resp object for getTableVgID typedef struct TABLE_VG_ID_FIELD_CACHE { int cached; diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 9ad7c72bc0..884a346bb8 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -2219,6 +2219,8 @@ int32_t tSerializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) { if (tEncodeI8(&encoder, pReq->cacheLast) < 0) return -1; if (tEncodeI8(&encoder, pReq->replications) < 0) return -1; if (tEncodeI32(&encoder, pReq->sstTrigger) < 0) return -1; + if (tEncodeI32(&encoder, pReq->walRetentionPeriod) < 0) return -1; + if (tEncodeI32(&encoder, pReq->walRetentionSize) < 0) return -1; // 1st modification if (tEncodeI32(&encoder, pReq->minRows) < 0) return -1; @@ -2250,6 +2252,13 @@ int32_t tDeserializeSAlterDbReq(void *buf, int32_t bufLen, SAlterDbReq *pReq) { if (tDecodeI8(&decoder, &pReq->cacheLast) < 0) return -1; if (tDecodeI8(&decoder, &pReq->replications) < 0) return -1; if (tDecodeI32(&decoder, &pReq->sstTrigger) < 0) return -1; + if (!tDecodeIsEnd(&decoder)) { + if (tDecodeI32(&decoder, &pReq->walRetentionPeriod) < 0) return -1; + if (tDecodeI32(&decoder, &pReq->walRetentionSize) < 0) return -1; + } else { + pReq->walRetentionPeriod = -1; + pReq->walRetentionSize = -1; + } // 1st modification if (!tDecodeIsEnd(&decoder)) { @@ -4438,6 +4447,31 @@ int32_t tDeserializeSBalanceVgroupReq(void *buf, int32_t bufLen, SBalanceVgroupR return 0; } +int32_t tSerializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) { + SEncoder encoder = {0}; + tEncoderInit(&encoder, buf, bufLen); + + if (tStartEncode(&encoder) < 0) return -1; + if (tEncodeI32(&encoder, pReq->useless) < 0) return -1; + tEndEncode(&encoder); + + int32_t tlen = encoder.pos; + tEncoderClear(&encoder); + return tlen; +} + +int32_t tDeserializeSBalanceVgroupLeaderReq(void *buf, int32_t bufLen, SBalanceVgroupLeaderReq *pReq) { + SDecoder decoder = {0}; + tDecoderInit(&decoder, buf, bufLen); + + if (tStartDecode(&decoder) < 0) return -1; + if (tDecodeI32(&decoder, &pReq->useless) < 0) return -1; + tEndDecode(&decoder); + + tDecoderClear(&decoder); + return 0; +} + int32_t tSerializeSMergeVgroupReq(void *buf, int32_t bufLen, SMergeVgroupReq *pReq) { SEncoder encoder = {0}; tEncoderInit(&encoder, buf, bufLen); @@ -4521,6 +4555,31 @@ int32_t tDeserializeSSplitVgroupReq(void *buf, int32_t bufLen, SSplitVgroupReq * return 0; } +int32_t tSerializeSForceElectionReq(void *buf, int32_t bufLen, SForceElectionReq *pReq) { + SEncoder encoder = {0}; + tEncoderInit(&encoder, buf, bufLen); + + if (tStartEncode(&encoder) < 0) return -1; + if (tEncodeI32(&encoder, pReq->vgId) < 0) return -1; + tEndEncode(&encoder); + + int32_t tlen = encoder.pos; + tEncoderClear(&encoder); + return tlen; +} + +int32_t tDeserializeSForceElectionReq(void *buf, int32_t bufLen, SForceElectionReq *pReq) { + SDecoder decoder = {0}; + tDecoderInit(&decoder, buf, bufLen); + + if (tStartDecode(&decoder) < 0) return -1; + if (tDecodeI32(&decoder, &pReq->vgId) < 0) return -1; + tEndDecode(&decoder); + + tDecoderClear(&decoder); + return 0; +} + int32_t tSerializeSDCreateMnodeReq(void *buf, int32_t bufLen, SDCreateMnodeReq *pReq) { SEncoder encoder = {0}; tEncoderInit(&encoder, buf, bufLen); diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c index fe65c3dde9..0fa889169e 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c @@ -92,6 +92,7 @@ SArray *mmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_DND_CREATE_VNODE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_DROP_VNODE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_CONFIG_DNODE_RSP, mmPutMsgToReadQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_DND_FORCE_ELECTION_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CONNECT, mmPutMsgToReadQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CREATE_ACCT, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; @@ -126,6 +127,7 @@ SArray *mmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_MND_MERGE_VGROUP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_SPLIT_VGROUP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_BALANCE_VGROUP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_MND_BALANCE_VGROUP_LEADER, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CREATE_FUNC, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_RETRIEVE_FUNC, mmPutMsgToReadQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_DROP_FUNC, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; diff --git a/source/dnode/mgmt/mgmt_vnode/inc/vmInt.h b/source/dnode/mgmt/mgmt_vnode/inc/vmInt.h index e3fa2964b7..d10565975b 100644 --- a/source/dnode/mgmt/mgmt_vnode/inc/vmInt.h +++ b/source/dnode/mgmt/mgmt_vnode/inc/vmInt.h @@ -86,6 +86,7 @@ void vmCloseVnode(SVnodeMgmt *pMgmt, SVnodeObj *pVnode, bool commitAndRemo // vmHandle.c SArray *vmGetMsgHandles(); int32_t vmProcessCreateVnodeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg); +int32_t vmProcessForceElectionReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t vmProcessDropVnodeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t vmProcessAlterVnodeReplicaReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t vmProcessDisableVnodeWriteReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg); diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c index d7f91b74a8..92429a4157 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmHandle.c @@ -304,6 +304,26 @@ int32_t vmProcessDisableVnodeWriteReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg) { return 0; } +int32_t vmProcessForceElectionReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg){ + SForceElectionReq req = {0}; + + if (tDeserializeSForceElectionReq(pMsg->pCont, pMsg->contLen, &req) != 0) { + terrno = TSDB_CODE_INVALID_MSG; + return -1; + } + + SVnodeObj *pVnode = vmAcquireVnode(pMgmt, req.vgId); + if (pVnode == NULL) { + dError("vgId:%d, failed to alter hashrange since %s", req.vgId, terrstr()); + terrno = TSDB_CODE_VND_NOT_EXIST; + return -1; + } + + vnodeForceElection(pVnode->pImpl); + + return 0; +} + int32_t vmProcessAlterHashRangeReq(SVnodeMgmt *pMgmt, SRpcMsg *pMsg) { SAlterVnodeHashRangeReq req = {0}; if (tDeserializeSAlterVnodeHashRangeReq(pMsg->pCont, pMsg->contLen, &req) != 0) { @@ -548,6 +568,7 @@ SArray *vmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_VND_TRIM, vmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_CREATE_VNODE, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_DROP_VNODE, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_DND_FORCE_ELECTION, vmPutMsgToMgmtQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_SYNC_TIMEOUT, vmPutMsgToSyncQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_SYNC_CLIENT_REQUEST, vmPutMsgToSyncQueue, 0) == NULL) goto _OVER; diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c b/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c index 7aa1c9f56a..e0f141639e 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmWorker.c @@ -37,6 +37,9 @@ static void vmProcessMgmtQueue(SQueueInfo *pInfo, SRpcMsg *pMsg) { case TDMT_DND_CREATE_VNODE: code = vmProcessCreateVnodeReq(pMgmt, pMsg); break; + case TDMT_DND_FORCE_ELECTION: + code = vmProcessForceElectionReq(pMgmt, pMsg); + break; case TDMT_DND_DROP_VNODE: code = vmProcessDropVnodeReq(pMgmt, pMsg); break; diff --git a/source/dnode/mnode/impl/src/mndConsumer.c b/source/dnode/mnode/impl/src/mndConsumer.c index f1ef83aca5..49676ace11 100644 --- a/source/dnode/mnode/impl/src/mndConsumer.c +++ b/source/dnode/mnode/impl/src/mndConsumer.c @@ -77,7 +77,7 @@ void mndCleanupConsumer(SMnode *pMnode) {} bool mndRebTryStart() { int32_t old = atomic_val_compare_exchange_32(&mqRebInExecCnt, 0, 1); - mInfo("tq timer, rebalance counter old val:%d", old); + mDebug("tq timer, rebalance counter old val:%d", old); return old == 0; } @@ -101,7 +101,7 @@ void mndRebCntDec() { int32_t newVal = val - 1; int32_t oldVal = atomic_val_compare_exchange_32(&mqRebInExecCnt, val, newVal); if (oldVal == val) { - mInfo("rebalance trans end, rebalance counter:%d", newVal); + mDebug("rebalance trans end, rebalance counter:%d", newVal); break; } } @@ -356,7 +356,7 @@ static int32_t mndProcessMqTimerMsg(SRpcMsg *pMsg) { } else { taosHashCleanup(pRebMsg->rebSubHash); rpcFreeCont(pRebMsg); - mInfo("mq rebalance finished, no modification"); + mDebug("mq rebalance finished, no modification"); mndRebEnd(); } return 0; diff --git a/source/dnode/mnode/impl/src/mndDb.c b/source/dnode/mnode/impl/src/mndDb.c index 8b09c823ab..8beb57c8c3 100644 --- a/source/dnode/mnode/impl/src/mndDb.c +++ b/source/dnode/mnode/impl/src/mndDb.c @@ -737,6 +737,20 @@ static int32_t mndSetDbCfgFromAlterDbReq(SDbObj *pDb, SAlterDbReq *pAlter) { terrno = 0; } + if (pAlter->walRetentionPeriod > TSDB_DB_MIN_WAL_RETENTION_PERIOD && + pAlter->walRetentionPeriod != pDb->cfg.walRetentionPeriod) { + pDb->cfg.walRetentionPeriod = pAlter->walRetentionPeriod; + pDb->vgVersion++; + terrno = 0; + } + + if (pAlter->walRetentionSize > TSDB_DB_MIN_WAL_RETENTION_SIZE && + pAlter->walRetentionSize != pDb->cfg.walRetentionSize) { + pDb->cfg.walRetentionSize = pAlter->walRetentionSize; + pDb->vgVersion++; + terrno = 0; + } + return terrno; } diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index 84e8a9ec43..2315bf89c6 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -40,6 +40,7 @@ static void mndCancelGetNextVnode(SMnode *pMnode, void *pIter); static int32_t mndProcessRedistributeVgroupMsg(SRpcMsg *pReq); static int32_t mndProcessSplitVgroupMsg(SRpcMsg *pReq); static int32_t mndProcessBalanceVgroupMsg(SRpcMsg *pReq); +static int32_t mndProcessVgroupBalanceLeaderMsg(SRpcMsg *pReq); int32_t mndInitVgroup(SMnode *pMnode) { SSdbTable table = { @@ -60,10 +61,13 @@ int32_t mndInitVgroup(SMnode *pMnode) { mndSetMsgHandle(pMnode, TDMT_DND_DROP_VNODE_RSP, mndTransProcessRsp); mndSetMsgHandle(pMnode, TDMT_VND_COMPACT_RSP, mndTransProcessRsp); mndSetMsgHandle(pMnode, TDMT_VND_DISABLE_WRITE_RSP, mndTransProcessRsp); + mndSetMsgHandle(pMnode, TDMT_DND_FORCE_ELECTION_RSP, mndTransProcessRsp); mndSetMsgHandle(pMnode, TDMT_MND_REDISTRIBUTE_VGROUP, mndProcessRedistributeVgroupMsg); mndSetMsgHandle(pMnode, TDMT_MND_SPLIT_VGROUP, mndProcessSplitVgroupMsg); + //mndSetMsgHandle(pMnode, TDMT_MND_BALANCE_VGROUP, mndProcessVgroupBalanceLeaderMsg); mndSetMsgHandle(pMnode, TDMT_MND_BALANCE_VGROUP, mndProcessBalanceVgroupMsg); + mndSetMsgHandle(pMnode, TDMT_MND_BALANCE_VGROUP_LEADER, mndProcessVgroupBalanceLeaderMsg); mndAddShowRetrieveHandle(pMnode, TSDB_MGMT_TABLE_VGROUP, mndRetrieveVgroups); mndAddShowFreeIterHandle(pMnode, TSDB_MGMT_TABLE_VGROUP, mndCancelGetNextVgroup); @@ -1770,6 +1774,157 @@ _OVER: return code; } +static void *mndBuildSForceElectionReq(SMnode *pMnode, SVgObj *pVgroup, int32_t dnodeId, + int32_t *pContLen) { + SForceElectionReq balanceReq = { + .vgId = pVgroup->vgId, + }; + + int32_t contLen = tSerializeSForceElectionReq(NULL, 0, &balanceReq); + if (contLen < 0) { + terrno = TSDB_CODE_OUT_OF_MEMORY; + return NULL; + } + + void *pReq = taosMemoryMalloc(contLen); + if (pReq == NULL) { + terrno = TSDB_CODE_OUT_OF_MEMORY; + return NULL; + } + + tSerializeSForceElectionReq((char *)pReq, contLen, &balanceReq); + *pContLen = contLen; + return pReq; +} + +int32_t mndAddBalanceVgroupLeaderAction(SMnode *pMnode, STrans *pTrans, SVgObj *pVgroup, int32_t dnodeId) { + SDnodeObj *pDnode = mndAcquireDnode(pMnode, dnodeId); + if (pDnode == NULL) return -1; + + STransAction action = {0}; + action.epSet = mndGetDnodeEpset(pDnode); + mndReleaseDnode(pMnode, pDnode); + + int32_t contLen = 0; + void *pReq = mndBuildSForceElectionReq(pMnode, pVgroup, dnodeId, &contLen); + if (pReq == NULL) return -1; + + action.pCont = pReq; + action.contLen = contLen; + action.msgType = TDMT_DND_FORCE_ELECTION; + + if (mndTransAppendRedoAction(pTrans, &action) != 0) { + taosMemoryFree(pReq); + return -1; + } + + return 0; +} + +int32_t mndAddVgroupBalanceToTrans(SMnode *pMnode, SVgObj *pVgroup, STrans *pTrans){ + SSdb *pSdb = pMnode->pSdb; + + int32_t vgid = pVgroup->vgId; + int8_t replica = pVgroup->replica; + + if(pVgroup->replica <= 1) { + mInfo("trans:%d, vgid:%d no need to balance, replica:%d", pTrans->id, vgid, replica); + return -1; + } + + int32_t index = vgid%replica; + int32_t dnodeId = pVgroup->vnodeGid[index].dnodeId; + + bool exist = false; + bool online = false; + int64_t curMs = taosGetTimestampMs(); + SDnodeObj *pDnode = mndAcquireDnode(pMnode, dnodeId); + if (pDnode != NULL) { + exist = true; + online = mndIsDnodeOnline(pDnode, curMs); + mndReleaseDnode(pMnode, pDnode); + } + + if(exist && online) + { + mInfo("trans:%d, vgid:%d leader to dnode:%d", pTrans->id, vgid, dnodeId); + + if (mndAddBalanceVgroupLeaderAction(pMnode, pTrans, pVgroup, dnodeId) != 0) { + mError("trans:%d, vgid:%d failed to be balanced to dnode:%d", pTrans->id, vgid, dnodeId); + return -1; + } + + SSdbRaw *pRaw = mndVgroupActionEncode(pVgroup); + if (pRaw == NULL) { + mError("trans:%d, vgid:%d failed to encode action to dnode:%d", pTrans->id, vgid, dnodeId); + return -1; + } + if (mndTransAppendCommitlog(pTrans, pRaw) != 0) { + sdbFreeRaw(pRaw); + mError("trans:%d, vgid:%d failed to append commit log dnode:%d", pTrans->id, vgid, dnodeId); + return -1; + } + (void)sdbSetRawStatus(pRaw, SDB_STATUS_READY); + } + else + { + mInfo("trans:%d, vgid:%d cant be balanced to dnode:%d, exist:%d, online:%d", pTrans->id, vgid, dnodeId, exist, online); + } + + return 0; +} + +int32_t mndProcessVgroupBalanceLeaderMsg(SRpcMsg *pReq) { + int32_t code = -1; + + SBalanceVgroupLeaderReq req = {0}; + if (tDeserializeSBalanceVgroupLeaderReq(pReq->pCont, pReq->contLen, &req) != 0) { + terrno = TSDB_CODE_INVALID_MSG; + return code; + } + + SMnode *pMnode = pReq->info.node; + SSdb *pSdb = pMnode->pSdb; + + int32_t total = sdbGetSize(pSdb, SDB_VGROUP); + if(total <= 0) { + terrno = TSDB_CODE_TSC_INVALID_OPERATION; + return code; + } + + STrans *pTrans = NULL; + pTrans = mndTransCreate(pMnode, TRN_POLICY_RETRY, TRN_CONFLICT_NOTHING, pReq, "bal-vg-leader"); + if (pTrans == NULL) goto _OVER; + mndTransSetSerial(pTrans); + mInfo("trans:%d, used to balance vgroup leader", pTrans->id); + + void *pIter = NULL; + int32_t count = 0; + while (1) { + SVgObj *pVgroup = NULL; + pIter = sdbFetch(pSdb, SDB_VGROUP, pIter, (void **)&pVgroup); + if (pIter == NULL) break; + + if(mndAddVgroupBalanceToTrans(pMnode, pVgroup, pTrans) == 0){ + count++; + } + + sdbRelease(pSdb, pVgroup); + } + + if(count == 0) { + terrno = TSDB_CODE_TSC_INVALID_OPERATION; + goto _OVER; + } + + if (mndTransPrepare(pMnode, pTrans) != 0) goto _OVER; + code = 0; + +_OVER: + mndTransDrop(pTrans); + return code; +} + static int32_t mndCheckDnodeMemory(SMnode *pMnode, SDbObj *pOldDb, SDbObj *pNewDb, SVgObj *pOldVgroup, SVgObj *pNewVgroup, SArray *pArray) { for (int32_t i = 0; i < (int32_t)taosArrayGetSize(pArray); ++i) { diff --git a/source/dnode/vnode/inc/vnode.h b/source/dnode/vnode/inc/vnode.h index 1d14829891..91e1bcde4e 100644 --- a/source/dnode/vnode/inc/vnode.h +++ b/source/dnode/vnode/inc/vnode.h @@ -56,6 +56,7 @@ void vnodeDestroy(const char *path, STfs *pTfs); SVnode *vnodeOpen(const char *path, STfs *pTfs, SMsgCb msgCb); void vnodePreClose(SVnode *pVnode); void vnodePostClose(SVnode *pVnode); +void vnodeForceElection(SVnode *pVnode); void vnodeSyncCheckTimeout(SVnode *pVnode); void vnodeClose(SVnode *pVnode); int32_t vnodeSyncCommit(SVnode *pVnode); diff --git a/source/dnode/vnode/src/vnd/vnodeOpen.c b/source/dnode/vnode/src/vnd/vnodeOpen.c index c7d155be0d..c5f9412461 100644 --- a/source/dnode/vnode/src/vnd/vnodeOpen.c +++ b/source/dnode/vnode/src/vnd/vnodeOpen.c @@ -380,6 +380,10 @@ void vnodePreClose(SVnode *pVnode) { void vnodePostClose(SVnode *pVnode) { vnodeSyncPostClose(pVnode); } +void vnodeForceElection(SVnode *pVnode) { + syncLeaderForceElection(pVnode->sync); +} + void vnodeClose(SVnode *pVnode) { if (pVnode) { tsem_wait(&pVnode->canCommit); diff --git a/source/libs/function/src/builtinsimpl.c b/source/libs/function/src/builtinsimpl.c index fbc60041b2..4760358e0d 100644 --- a/source/libs/function/src/builtinsimpl.c +++ b/source/libs/function/src/builtinsimpl.c @@ -32,9 +32,6 @@ #define TAIL_MAX_POINTS_NUM 100 #define TAIL_MAX_OFFSET 100 -#define UNIQUE_MAX_RESULT_SIZE (1024 * 1024 * 10) -#define MODE_MAX_RESULT_SIZE UNIQUE_MAX_RESULT_SIZE - #define HLL_BUCKET_BITS 14 // The bits of the bucket #define HLL_DATA_BITS (64 - HLL_BUCKET_BITS) #define HLL_BUCKETS (1 << HLL_BUCKET_BITS) @@ -244,12 +241,11 @@ typedef struct SUniqueInfo { typedef struct SModeItem { int64_t count; + STuplePos dataPos; STuplePos tuplePos; - char data[]; } SModeItem; typedef struct SModeInfo { - int32_t numOfPoints; uint8_t colType; int16_t colBytes; SHashObj* pHash; @@ -257,7 +253,7 @@ typedef struct SModeInfo { STuplePos nullTuplePos; bool nullTupleSaved; - char pItems[]; + char* buf; // serialize data buffer } SModeInfo; typedef struct SDerivInfo { @@ -3113,7 +3109,7 @@ void* serializeTupleData(const SSDataBlock* pSrcBlock, int32_t rowIndex, SSubsid return buf; } -static int32_t doSaveTupleData(SSerializeDataHandle* pHandle, const void* pBuf, size_t length, STupleKey key, +static int32_t doSaveTupleData(SSerializeDataHandle* pHandle, const void* pBuf, size_t length, STupleKey* key, STuplePos* pPos) { STuplePos p = {0}; if (pHandle->pBuf != NULL) { @@ -3149,8 +3145,8 @@ static int32_t doSaveTupleData(SSerializeDataHandle* pHandle, const void* pBuf, releaseBufPage(pHandle->pBuf, pPage); } else { // other tuple save policy - if (streamStateFuncPut(pHandle->pState, &key, pBuf, length) >= 0) { - p.streamTupleKey = key; + if (streamStateFuncPut(pHandle->pState, key, pBuf, length) >= 0) { + p.streamTupleKey = *key; } } @@ -3174,7 +3170,7 @@ int32_t saveTupleData(SqlFunctionCtx* pCtx, int32_t rowIndex, const SSDataBlock* } char* buf = serializeTupleData(pSrcBlock, rowIndex, &pCtx->subsidiaries, pCtx->subsidiaries.buf); - return doSaveTupleData(&pCtx->saveHandle, buf, pCtx->subsidiaries.rowLen, key, pPos); + return doSaveTupleData(&pCtx->saveHandle, buf, pCtx->subsidiaries.rowLen, &key, pPos); } static int32_t doUpdateTupleData(SSerializeDataHandle* pHandle, const void* pBuf, size_t length, STuplePos* pPos) { @@ -4949,7 +4945,7 @@ int32_t uniqueFunction(SqlFunctionCtx* pCtx) { } bool getModeFuncEnv(SFunctionNode* pFunc, SFuncExecEnv* pEnv) { - pEnv->calcMemSize = sizeof(SModeInfo) + MODE_MAX_RESULT_SIZE; + pEnv->calcMemSize = sizeof(SModeInfo); return true; } @@ -4959,7 +4955,6 @@ bool modeFunctionSetup(SqlFunctionCtx* pCtx, SResultRowEntryInfo* pResInfo) { } SModeInfo* pInfo = GET_ROWCELL_INTERBUF(pResInfo); - pInfo->numOfPoints = 0; pInfo->colType = pCtx->resDataInfo.type; pInfo->colBytes = pCtx->resDataInfo.bytes; if (pInfo->pHash != NULL) { @@ -4970,38 +4965,60 @@ bool modeFunctionSetup(SqlFunctionCtx* pCtx, SResultRowEntryInfo* pResInfo) { pInfo->nullTupleSaved = false; pInfo->nullTuplePos.pageId = -1; + pInfo->buf = taosMemoryMalloc(pInfo->colBytes); + return true; } +static void modeFunctionCleanup(SModeInfo * pInfo) { + taosHashCleanup(pInfo->pHash); + taosMemoryFreeClear(pInfo->buf); +} + +static int32_t saveModeTupleData(SqlFunctionCtx* pCtx, char* data, SModeInfo *pInfo, STuplePos* pPos) { + if (IS_VAR_DATA_TYPE(pInfo->colType)) { + memcpy(pInfo->buf, data, varDataTLen(data)); + } else { + memcpy(pInfo->buf, data, pInfo->colBytes); + } + + return doSaveTupleData(&pCtx->saveHandle, pInfo->buf, pInfo->colBytes, NULL, pPos); +} + static int32_t doModeAdd(SModeInfo* pInfo, int32_t rowIndex, SqlFunctionCtx* pCtx, char* data) { - int32_t hashKeyBytes = IS_STR_DATA_TYPE(pInfo->colType) ? varDataTLen(data) : pInfo->colBytes; - SModeItem** pHashItem = taosHashGet(pInfo->pHash, data, hashKeyBytes); + int32_t code = TSDB_CODE_SUCCESS; + int32_t hashKeyBytes = IS_STR_DATA_TYPE(pInfo->colType) ? varDataTLen(data) : pInfo->colBytes; + + SModeItem* pHashItem = (SModeItem *)taosHashGet(pInfo->pHash, data, hashKeyBytes); if (pHashItem == NULL) { - int32_t size = sizeof(SModeItem) + pInfo->colBytes; - SModeItem* pItem = (SModeItem*)(pInfo->pItems + pInfo->numOfPoints * size); - memcpy(pItem->data, data, hashKeyBytes); - pItem->count += 1; + int32_t size = sizeof(SModeItem); + SModeItem item = {0}; + + item.count += 1; + code = saveModeTupleData(pCtx, data, pInfo, &item.dataPos); + if (code != TSDB_CODE_SUCCESS) { + return code; + } if (pCtx->subsidiaries.num > 0) { - int32_t code = saveTupleData(pCtx, rowIndex, pCtx->pSrcBlock, &pItem->tuplePos); + code = saveTupleData(pCtx, rowIndex, pCtx->pSrcBlock, &item.tuplePos); if (code != TSDB_CODE_SUCCESS) { return code; } } - taosHashPut(pInfo->pHash, data, hashKeyBytes, &pItem, sizeof(SModeItem*)); - pInfo->numOfPoints++; + taosHashPut(pInfo->pHash, data, hashKeyBytes, &item, sizeof(SModeItem)); } else { - (*pHashItem)->count += 1; + pHashItem->count += 1; if (pCtx->subsidiaries.num > 0) { - int32_t code = updateTupleData(pCtx, rowIndex, pCtx->pSrcBlock, &((*pHashItem)->tuplePos)); + int32_t code = updateTupleData(pCtx, rowIndex, pCtx->pSrcBlock, &pHashItem->tuplePos); if (code != TSDB_CODE_SUCCESS) { return code; } } } - return TSDB_CODE_SUCCESS; + return code; } int32_t modeFunction(SqlFunctionCtx* pCtx) { @@ -5024,18 +5041,15 @@ int32_t modeFunction(SqlFunctionCtx* pCtx) { char* data = colDataGetData(pInputCol, i); int32_t code = doModeAdd(pInfo, i, pCtx, data); if (code != TSDB_CODE_SUCCESS) { + modeFunctionCleanup(pInfo); return code; } - - if (sizeof(SModeInfo) + pInfo->numOfPoints * (sizeof(SModeItem) + pInfo->colBytes) >= MODE_MAX_RESULT_SIZE) { - taosHashCleanup(pInfo->pHash); - return TSDB_CODE_OUT_OF_MEMORY; - } } if (numOfElems == 0 && pCtx->subsidiaries.num > 0 && !pInfo->nullTupleSaved) { int32_t code = saveTupleData(pCtx, pInput->startRowIndex, pCtx->pSrcBlock, &pInfo->nullTuplePos); if (code != TSDB_CODE_SUCCESS) { + modeFunctionCleanup(pInfo); return code; } pInfo->nullTupleSaved = true; @@ -5054,26 +5068,37 @@ int32_t modeFinalize(SqlFunctionCtx* pCtx, SSDataBlock* pBlock) { SColumnInfoData* pCol = taosArrayGet(pBlock->pDataBlock, slotId); int32_t currentRow = pBlock->info.rows; - int32_t resIndex = -1; + STuplePos resDataPos, resTuplePos; int32_t maxCount = 0; - for (int32_t i = 0; i < pInfo->numOfPoints; ++i) { - SModeItem* pItem = (SModeItem*)(pInfo->pItems + i * (sizeof(SModeItem) + pInfo->colBytes)); + + void *pIter = taosHashIterate(pInfo->pHash, NULL); + while (pIter != NULL) { + SModeItem *pItem = (SModeItem *)pIter; if (pItem->count >= maxCount) { maxCount = pItem->count; - resIndex = i; + resDataPos = pItem->dataPos; + resTuplePos = pItem->tuplePos; } + + pIter = taosHashIterate(pInfo->pHash, pIter); } if (maxCount != 0) { - SModeItem* pResItem = (SModeItem*)(pInfo->pItems + resIndex * (sizeof(SModeItem) + pInfo->colBytes)); - colDataSetVal(pCol, currentRow, pResItem->data, false); - code = setSelectivityValue(pCtx, pBlock, &pResItem->tuplePos, currentRow); + const char* pData = loadTupleData(pCtx, &resDataPos); + if (pData == NULL) { + code = TSDB_CODE_NO_AVAIL_DISK; + modeFunctionCleanup(pInfo); + return code; + } + + colDataSetVal(pCol, currentRow, pData, false); + code = setSelectivityValue(pCtx, pBlock, &resTuplePos, currentRow); } else { colDataSetNULL(pCol, currentRow); code = setSelectivityValue(pCtx, pBlock, &pInfo->nullTuplePos, currentRow); } - taosHashCleanup(pInfo->pHash); + modeFunctionCleanup(pInfo); return code; } diff --git a/source/libs/function/src/udfd.c b/source/libs/function/src/udfd.c index 4b404b912c..cd65cdfda3 100644 --- a/source/libs/function/src/udfd.c +++ b/source/libs/function/src/udfd.c @@ -554,6 +554,8 @@ int32_t udfdInitUdf(char *udfName, SUdf *udf) { fnError("udf name %s init failed. error %d", udfName, err); return err; } + + fnInfo("udf init succeeded. name %s type %d context %p", udf->name, udf->scriptType, (void*)udf->scriptUdfCtx); return 0; } @@ -763,6 +765,7 @@ void udfdProcessTeardownRequest(SUvUdfWork *uvUdf, SUdfRequest *request) { } uv_mutex_unlock(&global.udfsMutex); if (unloadUdf) { + fnInfo("udf teardown. udf name: %s type %d: context %p", udf->name, udf->scriptType, (void*)(udf->scriptUdfCtx)); uv_cond_destroy(&udf->condReady); uv_mutex_destroy(&udf->lock); code = udf->scriptPlugin->udfDestroyFunc(udf->scriptUdfCtx); diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index e18de1c1d2..0aeb83ce08 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -173,6 +173,8 @@ const char* nodesNodeName(ENodeType type) { return "DropStreamStmt"; case QUERY_NODE_BALANCE_VGROUP_STMT: return "BalanceVgroupStmt"; + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: + return "BalanceVgroupLeaderStmt"; case QUERY_NODE_MERGE_VGROUP_STMT: return "MergeVgroupStmt"; case QUERY_NODE_SHOW_DB_ALIVE_STMT: @@ -6433,6 +6435,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { return dropStreamStmtToJson(pObj, pJson); case QUERY_NODE_BALANCE_VGROUP_STMT: return TSDB_CODE_SUCCESS; // SBalanceVgroupStmt has no fields to serialize. + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: + return TSDB_CODE_SUCCESS; // SBalanceVgroupLeaderStmt has no fields to serialize. case QUERY_NODE_MERGE_VGROUP_STMT: return mergeVgroupStmtToJson(pObj, pJson); case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT: @@ -6741,6 +6745,8 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { return jsonToDropStreamStmt(pJson, pObj); case QUERY_NODE_BALANCE_VGROUP_STMT: return TSDB_CODE_SUCCESS; // SBalanceVgroupStmt has no fields to deserialize. + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: + return TSDB_CODE_SUCCESS; // SBalanceVgroupLeaderStmt has no fields to deserialize. case QUERY_NODE_MERGE_VGROUP_STMT: return jsonToMergeVgroupStmt(pJson, pObj); case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT: diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index 8d6c3288b9..4180ba1d6c 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -386,6 +386,8 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SDropStreamStmt)); case QUERY_NODE_BALANCE_VGROUP_STMT: return makeNode(type, sizeof(SBalanceVgroupStmt)); + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: + return makeNode(type, sizeof(SBalanceVgroupLeaderStmt)); case QUERY_NODE_MERGE_VGROUP_STMT: return makeNode(type, sizeof(SMergeVgroupStmt)); case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT: @@ -923,9 +925,14 @@ void nodesDestroyNode(SNode* pNode) { taosMemoryFree(((SDescribeStmt*)pNode)->pMeta); break; case QUERY_NODE_RESET_QUERY_CACHE_STMT: // no pointer field - case QUERY_NODE_COMPACT_DATABASE_STMT: // no pointer field - case QUERY_NODE_CREATE_FUNCTION_STMT: // no pointer field - case QUERY_NODE_DROP_FUNCTION_STMT: // no pointer field + case QUERY_NODE_COMPACT_DATABASE_STMT: { + SCompactDatabaseStmt* pStmt = (SCompactDatabaseStmt*)pNode; + nodesDestroyNode(pStmt->pStart); + nodesDestroyNode(pStmt->pEnd); + break; + } + case QUERY_NODE_CREATE_FUNCTION_STMT: // no pointer field + case QUERY_NODE_DROP_FUNCTION_STMT: // no pointer field break; case QUERY_NODE_CREATE_STREAM_STMT: { SCreateStreamStmt* pStmt = (SCreateStreamStmt*)pNode; @@ -937,6 +944,7 @@ void nodesDestroyNode(SNode* pNode) { } case QUERY_NODE_DROP_STREAM_STMT: // no pointer field case QUERY_NODE_BALANCE_VGROUP_STMT: // no pointer field + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: // no pointer field case QUERY_NODE_MERGE_VGROUP_STMT: // no pointer field break; case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT: diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 10d4adf17d..fb5ac12970 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -223,6 +223,7 @@ SNode* createDropStreamStmt(SAstCreateContext* pCxt, bool ignoreNotExists, SToke SNode* createKillStmt(SAstCreateContext* pCxt, ENodeType type, const SToken* pId); SNode* createKillQueryStmt(SAstCreateContext* pCxt, const SToken* pQueryId); SNode* createBalanceVgroupStmt(SAstCreateContext* pCxt); +SNode* createBalanceVgroupLeaderStmt(SAstCreateContext* pCxt); SNode* createMergeVgroupStmt(SAstCreateContext* pCxt, const SToken* pVgId1, const SToken* pVgId2); SNode* createRedistributeVgroupStmt(SAstCreateContext* pCxt, const SToken* pVgId, SNodeList* pDnodes); SNode* createSplitVgroupStmt(SAstCreateContext* pCxt, const SToken* pVgId); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 72a0a70e36..584697e5c2 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -237,6 +237,18 @@ alter_db_option(A) ::= REPLICA NK_INTEGER(B). alter_db_option(A) ::= WAL_LEVEL NK_INTEGER(B). { A.type = DB_OPTION_WAL; A.val = B; } alter_db_option(A) ::= STT_TRIGGER NK_INTEGER(B). { A.type = DB_OPTION_STT_TRIGGER; A.val = B; } alter_db_option(A) ::= MINROWS NK_INTEGER(B). { A.type = DB_OPTION_MINROWS; A.val = B; } +alter_db_option(A) ::= WAL_RETENTION_PERIOD NK_INTEGER(B). { A.type = DB_OPTION_WAL_RETENTION_PERIOD; A.val = B; } +alter_db_option(A) ::= WAL_RETENTION_PERIOD NK_MINUS(B) NK_INTEGER(C). { + SToken t = B; + t.n = (C.z + C.n) - B.z; + A.type = DB_OPTION_WAL_RETENTION_PERIOD; A.val = t; + } +alter_db_option(A) ::= WAL_RETENTION_SIZE NK_INTEGER(B). { A.type = DB_OPTION_WAL_RETENTION_SIZE; A.val = B; } +alter_db_option(A) ::= WAL_RETENTION_SIZE NK_MINUS(B) NK_INTEGER(C). { + SToken t = B; + t.n = (C.z + C.n) - B.z; + A.type = DB_OPTION_WAL_RETENTION_SIZE; A.val = t; + } %type integer_list { SNodeList* } %destructor integer_list { nodesDestroyList($$); } @@ -597,6 +609,7 @@ cmd ::= KILL TRANSACTION NK_INTEGER(A). /************************************************ merge/redistribute/ vgroup ******************************************/ cmd ::= BALANCE VGROUP. { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } +cmd ::= BALANCE VGROUP LEADER. { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt); } cmd ::= MERGE VGROUP NK_INTEGER(A) NK_INTEGER(B). { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &A, &B); } cmd ::= REDISTRIBUTE VGROUP NK_INTEGER(A) dnode_list(B). { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &A, B); } cmd ::= SPLIT VGROUP NK_INTEGER(A). { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &A); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index a761b7a7b0..8cd7c1c03b 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -925,8 +925,8 @@ SNode* createAlterDatabaseOptions(SAstCreateContext* pCxt) { pOptions->numOfVgroups = -1; pOptions->singleStable = -1; pOptions->schemaless = -1; - pOptions->walRetentionPeriod = -1; - pOptions->walRetentionSize = -1; + pOptions->walRetentionPeriod = -2; // -1 is a valid value + pOptions->walRetentionSize = -2; // -1 is a valid value pOptions->walRollPeriod = -1; pOptions->walSegmentSize = -1; pOptions->sstTrigger = -1; @@ -935,7 +935,8 @@ SNode* createAlterDatabaseOptions(SAstCreateContext* pCxt) { return (SNode*)pOptions; } -SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOptionType type, void* pVal) { +static SNode* setDatabaseOptionImpl(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOptionType type, void* pVal, + bool alter) { CHECK_PARSER_STATUS(pCxt); SDatabaseOptions* pDbOptions = (SDatabaseOptions*)pOptions; switch (type) { @@ -986,7 +987,9 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti break; case DB_OPTION_REPLICA: pDbOptions->replica = taosStr2Int8(((SToken*)pVal)->z, NULL, 10); - updateWalOptionsDefault(pDbOptions); + if (!alter) { + updateWalOptionsDefault(pDbOptions); + } break; case DB_OPTION_STRICT: COPY_STRING_FORM_STR_TOKEN(pDbOptions->strictStr, (SToken*)pVal); @@ -1033,16 +1036,20 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti return pOptions; } +SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOptionType type, void* pVal) { + return setDatabaseOptionImpl(pCxt, pOptions, type, pVal, false); +} + SNode* setAlterDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, SAlterOption* pAlterOption) { CHECK_PARSER_STATUS(pCxt); switch (pAlterOption->type) { case DB_OPTION_KEEP: case DB_OPTION_RETENTIONS: - return setDatabaseOption(pCxt, pOptions, pAlterOption->type, pAlterOption->pList); + return setDatabaseOptionImpl(pCxt, pOptions, pAlterOption->type, pAlterOption->pList, true); default: break; } - return setDatabaseOption(pCxt, pOptions, pAlterOption->type, &pAlterOption->val); + return setDatabaseOptionImpl(pCxt, pOptions, pAlterOption->type, &pAlterOption->val, true); } SNode* createCreateDatabaseStmt(SAstCreateContext* pCxt, bool ignoreExists, SToken* pDbName, SNode* pOptions) { @@ -1945,6 +1952,13 @@ SNode* createBalanceVgroupStmt(SAstCreateContext* pCxt) { return (SNode*)pStmt; } +SNode* createBalanceVgroupLeaderStmt(SAstCreateContext* pCxt) { + CHECK_PARSER_STATUS(pCxt); + SBalanceVgroupLeaderStmt* pStmt = (SBalanceVgroupLeaderStmt*)nodesMakeNode(QUERY_NODE_BALANCE_VGROUP_LEADER_STMT); + CHECK_OUT_OF_MEM(pStmt); + return (SNode*)pStmt; +} + SNode* createMergeVgroupStmt(SAstCreateContext* pCxt, const SToken* pVgId1, const SToken* pVgId2) { CHECK_PARSER_STATUS(pCxt); SMergeVgroupStmt* pStmt = (SMergeVgroupStmt*)nodesMakeNode(QUERY_NODE_MERGE_VGROUP_STMT); diff --git a/source/libs/parser/src/parTokenizer.c b/source/libs/parser/src/parTokenizer.c index 366831ee1a..ed7e8acdee 100644 --- a/source/libs/parser/src/parTokenizer.c +++ b/source/libs/parser/src/parTokenizer.c @@ -127,6 +127,7 @@ static SKeyword keywordTable[] = { {"LANGUAGE", TK_LANGUAGE}, {"LAST", TK_LAST}, {"LAST_ROW", TK_LAST_ROW}, + {"LEADER", TK_LEADER}, {"LICENCES", TK_LICENCES}, {"LIKE", TK_LIKE}, {"LIMIT", TK_LIMIT}, diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 74b32c638d..11f0a5824a 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -4254,6 +4254,8 @@ static void buildAlterDbReq(STranslateContext* pCxt, SAlterDatabaseStmt* pStmt, pReq->replications = pStmt->pOptions->replica; pReq->sstTrigger = pStmt->pOptions->sstTrigger; pReq->minRows = pStmt->pOptions->minRowsPerBlock; + pReq->walRetentionPeriod = pStmt->pOptions->walRetentionPeriod; + pReq->walRetentionSize = pStmt->pOptions->walRetentionSize; return; } @@ -6393,6 +6395,15 @@ static int32_t translateCreateFunction(STranslateContext* pCxt, SCreateFunctionS if (fmIsBuiltinFunc(pStmt->funcName)) { return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_FUNCTION_NAME); } + + if (TSDB_DATA_TYPE_JSON == pStmt->outputDt.type || + TSDB_DATA_TYPE_VARBINARY == pStmt->outputDt.type || + TSDB_DATA_TYPE_DECIMAL == pStmt->outputDt.type || + TSDB_DATA_TYPE_BLOB == pStmt->outputDt.type || + TSDB_DATA_TYPE_MEDIUMBLOB == pStmt->outputDt.type) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, "Unsupported output type for UDF"); + } + SCreateFuncReq req = {0}; strcpy(req.name, pStmt->funcName); req.igExists = pStmt->ignoreExists; @@ -6458,6 +6469,11 @@ static int32_t translateBalanceVgroup(STranslateContext* pCxt, SBalanceVgroupStm return buildCmdMsg(pCxt, TDMT_MND_BALANCE_VGROUP, (FSerializeFunc)tSerializeSBalanceVgroupReq, &req); } +static int32_t translateBalanceVgroupLeader(STranslateContext* pCxt, SBalanceVgroupLeaderStmt* pStmt) { + SBalanceVgroupLeaderReq req = {0}; + return buildCmdMsg(pCxt, TDMT_MND_BALANCE_VGROUP_LEADER, (FSerializeFunc)tSerializeSBalanceVgroupLeaderReq, &req); +} + static int32_t translateMergeVgroup(STranslateContext* pCxt, SMergeVgroupStmt* pStmt) { SMergeVgroupReq req = {.vgId1 = pStmt->vgId1, .vgId2 = pStmt->vgId2}; return buildCmdMsg(pCxt, TDMT_MND_MERGE_VGROUP, (FSerializeFunc)tSerializeSMergeVgroupReq, &req); @@ -6669,6 +6685,9 @@ static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) { case QUERY_NODE_BALANCE_VGROUP_STMT: code = translateBalanceVgroup(pCxt, (SBalanceVgroupStmt*)pNode); break; + case QUERY_NODE_BALANCE_VGROUP_LEADER_STMT: + code = translateBalanceVgroupLeader(pCxt, (SBalanceVgroupLeaderStmt*)pNode); + break; case QUERY_NODE_MERGE_VGROUP_STMT: code = translateMergeVgroup(pCxt, (SMergeVgroupStmt*)pNode); break; diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 457083358d..529cf57644 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -104,26 +104,26 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 473 +#define YYNOCODE 474 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; - EOperatorType yy62; - SToken yy63; - EOrder yy158; - SNodeList* yy222; - SAlterOption yy233; - int32_t yy332; - int64_t yy393; - EJoinType yy574; - bool yy669; - ENullOrder yy675; - SDataType yy686; - int8_t yy707; - EFillMode yy822; - SNode* yy828; + int32_t yy136; + SDataType yy160; + SNodeList* yy172; + SNode* yy188; + int64_t yy189; + EOrder yy206; + EJoinType yy240; + int8_t yy371; + bool yy437; + SAlterOption yy653; + EFillMode yy654; + EOperatorType yy716; + SToken yy725; + ENullOrder yy913; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -139,17 +139,17 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 754 -#define YYNRULE 574 -#define YYNTOKEN 329 -#define YY_MAX_SHIFT 753 -#define YY_MIN_SHIFTREDUCE 1121 -#define YY_MAX_SHIFTREDUCE 1694 -#define YY_ERROR_ACTION 1695 -#define YY_ACCEPT_ACTION 1696 -#define YY_NO_ACTION 1697 -#define YY_MIN_REDUCE 1698 -#define YY_MAX_REDUCE 2271 +#define YYNSTATE 759 +#define YYNRULE 579 +#define YYNTOKEN 330 +#define YY_MAX_SHIFT 758 +#define YY_MIN_SHIFTREDUCE 1130 +#define YY_MAX_SHIFTREDUCE 1708 +#define YY_ERROR_ACTION 1709 +#define YY_ACCEPT_ACTION 1710 +#define YY_NO_ACTION 1711 +#define YY_MIN_REDUCE 1712 +#define YY_MAX_REDUCE 2290 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -216,773 +216,775 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2833) +#define YY_ACTTAB_COUNT (2842) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 2069, 2247, 1980, 166, 2083, 2242, 491, 2101, 492, 1734, - /* 10 */ 1806, 2065, 45, 43, 1622, 600, 1980, 1978, 630, 2069, - /* 20 */ 385, 2246, 1471, 618, 1496, 2243, 2245, 2083, 376, 2186, - /* 30 */ 2065, 1977, 630, 1552, 2019, 1469, 1837, 2101, 44, 42, - /* 40 */ 41, 40, 39, 430, 642, 621, 2061, 2067, 366, 1173, - /* 50 */ 2051, 1172, 659, 629, 643, 2183, 139, 653, 1547, 2247, - /* 60 */ 2101, 599, 1914, 2242, 18, 2061, 2067, 367, 660, 350, - /* 70 */ 132, 1477, 167, 2051, 1710, 659, 653, 530, 1912, 2246, - /* 80 */ 1174, 240, 2082, 2243, 2244, 333, 2118, 1861, 642, 109, - /* 90 */ 2084, 663, 2086, 2087, 658, 2069, 653, 750, 65, 697, - /* 100 */ 14, 179, 507, 2171, 1973, 2082, 2065, 379, 2167, 2118, - /* 110 */ 45, 43, 168, 2084, 663, 2086, 2087, 658, 385, 653, - /* 120 */ 1471, 184, 270, 2179, 617, 1721, 133, 616, 73, 2197, - /* 130 */ 2242, 1552, 1173, 1469, 1172, 390, 1554, 1555, 1907, 1909, - /* 140 */ 606, 2061, 2067, 380, 2242, 605, 182, 222, 35, 291, - /* 150 */ 2243, 607, 653, 582, 2208, 273, 1547, 1838, 628, 605, - /* 160 */ 182, 642, 18, 1174, 2243, 607, 1527, 1537, 48, 1477, - /* 170 */ 1764, 2051, 1553, 1556, 38, 37, 178, 81, 44, 42, - /* 180 */ 41, 40, 39, 546, 545, 544, 1472, 509, 1470, 1901, - /* 190 */ 536, 136, 540, 176, 61, 750, 539, 61, 14, 92, - /* 200 */ 497, 538, 543, 61, 38, 37, 493, 537, 44, 42, - /* 210 */ 41, 40, 39, 1475, 1476, 1964, 1526, 1529, 1530, 1531, - /* 220 */ 1532, 1533, 1534, 1535, 1536, 655, 651, 1545, 1546, 1548, - /* 230 */ 1549, 1550, 1551, 2, 1554, 1555, 727, 726, 725, 724, - /* 240 */ 395, 48, 723, 722, 143, 717, 716, 715, 714, 713, - /* 250 */ 712, 711, 156, 707, 706, 705, 394, 393, 702, 701, - /* 260 */ 700, 699, 698, 601, 1527, 1537, 596, 1661, 580, 695, - /* 270 */ 1553, 1556, 122, 1583, 1242, 121, 120, 119, 118, 117, - /* 280 */ 116, 115, 114, 113, 1472, 695, 1470, 154, 153, 692, - /* 290 */ 691, 690, 151, 38, 37, 697, 1154, 44, 42, 41, - /* 300 */ 40, 39, 1959, 154, 153, 692, 691, 690, 151, 1696, - /* 310 */ 1244, 1475, 1476, 190, 1526, 1529, 1530, 1531, 1532, 1533, - /* 320 */ 1534, 1535, 1536, 655, 651, 1545, 1546, 1548, 1549, 1550, - /* 330 */ 1551, 2, 11, 45, 43, 1156, 1839, 1159, 1160, 1496, - /* 340 */ 52, 385, 1299, 1471, 185, 32, 1959, 185, 1496, 345, - /* 350 */ 602, 597, 590, 185, 1552, 1588, 1469, 192, 1290, 685, - /* 360 */ 684, 683, 1294, 682, 1296, 1297, 681, 678, 86, 1305, - /* 370 */ 675, 1307, 1308, 672, 669, 1699, 31, 398, 2083, 1547, - /* 380 */ 147, 397, 38, 37, 354, 18, 44, 42, 41, 40, - /* 390 */ 39, 185, 1477, 1856, 1581, 500, 122, 492, 1734, 121, - /* 400 */ 120, 119, 118, 117, 116, 115, 114, 113, 38, 37, - /* 410 */ 629, 2101, 44, 42, 41, 40, 39, 377, 750, 657, - /* 420 */ 1499, 14, 468, 581, 2051, 164, 659, 2242, 61, 388, - /* 430 */ 1495, 45, 43, 1557, 1863, 282, 283, 161, 1959, 385, - /* 440 */ 281, 1471, 2248, 182, 364, 1497, 1863, 2243, 607, 196, - /* 450 */ 1582, 238, 1552, 1912, 1469, 237, 2082, 1554, 1555, 627, - /* 460 */ 2118, 1973, 569, 327, 2084, 663, 2086, 2087, 658, 656, - /* 470 */ 653, 644, 2136, 1698, 38, 37, 11, 1547, 44, 42, - /* 480 */ 41, 40, 39, 198, 197, 1388, 1389, 1527, 1537, 100, - /* 490 */ 1477, 1767, 490, 1553, 1556, 495, 1740, 131, 130, 129, - /* 500 */ 128, 127, 126, 125, 124, 123, 467, 1472, 499, 1470, - /* 510 */ 27, 495, 1740, 1854, 89, 340, 750, 424, 362, 46, - /* 520 */ 562, 423, 34, 383, 1576, 1577, 1578, 1579, 1580, 1584, - /* 530 */ 1585, 1586, 1587, 1720, 1475, 1476, 576, 1526, 1529, 1530, - /* 540 */ 1531, 1532, 1533, 1534, 1535, 1536, 655, 651, 1545, 1546, - /* 550 */ 1548, 1549, 1550, 1551, 2, 1554, 1555, 546, 545, 544, - /* 560 */ 1477, 1333, 1334, 581, 536, 136, 540, 2242, 250, 49, - /* 570 */ 539, 1908, 1909, 1852, 106, 538, 543, 709, 185, 2051, - /* 580 */ 2083, 537, 2248, 182, 2065, 1527, 1537, 2243, 607, 33, - /* 590 */ 140, 1553, 1556, 13, 12, 38, 37, 1836, 1853, 44, - /* 600 */ 42, 41, 40, 39, 688, 1472, 2247, 1470, 542, 541, - /* 610 */ 38, 37, 560, 2101, 44, 42, 41, 40, 39, 2061, - /* 620 */ 2067, 660, 618, 1498, 1944, 558, 2051, 556, 659, 11, - /* 630 */ 653, 9, 1475, 1476, 86, 1526, 1529, 1530, 1531, 1532, - /* 640 */ 1533, 1534, 1535, 1536, 655, 651, 1545, 1546, 1548, 1549, - /* 650 */ 1550, 1551, 2, 45, 43, 139, 248, 2083, 2082, 1857, - /* 660 */ 2070, 385, 2118, 1471, 643, 109, 2084, 663, 2086, 2087, - /* 670 */ 658, 2065, 653, 1497, 1552, 142, 1469, 149, 2142, 2171, - /* 680 */ 187, 38, 37, 379, 2167, 44, 42, 41, 40, 39, - /* 690 */ 2101, 1719, 176, 1595, 1498, 1914, 1754, 1861, 660, 1547, - /* 700 */ 90, 618, 363, 2051, 1684, 659, 2061, 2067, 1718, 695, - /* 710 */ 624, 1912, 1477, 352, 1963, 1650, 357, 653, 547, 185, - /* 720 */ 620, 180, 2179, 2180, 643, 137, 2184, 154, 153, 692, - /* 730 */ 691, 690, 151, 141, 139, 2082, 2142, 2051, 750, 2118, - /* 740 */ 54, 46, 169, 2084, 663, 2086, 2087, 658, 2246, 653, - /* 750 */ 1717, 45, 43, 643, 2051, 689, 581, 1861, 1905, 385, - /* 760 */ 2242, 1471, 593, 592, 1648, 1649, 1651, 1652, 1653, 428, - /* 770 */ 163, 272, 1552, 1850, 1469, 2248, 182, 1554, 1555, 448, - /* 780 */ 2243, 607, 358, 2186, 356, 355, 1861, 532, 447, 1405, - /* 790 */ 1406, 534, 629, 1846, 608, 2263, 2051, 1547, 1848, 2083, - /* 800 */ 181, 2179, 2180, 1716, 137, 2184, 1499, 1527, 1537, 2182, - /* 810 */ 1477, 1844, 533, 1553, 1556, 643, 38, 37, 2186, 643, - /* 820 */ 44, 42, 41, 40, 39, 1404, 1407, 1472, 687, 1470, - /* 830 */ 1914, 132, 2101, 1715, 2037, 429, 750, 373, 535, 14, - /* 840 */ 660, 638, 272, 1973, 2181, 2051, 1912, 659, 1861, 2051, - /* 850 */ 2044, 1691, 1861, 194, 1475, 1476, 1714, 1526, 1529, 1530, - /* 860 */ 1531, 1532, 1533, 1534, 1535, 1536, 655, 651, 1545, 1546, - /* 870 */ 1548, 1549, 1550, 1551, 2, 1554, 1555, 2082, 245, 2051, - /* 880 */ 2045, 2118, 405, 1914, 110, 2084, 663, 2086, 2087, 658, - /* 890 */ 378, 653, 693, 388, 83, 1905, 581, 82, 2171, 1912, - /* 900 */ 2242, 164, 2051, 2168, 606, 1527, 1537, 1496, 2242, 1638, - /* 910 */ 1863, 1553, 1556, 721, 719, 2248, 182, 417, 61, 8, - /* 920 */ 2243, 607, 1253, 605, 182, 1472, 581, 1470, 2243, 607, - /* 930 */ 2242, 1914, 645, 1626, 2143, 1252, 1562, 654, 389, 1496, - /* 940 */ 419, 415, 1496, 1159, 1160, 2248, 182, 1912, 1690, 610, - /* 950 */ 2243, 607, 1475, 1476, 191, 1526, 1529, 1530, 1531, 1532, - /* 960 */ 1533, 1534, 1535, 1536, 655, 651, 1545, 1546, 1548, 1549, - /* 970 */ 1550, 1551, 2, 1499, 336, 165, 1494, 643, 382, 381, - /* 980 */ 311, 567, 647, 461, 2143, 551, 475, 2083, 1485, 474, - /* 990 */ 41, 40, 39, 438, 309, 72, 1619, 477, 71, 1552, - /* 1000 */ 561, 1478, 1711, 422, 444, 421, 476, 2211, 694, 446, - /* 1010 */ 1861, 1905, 1471, 164, 236, 609, 205, 487, 485, 482, - /* 1020 */ 2101, 152, 1864, 618, 1547, 1469, 643, 581, 660, 554, - /* 1030 */ 420, 2242, 391, 2051, 548, 659, 1713, 1477, 643, 235, - /* 1040 */ 164, 534, 453, 1712, 2191, 1615, 2248, 182, 643, 1863, - /* 1050 */ 1914, 2243, 607, 1528, 454, 353, 139, 61, 710, 1861, - /* 1060 */ 1823, 1477, 533, 649, 508, 2082, 1913, 434, 185, 2118, - /* 1070 */ 1807, 1861, 109, 2084, 663, 2086, 2087, 658, 53, 653, - /* 1080 */ 69, 1861, 2051, 68, 2146, 1528, 2171, 750, 1528, 2051, - /* 1090 */ 379, 2167, 1709, 1708, 1480, 108, 472, 1707, 1747, 466, - /* 1100 */ 465, 464, 463, 460, 459, 458, 457, 456, 452, 451, - /* 1110 */ 450, 449, 335, 441, 440, 439, 643, 436, 435, 351, - /* 1120 */ 549, 249, 183, 2179, 2180, 613, 137, 2184, 643, 1615, - /* 1130 */ 305, 643, 1858, 1891, 152, 80, 79, 427, 2051, 2051, - /* 1140 */ 189, 2083, 643, 2051, 241, 239, 1257, 577, 51, 1861, - /* 1150 */ 3, 145, 1486, 134, 1481, 643, 1706, 643, 622, 1256, - /* 1160 */ 334, 1861, 1479, 413, 1861, 411, 407, 403, 400, 420, - /* 1170 */ 1705, 626, 2083, 286, 2101, 1861, 1472, 611, 1470, 1489, - /* 1180 */ 1491, 267, 621, 228, 643, 650, 226, 2051, 1861, 659, - /* 1190 */ 1861, 1440, 651, 1545, 1546, 1548, 1549, 1550, 1551, 643, - /* 1200 */ 640, 431, 2051, 1475, 1476, 2101, 1704, 185, 643, 643, - /* 1210 */ 1703, 1445, 1446, 660, 432, 641, 2051, 1861, 2051, 2082, - /* 1220 */ 659, 479, 2083, 2118, 292, 392, 109, 2084, 663, 2086, - /* 1230 */ 2087, 658, 1861, 653, 230, 1702, 1701, 229, 179, 2083, - /* 1240 */ 2171, 1861, 1861, 1618, 379, 2167, 232, 1483, 234, 231, - /* 1250 */ 2082, 233, 2051, 594, 2118, 2101, 2051, 109, 2084, 663, - /* 1260 */ 2086, 2087, 658, 660, 653, 152, 2198, 1745, 2051, 2262, - /* 1270 */ 659, 2171, 2101, 63, 221, 379, 2167, 564, 63, 563, - /* 1280 */ 660, 2051, 2051, 261, 254, 2051, 2205, 659, 105, 552, - /* 1290 */ 1693, 1694, 2102, 152, 396, 13, 12, 47, 102, 2083, - /* 1300 */ 2082, 279, 70, 2072, 2118, 150, 152, 168, 2084, 663, - /* 1310 */ 2086, 2087, 658, 63, 653, 1482, 1968, 2082, 1735, 2083, - /* 1320 */ 1902, 2118, 1443, 47, 109, 2084, 663, 2086, 2087, 658, - /* 1330 */ 1647, 653, 2101, 2201, 1573, 1646, 2262, 753, 2171, 703, - /* 1340 */ 660, 256, 379, 2167, 619, 2051, 1741, 659, 269, 2209, - /* 1350 */ 625, 298, 2101, 2218, 1402, 614, 2074, 47, 284, 635, - /* 1360 */ 660, 1222, 288, 1283, 667, 2051, 175, 659, 150, 152, - /* 1370 */ 1589, 704, 743, 739, 735, 731, 296, 2082, 266, 135, - /* 1380 */ 1538, 2118, 150, 1203, 109, 2084, 663, 2086, 2087, 658, - /* 1390 */ 1, 653, 4, 1220, 399, 745, 2262, 2082, 2171, 404, - /* 1400 */ 349, 2118, 379, 2167, 109, 2084, 663, 2086, 2087, 658, - /* 1410 */ 1425, 653, 299, 588, 304, 195, 2262, 107, 2171, 1204, - /* 1420 */ 289, 1311, 379, 2167, 433, 1315, 1322, 1499, 2083, 1969, - /* 1430 */ 437, 470, 442, 2236, 1494, 223, 1320, 455, 462, 155, - /* 1440 */ 1961, 469, 480, 471, 481, 478, 483, 200, 2083, 484, - /* 1450 */ 171, 199, 639, 202, 486, 488, 526, 522, 518, 514, - /* 1460 */ 220, 2101, 1500, 489, 1502, 498, 501, 1497, 208, 660, - /* 1470 */ 1501, 502, 210, 503, 2051, 1503, 659, 506, 504, 213, - /* 1480 */ 215, 2101, 1176, 84, 85, 510, 527, 276, 531, 660, - /* 1490 */ 529, 528, 275, 219, 2051, 111, 659, 2028, 2025, 339, - /* 1500 */ 1851, 87, 566, 2024, 218, 88, 2082, 571, 1432, 300, - /* 1510 */ 2118, 243, 568, 109, 2084, 663, 2086, 2087, 658, 148, - /* 1520 */ 653, 242, 2083, 225, 1847, 2262, 2082, 2171, 227, 157, - /* 1530 */ 2118, 379, 2167, 109, 2084, 663, 2086, 2087, 658, 158, - /* 1540 */ 653, 1849, 2190, 1845, 570, 2144, 2083, 2171, 159, 160, - /* 1550 */ 572, 379, 2167, 244, 246, 2101, 578, 2202, 2212, 585, - /* 1560 */ 575, 595, 633, 660, 2217, 252, 255, 591, 2051, 368, - /* 1570 */ 659, 217, 211, 598, 7, 604, 216, 586, 505, 2101, - /* 1580 */ 584, 2216, 583, 265, 615, 369, 1615, 660, 612, 2265, - /* 1590 */ 138, 262, 2051, 1498, 659, 209, 2083, 2193, 2187, 623, - /* 1600 */ 2082, 372, 172, 263, 2118, 1504, 260, 109, 2084, 663, - /* 1610 */ 2086, 2087, 658, 2083, 653, 274, 264, 95, 268, 646, - /* 1620 */ 301, 2171, 1974, 2241, 2082, 379, 2167, 636, 2118, 2101, - /* 1630 */ 631, 110, 2084, 663, 2086, 2087, 658, 660, 653, 302, - /* 1640 */ 637, 632, 2051, 1988, 659, 2171, 2101, 97, 1987, 2170, - /* 1650 */ 2167, 303, 1986, 375, 660, 1862, 60, 2152, 99, 2051, - /* 1660 */ 101, 659, 665, 1906, 746, 1824, 295, 306, 747, 310, - /* 1670 */ 749, 341, 50, 2083, 2082, 315, 2043, 308, 2118, 2042, - /* 1680 */ 342, 321, 2084, 663, 2086, 2087, 658, 329, 653, 330, - /* 1690 */ 319, 2082, 2041, 2083, 77, 2118, 2038, 401, 110, 2084, - /* 1700 */ 663, 2086, 2087, 658, 402, 653, 2101, 1462, 1463, 188, - /* 1710 */ 406, 2036, 2171, 408, 660, 409, 648, 2167, 410, 2051, - /* 1720 */ 2035, 659, 412, 2034, 414, 603, 2101, 2033, 416, 2032, - /* 1730 */ 418, 78, 1428, 1427, 660, 2000, 1999, 1998, 426, 2051, - /* 1740 */ 425, 659, 1997, 1996, 1379, 1952, 1951, 1949, 1948, 144, - /* 1750 */ 1947, 661, 1950, 1946, 1945, 2118, 2083, 1943, 110, 2084, - /* 1760 */ 663, 2086, 2087, 658, 1942, 653, 1941, 193, 443, 1940, - /* 1770 */ 445, 2082, 2171, 1954, 1939, 2118, 344, 2167, 169, 2084, - /* 1780 */ 663, 2086, 2087, 658, 1381, 653, 1938, 1937, 1936, 2101, - /* 1790 */ 1935, 1934, 1933, 1932, 374, 1931, 1930, 660, 1929, 1928, - /* 1800 */ 1927, 1926, 2051, 1925, 659, 146, 1924, 1923, 1922, 1953, - /* 1810 */ 1921, 1920, 1919, 1918, 2083, 1917, 473, 1916, 1915, 1254, - /* 1820 */ 337, 338, 1770, 201, 1258, 1769, 203, 1768, 204, 1250, - /* 1830 */ 1766, 2264, 1730, 177, 2082, 1162, 1729, 1161, 2118, 2083, - /* 1840 */ 2015, 328, 2084, 663, 2086, 2087, 658, 2101, 653, 2007, - /* 1850 */ 1995, 2071, 494, 1994, 1972, 657, 206, 1840, 75, 76, - /* 1860 */ 2051, 214, 659, 496, 207, 212, 1765, 1763, 511, 1761, - /* 1870 */ 515, 1759, 2101, 513, 519, 1757, 517, 384, 1744, 512, - /* 1880 */ 660, 523, 521, 525, 1743, 2051, 516, 659, 1726, 520, - /* 1890 */ 1842, 62, 2082, 1196, 1327, 524, 2118, 1841, 1326, 327, - /* 1900 */ 2084, 663, 2086, 2087, 658, 1241, 653, 1240, 2137, 1239, - /* 1910 */ 1755, 1232, 2083, 1748, 1238, 1237, 1234, 2082, 1233, 1746, - /* 1920 */ 1231, 2118, 359, 360, 328, 2084, 663, 2086, 2087, 658, - /* 1930 */ 718, 653, 550, 2083, 361, 720, 224, 553, 1725, 555, - /* 1940 */ 1724, 557, 1723, 559, 112, 2101, 1450, 2014, 26, 1452, - /* 1950 */ 386, 1449, 1454, 660, 1436, 66, 2006, 573, 2051, 1993, - /* 1960 */ 659, 1434, 2083, 1991, 162, 2247, 2101, 19, 16, 1663, - /* 1970 */ 20, 58, 59, 28, 660, 258, 259, 251, 30, 2051, - /* 1980 */ 64, 659, 17, 2083, 2072, 587, 1678, 21, 5, 6, - /* 1990 */ 2082, 589, 1677, 370, 2118, 2101, 253, 328, 2084, 663, - /* 2000 */ 2086, 2087, 658, 660, 653, 1682, 1645, 170, 2051, 257, - /* 2010 */ 659, 565, 271, 55, 1681, 2118, 2101, 29, 323, 2084, - /* 2020 */ 663, 2086, 2087, 658, 660, 653, 574, 579, 371, 2051, - /* 2030 */ 247, 659, 365, 2083, 1637, 57, 91, 173, 1992, 1990, - /* 2040 */ 2082, 1989, 1683, 1971, 2118, 1684, 1612, 312, 2084, 663, - /* 2050 */ 2086, 2087, 658, 1611, 653, 93, 94, 277, 2083, 96, - /* 2060 */ 22, 2082, 278, 1970, 280, 2118, 2101, 1643, 313, 2084, - /* 2070 */ 663, 2086, 2087, 658, 660, 653, 285, 287, 67, 2051, - /* 2080 */ 290, 659, 98, 102, 23, 1564, 634, 1563, 12, 1487, - /* 2090 */ 1519, 2101, 2121, 2083, 174, 1542, 1540, 652, 10, 660, - /* 2100 */ 36, 186, 1539, 15, 2051, 24, 659, 1574, 1511, 25, - /* 2110 */ 56, 2082, 1312, 662, 666, 2118, 2083, 664, 314, 2084, - /* 2120 */ 663, 2086, 2087, 658, 387, 653, 2101, 668, 670, 1309, - /* 2130 */ 671, 673, 1306, 1300, 660, 674, 2082, 676, 1298, 2051, - /* 2140 */ 2118, 659, 677, 320, 2084, 663, 2086, 2087, 658, 2101, - /* 2150 */ 653, 679, 680, 1289, 293, 103, 104, 660, 1321, 1304, - /* 2160 */ 686, 74, 2051, 1317, 659, 1194, 1248, 1303, 1302, 1301, - /* 2170 */ 696, 2082, 1228, 1227, 2083, 2118, 708, 1226, 324, 2084, - /* 2180 */ 663, 2086, 2087, 658, 1225, 653, 1224, 1223, 1221, 1219, - /* 2190 */ 1218, 1217, 294, 2083, 2082, 1215, 1214, 1213, 2118, 1212, - /* 2200 */ 1211, 316, 2084, 663, 2086, 2087, 658, 2101, 653, 1210, - /* 2210 */ 1245, 1209, 1200, 1243, 1206, 660, 1205, 1202, 1201, 1199, - /* 2220 */ 2051, 1762, 659, 728, 730, 1760, 2101, 732, 729, 1758, - /* 2230 */ 734, 736, 738, 1756, 660, 733, 740, 737, 742, 2051, - /* 2240 */ 1742, 659, 741, 744, 1151, 1722, 297, 748, 1697, 1473, - /* 2250 */ 307, 751, 2082, 1697, 2083, 1697, 2118, 752, 1697, 325, - /* 2260 */ 2084, 663, 2086, 2087, 658, 1697, 653, 1697, 1697, 1697, - /* 2270 */ 1697, 2082, 1697, 1697, 1697, 2118, 1697, 1697, 317, 2084, - /* 2280 */ 663, 2086, 2087, 658, 1697, 653, 1697, 2101, 1697, 1697, - /* 2290 */ 1697, 1697, 1697, 1697, 1697, 660, 1697, 1697, 1697, 1697, - /* 2300 */ 2051, 1697, 659, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2310 */ 1697, 1697, 2083, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2320 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 2083, 1697, - /* 2330 */ 1697, 1697, 2082, 1697, 1697, 1697, 2118, 1697, 1697, 326, - /* 2340 */ 2084, 663, 2086, 2087, 658, 2101, 653, 1697, 1697, 1697, - /* 2350 */ 1697, 1697, 1697, 660, 1697, 1697, 1697, 1697, 2051, 1697, - /* 2360 */ 659, 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, - /* 2370 */ 1697, 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, - /* 2380 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2390 */ 2082, 2083, 1697, 1697, 2118, 1697, 1697, 318, 2084, 663, - /* 2400 */ 2086, 2087, 658, 1697, 653, 1697, 2082, 2083, 1697, 1697, - /* 2410 */ 2118, 1697, 1697, 331, 2084, 663, 2086, 2087, 658, 1697, - /* 2420 */ 653, 1697, 1697, 1697, 2101, 1697, 2083, 1697, 1697, 1697, - /* 2430 */ 1697, 1697, 660, 1697, 1697, 1697, 1697, 2051, 1697, 659, - /* 2440 */ 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, 1697, - /* 2450 */ 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, 2101, - /* 2460 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, 1697, 2082, - /* 2470 */ 1697, 1697, 2051, 2118, 659, 1697, 332, 2084, 663, 2086, - /* 2480 */ 2087, 658, 1697, 653, 1697, 2082, 1697, 1697, 1697, 2118, - /* 2490 */ 2083, 1697, 2095, 2084, 663, 2086, 2087, 658, 1697, 653, - /* 2500 */ 1697, 1697, 1697, 1697, 2082, 1697, 1697, 2083, 2118, 1697, - /* 2510 */ 1697, 2094, 2084, 663, 2086, 2087, 658, 1697, 653, 1697, - /* 2520 */ 1697, 1697, 1697, 2101, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2530 */ 1697, 660, 1697, 1697, 1697, 1697, 2051, 1697, 659, 1697, - /* 2540 */ 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, 1697, - /* 2550 */ 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, 1697, - /* 2560 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 2083, 2082, 1697, - /* 2570 */ 1697, 1697, 2118, 1697, 1697, 2093, 2084, 663, 2086, 2087, - /* 2580 */ 658, 1697, 653, 1697, 1697, 2082, 1697, 2083, 1697, 2118, - /* 2590 */ 1697, 1697, 346, 2084, 663, 2086, 2087, 658, 1697, 653, - /* 2600 */ 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, 1697, - /* 2610 */ 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, 1697, - /* 2620 */ 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, 1697, - /* 2630 */ 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, 1697, - /* 2640 */ 1697, 1697, 1697, 1697, 1697, 2082, 1697, 1697, 1697, 2118, - /* 2650 */ 1697, 1697, 347, 2084, 663, 2086, 2087, 658, 1697, 653, - /* 2660 */ 1697, 2083, 1697, 1697, 1697, 2082, 1697, 1697, 1697, 2118, - /* 2670 */ 1697, 1697, 343, 2084, 663, 2086, 2087, 658, 2083, 653, - /* 2680 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2690 */ 1697, 1697, 1697, 1697, 2101, 1697, 1697, 1697, 1697, 1697, - /* 2700 */ 1697, 1697, 660, 1697, 1697, 1697, 1697, 2051, 1697, 659, - /* 2710 */ 1697, 2101, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 660, - /* 2720 */ 1697, 1697, 1697, 1697, 2051, 1697, 659, 1697, 1697, 1697, - /* 2730 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 2082, - /* 2740 */ 2083, 1697, 1697, 2118, 1697, 1697, 348, 2084, 663, 2086, - /* 2750 */ 2087, 658, 1697, 653, 1697, 1697, 661, 1697, 1697, 1697, - /* 2760 */ 2118, 1697, 1697, 323, 2084, 663, 2086, 2087, 658, 1697, - /* 2770 */ 653, 1697, 1697, 2101, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2780 */ 1697, 660, 1697, 1697, 1697, 1697, 2051, 1697, 659, 1697, - /* 2790 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2800 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, - /* 2810 */ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 2082, 1697, - /* 2820 */ 1697, 1697, 2118, 1697, 1697, 322, 2084, 663, 2086, 2087, - /* 2830 */ 658, 1697, 653, + /* 0 */ 1870, 1998, 427, 1932, 629, 494, 426, 495, 1748, 164, + /* 10 */ 366, 2084, 45, 43, 1636, 1710, 1996, 635, 1882, 1930, + /* 20 */ 388, 433, 1485, 393, 38, 37, 1925, 1927, 44, 42, + /* 30 */ 41, 40, 39, 1566, 122, 1483, 1778, 121, 120, 119, + /* 40 */ 118, 117, 116, 115, 114, 113, 2080, 2086, 586, 500, + /* 50 */ 586, 1510, 2261, 2102, 2261, 496, 2266, 658, 1561, 503, + /* 60 */ 2261, 495, 1748, 333, 18, 1511, 647, 2267, 182, 2267, + /* 70 */ 182, 1491, 2262, 612, 2262, 612, 2265, 1932, 35, 291, + /* 80 */ 2262, 2264, 86, 401, 351, 512, 2120, 400, 44, 42, + /* 90 */ 41, 40, 39, 1930, 626, 1926, 1927, 755, 355, 2070, + /* 100 */ 14, 664, 732, 731, 730, 729, 398, 1874, 728, 727, + /* 110 */ 143, 722, 721, 720, 719, 718, 717, 716, 156, 712, + /* 120 */ 711, 710, 397, 396, 707, 706, 705, 704, 703, 586, + /* 130 */ 2037, 2101, 1182, 2261, 1181, 2137, 1568, 1569, 109, 2103, + /* 140 */ 668, 2105, 2106, 663, 633, 658, 1998, 222, 2267, 182, + /* 150 */ 179, 65, 2190, 2262, 612, 611, 382, 2186, 379, 2261, + /* 160 */ 648, 1995, 635, 1183, 623, 611, 1541, 1551, 647, 2261, + /* 170 */ 184, 61, 1567, 1570, 610, 182, 132, 240, 2216, 2262, + /* 180 */ 612, 1346, 1347, 533, 610, 182, 1486, 1491, 1484, 2262, + /* 190 */ 612, 1932, 1735, 1879, 1705, 38, 37, 139, 376, 44, + /* 200 */ 42, 41, 40, 39, 38, 37, 606, 1930, 44, 42, + /* 210 */ 41, 40, 39, 2102, 1489, 1490, 1513, 1540, 1543, 1544, + /* 220 */ 1545, 1546, 1547, 1548, 1549, 1550, 660, 656, 1559, 1560, + /* 230 */ 1562, 1563, 1564, 1565, 2, 45, 43, 1932, 2070, 647, + /* 240 */ 336, 1510, 1508, 388, 381, 1485, 2120, 61, 48, 464, + /* 250 */ 623, 345, 478, 1930, 665, 477, 1566, 648, 1483, 2070, + /* 260 */ 176, 664, 625, 180, 2198, 2199, 702, 137, 2203, 391, + /* 270 */ 447, 1509, 479, 132, 167, 449, 1724, 161, 2089, 1664, + /* 280 */ 538, 1561, 1982, 139, 367, 176, 1881, 18, 2056, 2084, + /* 290 */ 1879, 2101, 1704, 1930, 1491, 2137, 1595, 166, 109, 2103, + /* 300 */ 668, 2105, 2106, 663, 1820, 658, 353, 1981, 142, 1597, + /* 310 */ 149, 2161, 2190, 1713, 1510, 2102, 382, 2186, 574, 48, + /* 320 */ 755, 354, 185, 14, 2080, 2086, 598, 597, 1662, 1663, + /* 330 */ 1665, 1666, 1667, 437, 122, 658, 408, 121, 120, 119, + /* 340 */ 118, 117, 116, 115, 114, 113, 547, 546, 2120, 181, + /* 350 */ 2198, 2199, 1596, 137, 2203, 1182, 665, 1181, 693, 1568, + /* 360 */ 1569, 2070, 475, 664, 250, 469, 468, 467, 466, 463, + /* 370 */ 462, 461, 460, 459, 455, 454, 453, 452, 335, 444, + /* 380 */ 443, 442, 32, 439, 438, 352, 1183, 1401, 1402, 1541, + /* 390 */ 1551, 49, 1602, 2101, 61, 1567, 1570, 2137, 185, 601, + /* 400 */ 109, 2103, 668, 2105, 2106, 663, 1512, 658, 11, 1486, + /* 410 */ 9, 1484, 2165, 650, 2190, 2162, 38, 37, 382, 2186, + /* 420 */ 44, 42, 41, 40, 39, 34, 386, 1590, 1591, 1592, + /* 430 */ 1593, 1594, 1598, 1599, 1600, 1601, 1163, 1489, 1490, 273, + /* 440 */ 1540, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 660, + /* 450 */ 656, 1559, 1560, 1562, 1563, 1564, 1565, 2, 11, 45, + /* 460 */ 43, 493, 13, 12, 498, 1754, 2205, 388, 2120, 1485, + /* 470 */ 185, 2102, 1932, 11, 223, 1165, 605, 1168, 1169, 392, + /* 480 */ 1566, 61, 1483, 92, 607, 602, 595, 502, 1930, 171, + /* 490 */ 498, 1754, 2202, 2266, 61, 529, 525, 521, 517, 220, + /* 500 */ 2102, 634, 726, 724, 2120, 1561, 1856, 1312, 178, 1675, + /* 510 */ 1512, 18, 626, 41, 40, 39, 634, 2070, 1491, 664, + /* 520 */ 634, 1919, 604, 1303, 690, 689, 688, 1307, 687, 1309, + /* 530 */ 1310, 686, 683, 2120, 1318, 680, 1320, 1321, 677, 674, + /* 540 */ 87, 665, 185, 218, 755, 185, 2070, 14, 664, 2101, + /* 550 */ 510, 556, 1991, 2137, 272, 714, 109, 2103, 668, 2105, + /* 560 */ 2106, 663, 1609, 658, 581, 632, 566, 1991, 179, 643, + /* 570 */ 2190, 1991, 1255, 694, 382, 2186, 1923, 106, 2101, 425, + /* 580 */ 236, 424, 2137, 1568, 1569, 109, 2103, 668, 2105, 2106, + /* 590 */ 663, 1698, 658, 140, 539, 559, 2217, 2163, 1712, 2190, + /* 600 */ 553, 1871, 1734, 382, 2186, 235, 1733, 423, 1257, 2102, + /* 610 */ 217, 211, 1513, 1541, 1551, 216, 1253, 508, 700, 1567, + /* 620 */ 1570, 623, 131, 130, 129, 128, 127, 126, 125, 124, + /* 630 */ 123, 152, 185, 1486, 209, 1484, 154, 153, 697, 696, + /* 640 */ 695, 151, 2120, 380, 655, 185, 69, 1640, 2070, 68, + /* 650 */ 665, 164, 2070, 1510, 139, 2070, 1962, 664, 272, 1868, + /* 660 */ 1881, 1489, 1490, 1511, 1540, 1543, 1544, 1545, 1546, 1547, + /* 670 */ 1548, 1549, 1550, 660, 656, 1559, 1560, 1562, 1563, 1564, + /* 680 */ 1565, 2, 45, 43, 1571, 238, 2102, 2101, 53, 237, + /* 690 */ 388, 2137, 1485, 648, 109, 2103, 668, 2105, 2106, 663, + /* 700 */ 1855, 658, 1821, 1566, 31, 1483, 2281, 420, 2190, 187, + /* 710 */ 38, 37, 382, 2186, 44, 42, 41, 40, 39, 2120, + /* 720 */ 183, 2198, 2199, 2224, 137, 2203, 1879, 665, 1561, 1266, + /* 730 */ 422, 418, 2070, 652, 664, 2162, 2102, 551, 550, 549, + /* 740 */ 2088, 1491, 1265, 1633, 541, 136, 545, 1864, 89, 340, + /* 750 */ 544, 2084, 365, 1725, 567, 543, 548, 361, 360, 1732, + /* 760 */ 191, 542, 2102, 702, 2101, 648, 1731, 755, 2137, 2120, + /* 770 */ 46, 109, 2103, 668, 2105, 2106, 663, 662, 658, 1418, + /* 780 */ 1419, 54, 2070, 2281, 664, 2190, 2080, 2086, 369, 382, + /* 790 */ 2186, 194, 1730, 2205, 1587, 2120, 1485, 658, 1879, 1542, + /* 800 */ 2237, 648, 471, 665, 480, 2070, 1568, 1569, 2070, 1483, + /* 810 */ 664, 451, 2070, 1866, 2101, 1417, 1420, 431, 2137, 2201, + /* 820 */ 450, 327, 2103, 668, 2105, 2106, 663, 661, 658, 649, + /* 830 */ 2155, 715, 83, 1841, 1879, 82, 1541, 1551, 2070, 648, + /* 840 */ 2101, 358, 1567, 1570, 2137, 1491, 648, 109, 2103, 668, + /* 850 */ 2105, 2106, 663, 1862, 658, 432, 1486, 1781, 1484, 2281, + /* 860 */ 391, 2190, 441, 198, 197, 382, 2186, 1576, 164, 1977, + /* 870 */ 1270, 755, 1879, 1510, 1729, 1728, 593, 1881, 692, 1879, + /* 880 */ 190, 2102, 239, 1269, 1489, 1490, 470, 1540, 1543, 1544, + /* 890 */ 1545, 1546, 1547, 1548, 1549, 1550, 660, 656, 1559, 1560, + /* 900 */ 1562, 1563, 1564, 1565, 2, 45, 43, 359, 2088, 357, + /* 910 */ 356, 2063, 535, 388, 2120, 1485, 537, 648, 245, 2084, + /* 920 */ 2070, 2070, 665, 551, 550, 549, 1566, 2070, 1483, 664, + /* 930 */ 541, 136, 545, 456, 100, 141, 544, 536, 2161, 1168, + /* 940 */ 1169, 543, 548, 361, 360, 482, 2205, 542, 1458, 1459, + /* 950 */ 1879, 1561, 540, 2102, 2080, 2086, 370, 586, 1872, 2101, + /* 960 */ 1486, 2261, 1484, 2137, 1491, 658, 109, 2103, 668, 2105, + /* 970 */ 2106, 663, 2200, 658, 1251, 86, 2267, 182, 2281, 394, + /* 980 */ 2190, 2262, 612, 1513, 382, 2186, 2120, 164, 1489, 1490, + /* 990 */ 755, 1632, 565, 46, 665, 2255, 1881, 282, 283, 2070, + /* 1000 */ 1875, 664, 281, 385, 384, 563, 1932, 561, 2266, 1727, + /* 1010 */ 38, 37, 2261, 1499, 44, 42, 41, 40, 39, 1542, + /* 1020 */ 648, 648, 1931, 1977, 1566, 1726, 1492, 8, 2265, 1568, + /* 1030 */ 1569, 2101, 2262, 2263, 192, 2137, 457, 511, 109, 2103, + /* 1040 */ 668, 2105, 2106, 663, 2265, 658, 27, 648, 698, 1561, + /* 1050 */ 2281, 1923, 2190, 1879, 1879, 2070, 382, 2186, 699, 1541, + /* 1060 */ 1551, 1923, 1491, 1876, 537, 1567, 1570, 2209, 38, 37, + /* 1070 */ 648, 2070, 44, 42, 41, 40, 39, 2053, 659, 1486, + /* 1080 */ 1879, 1484, 1977, 2230, 33, 536, 241, 615, 654, 1723, + /* 1090 */ 38, 37, 434, 196, 44, 42, 41, 40, 39, 1854, + /* 1100 */ 1722, 1721, 1720, 1879, 2102, 435, 305, 1489, 1490, 1909, + /* 1110 */ 1540, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 660, + /* 1120 */ 656, 1559, 1560, 1562, 1563, 1564, 1565, 2, 45, 43, + /* 1130 */ 1719, 249, 2210, 1629, 1857, 2070, 388, 2120, 1485, 648, + /* 1140 */ 648, 228, 623, 221, 226, 665, 2070, 2070, 2070, 1566, + /* 1150 */ 2070, 1483, 664, 1510, 230, 582, 627, 229, 38, 37, + /* 1160 */ 73, 1652, 44, 42, 41, 40, 39, 648, 51, 648, + /* 1170 */ 3, 1718, 1879, 1879, 1561, 139, 2070, 1500, 147, 1495, + /* 1180 */ 1717, 648, 2101, 631, 267, 286, 2137, 1491, 599, 109, + /* 1190 */ 2103, 668, 2105, 2106, 663, 232, 658, 645, 231, 1494, + /* 1200 */ 1879, 651, 1879, 2190, 1716, 1503, 1505, 382, 2186, 81, + /* 1210 */ 1715, 700, 234, 755, 1879, 233, 14, 2070, 656, 1559, + /* 1220 */ 1560, 1562, 1563, 1564, 1565, 2064, 2070, 261, 648, 154, + /* 1230 */ 153, 697, 696, 695, 151, 165, 152, 145, 1629, 134, + /* 1240 */ 311, 270, 2198, 622, 646, 133, 621, 648, 585, 2261, + /* 1250 */ 2070, 648, 1568, 1569, 309, 72, 2070, 248, 71, 1768, + /* 1260 */ 569, 1879, 568, 292, 610, 182, 152, 395, 63, 2262, + /* 1270 */ 612, 586, 1761, 1707, 1708, 2261, 205, 490, 488, 485, + /* 1280 */ 1879, 552, 1541, 1551, 1879, 415, 618, 700, 1567, 1570, + /* 1290 */ 2267, 182, 1759, 1453, 554, 2262, 612, 63, 1493, 1542, + /* 1300 */ 254, 90, 1486, 2121, 1484, 154, 153, 697, 696, 695, + /* 1310 */ 151, 2091, 614, 572, 557, 152, 616, 61, 163, 47, + /* 1320 */ 52, 13, 12, 1456, 279, 1661, 1212, 2102, 70, 150, + /* 1330 */ 1489, 1490, 152, 1540, 1543, 1544, 1545, 1546, 1547, 1548, + /* 1340 */ 1549, 1550, 660, 656, 1559, 1560, 1562, 1563, 1564, 1565, + /* 1350 */ 2, 63, 1497, 47, 1660, 108, 399, 256, 2102, 586, + /* 1360 */ 2120, 47, 1213, 2261, 2093, 672, 708, 150, 665, 1986, + /* 1370 */ 1749, 709, 630, 2070, 152, 664, 1415, 135, 2267, 182, + /* 1380 */ 150, 284, 105, 2262, 612, 640, 288, 1920, 1231, 1296, + /* 1390 */ 1755, 2120, 102, 1229, 2220, 80, 79, 430, 269, 665, + /* 1400 */ 189, 624, 266, 1, 2070, 2101, 664, 4, 1603, 2137, + /* 1410 */ 1552, 402, 168, 2103, 668, 2105, 2106, 663, 304, 658, + /* 1420 */ 334, 407, 1324, 416, 1328, 1438, 414, 410, 406, 403, + /* 1430 */ 423, 1335, 349, 299, 1333, 195, 2101, 155, 2102, 750, + /* 1440 */ 2137, 2088, 436, 110, 2103, 668, 2105, 2106, 663, 1513, + /* 1450 */ 658, 1496, 2084, 587, 2227, 1987, 445, 2190, 2102, 38, + /* 1460 */ 37, 2189, 2186, 44, 42, 41, 40, 39, 185, 440, + /* 1470 */ 473, 2120, 1508, 458, 465, 483, 1979, 472, 474, 665, + /* 1480 */ 484, 481, 200, 486, 2070, 487, 664, 2080, 2086, 383, + /* 1490 */ 199, 2120, 202, 1514, 489, 492, 491, 501, 658, 665, + /* 1500 */ 1516, 504, 1511, 208, 2070, 505, 664, 1515, 210, 506, + /* 1510 */ 1517, 507, 213, 509, 513, 215, 2101, 619, 1185, 84, + /* 1520 */ 2137, 85, 530, 110, 2103, 668, 2105, 2106, 663, 219, + /* 1530 */ 658, 531, 532, 571, 88, 2102, 666, 2190, 2046, 339, + /* 1540 */ 2137, 653, 2186, 110, 2103, 668, 2105, 2106, 663, 534, + /* 1550 */ 658, 1869, 2102, 111, 225, 1865, 227, 2190, 2043, 157, + /* 1560 */ 158, 344, 2186, 2042, 1867, 148, 1863, 159, 2120, 160, + /* 1570 */ 242, 576, 300, 573, 577, 575, 665, 580, 246, 583, + /* 1580 */ 244, 2070, 600, 664, 2236, 2120, 590, 638, 596, 609, + /* 1590 */ 371, 372, 2235, 665, 2221, 2231, 2212, 603, 2070, 260, + /* 1600 */ 664, 172, 252, 7, 255, 588, 620, 591, 589, 1629, + /* 1610 */ 617, 262, 2102, 2101, 268, 2284, 2260, 2137, 138, 1512, + /* 1620 */ 169, 2103, 668, 2105, 2106, 663, 265, 658, 628, 263, + /* 1630 */ 2101, 264, 2206, 1518, 2137, 375, 2102, 110, 2103, 668, + /* 1640 */ 2105, 2106, 663, 274, 658, 2120, 95, 1992, 301, 636, + /* 1650 */ 60, 2190, 637, 665, 302, 2006, 2187, 2005, 2070, 641, + /* 1660 */ 664, 97, 2004, 99, 303, 378, 2171, 101, 642, 2120, + /* 1670 */ 1880, 1842, 613, 2282, 670, 306, 1924, 665, 751, 752, + /* 1680 */ 754, 330, 2070, 310, 664, 295, 315, 329, 308, 341, + /* 1690 */ 2101, 50, 2062, 2061, 2137, 342, 2060, 168, 2103, 668, + /* 1700 */ 2105, 2106, 663, 77, 658, 2057, 319, 2102, 404, 405, + /* 1710 */ 1476, 1477, 188, 409, 2101, 2055, 411, 412, 2137, 413, + /* 1720 */ 2054, 321, 2103, 668, 2105, 2106, 663, 350, 658, 2102, + /* 1730 */ 2052, 2051, 417, 419, 2050, 421, 78, 1441, 1440, 2228, + /* 1740 */ 2120, 2018, 2017, 2016, 428, 429, 2015, 2014, 665, 1392, + /* 1750 */ 1970, 1969, 1967, 2070, 144, 664, 1966, 1965, 1968, 1964, + /* 1760 */ 1963, 1961, 2120, 1960, 1959, 608, 193, 377, 446, 1958, + /* 1770 */ 665, 448, 1972, 1957, 1956, 2070, 1955, 664, 1954, 2102, + /* 1780 */ 1953, 1952, 1951, 1950, 1949, 2101, 1948, 1947, 1946, 2137, + /* 1790 */ 1945, 1944, 169, 2103, 668, 2105, 2106, 663, 1943, 658, + /* 1800 */ 1942, 1941, 2102, 1940, 146, 1971, 1939, 2101, 1938, 1937, + /* 1810 */ 1936, 2137, 2120, 1935, 328, 2103, 668, 2105, 2106, 663, + /* 1820 */ 662, 658, 476, 1934, 1394, 2070, 1933, 664, 337, 1267, + /* 1830 */ 1784, 338, 1263, 1271, 1783, 2120, 1782, 201, 1780, 1744, + /* 1840 */ 387, 206, 2090, 665, 1743, 2283, 1171, 203, 2070, 1170, + /* 1850 */ 664, 204, 2033, 75, 2025, 2013, 177, 2101, 207, 76, + /* 1860 */ 2102, 2137, 497, 212, 327, 2103, 668, 2105, 2106, 663, + /* 1870 */ 2012, 658, 499, 2156, 1990, 214, 1858, 1779, 1777, 515, + /* 1880 */ 2101, 758, 1205, 514, 2137, 516, 1775, 328, 2103, 668, + /* 1890 */ 2105, 2106, 663, 2120, 658, 298, 518, 519, 389, 520, + /* 1900 */ 1773, 665, 522, 524, 523, 1771, 2070, 526, 664, 1758, + /* 1910 */ 175, 527, 528, 1757, 1740, 1860, 748, 744, 740, 736, + /* 1920 */ 296, 1339, 1340, 1859, 1254, 1252, 1250, 2102, 62, 224, + /* 1930 */ 1249, 1248, 1247, 1246, 1241, 1769, 723, 725, 2101, 1243, + /* 1940 */ 362, 1242, 2137, 1240, 1762, 328, 2103, 668, 2105, 2106, + /* 1950 */ 663, 363, 658, 555, 1760, 364, 2102, 558, 1739, 560, + /* 1960 */ 2120, 107, 1738, 562, 289, 1737, 112, 564, 665, 1463, + /* 1970 */ 1467, 1465, 1462, 2070, 2032, 664, 1447, 1449, 2024, 26, + /* 1980 */ 66, 162, 578, 2011, 2009, 2266, 19, 2102, 28, 2120, + /* 1990 */ 64, 247, 16, 58, 251, 55, 644, 665, 5, 592, + /* 2000 */ 59, 579, 2070, 584, 664, 570, 259, 6, 368, 2137, + /* 2010 */ 258, 1677, 323, 2103, 668, 2105, 2106, 663, 2102, 658, + /* 2020 */ 2120, 594, 253, 2091, 30, 20, 1659, 170, 665, 21, + /* 2030 */ 257, 276, 29, 2070, 2101, 664, 275, 1692, 2137, 1651, + /* 2040 */ 91, 312, 2103, 668, 2105, 2106, 663, 1691, 658, 1697, + /* 2050 */ 373, 2120, 1445, 1698, 1626, 243, 1696, 1695, 374, 665, + /* 2060 */ 271, 57, 2010, 173, 2070, 2101, 664, 2008, 1625, 2137, + /* 2070 */ 2007, 1989, 313, 2103, 668, 2105, 2106, 663, 94, 658, + /* 2080 */ 277, 93, 2102, 1988, 17, 96, 56, 278, 22, 287, + /* 2090 */ 1657, 280, 285, 67, 98, 290, 2101, 23, 1578, 2102, + /* 2100 */ 2137, 10, 639, 314, 2103, 668, 2105, 2106, 663, 102, + /* 2110 */ 658, 12, 1577, 1501, 1533, 2120, 174, 669, 2140, 186, + /* 2120 */ 657, 1588, 671, 665, 390, 1556, 1554, 36, 2070, 1553, + /* 2130 */ 664, 15, 2120, 1525, 24, 667, 1325, 25, 673, 675, + /* 2140 */ 665, 1322, 676, 678, 1319, 2070, 1313, 664, 681, 2102, + /* 2150 */ 679, 682, 684, 1311, 685, 1302, 691, 1334, 103, 293, + /* 2160 */ 2101, 104, 1330, 74, 2137, 1237, 1203, 320, 2103, 668, + /* 2170 */ 2105, 2106, 663, 1236, 658, 701, 1235, 2101, 1317, 1316, + /* 2180 */ 1315, 2137, 2120, 1314, 324, 2103, 668, 2105, 2106, 663, + /* 2190 */ 665, 658, 1234, 1233, 1232, 2070, 1230, 664, 1228, 2102, + /* 2200 */ 1227, 1226, 1261, 713, 294, 1224, 1223, 1222, 1221, 1220, + /* 2210 */ 1219, 1218, 1256, 1258, 1215, 2102, 1214, 1211, 1209, 1210, + /* 2220 */ 1208, 1776, 733, 1774, 1772, 737, 734, 2101, 735, 1770, + /* 2230 */ 739, 2137, 2120, 741, 316, 2103, 668, 2105, 2106, 663, + /* 2240 */ 665, 658, 738, 742, 743, 2070, 745, 664, 2120, 746, + /* 2250 */ 1756, 747, 749, 1160, 1736, 297, 665, 753, 1711, 1487, + /* 2260 */ 307, 2070, 756, 664, 757, 1711, 1711, 1711, 1711, 1711, + /* 2270 */ 1711, 1711, 1711, 1711, 1711, 1711, 2102, 2101, 1711, 1711, + /* 2280 */ 1711, 2137, 1711, 1711, 325, 2103, 668, 2105, 2106, 663, + /* 2290 */ 1711, 658, 1711, 2101, 2102, 1711, 1711, 2137, 1711, 1711, + /* 2300 */ 317, 2103, 668, 2105, 2106, 663, 1711, 658, 1711, 2120, + /* 2310 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, + /* 2320 */ 1711, 1711, 2070, 1711, 664, 1711, 1711, 2120, 1711, 1711, + /* 2330 */ 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, + /* 2340 */ 2070, 1711, 664, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2350 */ 1711, 1711, 2102, 1711, 2101, 1711, 1711, 1711, 2137, 1711, + /* 2360 */ 1711, 326, 2103, 668, 2105, 2106, 663, 1711, 658, 2102, + /* 2370 */ 1711, 1711, 2101, 1711, 1711, 1711, 2137, 1711, 1711, 318, + /* 2380 */ 2103, 668, 2105, 2106, 663, 2120, 658, 1711, 1711, 1711, + /* 2390 */ 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, 2070, 1711, + /* 2400 */ 664, 1711, 2120, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2410 */ 665, 1711, 1711, 1711, 1711, 2070, 1711, 664, 1711, 1711, + /* 2420 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2430 */ 2101, 1711, 1711, 2102, 2137, 1711, 1711, 331, 2103, 668, + /* 2440 */ 2105, 2106, 663, 1711, 658, 1711, 1711, 2101, 1711, 2102, + /* 2450 */ 1711, 2137, 1711, 1711, 332, 2103, 668, 2105, 2106, 663, + /* 2460 */ 1711, 658, 1711, 1711, 1711, 1711, 2120, 1711, 1711, 1711, + /* 2470 */ 1711, 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, 2070, + /* 2480 */ 1711, 664, 2120, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2490 */ 665, 1711, 1711, 1711, 1711, 2070, 1711, 664, 1711, 1711, + /* 2500 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2510 */ 1711, 2101, 1711, 1711, 1711, 2137, 2102, 1711, 2114, 2103, + /* 2520 */ 668, 2105, 2106, 663, 1711, 658, 1711, 2101, 1711, 1711, + /* 2530 */ 1711, 2137, 1711, 2102, 2113, 2103, 668, 2105, 2106, 663, + /* 2540 */ 1711, 658, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 2120, + /* 2550 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, + /* 2560 */ 1711, 1711, 2070, 1711, 664, 1711, 2120, 1711, 1711, 1711, + /* 2570 */ 1711, 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, 2070, + /* 2580 */ 1711, 664, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2590 */ 1711, 1711, 1711, 1711, 2101, 2102, 1711, 1711, 2137, 1711, + /* 2600 */ 1711, 2112, 2103, 668, 2105, 2106, 663, 1711, 658, 1711, + /* 2610 */ 1711, 2101, 1711, 1711, 1711, 2137, 1711, 1711, 346, 2103, + /* 2620 */ 668, 2105, 2106, 663, 1711, 658, 1711, 1711, 2120, 1711, + /* 2630 */ 1711, 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, 1711, + /* 2640 */ 1711, 2070, 1711, 664, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2650 */ 1711, 1711, 1711, 1711, 1711, 1711, 2102, 1711, 1711, 1711, + /* 2660 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2670 */ 1711, 1711, 1711, 2101, 2102, 1711, 1711, 2137, 1711, 1711, + /* 2680 */ 347, 2103, 668, 2105, 2106, 663, 1711, 658, 1711, 2120, + /* 2690 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, + /* 2700 */ 1711, 1711, 2070, 1711, 664, 1711, 1711, 2120, 1711, 1711, + /* 2710 */ 1711, 1711, 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, + /* 2720 */ 2070, 1711, 664, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2730 */ 1711, 1711, 2102, 1711, 2101, 1711, 1711, 1711, 2137, 1711, + /* 2740 */ 1711, 343, 2103, 668, 2105, 2106, 663, 1711, 658, 2102, + /* 2750 */ 1711, 1711, 2101, 1711, 1711, 1711, 2137, 1711, 1711, 348, + /* 2760 */ 2103, 668, 2105, 2106, 663, 2120, 658, 1711, 1711, 1711, + /* 2770 */ 1711, 1711, 1711, 665, 1711, 1711, 1711, 1711, 2070, 1711, + /* 2780 */ 664, 1711, 2120, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2790 */ 665, 1711, 1711, 1711, 1711, 2070, 1711, 664, 1711, 1711, + /* 2800 */ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, + /* 2810 */ 666, 1711, 1711, 1711, 2137, 1711, 1711, 323, 2103, 668, + /* 2820 */ 2105, 2106, 663, 1711, 658, 1711, 1711, 2101, 1711, 1711, + /* 2830 */ 1711, 2137, 1711, 1711, 322, 2103, 668, 2105, 2106, 663, + /* 2840 */ 1711, 658, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 367, 443, 380, 347, 332, 447, 336, 365, 338, 339, - /* 10 */ 354, 378, 12, 13, 14, 373, 380, 395, 396, 367, - /* 20 */ 20, 463, 22, 340, 20, 467, 468, 332, 392, 416, - /* 30 */ 378, 395, 396, 33, 361, 35, 0, 365, 12, 13, - /* 40 */ 14, 15, 16, 340, 20, 373, 413, 414, 415, 20, - /* 50 */ 378, 22, 380, 340, 340, 442, 373, 424, 58, 443, - /* 60 */ 365, 419, 365, 447, 64, 413, 414, 415, 373, 372, - /* 70 */ 356, 71, 331, 378, 333, 380, 424, 363, 381, 463, - /* 80 */ 51, 408, 410, 467, 468, 382, 414, 373, 20, 417, - /* 90 */ 418, 419, 420, 421, 422, 367, 424, 97, 4, 63, - /* 100 */ 100, 429, 389, 431, 391, 410, 378, 435, 436, 414, - /* 110 */ 12, 13, 417, 418, 419, 420, 421, 422, 20, 424, - /* 120 */ 22, 449, 439, 440, 441, 332, 443, 444, 111, 457, - /* 130 */ 447, 33, 20, 35, 22, 376, 136, 137, 379, 380, - /* 140 */ 443, 413, 414, 415, 447, 462, 463, 35, 432, 433, - /* 150 */ 467, 468, 424, 458, 459, 58, 58, 0, 20, 462, - /* 160 */ 463, 20, 64, 51, 467, 468, 166, 167, 100, 71, - /* 170 */ 0, 378, 172, 173, 8, 9, 364, 160, 12, 13, - /* 180 */ 14, 15, 16, 66, 67, 68, 186, 63, 188, 377, - /* 190 */ 73, 74, 75, 365, 100, 97, 79, 100, 100, 102, - /* 200 */ 14, 84, 85, 100, 8, 9, 20, 90, 12, 13, - /* 210 */ 14, 15, 16, 213, 214, 387, 216, 217, 218, 219, + /* 0 */ 368, 381, 398, 366, 398, 337, 402, 339, 340, 366, + /* 10 */ 373, 379, 12, 13, 14, 330, 396, 397, 375, 382, + /* 20 */ 20, 341, 22, 377, 8, 9, 380, 381, 12, 13, + /* 30 */ 14, 15, 16, 33, 21, 35, 0, 24, 25, 26, + /* 40 */ 27, 28, 29, 30, 31, 32, 414, 415, 444, 14, + /* 50 */ 444, 20, 448, 333, 448, 20, 444, 425, 58, 337, + /* 60 */ 448, 339, 340, 383, 64, 20, 20, 463, 464, 463, + /* 70 */ 464, 71, 468, 469, 468, 469, 464, 366, 433, 434, + /* 80 */ 468, 469, 347, 398, 373, 63, 366, 402, 12, 13, + /* 90 */ 14, 15, 16, 382, 374, 380, 381, 97, 363, 379, + /* 100 */ 100, 381, 66, 67, 68, 69, 70, 372, 72, 73, + /* 110 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 120 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 444, + /* 130 */ 362, 411, 20, 448, 22, 415, 136, 137, 418, 419, + /* 140 */ 420, 421, 422, 423, 20, 425, 381, 35, 463, 464, + /* 150 */ 430, 4, 432, 468, 469, 444, 436, 437, 393, 448, + /* 160 */ 341, 396, 397, 51, 341, 444, 166, 167, 20, 448, + /* 170 */ 450, 100, 172, 173, 463, 464, 357, 409, 458, 468, + /* 180 */ 469, 136, 137, 364, 463, 464, 186, 71, 188, 468, + /* 190 */ 469, 366, 333, 374, 178, 8, 9, 374, 373, 12, + /* 200 */ 13, 14, 15, 16, 8, 9, 20, 382, 12, 13, + /* 210 */ 14, 15, 16, 333, 214, 215, 20, 217, 218, 219, /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - /* 230 */ 230, 231, 232, 233, 136, 137, 66, 67, 68, 69, - /* 240 */ 70, 100, 72, 73, 74, 75, 76, 77, 78, 79, - /* 250 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - /* 260 */ 90, 91, 92, 20, 166, 167, 171, 101, 96, 112, - /* 270 */ 172, 173, 21, 165, 35, 24, 25, 26, 27, 28, - /* 280 */ 29, 30, 31, 32, 186, 112, 188, 130, 131, 132, - /* 290 */ 133, 134, 135, 8, 9, 63, 4, 12, 13, 14, - /* 300 */ 15, 16, 373, 130, 131, 132, 133, 134, 135, 329, - /* 310 */ 71, 213, 214, 384, 216, 217, 218, 219, 220, 221, - /* 320 */ 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - /* 330 */ 232, 233, 234, 12, 13, 43, 0, 45, 46, 20, - /* 340 */ 168, 20, 97, 22, 250, 237, 373, 250, 20, 64, - /* 350 */ 255, 256, 257, 250, 33, 247, 35, 384, 113, 114, - /* 360 */ 115, 116, 117, 118, 119, 120, 121, 122, 346, 124, - /* 370 */ 125, 126, 127, 128, 129, 0, 2, 397, 332, 58, - /* 380 */ 44, 401, 8, 9, 362, 64, 12, 13, 14, 15, - /* 390 */ 16, 250, 71, 371, 109, 336, 21, 338, 339, 24, - /* 400 */ 25, 26, 27, 28, 29, 30, 31, 32, 8, 9, - /* 410 */ 340, 365, 12, 13, 14, 15, 16, 357, 97, 373, - /* 420 */ 20, 100, 80, 443, 378, 365, 380, 447, 100, 357, - /* 430 */ 20, 12, 13, 14, 374, 130, 131, 365, 373, 20, - /* 440 */ 135, 22, 462, 463, 372, 20, 374, 467, 468, 384, - /* 450 */ 165, 131, 33, 381, 35, 135, 410, 136, 137, 389, - /* 460 */ 414, 391, 111, 417, 418, 419, 420, 421, 422, 423, - /* 470 */ 424, 425, 426, 0, 8, 9, 234, 58, 12, 13, - /* 480 */ 14, 15, 16, 141, 142, 166, 167, 166, 167, 344, - /* 490 */ 71, 0, 337, 172, 173, 340, 341, 24, 25, 26, - /* 500 */ 27, 28, 29, 30, 31, 32, 164, 186, 337, 188, - /* 510 */ 44, 340, 341, 368, 194, 195, 97, 397, 198, 100, - /* 520 */ 200, 401, 237, 238, 239, 240, 241, 242, 243, 244, - /* 530 */ 245, 246, 247, 332, 213, 214, 402, 216, 217, 218, - /* 540 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - /* 550 */ 229, 230, 231, 232, 233, 136, 137, 66, 67, 68, - /* 560 */ 71, 136, 137, 443, 73, 74, 75, 447, 168, 100, - /* 570 */ 79, 379, 380, 367, 344, 84, 85, 71, 250, 378, - /* 580 */ 332, 90, 462, 463, 378, 166, 167, 467, 468, 2, - /* 590 */ 360, 172, 173, 1, 2, 8, 9, 0, 368, 12, - /* 600 */ 13, 14, 15, 16, 111, 186, 3, 188, 351, 352, - /* 610 */ 8, 9, 21, 365, 12, 13, 14, 15, 16, 413, - /* 620 */ 414, 373, 340, 20, 0, 34, 378, 36, 380, 234, - /* 630 */ 424, 236, 213, 214, 346, 216, 217, 218, 219, 220, - /* 640 */ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - /* 650 */ 231, 232, 233, 12, 13, 373, 58, 332, 410, 371, - /* 660 */ 367, 20, 414, 22, 340, 417, 418, 419, 420, 421, - /* 670 */ 422, 378, 424, 20, 33, 427, 35, 429, 430, 431, - /* 680 */ 356, 8, 9, 435, 436, 12, 13, 14, 15, 16, - /* 690 */ 365, 332, 365, 101, 20, 365, 0, 373, 373, 58, - /* 700 */ 102, 340, 372, 378, 101, 380, 413, 414, 332, 112, - /* 710 */ 397, 381, 71, 386, 387, 213, 37, 424, 22, 250, - /* 720 */ 438, 439, 440, 441, 340, 443, 444, 130, 131, 132, - /* 730 */ 133, 134, 135, 427, 373, 410, 430, 378, 97, 414, - /* 740 */ 356, 100, 417, 418, 419, 420, 421, 422, 3, 424, - /* 750 */ 332, 12, 13, 340, 378, 375, 443, 373, 378, 20, - /* 760 */ 447, 22, 260, 261, 262, 263, 264, 265, 266, 356, - /* 770 */ 168, 168, 33, 366, 35, 462, 463, 136, 137, 155, - /* 780 */ 467, 468, 103, 416, 105, 106, 373, 108, 164, 136, - /* 790 */ 137, 112, 340, 366, 469, 470, 378, 58, 366, 332, - /* 800 */ 439, 440, 441, 332, 443, 444, 20, 166, 167, 442, - /* 810 */ 71, 366, 133, 172, 173, 340, 8, 9, 416, 340, - /* 820 */ 12, 13, 14, 15, 16, 172, 173, 186, 366, 188, - /* 830 */ 365, 356, 365, 332, 0, 356, 97, 372, 363, 100, - /* 840 */ 373, 389, 168, 391, 442, 378, 381, 380, 373, 378, - /* 850 */ 397, 178, 373, 58, 213, 214, 332, 216, 217, 218, - /* 860 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - /* 870 */ 229, 230, 231, 232, 233, 136, 137, 410, 366, 378, - /* 880 */ 397, 414, 48, 365, 417, 418, 419, 420, 421, 422, - /* 890 */ 372, 424, 375, 357, 99, 378, 443, 102, 431, 381, - /* 900 */ 447, 365, 378, 436, 443, 166, 167, 20, 447, 101, - /* 910 */ 374, 172, 173, 351, 352, 462, 463, 181, 100, 39, - /* 920 */ 467, 468, 22, 462, 463, 186, 443, 188, 467, 468, - /* 930 */ 447, 365, 428, 14, 430, 35, 14, 366, 372, 20, - /* 940 */ 204, 205, 20, 45, 46, 462, 463, 381, 275, 44, - /* 950 */ 467, 468, 213, 214, 168, 216, 217, 218, 219, 220, - /* 960 */ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - /* 970 */ 231, 232, 233, 20, 18, 18, 20, 340, 12, 13, - /* 980 */ 23, 397, 428, 27, 430, 4, 30, 332, 22, 33, - /* 990 */ 14, 15, 16, 356, 37, 38, 4, 97, 41, 33, - /* 1000 */ 19, 35, 333, 185, 48, 187, 50, 388, 375, 53, - /* 1010 */ 373, 378, 22, 365, 33, 270, 59, 60, 61, 62, - /* 1020 */ 365, 44, 374, 340, 58, 35, 340, 443, 373, 48, - /* 1030 */ 212, 447, 357, 378, 53, 380, 332, 71, 340, 58, - /* 1040 */ 365, 112, 356, 332, 248, 249, 462, 463, 340, 374, - /* 1050 */ 365, 467, 468, 166, 356, 99, 373, 100, 353, 373, - /* 1060 */ 355, 71, 133, 97, 356, 410, 381, 111, 250, 414, - /* 1070 */ 354, 373, 417, 418, 419, 420, 421, 422, 101, 424, - /* 1080 */ 99, 373, 378, 102, 429, 166, 431, 97, 166, 378, - /* 1090 */ 435, 436, 332, 332, 35, 138, 140, 332, 0, 143, - /* 1100 */ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - /* 1110 */ 154, 155, 156, 157, 158, 159, 340, 161, 162, 163, - /* 1120 */ 22, 168, 439, 440, 441, 44, 443, 444, 340, 249, - /* 1130 */ 358, 340, 356, 361, 44, 178, 179, 180, 378, 378, - /* 1140 */ 183, 332, 340, 378, 356, 130, 22, 356, 42, 373, - /* 1150 */ 44, 42, 186, 44, 188, 340, 332, 340, 356, 35, - /* 1160 */ 203, 373, 35, 206, 373, 208, 209, 210, 211, 212, - /* 1170 */ 332, 356, 332, 356, 365, 373, 186, 272, 188, 213, - /* 1180 */ 214, 471, 373, 104, 340, 64, 107, 378, 373, 380, - /* 1190 */ 373, 101, 226, 227, 228, 229, 230, 231, 232, 340, - /* 1200 */ 356, 22, 378, 213, 214, 365, 332, 250, 340, 340, - /* 1210 */ 332, 196, 197, 373, 35, 356, 378, 373, 378, 410, - /* 1220 */ 380, 97, 332, 414, 356, 356, 417, 418, 419, 420, - /* 1230 */ 421, 422, 373, 424, 104, 332, 332, 107, 429, 332, - /* 1240 */ 431, 373, 373, 251, 435, 436, 104, 188, 104, 107, - /* 1250 */ 410, 107, 378, 460, 414, 365, 378, 417, 418, 419, - /* 1260 */ 420, 421, 422, 373, 424, 44, 457, 0, 378, 429, - /* 1270 */ 380, 431, 365, 44, 342, 435, 436, 199, 44, 201, - /* 1280 */ 373, 378, 378, 454, 44, 378, 446, 380, 100, 22, - /* 1290 */ 136, 137, 365, 44, 342, 1, 2, 44, 110, 332, - /* 1300 */ 410, 44, 44, 47, 414, 44, 44, 417, 418, 419, - /* 1310 */ 420, 421, 422, 44, 424, 188, 388, 410, 339, 332, - /* 1320 */ 377, 414, 101, 44, 417, 418, 419, 420, 421, 422, - /* 1330 */ 101, 424, 365, 388, 213, 101, 429, 19, 431, 13, - /* 1340 */ 373, 101, 435, 436, 445, 378, 0, 380, 464, 459, - /* 1350 */ 101, 33, 365, 446, 101, 274, 100, 44, 101, 101, - /* 1360 */ 373, 35, 101, 101, 44, 378, 48, 380, 44, 44, - /* 1370 */ 101, 13, 54, 55, 56, 57, 58, 410, 437, 44, - /* 1380 */ 101, 414, 44, 35, 417, 418, 419, 420, 421, 422, - /* 1390 */ 448, 424, 252, 35, 412, 49, 429, 410, 431, 48, - /* 1400 */ 411, 414, 435, 436, 417, 418, 419, 420, 421, 422, - /* 1410 */ 184, 424, 399, 446, 101, 42, 429, 99, 431, 71, - /* 1420 */ 102, 101, 435, 436, 385, 101, 101, 20, 332, 388, - /* 1430 */ 385, 165, 383, 446, 20, 33, 101, 340, 385, 101, - /* 1440 */ 340, 383, 98, 383, 350, 95, 94, 340, 332, 348, - /* 1450 */ 48, 349, 134, 340, 340, 340, 54, 55, 56, 57, - /* 1460 */ 58, 365, 20, 334, 20, 334, 405, 20, 346, 373, - /* 1470 */ 20, 380, 346, 341, 378, 20, 380, 341, 398, 346, - /* 1480 */ 346, 365, 52, 346, 346, 340, 343, 169, 365, 373, - /* 1490 */ 334, 343, 174, 346, 378, 340, 380, 378, 378, 334, - /* 1500 */ 365, 99, 202, 378, 102, 100, 410, 192, 190, 405, - /* 1510 */ 414, 193, 409, 417, 418, 419, 420, 421, 422, 407, - /* 1520 */ 424, 344, 332, 365, 365, 429, 410, 431, 365, 365, - /* 1530 */ 414, 435, 436, 417, 418, 419, 420, 421, 422, 365, - /* 1540 */ 424, 365, 446, 365, 191, 429, 332, 431, 365, 365, - /* 1550 */ 404, 435, 436, 403, 344, 365, 340, 388, 388, 378, - /* 1560 */ 380, 259, 258, 373, 453, 393, 393, 378, 378, 378, - /* 1570 */ 380, 169, 170, 378, 267, 177, 174, 269, 176, 365, - /* 1580 */ 268, 453, 253, 412, 273, 276, 249, 373, 271, 472, - /* 1590 */ 373, 452, 378, 20, 380, 193, 332, 456, 416, 340, - /* 1600 */ 410, 341, 453, 451, 414, 20, 455, 417, 418, 419, - /* 1610 */ 420, 421, 422, 332, 424, 344, 450, 344, 465, 429, - /* 1620 */ 393, 431, 391, 466, 410, 435, 436, 170, 414, 365, - /* 1630 */ 378, 417, 418, 419, 420, 421, 422, 373, 424, 393, - /* 1640 */ 390, 378, 378, 378, 380, 431, 365, 344, 378, 435, - /* 1650 */ 436, 361, 378, 378, 373, 373, 100, 434, 344, 378, - /* 1660 */ 100, 380, 369, 378, 36, 355, 344, 340, 335, 330, - /* 1670 */ 334, 394, 400, 332, 410, 359, 0, 345, 414, 0, - /* 1680 */ 394, 417, 418, 419, 420, 421, 422, 359, 424, 406, - /* 1690 */ 359, 410, 0, 332, 42, 414, 0, 35, 417, 418, - /* 1700 */ 419, 420, 421, 422, 207, 424, 365, 35, 35, 35, - /* 1710 */ 207, 0, 431, 35, 373, 35, 435, 436, 207, 378, - /* 1720 */ 0, 380, 207, 0, 35, 461, 365, 0, 22, 0, - /* 1730 */ 35, 194, 188, 186, 373, 0, 0, 0, 181, 378, - /* 1740 */ 182, 380, 0, 0, 47, 0, 0, 0, 0, 42, - /* 1750 */ 0, 410, 0, 0, 0, 414, 332, 0, 417, 418, - /* 1760 */ 419, 420, 421, 422, 0, 424, 0, 155, 35, 0, - /* 1770 */ 155, 410, 431, 0, 0, 414, 435, 436, 417, 418, - /* 1780 */ 419, 420, 421, 422, 22, 424, 0, 0, 0, 365, - /* 1790 */ 0, 0, 0, 0, 370, 0, 0, 373, 0, 0, - /* 1800 */ 0, 0, 378, 0, 380, 42, 0, 0, 0, 0, - /* 1810 */ 0, 0, 0, 0, 332, 0, 139, 0, 0, 22, - /* 1820 */ 96, 96, 0, 58, 22, 0, 58, 0, 58, 35, - /* 1830 */ 0, 470, 0, 44, 410, 14, 0, 14, 414, 332, - /* 1840 */ 0, 417, 418, 419, 420, 421, 422, 365, 424, 0, - /* 1850 */ 0, 47, 47, 0, 0, 373, 42, 0, 39, 39, - /* 1860 */ 378, 177, 380, 47, 40, 39, 0, 0, 35, 0, - /* 1870 */ 35, 0, 365, 39, 35, 0, 39, 370, 0, 48, - /* 1880 */ 373, 35, 39, 39, 0, 378, 48, 380, 0, 48, - /* 1890 */ 0, 109, 410, 65, 35, 48, 414, 0, 22, 417, - /* 1900 */ 418, 419, 420, 421, 422, 35, 424, 35, 426, 35, - /* 1910 */ 0, 22, 332, 0, 35, 35, 35, 410, 35, 0, - /* 1920 */ 35, 414, 22, 22, 417, 418, 419, 420, 421, 422, - /* 1930 */ 44, 424, 50, 332, 22, 44, 107, 35, 0, 35, - /* 1940 */ 0, 35, 0, 22, 20, 365, 35, 0, 100, 35, - /* 1950 */ 370, 35, 101, 373, 22, 100, 0, 22, 378, 0, - /* 1960 */ 380, 35, 332, 0, 189, 3, 365, 44, 254, 101, - /* 1970 */ 254, 44, 44, 100, 373, 44, 47, 100, 44, 378, - /* 1980 */ 3, 380, 254, 332, 47, 98, 35, 44, 96, 96, - /* 1990 */ 410, 95, 35, 35, 414, 365, 101, 417, 418, 419, - /* 2000 */ 420, 421, 422, 373, 424, 35, 101, 100, 378, 100, - /* 2010 */ 380, 410, 47, 168, 35, 414, 365, 100, 417, 418, - /* 2020 */ 419, 420, 421, 422, 373, 424, 168, 175, 35, 378, - /* 2030 */ 170, 380, 168, 332, 101, 44, 100, 47, 0, 0, - /* 2040 */ 410, 0, 101, 0, 414, 101, 101, 417, 418, 419, - /* 2050 */ 420, 421, 422, 101, 424, 100, 39, 47, 332, 39, - /* 2060 */ 100, 410, 101, 0, 100, 414, 365, 101, 417, 418, - /* 2070 */ 419, 420, 421, 422, 373, 424, 100, 169, 100, 378, - /* 2080 */ 47, 380, 100, 110, 44, 98, 171, 98, 2, 22, - /* 2090 */ 22, 365, 100, 332, 47, 101, 101, 100, 235, 373, - /* 2100 */ 100, 47, 101, 100, 378, 100, 380, 213, 101, 100, - /* 2110 */ 248, 410, 101, 215, 35, 414, 332, 111, 417, 418, - /* 2120 */ 419, 420, 421, 422, 35, 424, 365, 100, 35, 101, - /* 2130 */ 100, 35, 101, 101, 373, 100, 410, 35, 101, 378, - /* 2140 */ 414, 380, 100, 417, 418, 419, 420, 421, 422, 365, - /* 2150 */ 424, 35, 100, 22, 44, 100, 100, 373, 35, 123, - /* 2160 */ 112, 100, 378, 22, 380, 65, 71, 123, 123, 123, - /* 2170 */ 64, 410, 35, 35, 332, 414, 93, 35, 417, 418, - /* 2180 */ 419, 420, 421, 422, 35, 424, 35, 35, 35, 35, - /* 2190 */ 35, 35, 44, 332, 410, 35, 35, 35, 414, 22, - /* 2200 */ 35, 417, 418, 419, 420, 421, 422, 365, 424, 35, - /* 2210 */ 71, 35, 22, 35, 35, 373, 35, 35, 35, 35, - /* 2220 */ 378, 0, 380, 35, 39, 0, 365, 35, 48, 0, - /* 2230 */ 39, 35, 39, 0, 373, 48, 35, 48, 39, 378, - /* 2240 */ 0, 380, 48, 35, 35, 0, 22, 21, 473, 22, - /* 2250 */ 22, 21, 410, 473, 332, 473, 414, 20, 473, 417, - /* 2260 */ 418, 419, 420, 421, 422, 473, 424, 473, 473, 473, - /* 2270 */ 473, 410, 473, 473, 473, 414, 473, 473, 417, 418, - /* 2280 */ 419, 420, 421, 422, 473, 424, 473, 365, 473, 473, - /* 2290 */ 473, 473, 473, 473, 473, 373, 473, 473, 473, 473, - /* 2300 */ 378, 473, 380, 473, 473, 473, 473, 473, 473, 473, - /* 2310 */ 473, 473, 332, 473, 473, 473, 473, 473, 473, 473, - /* 2320 */ 473, 473, 473, 473, 473, 473, 473, 473, 332, 473, - /* 2330 */ 473, 473, 410, 473, 473, 473, 414, 473, 473, 417, - /* 2340 */ 418, 419, 420, 421, 422, 365, 424, 473, 473, 473, - /* 2350 */ 473, 473, 473, 373, 473, 473, 473, 473, 378, 473, - /* 2360 */ 380, 365, 473, 473, 473, 473, 473, 473, 473, 373, - /* 2370 */ 473, 473, 473, 473, 378, 473, 380, 473, 473, 473, - /* 2380 */ 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - /* 2390 */ 410, 332, 473, 473, 414, 473, 473, 417, 418, 419, - /* 2400 */ 420, 421, 422, 473, 424, 473, 410, 332, 473, 473, - /* 2410 */ 414, 473, 473, 417, 418, 419, 420, 421, 422, 473, - /* 2420 */ 424, 473, 473, 473, 365, 473, 332, 473, 473, 473, - /* 2430 */ 473, 473, 373, 473, 473, 473, 473, 378, 473, 380, - /* 2440 */ 365, 473, 473, 473, 473, 473, 473, 473, 373, 473, - /* 2450 */ 473, 473, 473, 378, 473, 380, 473, 473, 473, 365, - /* 2460 */ 473, 473, 473, 473, 473, 473, 473, 373, 473, 410, - /* 2470 */ 473, 473, 378, 414, 380, 473, 417, 418, 419, 420, - /* 2480 */ 421, 422, 473, 424, 473, 410, 473, 473, 473, 414, - /* 2490 */ 332, 473, 417, 418, 419, 420, 421, 422, 473, 424, - /* 2500 */ 473, 473, 473, 473, 410, 473, 473, 332, 414, 473, - /* 2510 */ 473, 417, 418, 419, 420, 421, 422, 473, 424, 473, - /* 2520 */ 473, 473, 473, 365, 473, 473, 473, 473, 473, 473, - /* 2530 */ 473, 373, 473, 473, 473, 473, 378, 473, 380, 473, - /* 2540 */ 365, 473, 473, 473, 473, 473, 473, 473, 373, 473, - /* 2550 */ 473, 473, 473, 378, 473, 380, 473, 473, 473, 473, - /* 2560 */ 473, 473, 473, 473, 473, 473, 473, 332, 410, 473, - /* 2570 */ 473, 473, 414, 473, 473, 417, 418, 419, 420, 421, - /* 2580 */ 422, 473, 424, 473, 473, 410, 473, 332, 473, 414, - /* 2590 */ 473, 473, 417, 418, 419, 420, 421, 422, 473, 424, - /* 2600 */ 365, 473, 473, 473, 473, 473, 473, 473, 373, 473, - /* 2610 */ 473, 473, 473, 378, 473, 380, 473, 473, 473, 473, - /* 2620 */ 365, 473, 473, 473, 473, 473, 473, 473, 373, 473, - /* 2630 */ 473, 473, 473, 378, 473, 380, 473, 473, 473, 473, - /* 2640 */ 473, 473, 473, 473, 473, 410, 473, 473, 473, 414, - /* 2650 */ 473, 473, 417, 418, 419, 420, 421, 422, 473, 424, - /* 2660 */ 473, 332, 473, 473, 473, 410, 473, 473, 473, 414, - /* 2670 */ 473, 473, 417, 418, 419, 420, 421, 422, 332, 424, - /* 2680 */ 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - /* 2690 */ 473, 473, 473, 473, 365, 473, 473, 473, 473, 473, - /* 2700 */ 473, 473, 373, 473, 473, 473, 473, 378, 473, 380, - /* 2710 */ 473, 365, 473, 473, 473, 473, 473, 473, 473, 373, - /* 2720 */ 473, 473, 473, 473, 378, 473, 380, 473, 473, 473, - /* 2730 */ 473, 473, 473, 473, 473, 473, 473, 473, 473, 410, - /* 2740 */ 332, 473, 473, 414, 473, 473, 417, 418, 419, 420, - /* 2750 */ 421, 422, 473, 424, 473, 473, 410, 473, 473, 473, - /* 2760 */ 414, 473, 473, 417, 418, 419, 420, 421, 422, 473, - /* 2770 */ 424, 473, 473, 365, 473, 473, 473, 473, 473, 473, - /* 2780 */ 473, 373, 473, 473, 473, 473, 378, 473, 380, 473, - /* 2790 */ 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - /* 2800 */ 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, - /* 2810 */ 473, 473, 473, 473, 473, 473, 473, 473, 410, 473, - /* 2820 */ 473, 473, 414, 473, 473, 417, 418, 419, 420, 421, - /* 2830 */ 422, 473, 424, + /* 230 */ 230, 231, 232, 233, 234, 12, 13, 366, 379, 20, + /* 240 */ 18, 20, 20, 20, 373, 22, 366, 100, 100, 27, + /* 250 */ 341, 64, 30, 382, 374, 33, 33, 341, 35, 379, + /* 260 */ 366, 381, 439, 440, 441, 442, 63, 444, 445, 358, + /* 270 */ 48, 20, 50, 357, 332, 53, 334, 366, 368, 214, + /* 280 */ 364, 58, 388, 374, 373, 366, 375, 64, 0, 379, + /* 290 */ 374, 411, 276, 382, 71, 415, 109, 348, 418, 419, + /* 300 */ 420, 421, 422, 423, 355, 425, 387, 388, 428, 165, + /* 310 */ 430, 431, 432, 0, 20, 333, 436, 437, 111, 100, + /* 320 */ 97, 99, 251, 100, 414, 415, 261, 262, 263, 264, + /* 330 */ 265, 266, 267, 111, 21, 425, 48, 24, 25, 26, + /* 340 */ 27, 28, 29, 30, 31, 32, 352, 353, 366, 440, + /* 350 */ 441, 442, 165, 444, 445, 20, 374, 22, 111, 136, + /* 360 */ 137, 379, 140, 381, 168, 143, 144, 145, 146, 147, + /* 370 */ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + /* 380 */ 158, 159, 238, 161, 162, 163, 51, 166, 167, 166, + /* 390 */ 167, 100, 248, 411, 100, 172, 173, 415, 251, 171, + /* 400 */ 418, 419, 420, 421, 422, 423, 20, 425, 235, 186, + /* 410 */ 237, 188, 430, 429, 432, 431, 8, 9, 436, 437, + /* 420 */ 12, 13, 14, 15, 16, 238, 239, 240, 241, 242, + /* 430 */ 243, 244, 245, 246, 247, 248, 4, 214, 215, 58, + /* 440 */ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + /* 450 */ 227, 228, 229, 230, 231, 232, 233, 234, 235, 12, + /* 460 */ 13, 338, 1, 2, 341, 342, 417, 20, 366, 22, + /* 470 */ 251, 333, 366, 235, 33, 43, 374, 45, 46, 373, + /* 480 */ 33, 100, 35, 102, 256, 257, 258, 338, 382, 48, + /* 490 */ 341, 342, 443, 3, 100, 54, 55, 56, 57, 58, + /* 500 */ 333, 341, 352, 353, 366, 58, 0, 97, 365, 101, + /* 510 */ 20, 64, 374, 14, 15, 16, 341, 379, 71, 381, + /* 520 */ 341, 378, 420, 113, 114, 115, 116, 117, 118, 119, + /* 530 */ 120, 121, 122, 366, 124, 125, 126, 127, 128, 129, + /* 540 */ 99, 374, 251, 102, 97, 251, 379, 100, 381, 411, + /* 550 */ 390, 4, 392, 415, 168, 71, 418, 419, 420, 421, + /* 560 */ 422, 423, 101, 425, 403, 390, 19, 392, 430, 390, + /* 570 */ 432, 392, 35, 376, 436, 437, 379, 345, 411, 185, + /* 580 */ 33, 187, 415, 136, 137, 418, 419, 420, 421, 422, + /* 590 */ 423, 101, 425, 361, 13, 48, 458, 430, 0, 432, + /* 600 */ 53, 369, 333, 436, 437, 58, 333, 213, 71, 333, + /* 610 */ 169, 170, 20, 166, 167, 174, 35, 176, 112, 172, + /* 620 */ 173, 341, 24, 25, 26, 27, 28, 29, 30, 31, + /* 630 */ 32, 44, 251, 186, 193, 188, 130, 131, 132, 133, + /* 640 */ 134, 135, 366, 358, 64, 251, 99, 14, 379, 102, + /* 650 */ 374, 366, 379, 20, 374, 379, 0, 381, 168, 367, + /* 660 */ 375, 214, 215, 20, 217, 218, 219, 220, 221, 222, + /* 670 */ 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + /* 680 */ 233, 234, 12, 13, 14, 131, 333, 411, 101, 135, + /* 690 */ 20, 415, 22, 341, 418, 419, 420, 421, 422, 423, + /* 700 */ 0, 425, 355, 33, 2, 35, 430, 181, 432, 357, + /* 710 */ 8, 9, 436, 437, 12, 13, 14, 15, 16, 366, + /* 720 */ 440, 441, 442, 447, 444, 445, 374, 374, 58, 22, + /* 730 */ 204, 205, 379, 429, 381, 431, 333, 66, 67, 68, + /* 740 */ 368, 71, 35, 4, 73, 74, 75, 367, 194, 195, + /* 750 */ 79, 379, 198, 334, 200, 84, 85, 86, 87, 333, + /* 760 */ 168, 90, 333, 63, 411, 341, 333, 97, 415, 366, + /* 770 */ 100, 418, 419, 420, 421, 422, 423, 374, 425, 136, + /* 780 */ 137, 357, 379, 430, 381, 432, 414, 415, 416, 436, + /* 790 */ 437, 58, 333, 417, 214, 366, 22, 425, 374, 166, + /* 800 */ 447, 341, 80, 374, 97, 379, 136, 137, 379, 35, + /* 810 */ 381, 155, 379, 367, 411, 172, 173, 357, 415, 443, + /* 820 */ 164, 418, 419, 420, 421, 422, 423, 424, 425, 426, + /* 830 */ 427, 354, 99, 356, 374, 102, 166, 167, 379, 341, + /* 840 */ 411, 37, 172, 173, 415, 71, 341, 418, 419, 420, + /* 850 */ 421, 422, 423, 367, 425, 357, 186, 0, 188, 430, + /* 860 */ 358, 432, 357, 141, 142, 436, 437, 14, 366, 374, + /* 870 */ 22, 97, 374, 20, 333, 333, 447, 375, 367, 374, + /* 880 */ 385, 333, 130, 35, 214, 215, 164, 217, 218, 219, + /* 890 */ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + /* 900 */ 230, 231, 232, 233, 234, 12, 13, 103, 368, 105, + /* 910 */ 106, 398, 108, 20, 366, 22, 112, 341, 367, 379, + /* 920 */ 379, 379, 374, 66, 67, 68, 33, 379, 35, 381, + /* 930 */ 73, 74, 75, 357, 345, 428, 79, 133, 431, 45, + /* 940 */ 46, 84, 85, 86, 87, 97, 417, 90, 196, 197, + /* 950 */ 374, 58, 13, 333, 414, 415, 416, 444, 369, 411, + /* 960 */ 186, 448, 188, 415, 71, 425, 418, 419, 420, 421, + /* 970 */ 422, 423, 443, 425, 35, 347, 463, 464, 430, 358, + /* 980 */ 432, 468, 469, 20, 436, 437, 366, 366, 214, 215, + /* 990 */ 97, 252, 21, 100, 374, 447, 375, 130, 131, 379, + /* 1000 */ 372, 381, 135, 12, 13, 34, 366, 36, 444, 333, + /* 1010 */ 8, 9, 448, 22, 12, 13, 14, 15, 16, 166, + /* 1020 */ 341, 341, 382, 374, 33, 333, 35, 39, 464, 136, + /* 1030 */ 137, 411, 468, 469, 385, 415, 357, 357, 418, 419, + /* 1040 */ 420, 421, 422, 423, 3, 425, 44, 341, 376, 58, + /* 1050 */ 430, 379, 432, 374, 374, 379, 436, 437, 376, 166, + /* 1060 */ 167, 379, 71, 357, 112, 172, 173, 447, 8, 9, + /* 1070 */ 341, 379, 12, 13, 14, 15, 16, 0, 367, 186, + /* 1080 */ 374, 188, 374, 389, 2, 133, 357, 44, 97, 333, + /* 1090 */ 8, 9, 22, 385, 12, 13, 14, 15, 16, 0, + /* 1100 */ 333, 333, 333, 374, 333, 35, 359, 214, 215, 362, + /* 1110 */ 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + /* 1120 */ 227, 228, 229, 230, 231, 232, 233, 234, 12, 13, + /* 1130 */ 333, 168, 249, 250, 0, 379, 20, 366, 22, 341, + /* 1140 */ 341, 104, 341, 343, 107, 374, 379, 379, 379, 33, + /* 1150 */ 379, 35, 381, 20, 104, 357, 357, 107, 8, 9, + /* 1160 */ 111, 101, 12, 13, 14, 15, 16, 341, 42, 341, + /* 1170 */ 44, 333, 374, 374, 58, 374, 379, 186, 44, 188, + /* 1180 */ 333, 341, 411, 357, 472, 357, 415, 71, 461, 418, + /* 1190 */ 419, 420, 421, 422, 423, 104, 425, 357, 107, 35, + /* 1200 */ 374, 430, 374, 432, 333, 214, 215, 436, 437, 160, + /* 1210 */ 333, 112, 104, 97, 374, 107, 100, 379, 227, 228, + /* 1220 */ 229, 230, 231, 232, 233, 398, 379, 455, 341, 130, + /* 1230 */ 131, 132, 133, 134, 135, 18, 44, 42, 250, 44, + /* 1240 */ 23, 440, 441, 442, 357, 444, 445, 341, 96, 448, + /* 1250 */ 379, 341, 136, 137, 37, 38, 379, 58, 41, 0, + /* 1260 */ 199, 374, 201, 357, 463, 464, 44, 357, 44, 468, + /* 1270 */ 469, 444, 0, 136, 137, 448, 59, 60, 61, 62, + /* 1280 */ 374, 22, 166, 167, 374, 208, 44, 112, 172, 173, + /* 1290 */ 463, 464, 0, 101, 22, 468, 469, 44, 35, 166, + /* 1300 */ 44, 102, 186, 366, 188, 130, 131, 132, 133, 134, + /* 1310 */ 135, 47, 271, 398, 22, 44, 273, 100, 168, 44, + /* 1320 */ 168, 1, 2, 101, 44, 101, 35, 333, 44, 44, + /* 1330 */ 214, 215, 44, 217, 218, 219, 220, 221, 222, 223, + /* 1340 */ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + /* 1350 */ 234, 44, 188, 44, 101, 138, 343, 101, 333, 444, + /* 1360 */ 366, 44, 71, 448, 100, 44, 13, 44, 374, 389, + /* 1370 */ 340, 13, 101, 379, 44, 381, 101, 44, 463, 464, + /* 1380 */ 44, 101, 100, 468, 469, 101, 101, 378, 35, 101, + /* 1390 */ 0, 366, 110, 35, 389, 178, 179, 180, 465, 374, + /* 1400 */ 183, 446, 438, 449, 379, 411, 381, 253, 101, 415, + /* 1410 */ 101, 413, 418, 419, 420, 421, 422, 423, 101, 425, + /* 1420 */ 203, 48, 101, 206, 101, 184, 209, 210, 211, 212, + /* 1430 */ 213, 101, 412, 400, 101, 42, 411, 101, 333, 49, + /* 1440 */ 415, 368, 386, 418, 419, 420, 421, 422, 423, 20, + /* 1450 */ 425, 188, 379, 459, 460, 389, 384, 432, 333, 8, + /* 1460 */ 9, 436, 437, 12, 13, 14, 15, 16, 251, 386, + /* 1470 */ 165, 366, 20, 341, 386, 98, 341, 384, 384, 374, + /* 1480 */ 351, 95, 341, 94, 379, 349, 381, 414, 415, 416, + /* 1490 */ 350, 366, 341, 20, 341, 335, 341, 335, 425, 374, + /* 1500 */ 20, 406, 20, 347, 379, 381, 381, 20, 347, 342, + /* 1510 */ 20, 399, 347, 342, 341, 347, 411, 275, 52, 347, + /* 1520 */ 415, 347, 344, 418, 419, 420, 421, 422, 423, 347, + /* 1530 */ 425, 344, 335, 202, 100, 333, 411, 432, 379, 335, + /* 1540 */ 415, 436, 437, 418, 419, 420, 421, 422, 423, 366, + /* 1550 */ 425, 366, 333, 341, 366, 366, 366, 432, 379, 366, + /* 1560 */ 366, 436, 437, 379, 366, 408, 366, 366, 366, 366, + /* 1570 */ 345, 192, 406, 410, 405, 191, 374, 381, 345, 341, + /* 1580 */ 404, 379, 260, 381, 454, 366, 379, 259, 379, 177, + /* 1590 */ 379, 277, 454, 374, 389, 389, 457, 379, 379, 456, + /* 1600 */ 381, 454, 394, 268, 394, 254, 274, 270, 269, 250, + /* 1610 */ 272, 453, 333, 411, 466, 473, 467, 415, 374, 20, + /* 1620 */ 418, 419, 420, 421, 422, 423, 413, 425, 341, 452, + /* 1630 */ 411, 451, 417, 20, 415, 342, 333, 418, 419, 420, + /* 1640 */ 421, 422, 423, 345, 425, 366, 345, 392, 394, 379, + /* 1650 */ 100, 432, 379, 374, 394, 379, 437, 379, 379, 170, + /* 1660 */ 381, 345, 379, 345, 362, 379, 435, 100, 391, 366, + /* 1670 */ 374, 356, 470, 471, 370, 341, 379, 374, 36, 336, + /* 1680 */ 335, 407, 379, 331, 381, 345, 360, 360, 346, 395, + /* 1690 */ 411, 401, 0, 0, 415, 395, 0, 418, 419, 420, + /* 1700 */ 421, 422, 423, 42, 425, 0, 360, 333, 35, 207, + /* 1710 */ 35, 35, 35, 207, 411, 0, 35, 35, 415, 207, + /* 1720 */ 0, 418, 419, 420, 421, 422, 423, 207, 425, 333, + /* 1730 */ 0, 0, 35, 22, 0, 35, 194, 188, 186, 460, + /* 1740 */ 366, 0, 0, 0, 182, 181, 0, 0, 374, 47, + /* 1750 */ 0, 0, 0, 379, 42, 381, 0, 0, 0, 0, + /* 1760 */ 0, 0, 366, 0, 0, 462, 155, 371, 35, 0, + /* 1770 */ 374, 155, 0, 0, 0, 379, 0, 381, 0, 333, + /* 1780 */ 0, 0, 0, 0, 0, 411, 0, 0, 0, 415, + /* 1790 */ 0, 0, 418, 419, 420, 421, 422, 423, 0, 425, + /* 1800 */ 0, 0, 333, 0, 42, 0, 0, 411, 0, 0, + /* 1810 */ 0, 415, 366, 0, 418, 419, 420, 421, 422, 423, + /* 1820 */ 374, 425, 139, 0, 22, 379, 0, 381, 96, 22, + /* 1830 */ 0, 96, 35, 22, 0, 366, 0, 58, 0, 0, + /* 1840 */ 371, 42, 47, 374, 0, 471, 14, 58, 379, 14, + /* 1850 */ 381, 58, 0, 39, 0, 0, 44, 411, 40, 39, + /* 1860 */ 333, 415, 47, 39, 418, 419, 420, 421, 422, 423, + /* 1870 */ 0, 425, 47, 427, 0, 177, 0, 0, 0, 48, + /* 1880 */ 411, 19, 65, 35, 415, 39, 0, 418, 419, 420, + /* 1890 */ 421, 422, 423, 366, 425, 33, 35, 48, 371, 39, + /* 1900 */ 0, 374, 35, 39, 48, 0, 379, 35, 381, 0, + /* 1910 */ 48, 48, 39, 0, 0, 0, 54, 55, 56, 57, + /* 1920 */ 58, 22, 35, 0, 35, 35, 35, 333, 109, 107, + /* 1930 */ 35, 35, 35, 35, 22, 0, 44, 44, 411, 35, + /* 1940 */ 22, 35, 415, 35, 0, 418, 419, 420, 421, 422, + /* 1950 */ 423, 22, 425, 50, 0, 22, 333, 35, 0, 35, + /* 1960 */ 366, 99, 0, 35, 102, 0, 20, 22, 374, 35, + /* 1970 */ 101, 35, 35, 379, 0, 381, 35, 22, 0, 100, + /* 1980 */ 100, 189, 22, 0, 0, 3, 44, 333, 100, 366, + /* 1990 */ 3, 170, 255, 44, 100, 168, 134, 374, 96, 98, + /* 2000 */ 44, 168, 379, 175, 381, 411, 47, 96, 168, 415, + /* 2010 */ 44, 101, 418, 419, 420, 421, 422, 423, 333, 425, + /* 2020 */ 366, 95, 101, 47, 44, 255, 101, 100, 374, 44, + /* 2030 */ 100, 169, 100, 379, 411, 381, 174, 35, 415, 101, + /* 2040 */ 100, 418, 419, 420, 421, 422, 423, 35, 425, 101, + /* 2050 */ 35, 366, 190, 101, 101, 193, 35, 35, 35, 374, + /* 2060 */ 47, 44, 0, 47, 379, 411, 381, 0, 101, 415, + /* 2070 */ 0, 0, 418, 419, 420, 421, 422, 423, 39, 425, + /* 2080 */ 47, 100, 333, 0, 255, 39, 249, 101, 100, 169, + /* 2090 */ 101, 100, 100, 100, 100, 47, 411, 44, 98, 333, + /* 2100 */ 415, 236, 171, 418, 419, 420, 421, 422, 423, 110, + /* 2110 */ 425, 2, 98, 22, 22, 366, 47, 111, 100, 47, + /* 2120 */ 100, 214, 35, 374, 35, 101, 101, 100, 379, 101, + /* 2130 */ 381, 100, 366, 101, 100, 216, 101, 100, 100, 35, + /* 2140 */ 374, 101, 100, 35, 101, 379, 101, 381, 35, 333, + /* 2150 */ 100, 100, 35, 101, 100, 22, 112, 35, 100, 44, + /* 2160 */ 411, 100, 22, 100, 415, 35, 65, 418, 419, 420, + /* 2170 */ 421, 422, 423, 35, 425, 64, 35, 411, 123, 123, + /* 2180 */ 123, 415, 366, 123, 418, 419, 420, 421, 422, 423, + /* 2190 */ 374, 425, 35, 35, 35, 379, 35, 381, 35, 333, + /* 2200 */ 35, 35, 71, 93, 44, 35, 35, 35, 22, 35, + /* 2210 */ 35, 35, 35, 71, 35, 333, 35, 35, 22, 35, + /* 2220 */ 35, 0, 35, 0, 0, 35, 48, 411, 39, 0, + /* 2230 */ 39, 415, 366, 35, 418, 419, 420, 421, 422, 423, + /* 2240 */ 374, 425, 48, 48, 39, 379, 35, 381, 366, 48, + /* 2250 */ 0, 39, 35, 35, 0, 22, 374, 21, 474, 22, + /* 2260 */ 22, 379, 21, 381, 20, 474, 474, 474, 474, 474, + /* 2270 */ 474, 474, 474, 474, 474, 474, 333, 411, 474, 474, + /* 2280 */ 474, 415, 474, 474, 418, 419, 420, 421, 422, 423, + /* 2290 */ 474, 425, 474, 411, 333, 474, 474, 415, 474, 474, + /* 2300 */ 418, 419, 420, 421, 422, 423, 474, 425, 474, 366, + /* 2310 */ 474, 474, 474, 474, 474, 474, 474, 374, 474, 474, + /* 2320 */ 474, 474, 379, 474, 381, 474, 474, 366, 474, 474, + /* 2330 */ 474, 474, 474, 474, 474, 374, 474, 474, 474, 474, + /* 2340 */ 379, 474, 381, 474, 474, 474, 474, 474, 474, 474, + /* 2350 */ 474, 474, 333, 474, 411, 474, 474, 474, 415, 474, + /* 2360 */ 474, 418, 419, 420, 421, 422, 423, 474, 425, 333, + /* 2370 */ 474, 474, 411, 474, 474, 474, 415, 474, 474, 418, + /* 2380 */ 419, 420, 421, 422, 423, 366, 425, 474, 474, 474, + /* 2390 */ 474, 474, 474, 374, 474, 474, 474, 474, 379, 474, + /* 2400 */ 381, 474, 366, 474, 474, 474, 474, 474, 474, 474, + /* 2410 */ 374, 474, 474, 474, 474, 379, 474, 381, 474, 474, + /* 2420 */ 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + /* 2430 */ 411, 474, 474, 333, 415, 474, 474, 418, 419, 420, + /* 2440 */ 421, 422, 423, 474, 425, 474, 474, 411, 474, 333, + /* 2450 */ 474, 415, 474, 474, 418, 419, 420, 421, 422, 423, + /* 2460 */ 474, 425, 474, 474, 474, 474, 366, 474, 474, 474, + /* 2470 */ 474, 474, 474, 474, 374, 474, 474, 474, 474, 379, + /* 2480 */ 474, 381, 366, 474, 474, 474, 474, 474, 474, 474, + /* 2490 */ 374, 474, 474, 474, 474, 379, 474, 381, 474, 474, + /* 2500 */ 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + /* 2510 */ 474, 411, 474, 474, 474, 415, 333, 474, 418, 419, + /* 2520 */ 420, 421, 422, 423, 474, 425, 474, 411, 474, 474, + /* 2530 */ 474, 415, 474, 333, 418, 419, 420, 421, 422, 423, + /* 2540 */ 474, 425, 474, 474, 474, 474, 474, 474, 474, 366, + /* 2550 */ 474, 474, 474, 474, 474, 474, 474, 374, 474, 474, + /* 2560 */ 474, 474, 379, 474, 381, 474, 366, 474, 474, 474, + /* 2570 */ 474, 474, 474, 474, 374, 474, 474, 474, 474, 379, + /* 2580 */ 474, 381, 474, 474, 474, 474, 474, 474, 474, 474, + /* 2590 */ 474, 474, 474, 474, 411, 333, 474, 474, 415, 474, + /* 2600 */ 474, 418, 419, 420, 421, 422, 423, 474, 425, 474, + /* 2610 */ 474, 411, 474, 474, 474, 415, 474, 474, 418, 419, + /* 2620 */ 420, 421, 422, 423, 474, 425, 474, 474, 366, 474, + /* 2630 */ 474, 474, 474, 474, 474, 474, 374, 474, 474, 474, + /* 2640 */ 474, 379, 474, 381, 474, 474, 474, 474, 474, 474, + /* 2650 */ 474, 474, 474, 474, 474, 474, 333, 474, 474, 474, + /* 2660 */ 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + /* 2670 */ 474, 474, 474, 411, 333, 474, 474, 415, 474, 474, + /* 2680 */ 418, 419, 420, 421, 422, 423, 474, 425, 474, 366, + /* 2690 */ 474, 474, 474, 474, 474, 474, 474, 374, 474, 474, + /* 2700 */ 474, 474, 379, 474, 381, 474, 474, 366, 474, 474, + /* 2710 */ 474, 474, 474, 474, 474, 374, 474, 474, 474, 474, + /* 2720 */ 379, 474, 381, 474, 474, 474, 474, 474, 474, 474, + /* 2730 */ 474, 474, 333, 474, 411, 474, 474, 474, 415, 474, + /* 2740 */ 474, 418, 419, 420, 421, 422, 423, 474, 425, 333, + /* 2750 */ 474, 474, 411, 474, 474, 474, 415, 474, 474, 418, + /* 2760 */ 419, 420, 421, 422, 423, 366, 425, 474, 474, 474, + /* 2770 */ 474, 474, 474, 374, 474, 474, 474, 474, 379, 474, + /* 2780 */ 381, 474, 366, 474, 474, 474, 474, 474, 474, 474, + /* 2790 */ 374, 474, 474, 474, 474, 379, 474, 381, 474, 474, + /* 2800 */ 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, + /* 2810 */ 411, 474, 474, 474, 415, 474, 474, 418, 419, 420, + /* 2820 */ 421, 422, 423, 474, 425, 474, 474, 411, 474, 474, + /* 2830 */ 474, 415, 474, 474, 418, 419, 420, 421, 422, 423, + /* 2840 */ 474, 425, }; -#define YY_SHIFT_COUNT (753) +#define YY_SHIFT_COUNT (758) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2245) +#define YY_SHIFT_MAX (2254) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 957, 0, 98, 0, 321, 321, 321, 321, 321, 321, - /* 10 */ 321, 321, 321, 321, 321, 419, 641, 641, 739, 641, - /* 20 */ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641, - /* 30 */ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641, - /* 40 */ 641, 641, 641, 641, 641, 641, 641, 641, 141, 328, - /* 50 */ 818, 68, 97, 103, 469, 103, 68, 68, 966, 966, - /* 60 */ 966, 103, 966, 966, 94, 103, 4, 653, 24, 24, - /* 70 */ 653, 292, 292, 319, 425, 186, 186, 24, 24, 24, - /* 80 */ 24, 24, 24, 24, 138, 24, 24, 124, 4, 24, - /* 90 */ 24, 243, 24, 4, 24, 138, 24, 138, 4, 24, - /* 100 */ 24, 4, 24, 4, 4, 4, 24, 232, 956, 285, - /* 110 */ 285, 117, 251, 990, 990, 990, 990, 990, 990, 990, - /* 120 */ 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, - /* 130 */ 990, 990, 679, 603, 319, 425, 239, 674, 674, 674, - /* 140 */ 36, 395, 395, 239, 410, 410, 410, 124, 351, 242, - /* 150 */ 4, 489, 4, 489, 489, 493, 506, 245, 245, 245, - /* 160 */ 245, 245, 245, 245, 245, 1318, 491, 375, 400, 673, - /* 170 */ 502, 112, 95, 919, 922, 29, 786, 898, 929, 953, - /* 180 */ 796, 880, 745, 796, 1106, 992, 887, 1140, 1351, 1226, - /* 190 */ 1373, 1407, 1373, 1266, 1414, 1414, 1373, 1266, 1266, 1344, - /* 200 */ 1350, 1414, 1352, 1414, 1414, 1414, 1442, 1442, 1444, 124, - /* 210 */ 1447, 124, 1450, 1455, 124, 1450, 124, 124, 124, 1414, - /* 220 */ 124, 1430, 1430, 1442, 4, 4, 4, 4, 4, 4, - /* 230 */ 4, 4, 4, 4, 4, 1414, 1442, 489, 489, 489, - /* 240 */ 1300, 1405, 1444, 232, 1315, 1353, 1447, 232, 1414, 1407, - /* 250 */ 1407, 489, 1302, 1304, 489, 1302, 1304, 489, 489, 4, - /* 260 */ 1307, 1398, 1302, 1308, 1312, 1329, 1140, 1309, 1311, 1317, - /* 270 */ 1337, 410, 1573, 1414, 1450, 232, 232, 1585, 1304, 489, - /* 280 */ 489, 489, 489, 489, 1304, 489, 1457, 232, 493, 232, - /* 290 */ 410, 1556, 1560, 489, 506, 1414, 232, 1628, 1442, 2833, - /* 300 */ 2833, 2833, 2833, 2833, 2833, 2833, 2833, 2833, 170, 1402, - /* 310 */ 473, 981, 166, 466, 808, 157, 374, 587, 602, 597, - /* 320 */ 196, 196, 196, 196, 196, 196, 196, 196, 196, 173, - /* 330 */ 320, 26, 26, 342, 736, 624, 795, 900, 1124, 591, - /* 340 */ 1015, 305, 305, 976, 592, 108, 976, 976, 976, 834, - /* 350 */ 977, 1179, 1109, 17, 336, 1079, 1130, 1142, 1144, 696, - /* 360 */ 1098, 1267, 1078, 1090, 1221, 598, 1229, 1234, 1240, 1154, - /* 370 */ 905, 1081, 172, 1249, 1253, 1257, 1258, 1261, 1262, 1294, - /* 380 */ 1269, 1059, 1127, 1121, 1279, 1256, 1313, 1320, 1324, 1325, - /* 390 */ 1335, 1338, 1188, 1326, 1358, 1348, 1346, 1676, 1679, 1692, - /* 400 */ 1652, 1696, 1662, 1497, 1672, 1673, 1674, 1503, 1711, 1678, - /* 410 */ 1680, 1511, 1720, 1515, 1723, 1689, 1727, 1706, 1729, 1695, - /* 420 */ 1537, 1544, 1547, 1735, 1736, 1737, 1558, 1557, 1742, 1743, - /* 430 */ 1697, 1745, 1746, 1747, 1707, 1748, 1750, 1752, 1753, 1754, - /* 440 */ 1757, 1764, 1766, 1612, 1733, 1769, 1615, 1773, 1774, 1786, - /* 450 */ 1787, 1788, 1790, 1791, 1792, 1793, 1795, 1796, 1798, 1799, - /* 460 */ 1800, 1801, 1803, 1763, 1806, 1807, 1808, 1809, 1810, 1811, - /* 470 */ 1762, 1812, 1813, 1815, 1677, 1817, 1818, 1797, 1724, 1802, - /* 480 */ 1725, 1822, 1765, 1794, 1825, 1768, 1827, 1770, 1830, 1832, - /* 490 */ 1814, 1819, 1789, 1804, 1821, 1805, 1823, 1816, 1836, 1824, - /* 500 */ 1820, 1840, 1849, 1850, 1826, 1684, 1853, 1854, 1857, 1828, - /* 510 */ 1866, 1867, 1833, 1831, 1834, 1869, 1835, 1838, 1837, 1871, - /* 520 */ 1839, 1841, 1843, 1875, 1846, 1847, 1844, 1878, 1884, 1888, - /* 530 */ 1890, 1782, 1829, 1859, 1876, 1897, 1870, 1872, 1874, 1879, - /* 540 */ 1880, 1886, 1891, 1881, 1883, 1889, 1885, 1910, 1900, 1913, - /* 550 */ 1901, 1882, 1919, 1912, 1902, 1938, 1904, 1940, 1906, 1942, - /* 560 */ 1921, 1924, 1911, 1914, 1916, 1851, 1848, 1947, 1845, 1855, - /* 570 */ 1926, 1932, 1956, 1775, 1935, 1858, 1860, 1959, 1963, 1864, - /* 580 */ 1852, 1962, 1923, 1714, 1873, 1868, 1877, 1892, 1887, 1893, - /* 590 */ 1896, 1895, 1927, 1928, 1905, 1907, 1909, 1917, 1933, 1931, - /* 600 */ 1929, 1937, 1936, 1934, 1716, 1941, 1944, 1977, 1943, 1728, - /* 610 */ 1951, 1957, 1958, 1970, 1979, 1993, 1945, 1952, 1965, 1862, - /* 620 */ 1991, 1990, 2038, 2039, 2041, 2043, 1955, 2017, 1804, 2010, - /* 630 */ 1960, 1961, 1966, 1964, 1976, 1915, 1978, 2063, 2020, 1908, - /* 640 */ 1982, 1973, 1804, 2033, 2040, 1987, 1863, 1989, 2086, 2067, - /* 650 */ 1894, 1992, 1994, 1997, 1995, 2000, 2001, 2047, 2003, 2005, - /* 660 */ 2054, 2007, 2068, 1898, 2009, 2006, 2011, 2079, 2089, 2027, - /* 670 */ 2028, 2093, 2030, 2031, 2096, 2035, 2032, 2102, 2042, 2037, - /* 680 */ 2116, 2052, 2036, 2044, 2045, 2046, 2131, 2048, 2055, 2110, - /* 690 */ 2056, 2123, 2061, 2110, 2110, 2141, 2100, 2106, 2137, 2138, - /* 700 */ 2142, 2149, 2151, 2152, 2153, 2154, 2155, 2156, 2095, 2083, - /* 710 */ 2148, 2160, 2161, 2162, 2177, 2165, 2174, 2176, 2139, 1886, - /* 720 */ 2178, 1891, 2179, 2181, 2182, 2183, 2190, 2184, 2221, 2188, - /* 730 */ 2180, 2185, 2225, 2192, 2187, 2191, 2229, 2196, 2189, 2193, - /* 740 */ 2233, 2201, 2194, 2199, 2240, 2208, 2209, 2245, 2224, 2226, - /* 750 */ 2227, 2228, 2230, 2237, + /* 0 */ 1217, 0, 223, 0, 447, 447, 447, 447, 447, 447, + /* 10 */ 447, 447, 447, 447, 447, 670, 893, 893, 1116, 893, + /* 20 */ 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + /* 30 */ 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + /* 40 */ 893, 893, 893, 893, 893, 893, 893, 893, 219, 294, + /* 50 */ 394, 148, 381, 71, 291, 71, 148, 148, 991, 991, + /* 60 */ 991, 71, 991, 991, 147, 71, 31, 643, 46, 46, + /* 70 */ 643, 432, 432, 221, 45, 35, 35, 46, 46, 46, + /* 80 */ 46, 46, 46, 46, 124, 46, 46, 22, 31, 46, + /* 90 */ 46, 186, 46, 31, 46, 124, 46, 124, 31, 46, + /* 100 */ 46, 31, 46, 31, 31, 31, 46, 203, 222, 187, + /* 110 */ 187, 671, 13, 774, 774, 774, 774, 774, 774, 774, + /* 120 */ 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + /* 130 */ 774, 774, 804, 490, 221, 45, 537, 386, 386, 386, + /* 140 */ 700, 173, 173, 537, 251, 251, 251, 22, 207, 238, + /* 150 */ 31, 116, 31, 116, 116, 247, 484, 410, 410, 410, + /* 160 */ 410, 410, 410, 410, 410, 1862, 857, 313, 196, 16, + /* 170 */ 65, 112, 228, 633, 853, 335, 592, 894, 952, 963, + /* 180 */ 883, 988, 1041, 883, 1126, 739, 1133, 1154, 1373, 1241, + /* 190 */ 1393, 1429, 1393, 1305, 1452, 1452, 1393, 1305, 1305, 1377, + /* 200 */ 1386, 1452, 1389, 1452, 1452, 1452, 1473, 1473, 1480, 22, + /* 210 */ 1482, 22, 1487, 1490, 22, 1487, 22, 22, 22, 1452, + /* 220 */ 22, 1466, 1466, 1473, 31, 31, 31, 31, 31, 31, + /* 230 */ 31, 31, 31, 31, 31, 1452, 1473, 116, 116, 116, + /* 240 */ 1331, 1434, 1480, 203, 1379, 1384, 1482, 203, 1452, 1429, + /* 250 */ 1429, 116, 1322, 1328, 116, 1322, 1328, 116, 116, 31, + /* 260 */ 1335, 1412, 1322, 1337, 1339, 1351, 1154, 1314, 1332, 1338, + /* 270 */ 1359, 251, 1599, 1452, 1487, 203, 203, 1613, 1328, 116, + /* 280 */ 116, 116, 116, 116, 1328, 116, 1489, 203, 247, 203, + /* 290 */ 251, 1550, 1567, 116, 484, 1452, 203, 1642, 1473, 2842, + /* 300 */ 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 36, 441, + /* 310 */ 598, 547, 408, 1002, 1060, 506, 702, 1082, 1150, 1099, + /* 320 */ 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1175, + /* 330 */ 554, 76, 76, 722, 526, 656, 733, 707, 848, 971, + /* 340 */ 752, 867, 867, 499, 461, 144, 499, 499, 499, 288, + /* 350 */ 1077, 587, 1070, 1195, 1049, 1134, 1037, 1050, 1091, 1108, + /* 360 */ 581, 939, 1259, 1272, 1292, 1061, 1192, 1222, 1199, 1224, + /* 370 */ 1253, 1256, 1137, 1043, 1242, 1152, 1271, 1275, 1280, 1284, + /* 380 */ 1285, 1288, 1320, 1307, 1164, 1263, 580, 1309, 1264, 1317, + /* 390 */ 1321, 1323, 1330, 1333, 1336, 1282, 1353, 1358, 1291, 1390, + /* 400 */ 1692, 1693, 1696, 1661, 1705, 1673, 1502, 1675, 1676, 1677, + /* 410 */ 1506, 1715, 1681, 1682, 1512, 1720, 1520, 1730, 1697, 1731, + /* 420 */ 1711, 1734, 1700, 1542, 1549, 1552, 1741, 1742, 1743, 1562, + /* 430 */ 1564, 1746, 1747, 1702, 1750, 1751, 1752, 1712, 1756, 1757, + /* 440 */ 1758, 1759, 1760, 1761, 1763, 1764, 1611, 1733, 1769, 1616, + /* 450 */ 1772, 1773, 1774, 1776, 1778, 1780, 1781, 1782, 1783, 1784, + /* 460 */ 1786, 1787, 1788, 1790, 1791, 1798, 1762, 1800, 1801, 1803, + /* 470 */ 1805, 1806, 1808, 1802, 1809, 1810, 1813, 1683, 1823, 1826, + /* 480 */ 1807, 1732, 1811, 1735, 1830, 1779, 1797, 1834, 1789, 1836, + /* 490 */ 1793, 1838, 1839, 1799, 1814, 1812, 1795, 1832, 1815, 1835, + /* 500 */ 1825, 1844, 1818, 1820, 1852, 1854, 1855, 1824, 1698, 1870, + /* 510 */ 1874, 1876, 1817, 1877, 1878, 1848, 1831, 1846, 1886, 1861, + /* 520 */ 1849, 1860, 1900, 1867, 1856, 1864, 1905, 1872, 1863, 1873, + /* 530 */ 1909, 1913, 1914, 1915, 1819, 1822, 1887, 1899, 1923, 1889, + /* 540 */ 1890, 1891, 1895, 1896, 1897, 1898, 1892, 1893, 1904, 1906, + /* 550 */ 1912, 1908, 1935, 1918, 1944, 1929, 1903, 1954, 1933, 1922, + /* 560 */ 1958, 1924, 1962, 1928, 1965, 1945, 1946, 1934, 1936, 1937, + /* 570 */ 1869, 1879, 1974, 1827, 1880, 1941, 1955, 1978, 1792, 1960, + /* 580 */ 1833, 1821, 1983, 1984, 1840, 1828, 1982, 1942, 1737, 1888, + /* 590 */ 1910, 1894, 1902, 1901, 1911, 1926, 1921, 1949, 1956, 1925, + /* 600 */ 1927, 1930, 1932, 1938, 1966, 1959, 1976, 1940, 1980, 1770, + /* 610 */ 1948, 1952, 1987, 1985, 1829, 2002, 2012, 2015, 2021, 2022, + /* 620 */ 2023, 1953, 1967, 2013, 1837, 2017, 2016, 2062, 2067, 2070, + /* 630 */ 2071, 1981, 2039, 1795, 2033, 1988, 1986, 1989, 1991, 1992, + /* 640 */ 1931, 1993, 2083, 2046, 1920, 1994, 1999, 1795, 2048, 2053, + /* 650 */ 2000, 1865, 2014, 2109, 2091, 1907, 2018, 2024, 2020, 2025, + /* 660 */ 2027, 2028, 2069, 2031, 2034, 2072, 2032, 2092, 1919, 2037, + /* 670 */ 2006, 2035, 2087, 2089, 2038, 2040, 2104, 2042, 2043, 2108, + /* 680 */ 2050, 2045, 2113, 2051, 2052, 2117, 2054, 2055, 2056, 2057, + /* 690 */ 2060, 2133, 2044, 2058, 2115, 2061, 2122, 2063, 2115, 2115, + /* 700 */ 2140, 2101, 2111, 2130, 2138, 2141, 2157, 2158, 2159, 2161, + /* 710 */ 2163, 2165, 2166, 2131, 2110, 2160, 2170, 2171, 2172, 2186, + /* 720 */ 2174, 2175, 2176, 2142, 1892, 2177, 1893, 2179, 2181, 2182, + /* 730 */ 2184, 2196, 2185, 2221, 2187, 2178, 2189, 2223, 2190, 2194, + /* 740 */ 2191, 2224, 2198, 2195, 2205, 2229, 2211, 2201, 2212, 2250, + /* 750 */ 2217, 2218, 2254, 2233, 2236, 2237, 2238, 2241, 2244, }; #define YY_REDUCE_COUNT (307) -#define YY_REDUCE_MIN (-442) -#define YY_REDUCE_MAX (2408) +#define YY_REDUCE_MIN (-396) +#define YY_REDUCE_MAX (2416) static const short yy_reduce_ofst[] = { - /* 0 */ -20, -328, 248, 809, 840, 907, 967, 987, 1096, 655, - /* 10 */ 1116, 1190, 1214, 1281, 1341, 46, -305, 325, 467, 890, - /* 20 */ 1264, 1361, 1424, 1482, 1507, 1580, 1601, 1630, 1651, 1701, - /* 30 */ 1726, 1761, 1784, 1842, 1861, 1922, 1980, 1996, 2059, 2075, - /* 40 */ 2094, 2158, 2175, 2235, 2255, 2329, 2346, 2408, -317, -303, - /* 50 */ 120, 282, 313, 453, 483, 584, 361, 683, -367, -348, - /* 60 */ -272, 461, 206, 293, -442, -384, 72, -364, -286, 475, - /* 70 */ -378, -330, 59, 327, -241, 155, 171, 324, 384, 413, - /* 80 */ 479, 637, 686, 698, -287, 708, 776, 22, 330, 788, - /* 90 */ 791, -358, 802, 465, 815, 70, 817, 452, 60, 844, - /* 100 */ 859, 518, 868, 536, 566, 675, 869, 230, -297, -284, - /* 110 */ -284, -344, -259, -207, 201, 359, 376, 418, 471, 501, - /* 120 */ 524, 704, 711, 760, 761, 765, 824, 838, 874, 878, - /* 130 */ 903, 904, -188, -387, -172, 192, 257, -387, 367, 402, - /* 140 */ 145, 504, 554, 562, -71, -27, 65, 288, -327, 306, - /* 150 */ 648, 380, 685, 517, 633, 772, 705, 407, 427, 432, - /* 160 */ 445, 462, 512, 571, 462, 134, 716, 669, 619, 710, - /* 170 */ 793, 932, 829, 927, 927, 952, 928, 979, 943, 945, - /* 180 */ 899, 899, 884, 899, 941, 942, 927, 982, 989, 1013, - /* 190 */ 1039, 1041, 1045, 1049, 1097, 1100, 1053, 1058, 1060, 1094, - /* 200 */ 1102, 1107, 1101, 1113, 1114, 1115, 1129, 1131, 1061, 1122, - /* 210 */ 1091, 1126, 1132, 1080, 1133, 1136, 1134, 1137, 1138, 1145, - /* 220 */ 1147, 1143, 1148, 1156, 1123, 1135, 1158, 1159, 1163, 1164, - /* 230 */ 1174, 1176, 1178, 1183, 1184, 1155, 1165, 1119, 1120, 1125, - /* 240 */ 1103, 1112, 1104, 1177, 1146, 1150, 1180, 1210, 1216, 1169, - /* 250 */ 1170, 1181, 1111, 1172, 1189, 1128, 1173, 1191, 1195, 927, - /* 260 */ 1141, 1151, 1149, 1139, 1152, 1166, 1171, 1117, 1157, 1153, - /* 270 */ 899, 1217, 1182, 1259, 1260, 1271, 1273, 1231, 1227, 1252, - /* 280 */ 1263, 1265, 1270, 1274, 1246, 1275, 1250, 1303, 1290, 1314, - /* 290 */ 1282, 1223, 1293, 1285, 1310, 1327, 1322, 1333, 1336, 1272, - /* 300 */ 1283, 1277, 1286, 1316, 1328, 1331, 1332, 1339, + /* 0 */ -315, -280, -120, 138, 276, 353, 429, 548, 620, -18, + /* 10 */ 167, 771, 1025, 1105, 1125, 403, 994, 1202, 1219, 1279, + /* 20 */ 1303, 1374, 1396, 1446, 1469, 1527, 1594, 1623, 1654, 1685, + /* 30 */ 1749, 1766, 1816, 1866, 1882, 1943, 1961, 2019, 2036, 2100, + /* 40 */ 2116, 2183, 2200, 2262, 2323, 2341, 2399, 2416, 801, -289, + /* 50 */ -396, -177, -394, 513, 827, 915, -91, 280, 372, 540, + /* 60 */ 1073, -279, -368, -90, -388, 564, -89, -235, -181, -84, + /* 70 */ -380, -332, -278, -81, -354, 123, 149, 352, 424, 460, + /* 80 */ 498, 505, 576, 679, 160, 680, 706, -265, -363, 729, + /* 90 */ 798, 102, 799, -175, 826, 175, 828, 179, 285, 840, + /* 100 */ 887, -129, 906, 502, 106, 621, 910, 232, -320, -355, + /* 110 */ -355, -51, -58, -141, 269, 273, 426, 433, 459, 541, + /* 120 */ 542, 676, 692, 756, 767, 768, 769, 797, 838, 847, + /* 130 */ 871, 877, 143, 49, -106, -285, -6, 49, 376, 529, + /* 140 */ 589, -16, 304, 150, 495, 649, 708, 628, -232, 507, + /* 150 */ -357, 197, 640, 672, 682, 747, 477, 292, 380, 446, + /* 160 */ 486, 511, 551, 711, 511, 161, 347, 419, 694, 712, + /* 170 */ 727, 800, 772, 937, 937, 1013, 980, 1030, 1009, 1005, + /* 180 */ 955, 955, 933, 955, 964, 954, 937, 998, 1020, 1033, + /* 190 */ 1056, 1066, 1083, 1072, 1132, 1135, 1088, 1093, 1094, 1129, + /* 200 */ 1140, 1141, 1136, 1151, 1153, 1155, 1160, 1162, 1095, 1156, + /* 210 */ 1124, 1161, 1167, 1112, 1165, 1171, 1168, 1172, 1174, 1173, + /* 220 */ 1182, 1178, 1187, 1197, 1183, 1185, 1188, 1189, 1190, 1193, + /* 230 */ 1194, 1198, 1200, 1201, 1203, 1212, 1204, 1159, 1179, 1184, + /* 240 */ 1163, 1157, 1166, 1225, 1169, 1176, 1196, 1233, 1238, 1205, + /* 250 */ 1206, 1207, 1130, 1208, 1209, 1138, 1210, 1211, 1218, 937, + /* 260 */ 1139, 1143, 1147, 1158, 1177, 1180, 1213, 1142, 1149, 1148, + /* 270 */ 955, 1244, 1215, 1287, 1293, 1298, 1301, 1255, 1254, 1270, + /* 280 */ 1273, 1276, 1278, 1283, 1260, 1286, 1277, 1316, 1302, 1318, + /* 290 */ 1296, 1231, 1304, 1297, 1315, 1334, 1340, 1343, 1345, 1290, + /* 300 */ 1274, 1294, 1300, 1326, 1327, 1346, 1342, 1352, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 10 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 20 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 30 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 40 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 50 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 60 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 70 */ 1695, 1695, 1695, 1962, 1695, 1695, 1695, 1695, 1695, 1695, - /* 80 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1774, 1695, 1695, - /* 90 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 100 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1772, 1955, 2173, - /* 110 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 120 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 130 */ 1695, 1695, 1695, 2185, 1695, 1695, 1695, 2185, 2185, 2185, - /* 140 */ 1772, 2145, 2145, 1695, 1695, 1695, 1695, 1774, 2018, 1695, - /* 150 */ 1695, 1695, 1695, 1695, 1695, 1890, 1695, 1695, 1695, 1695, - /* 160 */ 1695, 1914, 1695, 1695, 1695, 2008, 1695, 1695, 2210, 2266, - /* 170 */ 1695, 1695, 2213, 1695, 1695, 1695, 1967, 1695, 1843, 2200, - /* 180 */ 2177, 2191, 2250, 2178, 2175, 2194, 1695, 2204, 1695, 2001, - /* 190 */ 1960, 1695, 1960, 1957, 1695, 1695, 1960, 1957, 1957, 1832, - /* 200 */ 1828, 1695, 1826, 1695, 1695, 1695, 1695, 1695, 1695, 1774, - /* 210 */ 1695, 1774, 1695, 1695, 1774, 1695, 1774, 1774, 1774, 1695, - /* 220 */ 1774, 1752, 1752, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 230 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 240 */ 2030, 2016, 1695, 1772, 2012, 2010, 1695, 1772, 1695, 1695, - /* 250 */ 1695, 1695, 2221, 2219, 1695, 2221, 2219, 1695, 1695, 1695, - /* 260 */ 2235, 2231, 2221, 2239, 2237, 2206, 2204, 2269, 2256, 2252, - /* 270 */ 2191, 1695, 1695, 1695, 1695, 1772, 1772, 1695, 2219, 1695, - /* 280 */ 1695, 1695, 1695, 1695, 2219, 1695, 1695, 1772, 1695, 1772, - /* 290 */ 1695, 1695, 1859, 1695, 1695, 1695, 1772, 1727, 1695, 2003, - /* 300 */ 2021, 1985, 1985, 1893, 1893, 1893, 1775, 1700, 1695, 1695, - /* 310 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 320 */ 2234, 2233, 2100, 1695, 2149, 2148, 2147, 2138, 2099, 1855, - /* 330 */ 1695, 2098, 2097, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 340 */ 1695, 1976, 1975, 2091, 1695, 1695, 2092, 2090, 2089, 1695, - /* 350 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 360 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 370 */ 2253, 2257, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2174, - /* 380 */ 1695, 1695, 1695, 1695, 1695, 2073, 1695, 1695, 1695, 1695, - /* 390 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 400 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 410 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 420 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 430 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 440 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 450 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 460 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 470 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 480 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 490 */ 1695, 1695, 1732, 2078, 1695, 1695, 1695, 1695, 1695, 1695, - /* 500 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 510 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 520 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 530 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 540 */ 1695, 1813, 1812, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 550 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 560 */ 1695, 1695, 1695, 1695, 1695, 2082, 1695, 1695, 1695, 1695, - /* 570 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 580 */ 1695, 2249, 2207, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 590 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 600 */ 1695, 2073, 1695, 2232, 1695, 1695, 2247, 1695, 2251, 1695, - /* 610 */ 1695, 1695, 1695, 1695, 1695, 1695, 2184, 2180, 1695, 1695, - /* 620 */ 2176, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2081, 1695, - /* 630 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 640 */ 1695, 1695, 2072, 1695, 2135, 1695, 1695, 1695, 2169, 1695, - /* 650 */ 1695, 2120, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 660 */ 1695, 2082, 1695, 2085, 1695, 1695, 1695, 1695, 1695, 1887, - /* 670 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 680 */ 1695, 1695, 1872, 1870, 1869, 1868, 1695, 1865, 1695, 1900, - /* 690 */ 1695, 1695, 1695, 1896, 1895, 1695, 1695, 1695, 1695, 1695, - /* 700 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 710 */ 1793, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1785, - /* 720 */ 1695, 1784, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 730 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 740 */ 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, - /* 750 */ 1695, 1695, 1695, 1695, + /* 0 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 10 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 20 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 30 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 40 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 50 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 60 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 70 */ 1709, 1709, 1709, 1980, 1709, 1709, 1709, 1709, 1709, 1709, + /* 80 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1788, 1709, 1709, + /* 90 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 100 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1786, 1973, 2192, + /* 110 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 120 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 130 */ 1709, 1709, 1709, 2204, 1709, 1709, 1709, 2204, 2204, 2204, + /* 140 */ 1786, 2164, 2164, 1709, 1709, 1709, 1709, 1788, 2036, 1709, + /* 150 */ 1709, 1709, 1709, 1709, 1709, 1908, 1709, 1709, 1709, 1709, + /* 160 */ 1709, 1932, 1709, 1709, 1709, 2026, 1709, 1709, 2229, 2285, + /* 170 */ 1709, 1709, 2232, 1709, 1709, 1709, 1985, 1709, 1861, 2219, + /* 180 */ 2196, 2210, 2269, 2197, 2194, 2213, 1709, 2223, 1709, 2019, + /* 190 */ 1978, 1709, 1978, 1975, 1709, 1709, 1978, 1975, 1975, 1850, + /* 200 */ 1846, 1709, 1844, 1709, 1709, 1709, 1709, 1709, 1709, 1788, + /* 210 */ 1709, 1788, 1709, 1709, 1788, 1709, 1788, 1788, 1788, 1709, + /* 220 */ 1788, 1766, 1766, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 230 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 240 */ 2048, 2034, 1709, 1786, 2030, 2028, 1709, 1786, 1709, 1709, + /* 250 */ 1709, 1709, 2240, 2238, 1709, 2240, 2238, 1709, 1709, 1709, + /* 260 */ 2254, 2250, 2240, 2258, 2256, 2225, 2223, 2288, 2275, 2271, + /* 270 */ 2210, 1709, 1709, 1709, 1709, 1786, 1786, 1709, 2238, 1709, + /* 280 */ 1709, 1709, 1709, 1709, 2238, 1709, 1709, 1786, 1709, 1786, + /* 290 */ 1709, 1709, 1877, 1709, 1709, 1709, 1786, 1741, 1709, 2021, + /* 300 */ 2039, 2003, 2003, 1911, 1911, 1911, 1789, 1714, 1709, 1709, + /* 310 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 320 */ 2253, 2252, 2119, 1709, 2168, 2167, 2166, 2157, 2118, 1873, + /* 330 */ 1709, 2117, 2116, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 340 */ 1709, 1994, 1993, 2110, 1709, 1709, 2111, 2109, 2108, 1709, + /* 350 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 360 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 370 */ 1709, 1709, 1709, 2272, 2276, 1709, 1709, 1709, 1709, 1709, + /* 380 */ 1709, 1709, 2193, 1709, 1709, 1709, 1709, 1709, 2092, 1709, + /* 390 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 400 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 410 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 420 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 430 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 440 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 450 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 460 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 470 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 480 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 490 */ 1709, 1709, 1709, 1709, 1709, 1746, 2097, 1709, 1709, 1709, + /* 500 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 510 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 520 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 530 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 540 */ 1709, 1709, 1709, 1709, 1709, 1709, 1827, 1826, 1709, 1709, + /* 550 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 560 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 570 */ 2101, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 580 */ 1709, 1709, 1709, 1709, 1709, 1709, 2268, 2226, 1709, 1709, + /* 590 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 600 */ 1709, 1709, 1709, 1709, 1709, 1709, 2092, 1709, 2251, 1709, + /* 610 */ 1709, 2266, 1709, 2270, 1709, 1709, 1709, 1709, 1709, 1709, + /* 620 */ 1709, 2203, 2199, 1709, 1709, 2195, 1709, 1709, 1709, 1709, + /* 630 */ 1709, 1709, 1709, 2100, 1709, 1709, 1709, 1709, 1709, 1709, + /* 640 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 2091, 1709, 2154, + /* 650 */ 1709, 1709, 1709, 2188, 1709, 1709, 2139, 1709, 1709, 1709, + /* 660 */ 1709, 1709, 1709, 1709, 1709, 1709, 2101, 1709, 2104, 1709, + /* 670 */ 1709, 1709, 1709, 1709, 1905, 1709, 1709, 1709, 1709, 1709, + /* 680 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1890, 1888, 1887, + /* 690 */ 1886, 1709, 1883, 1709, 1918, 1709, 1709, 1709, 1914, 1913, + /* 700 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 710 */ 1709, 1709, 1709, 1709, 1709, 1807, 1709, 1709, 1709, 1709, + /* 720 */ 1709, 1709, 1709, 1709, 1799, 1709, 1798, 1709, 1709, 1709, + /* 730 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 740 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, + /* 750 */ 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1100,7 +1102,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* START => nothing */ 0, /* WITH => nothing */ 0, /* TIMESTAMP => nothing */ - 277, /* END => ABORT */ + 278, /* END => ABORT */ 0, /* TABLE => nothing */ 0, /* NK_LP => nothing */ 0, /* NK_RP => nothing */ @@ -1210,6 +1212,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* TRANSACTION => nothing */ 0, /* BALANCE => nothing */ 0, /* VGROUP => nothing */ + 0, /* LEADER => nothing */ 0, /* MERGE => nothing */ 0, /* REDISTRIBUTE => nothing */ 0, /* SPLIT => nothing */ @@ -1280,57 +1283,57 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASC => nothing */ 0, /* NULLS => nothing */ 0, /* ABORT => nothing */ - 277, /* AFTER => ABORT */ - 277, /* ATTACH => ABORT */ - 277, /* BEFORE => ABORT */ - 277, /* BEGIN => ABORT */ - 277, /* BITAND => ABORT */ - 277, /* BITNOT => ABORT */ - 277, /* BITOR => ABORT */ - 277, /* BLOCKS => ABORT */ - 277, /* CHANGE => ABORT */ - 277, /* COMMA => ABORT */ - 277, /* CONCAT => ABORT */ - 277, /* CONFLICT => ABORT */ - 277, /* COPY => ABORT */ - 277, /* DEFERRED => ABORT */ - 277, /* DELIMITERS => ABORT */ - 277, /* DETACH => ABORT */ - 277, /* DIVIDE => ABORT */ - 277, /* DOT => ABORT */ - 277, /* EACH => ABORT */ - 277, /* FAIL => ABORT */ - 277, /* FILE => ABORT */ - 277, /* FOR => ABORT */ - 277, /* GLOB => ABORT */ - 277, /* ID => ABORT */ - 277, /* IMMEDIATE => ABORT */ - 277, /* IMPORT => ABORT */ - 277, /* INITIALLY => ABORT */ - 277, /* INSTEAD => ABORT */ - 277, /* ISNULL => ABORT */ - 277, /* KEY => ABORT */ - 277, /* MODULES => ABORT */ - 277, /* NK_BITNOT => ABORT */ - 277, /* NK_SEMI => ABORT */ - 277, /* NOTNULL => ABORT */ - 277, /* OF => ABORT */ - 277, /* PLUS => ABORT */ - 277, /* PRIVILEGE => ABORT */ - 277, /* RAISE => ABORT */ - 277, /* REPLACE => ABORT */ - 277, /* RESTRICT => ABORT */ - 277, /* ROW => ABORT */ - 277, /* SEMI => ABORT */ - 277, /* STAR => ABORT */ - 277, /* STATEMENT => ABORT */ - 277, /* STRICT => ABORT */ - 277, /* STRING => ABORT */ - 277, /* TIMES => ABORT */ - 277, /* VALUES => ABORT */ - 277, /* VARIABLE => ABORT */ - 277, /* VIEW => ABORT */ - 277, /* WAL => ABORT */ + 278, /* AFTER => ABORT */ + 278, /* ATTACH => ABORT */ + 278, /* BEFORE => ABORT */ + 278, /* BEGIN => ABORT */ + 278, /* BITAND => ABORT */ + 278, /* BITNOT => ABORT */ + 278, /* BITOR => ABORT */ + 278, /* BLOCKS => ABORT */ + 278, /* CHANGE => ABORT */ + 278, /* COMMA => ABORT */ + 278, /* CONCAT => ABORT */ + 278, /* CONFLICT => ABORT */ + 278, /* COPY => ABORT */ + 278, /* DEFERRED => ABORT */ + 278, /* DELIMITERS => ABORT */ + 278, /* DETACH => ABORT */ + 278, /* DIVIDE => ABORT */ + 278, /* DOT => ABORT */ + 278, /* EACH => ABORT */ + 278, /* FAIL => ABORT */ + 278, /* FILE => ABORT */ + 278, /* FOR => ABORT */ + 278, /* GLOB => ABORT */ + 278, /* ID => ABORT */ + 278, /* IMMEDIATE => ABORT */ + 278, /* IMPORT => ABORT */ + 278, /* INITIALLY => ABORT */ + 278, /* INSTEAD => ABORT */ + 278, /* ISNULL => ABORT */ + 278, /* KEY => ABORT */ + 278, /* MODULES => ABORT */ + 278, /* NK_BITNOT => ABORT */ + 278, /* NK_SEMI => ABORT */ + 278, /* NOTNULL => ABORT */ + 278, /* OF => ABORT */ + 278, /* PLUS => ABORT */ + 278, /* PRIVILEGE => ABORT */ + 278, /* RAISE => ABORT */ + 278, /* REPLACE => ABORT */ + 278, /* RESTRICT => ABORT */ + 278, /* ROW => ABORT */ + 278, /* SEMI => ABORT */ + 278, /* STAR => ABORT */ + 278, /* STATEMENT => ABORT */ + 278, /* STRICT => ABORT */ + 278, /* STRING => ABORT */ + 278, /* TIMES => ABORT */ + 278, /* VALUES => ABORT */ + 278, /* VARIABLE => ABORT */ + 278, /* VIEW => ABORT */ + 278, /* WAL => ABORT */ }; #endif /* YYFALLBACK */ @@ -1626,271 +1629,272 @@ static const char *const yyTokenName[] = { /* 205 */ "TRANSACTION", /* 206 */ "BALANCE", /* 207 */ "VGROUP", - /* 208 */ "MERGE", - /* 209 */ "REDISTRIBUTE", - /* 210 */ "SPLIT", - /* 211 */ "DELETE", - /* 212 */ "INSERT", - /* 213 */ "NULL", - /* 214 */ "NK_QUESTION", - /* 215 */ "NK_ARROW", - /* 216 */ "ROWTS", - /* 217 */ "QSTART", - /* 218 */ "QEND", - /* 219 */ "QDURATION", - /* 220 */ "WSTART", - /* 221 */ "WEND", - /* 222 */ "WDURATION", - /* 223 */ "IROWTS", - /* 224 */ "ISFILLED", - /* 225 */ "CAST", - /* 226 */ "NOW", - /* 227 */ "TODAY", - /* 228 */ "TIMEZONE", - /* 229 */ "CLIENT_VERSION", - /* 230 */ "SERVER_VERSION", - /* 231 */ "SERVER_STATUS", - /* 232 */ "CURRENT_USER", - /* 233 */ "CASE", - /* 234 */ "WHEN", - /* 235 */ "THEN", - /* 236 */ "ELSE", - /* 237 */ "BETWEEN", - /* 238 */ "IS", - /* 239 */ "NK_LT", - /* 240 */ "NK_GT", - /* 241 */ "NK_LE", - /* 242 */ "NK_GE", - /* 243 */ "NK_NE", - /* 244 */ "MATCH", - /* 245 */ "NMATCH", - /* 246 */ "CONTAINS", - /* 247 */ "IN", - /* 248 */ "JOIN", - /* 249 */ "INNER", - /* 250 */ "SELECT", - /* 251 */ "DISTINCT", - /* 252 */ "WHERE", - /* 253 */ "PARTITION", - /* 254 */ "BY", - /* 255 */ "SESSION", - /* 256 */ "STATE_WINDOW", - /* 257 */ "EVENT_WINDOW", - /* 258 */ "SLIDING", - /* 259 */ "FILL", - /* 260 */ "VALUE", - /* 261 */ "VALUE_F", - /* 262 */ "NONE", - /* 263 */ "PREV", - /* 264 */ "NULL_F", - /* 265 */ "LINEAR", - /* 266 */ "NEXT", - /* 267 */ "HAVING", - /* 268 */ "RANGE", - /* 269 */ "EVERY", - /* 270 */ "ORDER", - /* 271 */ "SLIMIT", - /* 272 */ "SOFFSET", - /* 273 */ "LIMIT", - /* 274 */ "OFFSET", - /* 275 */ "ASC", - /* 276 */ "NULLS", - /* 277 */ "ABORT", - /* 278 */ "AFTER", - /* 279 */ "ATTACH", - /* 280 */ "BEFORE", - /* 281 */ "BEGIN", - /* 282 */ "BITAND", - /* 283 */ "BITNOT", - /* 284 */ "BITOR", - /* 285 */ "BLOCKS", - /* 286 */ "CHANGE", - /* 287 */ "COMMA", - /* 288 */ "CONCAT", - /* 289 */ "CONFLICT", - /* 290 */ "COPY", - /* 291 */ "DEFERRED", - /* 292 */ "DELIMITERS", - /* 293 */ "DETACH", - /* 294 */ "DIVIDE", - /* 295 */ "DOT", - /* 296 */ "EACH", - /* 297 */ "FAIL", - /* 298 */ "FILE", - /* 299 */ "FOR", - /* 300 */ "GLOB", - /* 301 */ "ID", - /* 302 */ "IMMEDIATE", - /* 303 */ "IMPORT", - /* 304 */ "INITIALLY", - /* 305 */ "INSTEAD", - /* 306 */ "ISNULL", - /* 307 */ "KEY", - /* 308 */ "MODULES", - /* 309 */ "NK_BITNOT", - /* 310 */ "NK_SEMI", - /* 311 */ "NOTNULL", - /* 312 */ "OF", - /* 313 */ "PLUS", - /* 314 */ "PRIVILEGE", - /* 315 */ "RAISE", - /* 316 */ "REPLACE", - /* 317 */ "RESTRICT", - /* 318 */ "ROW", - /* 319 */ "SEMI", - /* 320 */ "STAR", - /* 321 */ "STATEMENT", - /* 322 */ "STRICT", - /* 323 */ "STRING", - /* 324 */ "TIMES", - /* 325 */ "VALUES", - /* 326 */ "VARIABLE", - /* 327 */ "VIEW", - /* 328 */ "WAL", - /* 329 */ "cmd", - /* 330 */ "account_options", - /* 331 */ "alter_account_options", - /* 332 */ "literal", - /* 333 */ "alter_account_option", - /* 334 */ "user_name", - /* 335 */ "sysinfo_opt", - /* 336 */ "privileges", - /* 337 */ "priv_level", - /* 338 */ "priv_type_list", - /* 339 */ "priv_type", - /* 340 */ "db_name", - /* 341 */ "topic_name", - /* 342 */ "dnode_endpoint", - /* 343 */ "force_opt", - /* 344 */ "not_exists_opt", - /* 345 */ "db_options", - /* 346 */ "exists_opt", - /* 347 */ "alter_db_options", - /* 348 */ "speed_opt", - /* 349 */ "start_opt", - /* 350 */ "end_opt", - /* 351 */ "integer_list", - /* 352 */ "variable_list", - /* 353 */ "retention_list", - /* 354 */ "alter_db_option", - /* 355 */ "retention", - /* 356 */ "full_table_name", - /* 357 */ "column_def_list", - /* 358 */ "tags_def_opt", - /* 359 */ "table_options", - /* 360 */ "multi_create_clause", - /* 361 */ "tags_def", - /* 362 */ "multi_drop_clause", - /* 363 */ "alter_table_clause", - /* 364 */ "alter_table_options", - /* 365 */ "column_name", - /* 366 */ "type_name", - /* 367 */ "signed_literal", - /* 368 */ "create_subtable_clause", - /* 369 */ "specific_cols_opt", - /* 370 */ "expression_list", - /* 371 */ "drop_table_clause", - /* 372 */ "col_name_list", - /* 373 */ "table_name", - /* 374 */ "column_def", - /* 375 */ "duration_list", - /* 376 */ "rollup_func_list", - /* 377 */ "alter_table_option", - /* 378 */ "duration_literal", - /* 379 */ "rollup_func_name", - /* 380 */ "function_name", - /* 381 */ "col_name", - /* 382 */ "db_name_cond_opt", - /* 383 */ "like_pattern_opt", - /* 384 */ "table_name_cond", - /* 385 */ "from_db_opt", - /* 386 */ "tag_list_opt", - /* 387 */ "tag_item", - /* 388 */ "column_alias", - /* 389 */ "full_index_name", - /* 390 */ "index_options", - /* 391 */ "index_name", - /* 392 */ "func_list", - /* 393 */ "sliding_opt", - /* 394 */ "sma_stream_opt", - /* 395 */ "func", - /* 396 */ "sma_func_name", - /* 397 */ "query_or_subquery", - /* 398 */ "cgroup_name", - /* 399 */ "analyze_opt", - /* 400 */ "explain_options", - /* 401 */ "insert_query", - /* 402 */ "agg_func_opt", - /* 403 */ "bufsize_opt", - /* 404 */ "language_opt", - /* 405 */ "stream_name", - /* 406 */ "stream_options", - /* 407 */ "col_list_opt", - /* 408 */ "tag_def_or_ref_opt", - /* 409 */ "subtable_opt", - /* 410 */ "expression", - /* 411 */ "dnode_list", - /* 412 */ "where_clause_opt", - /* 413 */ "signed", - /* 414 */ "literal_func", - /* 415 */ "literal_list", - /* 416 */ "table_alias", - /* 417 */ "expr_or_subquery", - /* 418 */ "pseudo_column", - /* 419 */ "column_reference", - /* 420 */ "function_expression", - /* 421 */ "case_when_expression", - /* 422 */ "star_func", - /* 423 */ "star_func_para_list", - /* 424 */ "noarg_func", - /* 425 */ "other_para_list", - /* 426 */ "star_func_para", - /* 427 */ "when_then_list", - /* 428 */ "case_when_else_opt", - /* 429 */ "common_expression", - /* 430 */ "when_then_expr", - /* 431 */ "predicate", - /* 432 */ "compare_op", - /* 433 */ "in_op", - /* 434 */ "in_predicate_value", - /* 435 */ "boolean_value_expression", - /* 436 */ "boolean_primary", - /* 437 */ "from_clause_opt", - /* 438 */ "table_reference_list", - /* 439 */ "table_reference", - /* 440 */ "table_primary", - /* 441 */ "joined_table", - /* 442 */ "alias_opt", - /* 443 */ "subquery", - /* 444 */ "parenthesized_joined_table", - /* 445 */ "join_type", - /* 446 */ "search_condition", - /* 447 */ "query_specification", - /* 448 */ "set_quantifier_opt", - /* 449 */ "select_list", - /* 450 */ "partition_by_clause_opt", - /* 451 */ "range_opt", - /* 452 */ "every_opt", - /* 453 */ "fill_opt", - /* 454 */ "twindow_clause_opt", - /* 455 */ "group_by_clause_opt", - /* 456 */ "having_clause_opt", - /* 457 */ "select_item", - /* 458 */ "partition_list", - /* 459 */ "partition_item", - /* 460 */ "fill_mode", - /* 461 */ "group_by_list", - /* 462 */ "query_expression", - /* 463 */ "query_simple", - /* 464 */ "order_by_clause_opt", - /* 465 */ "slimit_clause_opt", - /* 466 */ "limit_clause_opt", - /* 467 */ "union_query_expression", - /* 468 */ "query_simple_or_subquery", - /* 469 */ "sort_specification_list", - /* 470 */ "sort_specification", - /* 471 */ "ordering_specification_opt", - /* 472 */ "null_ordering_opt", + /* 208 */ "LEADER", + /* 209 */ "MERGE", + /* 210 */ "REDISTRIBUTE", + /* 211 */ "SPLIT", + /* 212 */ "DELETE", + /* 213 */ "INSERT", + /* 214 */ "NULL", + /* 215 */ "NK_QUESTION", + /* 216 */ "NK_ARROW", + /* 217 */ "ROWTS", + /* 218 */ "QSTART", + /* 219 */ "QEND", + /* 220 */ "QDURATION", + /* 221 */ "WSTART", + /* 222 */ "WEND", + /* 223 */ "WDURATION", + /* 224 */ "IROWTS", + /* 225 */ "ISFILLED", + /* 226 */ "CAST", + /* 227 */ "NOW", + /* 228 */ "TODAY", + /* 229 */ "TIMEZONE", + /* 230 */ "CLIENT_VERSION", + /* 231 */ "SERVER_VERSION", + /* 232 */ "SERVER_STATUS", + /* 233 */ "CURRENT_USER", + /* 234 */ "CASE", + /* 235 */ "WHEN", + /* 236 */ "THEN", + /* 237 */ "ELSE", + /* 238 */ "BETWEEN", + /* 239 */ "IS", + /* 240 */ "NK_LT", + /* 241 */ "NK_GT", + /* 242 */ "NK_LE", + /* 243 */ "NK_GE", + /* 244 */ "NK_NE", + /* 245 */ "MATCH", + /* 246 */ "NMATCH", + /* 247 */ "CONTAINS", + /* 248 */ "IN", + /* 249 */ "JOIN", + /* 250 */ "INNER", + /* 251 */ "SELECT", + /* 252 */ "DISTINCT", + /* 253 */ "WHERE", + /* 254 */ "PARTITION", + /* 255 */ "BY", + /* 256 */ "SESSION", + /* 257 */ "STATE_WINDOW", + /* 258 */ "EVENT_WINDOW", + /* 259 */ "SLIDING", + /* 260 */ "FILL", + /* 261 */ "VALUE", + /* 262 */ "VALUE_F", + /* 263 */ "NONE", + /* 264 */ "PREV", + /* 265 */ "NULL_F", + /* 266 */ "LINEAR", + /* 267 */ "NEXT", + /* 268 */ "HAVING", + /* 269 */ "RANGE", + /* 270 */ "EVERY", + /* 271 */ "ORDER", + /* 272 */ "SLIMIT", + /* 273 */ "SOFFSET", + /* 274 */ "LIMIT", + /* 275 */ "OFFSET", + /* 276 */ "ASC", + /* 277 */ "NULLS", + /* 278 */ "ABORT", + /* 279 */ "AFTER", + /* 280 */ "ATTACH", + /* 281 */ "BEFORE", + /* 282 */ "BEGIN", + /* 283 */ "BITAND", + /* 284 */ "BITNOT", + /* 285 */ "BITOR", + /* 286 */ "BLOCKS", + /* 287 */ "CHANGE", + /* 288 */ "COMMA", + /* 289 */ "CONCAT", + /* 290 */ "CONFLICT", + /* 291 */ "COPY", + /* 292 */ "DEFERRED", + /* 293 */ "DELIMITERS", + /* 294 */ "DETACH", + /* 295 */ "DIVIDE", + /* 296 */ "DOT", + /* 297 */ "EACH", + /* 298 */ "FAIL", + /* 299 */ "FILE", + /* 300 */ "FOR", + /* 301 */ "GLOB", + /* 302 */ "ID", + /* 303 */ "IMMEDIATE", + /* 304 */ "IMPORT", + /* 305 */ "INITIALLY", + /* 306 */ "INSTEAD", + /* 307 */ "ISNULL", + /* 308 */ "KEY", + /* 309 */ "MODULES", + /* 310 */ "NK_BITNOT", + /* 311 */ "NK_SEMI", + /* 312 */ "NOTNULL", + /* 313 */ "OF", + /* 314 */ "PLUS", + /* 315 */ "PRIVILEGE", + /* 316 */ "RAISE", + /* 317 */ "REPLACE", + /* 318 */ "RESTRICT", + /* 319 */ "ROW", + /* 320 */ "SEMI", + /* 321 */ "STAR", + /* 322 */ "STATEMENT", + /* 323 */ "STRICT", + /* 324 */ "STRING", + /* 325 */ "TIMES", + /* 326 */ "VALUES", + /* 327 */ "VARIABLE", + /* 328 */ "VIEW", + /* 329 */ "WAL", + /* 330 */ "cmd", + /* 331 */ "account_options", + /* 332 */ "alter_account_options", + /* 333 */ "literal", + /* 334 */ "alter_account_option", + /* 335 */ "user_name", + /* 336 */ "sysinfo_opt", + /* 337 */ "privileges", + /* 338 */ "priv_level", + /* 339 */ "priv_type_list", + /* 340 */ "priv_type", + /* 341 */ "db_name", + /* 342 */ "topic_name", + /* 343 */ "dnode_endpoint", + /* 344 */ "force_opt", + /* 345 */ "not_exists_opt", + /* 346 */ "db_options", + /* 347 */ "exists_opt", + /* 348 */ "alter_db_options", + /* 349 */ "speed_opt", + /* 350 */ "start_opt", + /* 351 */ "end_opt", + /* 352 */ "integer_list", + /* 353 */ "variable_list", + /* 354 */ "retention_list", + /* 355 */ "alter_db_option", + /* 356 */ "retention", + /* 357 */ "full_table_name", + /* 358 */ "column_def_list", + /* 359 */ "tags_def_opt", + /* 360 */ "table_options", + /* 361 */ "multi_create_clause", + /* 362 */ "tags_def", + /* 363 */ "multi_drop_clause", + /* 364 */ "alter_table_clause", + /* 365 */ "alter_table_options", + /* 366 */ "column_name", + /* 367 */ "type_name", + /* 368 */ "signed_literal", + /* 369 */ "create_subtable_clause", + /* 370 */ "specific_cols_opt", + /* 371 */ "expression_list", + /* 372 */ "drop_table_clause", + /* 373 */ "col_name_list", + /* 374 */ "table_name", + /* 375 */ "column_def", + /* 376 */ "duration_list", + /* 377 */ "rollup_func_list", + /* 378 */ "alter_table_option", + /* 379 */ "duration_literal", + /* 380 */ "rollup_func_name", + /* 381 */ "function_name", + /* 382 */ "col_name", + /* 383 */ "db_name_cond_opt", + /* 384 */ "like_pattern_opt", + /* 385 */ "table_name_cond", + /* 386 */ "from_db_opt", + /* 387 */ "tag_list_opt", + /* 388 */ "tag_item", + /* 389 */ "column_alias", + /* 390 */ "full_index_name", + /* 391 */ "index_options", + /* 392 */ "index_name", + /* 393 */ "func_list", + /* 394 */ "sliding_opt", + /* 395 */ "sma_stream_opt", + /* 396 */ "func", + /* 397 */ "sma_func_name", + /* 398 */ "query_or_subquery", + /* 399 */ "cgroup_name", + /* 400 */ "analyze_opt", + /* 401 */ "explain_options", + /* 402 */ "insert_query", + /* 403 */ "agg_func_opt", + /* 404 */ "bufsize_opt", + /* 405 */ "language_opt", + /* 406 */ "stream_name", + /* 407 */ "stream_options", + /* 408 */ "col_list_opt", + /* 409 */ "tag_def_or_ref_opt", + /* 410 */ "subtable_opt", + /* 411 */ "expression", + /* 412 */ "dnode_list", + /* 413 */ "where_clause_opt", + /* 414 */ "signed", + /* 415 */ "literal_func", + /* 416 */ "literal_list", + /* 417 */ "table_alias", + /* 418 */ "expr_or_subquery", + /* 419 */ "pseudo_column", + /* 420 */ "column_reference", + /* 421 */ "function_expression", + /* 422 */ "case_when_expression", + /* 423 */ "star_func", + /* 424 */ "star_func_para_list", + /* 425 */ "noarg_func", + /* 426 */ "other_para_list", + /* 427 */ "star_func_para", + /* 428 */ "when_then_list", + /* 429 */ "case_when_else_opt", + /* 430 */ "common_expression", + /* 431 */ "when_then_expr", + /* 432 */ "predicate", + /* 433 */ "compare_op", + /* 434 */ "in_op", + /* 435 */ "in_predicate_value", + /* 436 */ "boolean_value_expression", + /* 437 */ "boolean_primary", + /* 438 */ "from_clause_opt", + /* 439 */ "table_reference_list", + /* 440 */ "table_reference", + /* 441 */ "table_primary", + /* 442 */ "joined_table", + /* 443 */ "alias_opt", + /* 444 */ "subquery", + /* 445 */ "parenthesized_joined_table", + /* 446 */ "join_type", + /* 447 */ "search_condition", + /* 448 */ "query_specification", + /* 449 */ "set_quantifier_opt", + /* 450 */ "select_list", + /* 451 */ "partition_by_clause_opt", + /* 452 */ "range_opt", + /* 453 */ "every_opt", + /* 454 */ "fill_opt", + /* 455 */ "twindow_clause_opt", + /* 456 */ "group_by_clause_opt", + /* 457 */ "having_clause_opt", + /* 458 */ "select_item", + /* 459 */ "partition_list", + /* 460 */ "partition_item", + /* 461 */ "fill_mode", + /* 462 */ "group_by_list", + /* 463 */ "query_expression", + /* 464 */ "query_simple", + /* 465 */ "order_by_clause_opt", + /* 466 */ "slimit_clause_opt", + /* 467 */ "limit_clause_opt", + /* 468 */ "union_query_expression", + /* 469 */ "query_simple_or_subquery", + /* 470 */ "sort_specification_list", + /* 471 */ "sort_specification", + /* 472 */ "ordering_specification_opt", + /* 473 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -2019,459 +2023,464 @@ static const char *const yyRuleName[] = { /* 118 */ "alter_db_option ::= WAL_LEVEL NK_INTEGER", /* 119 */ "alter_db_option ::= STT_TRIGGER NK_INTEGER", /* 120 */ "alter_db_option ::= MINROWS NK_INTEGER", - /* 121 */ "integer_list ::= NK_INTEGER", - /* 122 */ "integer_list ::= integer_list NK_COMMA NK_INTEGER", - /* 123 */ "variable_list ::= NK_VARIABLE", - /* 124 */ "variable_list ::= variable_list NK_COMMA NK_VARIABLE", - /* 125 */ "retention_list ::= retention", - /* 126 */ "retention_list ::= retention_list NK_COMMA retention", - /* 127 */ "retention ::= NK_VARIABLE NK_COLON NK_VARIABLE", - /* 128 */ "speed_opt ::=", - /* 129 */ "speed_opt ::= MAX_SPEED NK_INTEGER", - /* 130 */ "start_opt ::=", - /* 131 */ "start_opt ::= START WITH NK_INTEGER", - /* 132 */ "start_opt ::= START WITH NK_STRING", - /* 133 */ "start_opt ::= START WITH TIMESTAMP NK_STRING", - /* 134 */ "end_opt ::=", - /* 135 */ "end_opt ::= END WITH NK_INTEGER", - /* 136 */ "end_opt ::= END WITH NK_STRING", - /* 137 */ "end_opt ::= END WITH TIMESTAMP NK_STRING", - /* 138 */ "cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options", - /* 139 */ "cmd ::= CREATE TABLE multi_create_clause", - /* 140 */ "cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options", - /* 141 */ "cmd ::= DROP TABLE multi_drop_clause", - /* 142 */ "cmd ::= DROP STABLE exists_opt full_table_name", - /* 143 */ "cmd ::= ALTER TABLE alter_table_clause", - /* 144 */ "cmd ::= ALTER STABLE alter_table_clause", - /* 145 */ "alter_table_clause ::= full_table_name alter_table_options", - /* 146 */ "alter_table_clause ::= full_table_name ADD COLUMN column_name type_name", - /* 147 */ "alter_table_clause ::= full_table_name DROP COLUMN column_name", - /* 148 */ "alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name", - /* 149 */ "alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name", - /* 150 */ "alter_table_clause ::= full_table_name ADD TAG column_name type_name", - /* 151 */ "alter_table_clause ::= full_table_name DROP TAG column_name", - /* 152 */ "alter_table_clause ::= full_table_name MODIFY TAG column_name type_name", - /* 153 */ "alter_table_clause ::= full_table_name RENAME TAG column_name column_name", - /* 154 */ "alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal", - /* 155 */ "multi_create_clause ::= create_subtable_clause", - /* 156 */ "multi_create_clause ::= multi_create_clause create_subtable_clause", - /* 157 */ "create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options", - /* 158 */ "multi_drop_clause ::= drop_table_clause", - /* 159 */ "multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause", - /* 160 */ "drop_table_clause ::= exists_opt full_table_name", - /* 161 */ "specific_cols_opt ::=", - /* 162 */ "specific_cols_opt ::= NK_LP col_name_list NK_RP", - /* 163 */ "full_table_name ::= table_name", - /* 164 */ "full_table_name ::= db_name NK_DOT table_name", - /* 165 */ "column_def_list ::= column_def", - /* 166 */ "column_def_list ::= column_def_list NK_COMMA column_def", - /* 167 */ "column_def ::= column_name type_name", - /* 168 */ "column_def ::= column_name type_name COMMENT NK_STRING", - /* 169 */ "type_name ::= BOOL", - /* 170 */ "type_name ::= TINYINT", - /* 171 */ "type_name ::= SMALLINT", - /* 172 */ "type_name ::= INT", - /* 173 */ "type_name ::= INTEGER", - /* 174 */ "type_name ::= BIGINT", - /* 175 */ "type_name ::= FLOAT", - /* 176 */ "type_name ::= DOUBLE", - /* 177 */ "type_name ::= BINARY NK_LP NK_INTEGER NK_RP", - /* 178 */ "type_name ::= TIMESTAMP", - /* 179 */ "type_name ::= NCHAR NK_LP NK_INTEGER NK_RP", - /* 180 */ "type_name ::= TINYINT UNSIGNED", - /* 181 */ "type_name ::= SMALLINT UNSIGNED", - /* 182 */ "type_name ::= INT UNSIGNED", - /* 183 */ "type_name ::= BIGINT UNSIGNED", - /* 184 */ "type_name ::= JSON", - /* 185 */ "type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP", - /* 186 */ "type_name ::= MEDIUMBLOB", - /* 187 */ "type_name ::= BLOB", - /* 188 */ "type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP", - /* 189 */ "type_name ::= DECIMAL", - /* 190 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP", - /* 191 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", - /* 192 */ "tags_def_opt ::=", - /* 193 */ "tags_def_opt ::= tags_def", - /* 194 */ "tags_def ::= TAGS NK_LP column_def_list NK_RP", - /* 195 */ "table_options ::=", - /* 196 */ "table_options ::= table_options COMMENT NK_STRING", - /* 197 */ "table_options ::= table_options MAX_DELAY duration_list", - /* 198 */ "table_options ::= table_options WATERMARK duration_list", - /* 199 */ "table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP", - /* 200 */ "table_options ::= table_options TTL NK_INTEGER", - /* 201 */ "table_options ::= table_options SMA NK_LP col_name_list NK_RP", - /* 202 */ "table_options ::= table_options DELETE_MARK duration_list", - /* 203 */ "alter_table_options ::= alter_table_option", - /* 204 */ "alter_table_options ::= alter_table_options alter_table_option", - /* 205 */ "alter_table_option ::= COMMENT NK_STRING", - /* 206 */ "alter_table_option ::= TTL NK_INTEGER", - /* 207 */ "duration_list ::= duration_literal", - /* 208 */ "duration_list ::= duration_list NK_COMMA duration_literal", - /* 209 */ "rollup_func_list ::= rollup_func_name", - /* 210 */ "rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name", - /* 211 */ "rollup_func_name ::= function_name", - /* 212 */ "rollup_func_name ::= FIRST", - /* 213 */ "rollup_func_name ::= LAST", - /* 214 */ "col_name_list ::= col_name", - /* 215 */ "col_name_list ::= col_name_list NK_COMMA col_name", - /* 216 */ "col_name ::= column_name", - /* 217 */ "cmd ::= SHOW DNODES", - /* 218 */ "cmd ::= SHOW USERS", - /* 219 */ "cmd ::= SHOW USER PRIVILEGES", - /* 220 */ "cmd ::= SHOW DATABASES", - /* 221 */ "cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt", - /* 222 */ "cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt", - /* 223 */ "cmd ::= SHOW db_name_cond_opt VGROUPS", - /* 224 */ "cmd ::= SHOW MNODES", - /* 225 */ "cmd ::= SHOW QNODES", - /* 226 */ "cmd ::= SHOW FUNCTIONS", - /* 227 */ "cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt", - /* 228 */ "cmd ::= SHOW STREAMS", - /* 229 */ "cmd ::= SHOW ACCOUNTS", - /* 230 */ "cmd ::= SHOW APPS", - /* 231 */ "cmd ::= SHOW CONNECTIONS", - /* 232 */ "cmd ::= SHOW LICENCES", - /* 233 */ "cmd ::= SHOW GRANTS", - /* 234 */ "cmd ::= SHOW CREATE DATABASE db_name", - /* 235 */ "cmd ::= SHOW CREATE TABLE full_table_name", - /* 236 */ "cmd ::= SHOW CREATE STABLE full_table_name", - /* 237 */ "cmd ::= SHOW QUERIES", - /* 238 */ "cmd ::= SHOW SCORES", - /* 239 */ "cmd ::= SHOW TOPICS", - /* 240 */ "cmd ::= SHOW VARIABLES", - /* 241 */ "cmd ::= SHOW CLUSTER VARIABLES", - /* 242 */ "cmd ::= SHOW LOCAL VARIABLES", - /* 243 */ "cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt", - /* 244 */ "cmd ::= SHOW BNODES", - /* 245 */ "cmd ::= SHOW SNODES", - /* 246 */ "cmd ::= SHOW CLUSTER", - /* 247 */ "cmd ::= SHOW TRANSACTIONS", - /* 248 */ "cmd ::= SHOW TABLE DISTRIBUTED full_table_name", - /* 249 */ "cmd ::= SHOW CONSUMERS", - /* 250 */ "cmd ::= SHOW SUBSCRIPTIONS", - /* 251 */ "cmd ::= SHOW TAGS FROM table_name_cond from_db_opt", - /* 252 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", - /* 253 */ "cmd ::= SHOW VNODES NK_INTEGER", - /* 254 */ "cmd ::= SHOW VNODES NK_STRING", - /* 255 */ "cmd ::= SHOW db_name_cond_opt ALIVE", - /* 256 */ "cmd ::= SHOW CLUSTER ALIVE", - /* 257 */ "db_name_cond_opt ::=", - /* 258 */ "db_name_cond_opt ::= db_name NK_DOT", - /* 259 */ "like_pattern_opt ::=", - /* 260 */ "like_pattern_opt ::= LIKE NK_STRING", - /* 261 */ "table_name_cond ::= table_name", - /* 262 */ "from_db_opt ::=", - /* 263 */ "from_db_opt ::= FROM db_name", - /* 264 */ "tag_list_opt ::=", - /* 265 */ "tag_list_opt ::= tag_item", - /* 266 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", - /* 267 */ "tag_item ::= TBNAME", - /* 268 */ "tag_item ::= QTAGS", - /* 269 */ "tag_item ::= column_name", - /* 270 */ "tag_item ::= column_name column_alias", - /* 271 */ "tag_item ::= column_name AS column_alias", - /* 272 */ "cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options", - /* 273 */ "cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP", - /* 274 */ "cmd ::= DROP INDEX exists_opt full_index_name", - /* 275 */ "full_index_name ::= index_name", - /* 276 */ "full_index_name ::= db_name NK_DOT index_name", - /* 277 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", - /* 278 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt", - /* 279 */ "func_list ::= func", - /* 280 */ "func_list ::= func_list NK_COMMA func", - /* 281 */ "func ::= sma_func_name NK_LP expression_list NK_RP", - /* 282 */ "sma_func_name ::= function_name", - /* 283 */ "sma_func_name ::= COUNT", - /* 284 */ "sma_func_name ::= FIRST", - /* 285 */ "sma_func_name ::= LAST", - /* 286 */ "sma_func_name ::= LAST_ROW", - /* 287 */ "sma_stream_opt ::=", - /* 288 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", - /* 289 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", - /* 290 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", - /* 291 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", - /* 292 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", - /* 293 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", - /* 294 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", - /* 295 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", - /* 296 */ "cmd ::= DROP TOPIC exists_opt topic_name", - /* 297 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", - /* 298 */ "cmd ::= DESC full_table_name", - /* 299 */ "cmd ::= DESCRIBE full_table_name", - /* 300 */ "cmd ::= RESET QUERY CACHE", - /* 301 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", - /* 302 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", - /* 303 */ "analyze_opt ::=", - /* 304 */ "analyze_opt ::= ANALYZE", - /* 305 */ "explain_options ::=", - /* 306 */ "explain_options ::= explain_options VERBOSE NK_BOOL", - /* 307 */ "explain_options ::= explain_options RATIO NK_FLOAT", - /* 308 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", - /* 309 */ "cmd ::= DROP FUNCTION exists_opt function_name", - /* 310 */ "agg_func_opt ::=", - /* 311 */ "agg_func_opt ::= AGGREGATE", - /* 312 */ "bufsize_opt ::=", - /* 313 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", - /* 314 */ "language_opt ::=", - /* 315 */ "language_opt ::= LANGUAGE NK_STRING", - /* 316 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery", - /* 317 */ "cmd ::= DROP STREAM exists_opt stream_name", - /* 318 */ "col_list_opt ::=", - /* 319 */ "col_list_opt ::= NK_LP col_name_list NK_RP", - /* 320 */ "tag_def_or_ref_opt ::=", - /* 321 */ "tag_def_or_ref_opt ::= tags_def", - /* 322 */ "tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP", - /* 323 */ "stream_options ::=", - /* 324 */ "stream_options ::= stream_options TRIGGER AT_ONCE", - /* 325 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", - /* 326 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", - /* 327 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 328 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", - /* 329 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", - /* 330 */ "stream_options ::= stream_options DELETE_MARK duration_literal", - /* 331 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", - /* 332 */ "subtable_opt ::=", - /* 333 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", - /* 334 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 335 */ "cmd ::= KILL QUERY NK_STRING", - /* 336 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 337 */ "cmd ::= BALANCE VGROUP", - /* 338 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 339 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 340 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 341 */ "dnode_list ::= DNODE NK_INTEGER", - /* 342 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 343 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 344 */ "cmd ::= query_or_subquery", - /* 345 */ "cmd ::= insert_query", - /* 346 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", - /* 347 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", - /* 348 */ "literal ::= NK_INTEGER", - /* 349 */ "literal ::= NK_FLOAT", - /* 350 */ "literal ::= NK_STRING", - /* 351 */ "literal ::= NK_BOOL", - /* 352 */ "literal ::= TIMESTAMP NK_STRING", - /* 353 */ "literal ::= duration_literal", - /* 354 */ "literal ::= NULL", - /* 355 */ "literal ::= NK_QUESTION", - /* 356 */ "duration_literal ::= NK_VARIABLE", - /* 357 */ "signed ::= NK_INTEGER", - /* 358 */ "signed ::= NK_PLUS NK_INTEGER", - /* 359 */ "signed ::= NK_MINUS NK_INTEGER", - /* 360 */ "signed ::= NK_FLOAT", - /* 361 */ "signed ::= NK_PLUS NK_FLOAT", - /* 362 */ "signed ::= NK_MINUS NK_FLOAT", - /* 363 */ "signed_literal ::= signed", - /* 364 */ "signed_literal ::= NK_STRING", - /* 365 */ "signed_literal ::= NK_BOOL", - /* 366 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 367 */ "signed_literal ::= duration_literal", - /* 368 */ "signed_literal ::= NULL", - /* 369 */ "signed_literal ::= literal_func", - /* 370 */ "signed_literal ::= NK_QUESTION", - /* 371 */ "literal_list ::= signed_literal", - /* 372 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 373 */ "db_name ::= NK_ID", - /* 374 */ "table_name ::= NK_ID", - /* 375 */ "column_name ::= NK_ID", - /* 376 */ "function_name ::= NK_ID", - /* 377 */ "table_alias ::= NK_ID", - /* 378 */ "column_alias ::= NK_ID", - /* 379 */ "user_name ::= NK_ID", - /* 380 */ "topic_name ::= NK_ID", - /* 381 */ "stream_name ::= NK_ID", - /* 382 */ "cgroup_name ::= NK_ID", - /* 383 */ "index_name ::= NK_ID", - /* 384 */ "expr_or_subquery ::= expression", - /* 385 */ "expression ::= literal", - /* 386 */ "expression ::= pseudo_column", - /* 387 */ "expression ::= column_reference", - /* 388 */ "expression ::= function_expression", - /* 389 */ "expression ::= case_when_expression", - /* 390 */ "expression ::= NK_LP expression NK_RP", - /* 391 */ "expression ::= NK_PLUS expr_or_subquery", - /* 392 */ "expression ::= NK_MINUS expr_or_subquery", - /* 393 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 394 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 395 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 396 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 397 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 398 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 399 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 400 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 401 */ "expression_list ::= expr_or_subquery", - /* 402 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 403 */ "column_reference ::= column_name", - /* 404 */ "column_reference ::= table_name NK_DOT column_name", - /* 405 */ "pseudo_column ::= ROWTS", - /* 406 */ "pseudo_column ::= TBNAME", - /* 407 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 408 */ "pseudo_column ::= QSTART", - /* 409 */ "pseudo_column ::= QEND", - /* 410 */ "pseudo_column ::= QDURATION", - /* 411 */ "pseudo_column ::= WSTART", - /* 412 */ "pseudo_column ::= WEND", - /* 413 */ "pseudo_column ::= WDURATION", - /* 414 */ "pseudo_column ::= IROWTS", - /* 415 */ "pseudo_column ::= ISFILLED", - /* 416 */ "pseudo_column ::= QTAGS", - /* 417 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 418 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 419 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 420 */ "function_expression ::= literal_func", - /* 421 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 422 */ "literal_func ::= NOW", - /* 423 */ "noarg_func ::= NOW", - /* 424 */ "noarg_func ::= TODAY", - /* 425 */ "noarg_func ::= TIMEZONE", - /* 426 */ "noarg_func ::= DATABASE", - /* 427 */ "noarg_func ::= CLIENT_VERSION", - /* 428 */ "noarg_func ::= SERVER_VERSION", - /* 429 */ "noarg_func ::= SERVER_STATUS", - /* 430 */ "noarg_func ::= CURRENT_USER", - /* 431 */ "noarg_func ::= USER", - /* 432 */ "star_func ::= COUNT", - /* 433 */ "star_func ::= FIRST", - /* 434 */ "star_func ::= LAST", - /* 435 */ "star_func ::= LAST_ROW", - /* 436 */ "star_func_para_list ::= NK_STAR", - /* 437 */ "star_func_para_list ::= other_para_list", - /* 438 */ "other_para_list ::= star_func_para", - /* 439 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 440 */ "star_func_para ::= expr_or_subquery", - /* 441 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 442 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 443 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 444 */ "when_then_list ::= when_then_expr", - /* 445 */ "when_then_list ::= when_then_list when_then_expr", - /* 446 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 447 */ "case_when_else_opt ::=", - /* 448 */ "case_when_else_opt ::= ELSE common_expression", - /* 449 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 450 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 451 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 452 */ "predicate ::= expr_or_subquery IS NULL", - /* 453 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 454 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 455 */ "compare_op ::= NK_LT", - /* 456 */ "compare_op ::= NK_GT", - /* 457 */ "compare_op ::= NK_LE", - /* 458 */ "compare_op ::= NK_GE", - /* 459 */ "compare_op ::= NK_NE", - /* 460 */ "compare_op ::= NK_EQ", - /* 461 */ "compare_op ::= LIKE", - /* 462 */ "compare_op ::= NOT LIKE", - /* 463 */ "compare_op ::= MATCH", - /* 464 */ "compare_op ::= NMATCH", - /* 465 */ "compare_op ::= CONTAINS", - /* 466 */ "in_op ::= IN", - /* 467 */ "in_op ::= NOT IN", - /* 468 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 469 */ "boolean_value_expression ::= boolean_primary", - /* 470 */ "boolean_value_expression ::= NOT boolean_primary", - /* 471 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 472 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 473 */ "boolean_primary ::= predicate", - /* 474 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 475 */ "common_expression ::= expr_or_subquery", - /* 476 */ "common_expression ::= boolean_value_expression", - /* 477 */ "from_clause_opt ::=", - /* 478 */ "from_clause_opt ::= FROM table_reference_list", - /* 479 */ "table_reference_list ::= table_reference", - /* 480 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 481 */ "table_reference ::= table_primary", - /* 482 */ "table_reference ::= joined_table", - /* 483 */ "table_primary ::= table_name alias_opt", - /* 484 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 485 */ "table_primary ::= subquery alias_opt", - /* 486 */ "table_primary ::= parenthesized_joined_table", - /* 487 */ "alias_opt ::=", - /* 488 */ "alias_opt ::= table_alias", - /* 489 */ "alias_opt ::= AS table_alias", - /* 490 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 491 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 492 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", - /* 493 */ "join_type ::=", - /* 494 */ "join_type ::= INNER", - /* 495 */ "query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", - /* 496 */ "set_quantifier_opt ::=", - /* 497 */ "set_quantifier_opt ::= DISTINCT", - /* 498 */ "set_quantifier_opt ::= ALL", - /* 499 */ "select_list ::= select_item", - /* 500 */ "select_list ::= select_list NK_COMMA select_item", - /* 501 */ "select_item ::= NK_STAR", - /* 502 */ "select_item ::= common_expression", - /* 503 */ "select_item ::= common_expression column_alias", - /* 504 */ "select_item ::= common_expression AS column_alias", - /* 505 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 506 */ "where_clause_opt ::=", - /* 507 */ "where_clause_opt ::= WHERE search_condition", - /* 508 */ "partition_by_clause_opt ::=", - /* 509 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 510 */ "partition_list ::= partition_item", - /* 511 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 512 */ "partition_item ::= expr_or_subquery", - /* 513 */ "partition_item ::= expr_or_subquery column_alias", - /* 514 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 515 */ "twindow_clause_opt ::=", - /* 516 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", - /* 517 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 518 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", - /* 519 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 520 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 521 */ "sliding_opt ::=", - /* 522 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 523 */ "fill_opt ::=", - /* 524 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 525 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", - /* 526 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP", - /* 527 */ "fill_mode ::= NONE", - /* 528 */ "fill_mode ::= PREV", - /* 529 */ "fill_mode ::= NULL", - /* 530 */ "fill_mode ::= NULL_F", - /* 531 */ "fill_mode ::= LINEAR", - /* 532 */ "fill_mode ::= NEXT", - /* 533 */ "group_by_clause_opt ::=", - /* 534 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 535 */ "group_by_list ::= expr_or_subquery", - /* 536 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 537 */ "having_clause_opt ::=", - /* 538 */ "having_clause_opt ::= HAVING search_condition", - /* 539 */ "range_opt ::=", - /* 540 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 541 */ "every_opt ::=", - /* 542 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 543 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 544 */ "query_simple ::= query_specification", - /* 545 */ "query_simple ::= union_query_expression", - /* 546 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 547 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 548 */ "query_simple_or_subquery ::= query_simple", - /* 549 */ "query_simple_or_subquery ::= subquery", - /* 550 */ "query_or_subquery ::= query_expression", - /* 551 */ "query_or_subquery ::= subquery", - /* 552 */ "order_by_clause_opt ::=", - /* 553 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 554 */ "slimit_clause_opt ::=", - /* 555 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 556 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 557 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 558 */ "limit_clause_opt ::=", - /* 559 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 560 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 561 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 562 */ "subquery ::= NK_LP query_expression NK_RP", - /* 563 */ "subquery ::= NK_LP subquery NK_RP", - /* 564 */ "search_condition ::= common_expression", - /* 565 */ "sort_specification_list ::= sort_specification", - /* 566 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 567 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 568 */ "ordering_specification_opt ::=", - /* 569 */ "ordering_specification_opt ::= ASC", - /* 570 */ "ordering_specification_opt ::= DESC", - /* 571 */ "null_ordering_opt ::=", - /* 572 */ "null_ordering_opt ::= NULLS FIRST", - /* 573 */ "null_ordering_opt ::= NULLS LAST", + /* 121 */ "alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER", + /* 122 */ "alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER", + /* 123 */ "alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER", + /* 124 */ "alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER", + /* 125 */ "integer_list ::= NK_INTEGER", + /* 126 */ "integer_list ::= integer_list NK_COMMA NK_INTEGER", + /* 127 */ "variable_list ::= NK_VARIABLE", + /* 128 */ "variable_list ::= variable_list NK_COMMA NK_VARIABLE", + /* 129 */ "retention_list ::= retention", + /* 130 */ "retention_list ::= retention_list NK_COMMA retention", + /* 131 */ "retention ::= NK_VARIABLE NK_COLON NK_VARIABLE", + /* 132 */ "speed_opt ::=", + /* 133 */ "speed_opt ::= MAX_SPEED NK_INTEGER", + /* 134 */ "start_opt ::=", + /* 135 */ "start_opt ::= START WITH NK_INTEGER", + /* 136 */ "start_opt ::= START WITH NK_STRING", + /* 137 */ "start_opt ::= START WITH TIMESTAMP NK_STRING", + /* 138 */ "end_opt ::=", + /* 139 */ "end_opt ::= END WITH NK_INTEGER", + /* 140 */ "end_opt ::= END WITH NK_STRING", + /* 141 */ "end_opt ::= END WITH TIMESTAMP NK_STRING", + /* 142 */ "cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options", + /* 143 */ "cmd ::= CREATE TABLE multi_create_clause", + /* 144 */ "cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options", + /* 145 */ "cmd ::= DROP TABLE multi_drop_clause", + /* 146 */ "cmd ::= DROP STABLE exists_opt full_table_name", + /* 147 */ "cmd ::= ALTER TABLE alter_table_clause", + /* 148 */ "cmd ::= ALTER STABLE alter_table_clause", + /* 149 */ "alter_table_clause ::= full_table_name alter_table_options", + /* 150 */ "alter_table_clause ::= full_table_name ADD COLUMN column_name type_name", + /* 151 */ "alter_table_clause ::= full_table_name DROP COLUMN column_name", + /* 152 */ "alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name", + /* 153 */ "alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name", + /* 154 */ "alter_table_clause ::= full_table_name ADD TAG column_name type_name", + /* 155 */ "alter_table_clause ::= full_table_name DROP TAG column_name", + /* 156 */ "alter_table_clause ::= full_table_name MODIFY TAG column_name type_name", + /* 157 */ "alter_table_clause ::= full_table_name RENAME TAG column_name column_name", + /* 158 */ "alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal", + /* 159 */ "multi_create_clause ::= create_subtable_clause", + /* 160 */ "multi_create_clause ::= multi_create_clause create_subtable_clause", + /* 161 */ "create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options", + /* 162 */ "multi_drop_clause ::= drop_table_clause", + /* 163 */ "multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause", + /* 164 */ "drop_table_clause ::= exists_opt full_table_name", + /* 165 */ "specific_cols_opt ::=", + /* 166 */ "specific_cols_opt ::= NK_LP col_name_list NK_RP", + /* 167 */ "full_table_name ::= table_name", + /* 168 */ "full_table_name ::= db_name NK_DOT table_name", + /* 169 */ "column_def_list ::= column_def", + /* 170 */ "column_def_list ::= column_def_list NK_COMMA column_def", + /* 171 */ "column_def ::= column_name type_name", + /* 172 */ "column_def ::= column_name type_name COMMENT NK_STRING", + /* 173 */ "type_name ::= BOOL", + /* 174 */ "type_name ::= TINYINT", + /* 175 */ "type_name ::= SMALLINT", + /* 176 */ "type_name ::= INT", + /* 177 */ "type_name ::= INTEGER", + /* 178 */ "type_name ::= BIGINT", + /* 179 */ "type_name ::= FLOAT", + /* 180 */ "type_name ::= DOUBLE", + /* 181 */ "type_name ::= BINARY NK_LP NK_INTEGER NK_RP", + /* 182 */ "type_name ::= TIMESTAMP", + /* 183 */ "type_name ::= NCHAR NK_LP NK_INTEGER NK_RP", + /* 184 */ "type_name ::= TINYINT UNSIGNED", + /* 185 */ "type_name ::= SMALLINT UNSIGNED", + /* 186 */ "type_name ::= INT UNSIGNED", + /* 187 */ "type_name ::= BIGINT UNSIGNED", + /* 188 */ "type_name ::= JSON", + /* 189 */ "type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP", + /* 190 */ "type_name ::= MEDIUMBLOB", + /* 191 */ "type_name ::= BLOB", + /* 192 */ "type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP", + /* 193 */ "type_name ::= DECIMAL", + /* 194 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP", + /* 195 */ "type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", + /* 196 */ "tags_def_opt ::=", + /* 197 */ "tags_def_opt ::= tags_def", + /* 198 */ "tags_def ::= TAGS NK_LP column_def_list NK_RP", + /* 199 */ "table_options ::=", + /* 200 */ "table_options ::= table_options COMMENT NK_STRING", + /* 201 */ "table_options ::= table_options MAX_DELAY duration_list", + /* 202 */ "table_options ::= table_options WATERMARK duration_list", + /* 203 */ "table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP", + /* 204 */ "table_options ::= table_options TTL NK_INTEGER", + /* 205 */ "table_options ::= table_options SMA NK_LP col_name_list NK_RP", + /* 206 */ "table_options ::= table_options DELETE_MARK duration_list", + /* 207 */ "alter_table_options ::= alter_table_option", + /* 208 */ "alter_table_options ::= alter_table_options alter_table_option", + /* 209 */ "alter_table_option ::= COMMENT NK_STRING", + /* 210 */ "alter_table_option ::= TTL NK_INTEGER", + /* 211 */ "duration_list ::= duration_literal", + /* 212 */ "duration_list ::= duration_list NK_COMMA duration_literal", + /* 213 */ "rollup_func_list ::= rollup_func_name", + /* 214 */ "rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name", + /* 215 */ "rollup_func_name ::= function_name", + /* 216 */ "rollup_func_name ::= FIRST", + /* 217 */ "rollup_func_name ::= LAST", + /* 218 */ "col_name_list ::= col_name", + /* 219 */ "col_name_list ::= col_name_list NK_COMMA col_name", + /* 220 */ "col_name ::= column_name", + /* 221 */ "cmd ::= SHOW DNODES", + /* 222 */ "cmd ::= SHOW USERS", + /* 223 */ "cmd ::= SHOW USER PRIVILEGES", + /* 224 */ "cmd ::= SHOW DATABASES", + /* 225 */ "cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt", + /* 226 */ "cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt", + /* 227 */ "cmd ::= SHOW db_name_cond_opt VGROUPS", + /* 228 */ "cmd ::= SHOW MNODES", + /* 229 */ "cmd ::= SHOW QNODES", + /* 230 */ "cmd ::= SHOW FUNCTIONS", + /* 231 */ "cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt", + /* 232 */ "cmd ::= SHOW STREAMS", + /* 233 */ "cmd ::= SHOW ACCOUNTS", + /* 234 */ "cmd ::= SHOW APPS", + /* 235 */ "cmd ::= SHOW CONNECTIONS", + /* 236 */ "cmd ::= SHOW LICENCES", + /* 237 */ "cmd ::= SHOW GRANTS", + /* 238 */ "cmd ::= SHOW CREATE DATABASE db_name", + /* 239 */ "cmd ::= SHOW CREATE TABLE full_table_name", + /* 240 */ "cmd ::= SHOW CREATE STABLE full_table_name", + /* 241 */ "cmd ::= SHOW QUERIES", + /* 242 */ "cmd ::= SHOW SCORES", + /* 243 */ "cmd ::= SHOW TOPICS", + /* 244 */ "cmd ::= SHOW VARIABLES", + /* 245 */ "cmd ::= SHOW CLUSTER VARIABLES", + /* 246 */ "cmd ::= SHOW LOCAL VARIABLES", + /* 247 */ "cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt", + /* 248 */ "cmd ::= SHOW BNODES", + /* 249 */ "cmd ::= SHOW SNODES", + /* 250 */ "cmd ::= SHOW CLUSTER", + /* 251 */ "cmd ::= SHOW TRANSACTIONS", + /* 252 */ "cmd ::= SHOW TABLE DISTRIBUTED full_table_name", + /* 253 */ "cmd ::= SHOW CONSUMERS", + /* 254 */ "cmd ::= SHOW SUBSCRIPTIONS", + /* 255 */ "cmd ::= SHOW TAGS FROM table_name_cond from_db_opt", + /* 256 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", + /* 257 */ "cmd ::= SHOW VNODES NK_INTEGER", + /* 258 */ "cmd ::= SHOW VNODES NK_STRING", + /* 259 */ "cmd ::= SHOW db_name_cond_opt ALIVE", + /* 260 */ "cmd ::= SHOW CLUSTER ALIVE", + /* 261 */ "db_name_cond_opt ::=", + /* 262 */ "db_name_cond_opt ::= db_name NK_DOT", + /* 263 */ "like_pattern_opt ::=", + /* 264 */ "like_pattern_opt ::= LIKE NK_STRING", + /* 265 */ "table_name_cond ::= table_name", + /* 266 */ "from_db_opt ::=", + /* 267 */ "from_db_opt ::= FROM db_name", + /* 268 */ "tag_list_opt ::=", + /* 269 */ "tag_list_opt ::= tag_item", + /* 270 */ "tag_list_opt ::= tag_list_opt NK_COMMA tag_item", + /* 271 */ "tag_item ::= TBNAME", + /* 272 */ "tag_item ::= QTAGS", + /* 273 */ "tag_item ::= column_name", + /* 274 */ "tag_item ::= column_name column_alias", + /* 275 */ "tag_item ::= column_name AS column_alias", + /* 276 */ "cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options", + /* 277 */ "cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP", + /* 278 */ "cmd ::= DROP INDEX exists_opt full_index_name", + /* 279 */ "full_index_name ::= index_name", + /* 280 */ "full_index_name ::= db_name NK_DOT index_name", + /* 281 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt", + /* 282 */ "index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt", + /* 283 */ "func_list ::= func", + /* 284 */ "func_list ::= func_list NK_COMMA func", + /* 285 */ "func ::= sma_func_name NK_LP expression_list NK_RP", + /* 286 */ "sma_func_name ::= function_name", + /* 287 */ "sma_func_name ::= COUNT", + /* 288 */ "sma_func_name ::= FIRST", + /* 289 */ "sma_func_name ::= LAST", + /* 290 */ "sma_func_name ::= LAST_ROW", + /* 291 */ "sma_stream_opt ::=", + /* 292 */ "sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal", + /* 293 */ "sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal", + /* 294 */ "sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal", + /* 295 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery", + /* 296 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name", + /* 297 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name", + /* 298 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name", + /* 299 */ "cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name", + /* 300 */ "cmd ::= DROP TOPIC exists_opt topic_name", + /* 301 */ "cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name", + /* 302 */ "cmd ::= DESC full_table_name", + /* 303 */ "cmd ::= DESCRIBE full_table_name", + /* 304 */ "cmd ::= RESET QUERY CACHE", + /* 305 */ "cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery", + /* 306 */ "cmd ::= EXPLAIN analyze_opt explain_options insert_query", + /* 307 */ "analyze_opt ::=", + /* 308 */ "analyze_opt ::= ANALYZE", + /* 309 */ "explain_options ::=", + /* 310 */ "explain_options ::= explain_options VERBOSE NK_BOOL", + /* 311 */ "explain_options ::= explain_options RATIO NK_FLOAT", + /* 312 */ "cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt", + /* 313 */ "cmd ::= DROP FUNCTION exists_opt function_name", + /* 314 */ "agg_func_opt ::=", + /* 315 */ "agg_func_opt ::= AGGREGATE", + /* 316 */ "bufsize_opt ::=", + /* 317 */ "bufsize_opt ::= BUFSIZE NK_INTEGER", + /* 318 */ "language_opt ::=", + /* 319 */ "language_opt ::= LANGUAGE NK_STRING", + /* 320 */ "cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery", + /* 321 */ "cmd ::= DROP STREAM exists_opt stream_name", + /* 322 */ "col_list_opt ::=", + /* 323 */ "col_list_opt ::= NK_LP col_name_list NK_RP", + /* 324 */ "tag_def_or_ref_opt ::=", + /* 325 */ "tag_def_or_ref_opt ::= tags_def", + /* 326 */ "tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP", + /* 327 */ "stream_options ::=", + /* 328 */ "stream_options ::= stream_options TRIGGER AT_ONCE", + /* 329 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", + /* 330 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", + /* 331 */ "stream_options ::= stream_options WATERMARK duration_literal", + /* 332 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", + /* 333 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", + /* 334 */ "stream_options ::= stream_options DELETE_MARK duration_literal", + /* 335 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", + /* 336 */ "subtable_opt ::=", + /* 337 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", + /* 338 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 339 */ "cmd ::= KILL QUERY NK_STRING", + /* 340 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 341 */ "cmd ::= BALANCE VGROUP", + /* 342 */ "cmd ::= BALANCE VGROUP LEADER", + /* 343 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 344 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 345 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 346 */ "dnode_list ::= DNODE NK_INTEGER", + /* 347 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 348 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 349 */ "cmd ::= query_or_subquery", + /* 350 */ "cmd ::= insert_query", + /* 351 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", + /* 352 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", + /* 353 */ "literal ::= NK_INTEGER", + /* 354 */ "literal ::= NK_FLOAT", + /* 355 */ "literal ::= NK_STRING", + /* 356 */ "literal ::= NK_BOOL", + /* 357 */ "literal ::= TIMESTAMP NK_STRING", + /* 358 */ "literal ::= duration_literal", + /* 359 */ "literal ::= NULL", + /* 360 */ "literal ::= NK_QUESTION", + /* 361 */ "duration_literal ::= NK_VARIABLE", + /* 362 */ "signed ::= NK_INTEGER", + /* 363 */ "signed ::= NK_PLUS NK_INTEGER", + /* 364 */ "signed ::= NK_MINUS NK_INTEGER", + /* 365 */ "signed ::= NK_FLOAT", + /* 366 */ "signed ::= NK_PLUS NK_FLOAT", + /* 367 */ "signed ::= NK_MINUS NK_FLOAT", + /* 368 */ "signed_literal ::= signed", + /* 369 */ "signed_literal ::= NK_STRING", + /* 370 */ "signed_literal ::= NK_BOOL", + /* 371 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 372 */ "signed_literal ::= duration_literal", + /* 373 */ "signed_literal ::= NULL", + /* 374 */ "signed_literal ::= literal_func", + /* 375 */ "signed_literal ::= NK_QUESTION", + /* 376 */ "literal_list ::= signed_literal", + /* 377 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 378 */ "db_name ::= NK_ID", + /* 379 */ "table_name ::= NK_ID", + /* 380 */ "column_name ::= NK_ID", + /* 381 */ "function_name ::= NK_ID", + /* 382 */ "table_alias ::= NK_ID", + /* 383 */ "column_alias ::= NK_ID", + /* 384 */ "user_name ::= NK_ID", + /* 385 */ "topic_name ::= NK_ID", + /* 386 */ "stream_name ::= NK_ID", + /* 387 */ "cgroup_name ::= NK_ID", + /* 388 */ "index_name ::= NK_ID", + /* 389 */ "expr_or_subquery ::= expression", + /* 390 */ "expression ::= literal", + /* 391 */ "expression ::= pseudo_column", + /* 392 */ "expression ::= column_reference", + /* 393 */ "expression ::= function_expression", + /* 394 */ "expression ::= case_when_expression", + /* 395 */ "expression ::= NK_LP expression NK_RP", + /* 396 */ "expression ::= NK_PLUS expr_or_subquery", + /* 397 */ "expression ::= NK_MINUS expr_or_subquery", + /* 398 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 399 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 400 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 401 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 402 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 403 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 404 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 405 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 406 */ "expression_list ::= expr_or_subquery", + /* 407 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 408 */ "column_reference ::= column_name", + /* 409 */ "column_reference ::= table_name NK_DOT column_name", + /* 410 */ "pseudo_column ::= ROWTS", + /* 411 */ "pseudo_column ::= TBNAME", + /* 412 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 413 */ "pseudo_column ::= QSTART", + /* 414 */ "pseudo_column ::= QEND", + /* 415 */ "pseudo_column ::= QDURATION", + /* 416 */ "pseudo_column ::= WSTART", + /* 417 */ "pseudo_column ::= WEND", + /* 418 */ "pseudo_column ::= WDURATION", + /* 419 */ "pseudo_column ::= IROWTS", + /* 420 */ "pseudo_column ::= ISFILLED", + /* 421 */ "pseudo_column ::= QTAGS", + /* 422 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 423 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 424 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 425 */ "function_expression ::= literal_func", + /* 426 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 427 */ "literal_func ::= NOW", + /* 428 */ "noarg_func ::= NOW", + /* 429 */ "noarg_func ::= TODAY", + /* 430 */ "noarg_func ::= TIMEZONE", + /* 431 */ "noarg_func ::= DATABASE", + /* 432 */ "noarg_func ::= CLIENT_VERSION", + /* 433 */ "noarg_func ::= SERVER_VERSION", + /* 434 */ "noarg_func ::= SERVER_STATUS", + /* 435 */ "noarg_func ::= CURRENT_USER", + /* 436 */ "noarg_func ::= USER", + /* 437 */ "star_func ::= COUNT", + /* 438 */ "star_func ::= FIRST", + /* 439 */ "star_func ::= LAST", + /* 440 */ "star_func ::= LAST_ROW", + /* 441 */ "star_func_para_list ::= NK_STAR", + /* 442 */ "star_func_para_list ::= other_para_list", + /* 443 */ "other_para_list ::= star_func_para", + /* 444 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 445 */ "star_func_para ::= expr_or_subquery", + /* 446 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 447 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 448 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 449 */ "when_then_list ::= when_then_expr", + /* 450 */ "when_then_list ::= when_then_list when_then_expr", + /* 451 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 452 */ "case_when_else_opt ::=", + /* 453 */ "case_when_else_opt ::= ELSE common_expression", + /* 454 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 455 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 456 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 457 */ "predicate ::= expr_or_subquery IS NULL", + /* 458 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 459 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 460 */ "compare_op ::= NK_LT", + /* 461 */ "compare_op ::= NK_GT", + /* 462 */ "compare_op ::= NK_LE", + /* 463 */ "compare_op ::= NK_GE", + /* 464 */ "compare_op ::= NK_NE", + /* 465 */ "compare_op ::= NK_EQ", + /* 466 */ "compare_op ::= LIKE", + /* 467 */ "compare_op ::= NOT LIKE", + /* 468 */ "compare_op ::= MATCH", + /* 469 */ "compare_op ::= NMATCH", + /* 470 */ "compare_op ::= CONTAINS", + /* 471 */ "in_op ::= IN", + /* 472 */ "in_op ::= NOT IN", + /* 473 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 474 */ "boolean_value_expression ::= boolean_primary", + /* 475 */ "boolean_value_expression ::= NOT boolean_primary", + /* 476 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 477 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 478 */ "boolean_primary ::= predicate", + /* 479 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 480 */ "common_expression ::= expr_or_subquery", + /* 481 */ "common_expression ::= boolean_value_expression", + /* 482 */ "from_clause_opt ::=", + /* 483 */ "from_clause_opt ::= FROM table_reference_list", + /* 484 */ "table_reference_list ::= table_reference", + /* 485 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 486 */ "table_reference ::= table_primary", + /* 487 */ "table_reference ::= joined_table", + /* 488 */ "table_primary ::= table_name alias_opt", + /* 489 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 490 */ "table_primary ::= subquery alias_opt", + /* 491 */ "table_primary ::= parenthesized_joined_table", + /* 492 */ "alias_opt ::=", + /* 493 */ "alias_opt ::= table_alias", + /* 494 */ "alias_opt ::= AS table_alias", + /* 495 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 496 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 497 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", + /* 498 */ "join_type ::=", + /* 499 */ "join_type ::= INNER", + /* 500 */ "query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", + /* 501 */ "set_quantifier_opt ::=", + /* 502 */ "set_quantifier_opt ::= DISTINCT", + /* 503 */ "set_quantifier_opt ::= ALL", + /* 504 */ "select_list ::= select_item", + /* 505 */ "select_list ::= select_list NK_COMMA select_item", + /* 506 */ "select_item ::= NK_STAR", + /* 507 */ "select_item ::= common_expression", + /* 508 */ "select_item ::= common_expression column_alias", + /* 509 */ "select_item ::= common_expression AS column_alias", + /* 510 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 511 */ "where_clause_opt ::=", + /* 512 */ "where_clause_opt ::= WHERE search_condition", + /* 513 */ "partition_by_clause_opt ::=", + /* 514 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 515 */ "partition_list ::= partition_item", + /* 516 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 517 */ "partition_item ::= expr_or_subquery", + /* 518 */ "partition_item ::= expr_or_subquery column_alias", + /* 519 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 520 */ "twindow_clause_opt ::=", + /* 521 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", + /* 522 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 523 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", + /* 524 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", + /* 525 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 526 */ "sliding_opt ::=", + /* 527 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 528 */ "fill_opt ::=", + /* 529 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 530 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", + /* 531 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP", + /* 532 */ "fill_mode ::= NONE", + /* 533 */ "fill_mode ::= PREV", + /* 534 */ "fill_mode ::= NULL", + /* 535 */ "fill_mode ::= NULL_F", + /* 536 */ "fill_mode ::= LINEAR", + /* 537 */ "fill_mode ::= NEXT", + /* 538 */ "group_by_clause_opt ::=", + /* 539 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 540 */ "group_by_list ::= expr_or_subquery", + /* 541 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 542 */ "having_clause_opt ::=", + /* 543 */ "having_clause_opt ::= HAVING search_condition", + /* 544 */ "range_opt ::=", + /* 545 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 546 */ "every_opt ::=", + /* 547 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 548 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 549 */ "query_simple ::= query_specification", + /* 550 */ "query_simple ::= union_query_expression", + /* 551 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 552 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 553 */ "query_simple_or_subquery ::= query_simple", + /* 554 */ "query_simple_or_subquery ::= subquery", + /* 555 */ "query_or_subquery ::= query_expression", + /* 556 */ "query_or_subquery ::= subquery", + /* 557 */ "order_by_clause_opt ::=", + /* 558 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 559 */ "slimit_clause_opt ::=", + /* 560 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 561 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 562 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 563 */ "limit_clause_opt ::=", + /* 564 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 565 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 566 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 567 */ "subquery ::= NK_LP query_expression NK_RP", + /* 568 */ "subquery ::= NK_LP subquery NK_RP", + /* 569 */ "search_condition ::= common_expression", + /* 570 */ "sort_specification_list ::= sort_specification", + /* 571 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 572 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 573 */ "ordering_specification_opt ::=", + /* 574 */ "ordering_specification_opt ::= ASC", + /* 575 */ "ordering_specification_opt ::= DESC", + /* 576 */ "null_ordering_opt ::=", + /* 577 */ "null_ordering_opt ::= NULLS FIRST", + /* 578 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2598,202 +2607,202 @@ static void yy_destructor( */ /********* Begin destructor definitions ***************************************/ /* Default NON-TERMINAL Destructor */ - case 329: /* cmd */ - case 332: /* literal */ - case 345: /* db_options */ - case 347: /* alter_db_options */ - case 349: /* start_opt */ - case 350: /* end_opt */ - case 355: /* retention */ - case 356: /* full_table_name */ - case 359: /* table_options */ - case 363: /* alter_table_clause */ - case 364: /* alter_table_options */ - case 367: /* signed_literal */ - case 368: /* create_subtable_clause */ - case 371: /* drop_table_clause */ - case 374: /* column_def */ - case 378: /* duration_literal */ - case 379: /* rollup_func_name */ - case 381: /* col_name */ - case 382: /* db_name_cond_opt */ - case 383: /* like_pattern_opt */ - case 384: /* table_name_cond */ - case 385: /* from_db_opt */ - case 387: /* tag_item */ - case 389: /* full_index_name */ - case 390: /* index_options */ - case 393: /* sliding_opt */ - case 394: /* sma_stream_opt */ - case 395: /* func */ - case 397: /* query_or_subquery */ - case 400: /* explain_options */ - case 401: /* insert_query */ - case 406: /* stream_options */ - case 409: /* subtable_opt */ - case 410: /* expression */ - case 412: /* where_clause_opt */ - case 413: /* signed */ - case 414: /* literal_func */ - case 417: /* expr_or_subquery */ - case 418: /* pseudo_column */ - case 419: /* column_reference */ - case 420: /* function_expression */ - case 421: /* case_when_expression */ - case 426: /* star_func_para */ - case 428: /* case_when_else_opt */ - case 429: /* common_expression */ - case 430: /* when_then_expr */ - case 431: /* predicate */ - case 434: /* in_predicate_value */ - case 435: /* boolean_value_expression */ - case 436: /* boolean_primary */ - case 437: /* from_clause_opt */ - case 438: /* table_reference_list */ - case 439: /* table_reference */ - case 440: /* table_primary */ - case 441: /* joined_table */ - case 443: /* subquery */ - case 444: /* parenthesized_joined_table */ - case 446: /* search_condition */ - case 447: /* query_specification */ - case 451: /* range_opt */ - case 452: /* every_opt */ - case 453: /* fill_opt */ - case 454: /* twindow_clause_opt */ - case 456: /* having_clause_opt */ - case 457: /* select_item */ - case 459: /* partition_item */ - case 462: /* query_expression */ - case 463: /* query_simple */ - case 465: /* slimit_clause_opt */ - case 466: /* limit_clause_opt */ - case 467: /* union_query_expression */ - case 468: /* query_simple_or_subquery */ - case 470: /* sort_specification */ + case 330: /* cmd */ + case 333: /* literal */ + case 346: /* db_options */ + case 348: /* alter_db_options */ + case 350: /* start_opt */ + case 351: /* end_opt */ + case 356: /* retention */ + case 357: /* full_table_name */ + case 360: /* table_options */ + case 364: /* alter_table_clause */ + case 365: /* alter_table_options */ + case 368: /* signed_literal */ + case 369: /* create_subtable_clause */ + case 372: /* drop_table_clause */ + case 375: /* column_def */ + case 379: /* duration_literal */ + case 380: /* rollup_func_name */ + case 382: /* col_name */ + case 383: /* db_name_cond_opt */ + case 384: /* like_pattern_opt */ + case 385: /* table_name_cond */ + case 386: /* from_db_opt */ + case 388: /* tag_item */ + case 390: /* full_index_name */ + case 391: /* index_options */ + case 394: /* sliding_opt */ + case 395: /* sma_stream_opt */ + case 396: /* func */ + case 398: /* query_or_subquery */ + case 401: /* explain_options */ + case 402: /* insert_query */ + case 407: /* stream_options */ + case 410: /* subtable_opt */ + case 411: /* expression */ + case 413: /* where_clause_opt */ + case 414: /* signed */ + case 415: /* literal_func */ + case 418: /* expr_or_subquery */ + case 419: /* pseudo_column */ + case 420: /* column_reference */ + case 421: /* function_expression */ + case 422: /* case_when_expression */ + case 427: /* star_func_para */ + case 429: /* case_when_else_opt */ + case 430: /* common_expression */ + case 431: /* when_then_expr */ + case 432: /* predicate */ + case 435: /* in_predicate_value */ + case 436: /* boolean_value_expression */ + case 437: /* boolean_primary */ + case 438: /* from_clause_opt */ + case 439: /* table_reference_list */ + case 440: /* table_reference */ + case 441: /* table_primary */ + case 442: /* joined_table */ + case 444: /* subquery */ + case 445: /* parenthesized_joined_table */ + case 447: /* search_condition */ + case 448: /* query_specification */ + case 452: /* range_opt */ + case 453: /* every_opt */ + case 454: /* fill_opt */ + case 455: /* twindow_clause_opt */ + case 457: /* having_clause_opt */ + case 458: /* select_item */ + case 460: /* partition_item */ + case 463: /* query_expression */ + case 464: /* query_simple */ + case 466: /* slimit_clause_opt */ + case 467: /* limit_clause_opt */ + case 468: /* union_query_expression */ + case 469: /* query_simple_or_subquery */ + case 471: /* sort_specification */ { - nodesDestroyNode((yypminor->yy828)); + nodesDestroyNode((yypminor->yy188)); } break; - case 330: /* account_options */ - case 331: /* alter_account_options */ - case 333: /* alter_account_option */ - case 348: /* speed_opt */ - case 403: /* bufsize_opt */ + case 331: /* account_options */ + case 332: /* alter_account_options */ + case 334: /* alter_account_option */ + case 349: /* speed_opt */ + case 404: /* bufsize_opt */ { } break; - case 334: /* user_name */ - case 337: /* priv_level */ - case 340: /* db_name */ - case 341: /* topic_name */ - case 342: /* dnode_endpoint */ - case 365: /* column_name */ - case 373: /* table_name */ - case 380: /* function_name */ - case 388: /* column_alias */ - case 391: /* index_name */ - case 396: /* sma_func_name */ - case 398: /* cgroup_name */ - case 404: /* language_opt */ - case 405: /* stream_name */ - case 416: /* table_alias */ - case 422: /* star_func */ - case 424: /* noarg_func */ - case 442: /* alias_opt */ + case 335: /* user_name */ + case 338: /* priv_level */ + case 341: /* db_name */ + case 342: /* topic_name */ + case 343: /* dnode_endpoint */ + case 366: /* column_name */ + case 374: /* table_name */ + case 381: /* function_name */ + case 389: /* column_alias */ + case 392: /* index_name */ + case 397: /* sma_func_name */ + case 399: /* cgroup_name */ + case 405: /* language_opt */ + case 406: /* stream_name */ + case 417: /* table_alias */ + case 423: /* star_func */ + case 425: /* noarg_func */ + case 443: /* alias_opt */ { } break; - case 335: /* sysinfo_opt */ + case 336: /* sysinfo_opt */ { } break; - case 336: /* privileges */ - case 338: /* priv_type_list */ - case 339: /* priv_type */ + case 337: /* privileges */ + case 339: /* priv_type_list */ + case 340: /* priv_type */ { } break; - case 343: /* force_opt */ - case 344: /* not_exists_opt */ - case 346: /* exists_opt */ - case 399: /* analyze_opt */ - case 402: /* agg_func_opt */ - case 448: /* set_quantifier_opt */ + case 344: /* force_opt */ + case 345: /* not_exists_opt */ + case 347: /* exists_opt */ + case 400: /* analyze_opt */ + case 403: /* agg_func_opt */ + case 449: /* set_quantifier_opt */ { } break; - case 351: /* integer_list */ - case 352: /* variable_list */ - case 353: /* retention_list */ - case 357: /* column_def_list */ - case 358: /* tags_def_opt */ - case 360: /* multi_create_clause */ - case 361: /* tags_def */ - case 362: /* multi_drop_clause */ - case 369: /* specific_cols_opt */ - case 370: /* expression_list */ - case 372: /* col_name_list */ - case 375: /* duration_list */ - case 376: /* rollup_func_list */ - case 386: /* tag_list_opt */ - case 392: /* func_list */ - case 407: /* col_list_opt */ - case 408: /* tag_def_or_ref_opt */ - case 411: /* dnode_list */ - case 415: /* literal_list */ - case 423: /* star_func_para_list */ - case 425: /* other_para_list */ - case 427: /* when_then_list */ - case 449: /* select_list */ - case 450: /* partition_by_clause_opt */ - case 455: /* group_by_clause_opt */ - case 458: /* partition_list */ - case 461: /* group_by_list */ - case 464: /* order_by_clause_opt */ - case 469: /* sort_specification_list */ + case 352: /* integer_list */ + case 353: /* variable_list */ + case 354: /* retention_list */ + case 358: /* column_def_list */ + case 359: /* tags_def_opt */ + case 361: /* multi_create_clause */ + case 362: /* tags_def */ + case 363: /* multi_drop_clause */ + case 370: /* specific_cols_opt */ + case 371: /* expression_list */ + case 373: /* col_name_list */ + case 376: /* duration_list */ + case 377: /* rollup_func_list */ + case 387: /* tag_list_opt */ + case 393: /* func_list */ + case 408: /* col_list_opt */ + case 409: /* tag_def_or_ref_opt */ + case 412: /* dnode_list */ + case 416: /* literal_list */ + case 424: /* star_func_para_list */ + case 426: /* other_para_list */ + case 428: /* when_then_list */ + case 450: /* select_list */ + case 451: /* partition_by_clause_opt */ + case 456: /* group_by_clause_opt */ + case 459: /* partition_list */ + case 462: /* group_by_list */ + case 465: /* order_by_clause_opt */ + case 470: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy222)); + nodesDestroyList((yypminor->yy172)); } break; - case 354: /* alter_db_option */ - case 377: /* alter_table_option */ + case 355: /* alter_db_option */ + case 378: /* alter_table_option */ { } break; - case 366: /* type_name */ + case 367: /* type_name */ { } break; - case 432: /* compare_op */ - case 433: /* in_op */ + case 433: /* compare_op */ + case 434: /* in_op */ { } break; - case 445: /* join_type */ + case 446: /* join_type */ { } break; - case 460: /* fill_mode */ + case 461: /* fill_mode */ { } break; - case 471: /* ordering_specification_opt */ + case 472: /* ordering_specification_opt */ { } break; - case 472: /* null_ordering_opt */ + case 473: /* null_ordering_opt */ { } @@ -3092,580 +3101,585 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ signed char nrhs; /* Negative of the number of RHS symbols in the rule */ } yyRuleInfo[] = { - { 329, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ - { 329, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ - { 330, 0 }, /* (2) account_options ::= */ - { 330, -3 }, /* (3) account_options ::= account_options PPS literal */ - { 330, -3 }, /* (4) account_options ::= account_options TSERIES literal */ - { 330, -3 }, /* (5) account_options ::= account_options STORAGE literal */ - { 330, -3 }, /* (6) account_options ::= account_options STREAMS literal */ - { 330, -3 }, /* (7) account_options ::= account_options QTIME literal */ - { 330, -3 }, /* (8) account_options ::= account_options DBS literal */ - { 330, -3 }, /* (9) account_options ::= account_options USERS literal */ - { 330, -3 }, /* (10) account_options ::= account_options CONNS literal */ - { 330, -3 }, /* (11) account_options ::= account_options STATE literal */ - { 331, -1 }, /* (12) alter_account_options ::= alter_account_option */ - { 331, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ - { 333, -2 }, /* (14) alter_account_option ::= PASS literal */ - { 333, -2 }, /* (15) alter_account_option ::= PPS literal */ - { 333, -2 }, /* (16) alter_account_option ::= TSERIES literal */ - { 333, -2 }, /* (17) alter_account_option ::= STORAGE literal */ - { 333, -2 }, /* (18) alter_account_option ::= STREAMS literal */ - { 333, -2 }, /* (19) alter_account_option ::= QTIME literal */ - { 333, -2 }, /* (20) alter_account_option ::= DBS literal */ - { 333, -2 }, /* (21) alter_account_option ::= USERS literal */ - { 333, -2 }, /* (22) alter_account_option ::= CONNS literal */ - { 333, -2 }, /* (23) alter_account_option ::= STATE literal */ - { 329, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ - { 329, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ - { 329, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ - { 329, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ - { 329, -3 }, /* (28) cmd ::= DROP USER user_name */ - { 335, 0 }, /* (29) sysinfo_opt ::= */ - { 335, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ - { 329, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ - { 329, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ - { 336, -1 }, /* (33) privileges ::= ALL */ - { 336, -1 }, /* (34) privileges ::= priv_type_list */ - { 336, -1 }, /* (35) privileges ::= SUBSCRIBE */ - { 338, -1 }, /* (36) priv_type_list ::= priv_type */ - { 338, -3 }, /* (37) priv_type_list ::= priv_type_list NK_COMMA priv_type */ - { 339, -1 }, /* (38) priv_type ::= READ */ - { 339, -1 }, /* (39) priv_type ::= WRITE */ - { 337, -3 }, /* (40) priv_level ::= NK_STAR NK_DOT NK_STAR */ - { 337, -3 }, /* (41) priv_level ::= db_name NK_DOT NK_STAR */ - { 337, -1 }, /* (42) priv_level ::= topic_name */ - { 329, -3 }, /* (43) cmd ::= CREATE DNODE dnode_endpoint */ - { 329, -5 }, /* (44) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ - { 329, -4 }, /* (45) cmd ::= DROP DNODE NK_INTEGER force_opt */ - { 329, -4 }, /* (46) cmd ::= DROP DNODE dnode_endpoint force_opt */ - { 329, -4 }, /* (47) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ - { 329, -5 }, /* (48) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ - { 329, -4 }, /* (49) cmd ::= ALTER ALL DNODES NK_STRING */ - { 329, -5 }, /* (50) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ - { 342, -1 }, /* (51) dnode_endpoint ::= NK_STRING */ - { 342, -1 }, /* (52) dnode_endpoint ::= NK_ID */ - { 342, -1 }, /* (53) dnode_endpoint ::= NK_IPTOKEN */ - { 343, 0 }, /* (54) force_opt ::= */ - { 343, -1 }, /* (55) force_opt ::= FORCE */ - { 329, -3 }, /* (56) cmd ::= ALTER LOCAL NK_STRING */ - { 329, -4 }, /* (57) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ - { 329, -5 }, /* (58) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (59) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (60) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (61) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (62) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (63) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (64) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (65) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ - { 329, -5 }, /* (66) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ - { 329, -4 }, /* (67) cmd ::= DROP DATABASE exists_opt db_name */ - { 329, -2 }, /* (68) cmd ::= USE db_name */ - { 329, -4 }, /* (69) cmd ::= ALTER DATABASE db_name alter_db_options */ - { 329, -3 }, /* (70) cmd ::= FLUSH DATABASE db_name */ - { 329, -4 }, /* (71) cmd ::= TRIM DATABASE db_name speed_opt */ - { 329, -5 }, /* (72) cmd ::= COMPACT DATABASE db_name start_opt end_opt */ - { 344, -3 }, /* (73) not_exists_opt ::= IF NOT EXISTS */ - { 344, 0 }, /* (74) not_exists_opt ::= */ - { 346, -2 }, /* (75) exists_opt ::= IF EXISTS */ - { 346, 0 }, /* (76) exists_opt ::= */ - { 345, 0 }, /* (77) db_options ::= */ - { 345, -3 }, /* (78) db_options ::= db_options BUFFER NK_INTEGER */ - { 345, -3 }, /* (79) db_options ::= db_options CACHEMODEL NK_STRING */ - { 345, -3 }, /* (80) db_options ::= db_options CACHESIZE NK_INTEGER */ - { 345, -3 }, /* (81) db_options ::= db_options COMP NK_INTEGER */ - { 345, -3 }, /* (82) db_options ::= db_options DURATION NK_INTEGER */ - { 345, -3 }, /* (83) db_options ::= db_options DURATION NK_VARIABLE */ - { 345, -3 }, /* (84) db_options ::= db_options MAXROWS NK_INTEGER */ - { 345, -3 }, /* (85) db_options ::= db_options MINROWS NK_INTEGER */ - { 345, -3 }, /* (86) db_options ::= db_options KEEP integer_list */ - { 345, -3 }, /* (87) db_options ::= db_options KEEP variable_list */ - { 345, -3 }, /* (88) db_options ::= db_options PAGES NK_INTEGER */ - { 345, -3 }, /* (89) db_options ::= db_options PAGESIZE NK_INTEGER */ - { 345, -3 }, /* (90) db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ - { 345, -3 }, /* (91) db_options ::= db_options PRECISION NK_STRING */ - { 345, -3 }, /* (92) db_options ::= db_options REPLICA NK_INTEGER */ - { 345, -3 }, /* (93) db_options ::= db_options VGROUPS NK_INTEGER */ - { 345, -3 }, /* (94) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ - { 345, -3 }, /* (95) db_options ::= db_options RETENTIONS retention_list */ - { 345, -3 }, /* (96) db_options ::= db_options SCHEMALESS NK_INTEGER */ - { 345, -3 }, /* (97) db_options ::= db_options WAL_LEVEL NK_INTEGER */ - { 345, -3 }, /* (98) db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ - { 345, -3 }, /* (99) db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ - { 345, -4 }, /* (100) db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ - { 345, -3 }, /* (101) db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ - { 345, -4 }, /* (102) db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ - { 345, -3 }, /* (103) db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ - { 345, -3 }, /* (104) db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ - { 345, -3 }, /* (105) db_options ::= db_options STT_TRIGGER NK_INTEGER */ - { 345, -3 }, /* (106) db_options ::= db_options TABLE_PREFIX NK_INTEGER */ - { 345, -3 }, /* (107) db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ - { 347, -1 }, /* (108) alter_db_options ::= alter_db_option */ - { 347, -2 }, /* (109) alter_db_options ::= alter_db_options alter_db_option */ - { 354, -2 }, /* (110) alter_db_option ::= BUFFER NK_INTEGER */ - { 354, -2 }, /* (111) alter_db_option ::= CACHEMODEL NK_STRING */ - { 354, -2 }, /* (112) alter_db_option ::= CACHESIZE NK_INTEGER */ - { 354, -2 }, /* (113) alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ - { 354, -2 }, /* (114) alter_db_option ::= KEEP integer_list */ - { 354, -2 }, /* (115) alter_db_option ::= KEEP variable_list */ - { 354, -2 }, /* (116) alter_db_option ::= PAGES NK_INTEGER */ - { 354, -2 }, /* (117) alter_db_option ::= REPLICA NK_INTEGER */ - { 354, -2 }, /* (118) alter_db_option ::= WAL_LEVEL NK_INTEGER */ - { 354, -2 }, /* (119) alter_db_option ::= STT_TRIGGER NK_INTEGER */ - { 354, -2 }, /* (120) alter_db_option ::= MINROWS NK_INTEGER */ - { 351, -1 }, /* (121) integer_list ::= NK_INTEGER */ - { 351, -3 }, /* (122) integer_list ::= integer_list NK_COMMA NK_INTEGER */ - { 352, -1 }, /* (123) variable_list ::= NK_VARIABLE */ - { 352, -3 }, /* (124) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ - { 353, -1 }, /* (125) retention_list ::= retention */ - { 353, -3 }, /* (126) retention_list ::= retention_list NK_COMMA retention */ - { 355, -3 }, /* (127) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ - { 348, 0 }, /* (128) speed_opt ::= */ - { 348, -2 }, /* (129) speed_opt ::= MAX_SPEED NK_INTEGER */ - { 349, 0 }, /* (130) start_opt ::= */ - { 349, -3 }, /* (131) start_opt ::= START WITH NK_INTEGER */ - { 349, -3 }, /* (132) start_opt ::= START WITH NK_STRING */ - { 349, -4 }, /* (133) start_opt ::= START WITH TIMESTAMP NK_STRING */ - { 350, 0 }, /* (134) end_opt ::= */ - { 350, -3 }, /* (135) end_opt ::= END WITH NK_INTEGER */ - { 350, -3 }, /* (136) end_opt ::= END WITH NK_STRING */ - { 350, -4 }, /* (137) end_opt ::= END WITH TIMESTAMP NK_STRING */ - { 329, -9 }, /* (138) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ - { 329, -3 }, /* (139) cmd ::= CREATE TABLE multi_create_clause */ - { 329, -9 }, /* (140) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ - { 329, -3 }, /* (141) cmd ::= DROP TABLE multi_drop_clause */ - { 329, -4 }, /* (142) cmd ::= DROP STABLE exists_opt full_table_name */ - { 329, -3 }, /* (143) cmd ::= ALTER TABLE alter_table_clause */ - { 329, -3 }, /* (144) cmd ::= ALTER STABLE alter_table_clause */ - { 363, -2 }, /* (145) alter_table_clause ::= full_table_name alter_table_options */ - { 363, -5 }, /* (146) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ - { 363, -4 }, /* (147) alter_table_clause ::= full_table_name DROP COLUMN column_name */ - { 363, -5 }, /* (148) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ - { 363, -5 }, /* (149) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ - { 363, -5 }, /* (150) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ - { 363, -4 }, /* (151) alter_table_clause ::= full_table_name DROP TAG column_name */ - { 363, -5 }, /* (152) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ - { 363, -5 }, /* (153) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ - { 363, -6 }, /* (154) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ - { 360, -1 }, /* (155) multi_create_clause ::= create_subtable_clause */ - { 360, -2 }, /* (156) multi_create_clause ::= multi_create_clause create_subtable_clause */ - { 368, -10 }, /* (157) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ - { 362, -1 }, /* (158) multi_drop_clause ::= drop_table_clause */ - { 362, -3 }, /* (159) multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ - { 371, -2 }, /* (160) drop_table_clause ::= exists_opt full_table_name */ - { 369, 0 }, /* (161) specific_cols_opt ::= */ - { 369, -3 }, /* (162) specific_cols_opt ::= NK_LP col_name_list NK_RP */ - { 356, -1 }, /* (163) full_table_name ::= table_name */ - { 356, -3 }, /* (164) full_table_name ::= db_name NK_DOT table_name */ - { 357, -1 }, /* (165) column_def_list ::= column_def */ - { 357, -3 }, /* (166) column_def_list ::= column_def_list NK_COMMA column_def */ - { 374, -2 }, /* (167) column_def ::= column_name type_name */ - { 374, -4 }, /* (168) column_def ::= column_name type_name COMMENT NK_STRING */ - { 366, -1 }, /* (169) type_name ::= BOOL */ - { 366, -1 }, /* (170) type_name ::= TINYINT */ - { 366, -1 }, /* (171) type_name ::= SMALLINT */ - { 366, -1 }, /* (172) type_name ::= INT */ - { 366, -1 }, /* (173) type_name ::= INTEGER */ - { 366, -1 }, /* (174) type_name ::= BIGINT */ - { 366, -1 }, /* (175) type_name ::= FLOAT */ - { 366, -1 }, /* (176) type_name ::= DOUBLE */ - { 366, -4 }, /* (177) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ - { 366, -1 }, /* (178) type_name ::= TIMESTAMP */ - { 366, -4 }, /* (179) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ - { 366, -2 }, /* (180) type_name ::= TINYINT UNSIGNED */ - { 366, -2 }, /* (181) type_name ::= SMALLINT UNSIGNED */ - { 366, -2 }, /* (182) type_name ::= INT UNSIGNED */ - { 366, -2 }, /* (183) type_name ::= BIGINT UNSIGNED */ - { 366, -1 }, /* (184) type_name ::= JSON */ - { 366, -4 }, /* (185) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ - { 366, -1 }, /* (186) type_name ::= MEDIUMBLOB */ - { 366, -1 }, /* (187) type_name ::= BLOB */ - { 366, -4 }, /* (188) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ - { 366, -1 }, /* (189) type_name ::= DECIMAL */ - { 366, -4 }, /* (190) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ - { 366, -6 }, /* (191) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - { 358, 0 }, /* (192) tags_def_opt ::= */ - { 358, -1 }, /* (193) tags_def_opt ::= tags_def */ - { 361, -4 }, /* (194) tags_def ::= TAGS NK_LP column_def_list NK_RP */ - { 359, 0 }, /* (195) table_options ::= */ - { 359, -3 }, /* (196) table_options ::= table_options COMMENT NK_STRING */ - { 359, -3 }, /* (197) table_options ::= table_options MAX_DELAY duration_list */ - { 359, -3 }, /* (198) table_options ::= table_options WATERMARK duration_list */ - { 359, -5 }, /* (199) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ - { 359, -3 }, /* (200) table_options ::= table_options TTL NK_INTEGER */ - { 359, -5 }, /* (201) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ - { 359, -3 }, /* (202) table_options ::= table_options DELETE_MARK duration_list */ - { 364, -1 }, /* (203) alter_table_options ::= alter_table_option */ - { 364, -2 }, /* (204) alter_table_options ::= alter_table_options alter_table_option */ - { 377, -2 }, /* (205) alter_table_option ::= COMMENT NK_STRING */ - { 377, -2 }, /* (206) alter_table_option ::= TTL NK_INTEGER */ - { 375, -1 }, /* (207) duration_list ::= duration_literal */ - { 375, -3 }, /* (208) duration_list ::= duration_list NK_COMMA duration_literal */ - { 376, -1 }, /* (209) rollup_func_list ::= rollup_func_name */ - { 376, -3 }, /* (210) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ - { 379, -1 }, /* (211) rollup_func_name ::= function_name */ - { 379, -1 }, /* (212) rollup_func_name ::= FIRST */ - { 379, -1 }, /* (213) rollup_func_name ::= LAST */ - { 372, -1 }, /* (214) col_name_list ::= col_name */ - { 372, -3 }, /* (215) col_name_list ::= col_name_list NK_COMMA col_name */ - { 381, -1 }, /* (216) col_name ::= column_name */ - { 329, -2 }, /* (217) cmd ::= SHOW DNODES */ - { 329, -2 }, /* (218) cmd ::= SHOW USERS */ - { 329, -3 }, /* (219) cmd ::= SHOW USER PRIVILEGES */ - { 329, -2 }, /* (220) cmd ::= SHOW DATABASES */ - { 329, -4 }, /* (221) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ - { 329, -4 }, /* (222) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ - { 329, -3 }, /* (223) cmd ::= SHOW db_name_cond_opt VGROUPS */ - { 329, -2 }, /* (224) cmd ::= SHOW MNODES */ - { 329, -2 }, /* (225) cmd ::= SHOW QNODES */ - { 329, -2 }, /* (226) cmd ::= SHOW FUNCTIONS */ - { 329, -5 }, /* (227) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ - { 329, -2 }, /* (228) cmd ::= SHOW STREAMS */ - { 329, -2 }, /* (229) cmd ::= SHOW ACCOUNTS */ - { 329, -2 }, /* (230) cmd ::= SHOW APPS */ - { 329, -2 }, /* (231) cmd ::= SHOW CONNECTIONS */ - { 329, -2 }, /* (232) cmd ::= SHOW LICENCES */ - { 329, -2 }, /* (233) cmd ::= SHOW GRANTS */ - { 329, -4 }, /* (234) cmd ::= SHOW CREATE DATABASE db_name */ - { 329, -4 }, /* (235) cmd ::= SHOW CREATE TABLE full_table_name */ - { 329, -4 }, /* (236) cmd ::= SHOW CREATE STABLE full_table_name */ - { 329, -2 }, /* (237) cmd ::= SHOW QUERIES */ - { 329, -2 }, /* (238) cmd ::= SHOW SCORES */ - { 329, -2 }, /* (239) cmd ::= SHOW TOPICS */ - { 329, -2 }, /* (240) cmd ::= SHOW VARIABLES */ - { 329, -3 }, /* (241) cmd ::= SHOW CLUSTER VARIABLES */ - { 329, -3 }, /* (242) cmd ::= SHOW LOCAL VARIABLES */ - { 329, -5 }, /* (243) cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ - { 329, -2 }, /* (244) cmd ::= SHOW BNODES */ - { 329, -2 }, /* (245) cmd ::= SHOW SNODES */ - { 329, -2 }, /* (246) cmd ::= SHOW CLUSTER */ - { 329, -2 }, /* (247) cmd ::= SHOW TRANSACTIONS */ - { 329, -4 }, /* (248) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ - { 329, -2 }, /* (249) cmd ::= SHOW CONSUMERS */ - { 329, -2 }, /* (250) cmd ::= SHOW SUBSCRIPTIONS */ - { 329, -5 }, /* (251) cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ - { 329, -7 }, /* (252) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ - { 329, -3 }, /* (253) cmd ::= SHOW VNODES NK_INTEGER */ - { 329, -3 }, /* (254) cmd ::= SHOW VNODES NK_STRING */ - { 329, -3 }, /* (255) cmd ::= SHOW db_name_cond_opt ALIVE */ - { 329, -3 }, /* (256) cmd ::= SHOW CLUSTER ALIVE */ - { 382, 0 }, /* (257) db_name_cond_opt ::= */ - { 382, -2 }, /* (258) db_name_cond_opt ::= db_name NK_DOT */ - { 383, 0 }, /* (259) like_pattern_opt ::= */ - { 383, -2 }, /* (260) like_pattern_opt ::= LIKE NK_STRING */ - { 384, -1 }, /* (261) table_name_cond ::= table_name */ - { 385, 0 }, /* (262) from_db_opt ::= */ - { 385, -2 }, /* (263) from_db_opt ::= FROM db_name */ - { 386, 0 }, /* (264) tag_list_opt ::= */ - { 386, -1 }, /* (265) tag_list_opt ::= tag_item */ - { 386, -3 }, /* (266) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ - { 387, -1 }, /* (267) tag_item ::= TBNAME */ - { 387, -1 }, /* (268) tag_item ::= QTAGS */ - { 387, -1 }, /* (269) tag_item ::= column_name */ - { 387, -2 }, /* (270) tag_item ::= column_name column_alias */ - { 387, -3 }, /* (271) tag_item ::= column_name AS column_alias */ - { 329, -8 }, /* (272) cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ - { 329, -9 }, /* (273) cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ - { 329, -4 }, /* (274) cmd ::= DROP INDEX exists_opt full_index_name */ - { 389, -1 }, /* (275) full_index_name ::= index_name */ - { 389, -3 }, /* (276) full_index_name ::= db_name NK_DOT index_name */ - { 390, -10 }, /* (277) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - { 390, -12 }, /* (278) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ - { 392, -1 }, /* (279) func_list ::= func */ - { 392, -3 }, /* (280) func_list ::= func_list NK_COMMA func */ - { 395, -4 }, /* (281) func ::= sma_func_name NK_LP expression_list NK_RP */ - { 396, -1 }, /* (282) sma_func_name ::= function_name */ - { 396, -1 }, /* (283) sma_func_name ::= COUNT */ - { 396, -1 }, /* (284) sma_func_name ::= FIRST */ - { 396, -1 }, /* (285) sma_func_name ::= LAST */ - { 396, -1 }, /* (286) sma_func_name ::= LAST_ROW */ - { 394, 0 }, /* (287) sma_stream_opt ::= */ - { 394, -3 }, /* (288) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - { 394, -3 }, /* (289) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - { 394, -3 }, /* (290) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - { 329, -6 }, /* (291) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - { 329, -7 }, /* (292) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ - { 329, -9 }, /* (293) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ - { 329, -7 }, /* (294) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ - { 329, -9 }, /* (295) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ - { 329, -4 }, /* (296) cmd ::= DROP TOPIC exists_opt topic_name */ - { 329, -7 }, /* (297) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - { 329, -2 }, /* (298) cmd ::= DESC full_table_name */ - { 329, -2 }, /* (299) cmd ::= DESCRIBE full_table_name */ - { 329, -3 }, /* (300) cmd ::= RESET QUERY CACHE */ - { 329, -4 }, /* (301) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - { 329, -4 }, /* (302) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ - { 399, 0 }, /* (303) analyze_opt ::= */ - { 399, -1 }, /* (304) analyze_opt ::= ANALYZE */ - { 400, 0 }, /* (305) explain_options ::= */ - { 400, -3 }, /* (306) explain_options ::= explain_options VERBOSE NK_BOOL */ - { 400, -3 }, /* (307) explain_options ::= explain_options RATIO NK_FLOAT */ - { 329, -11 }, /* (308) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ - { 329, -4 }, /* (309) cmd ::= DROP FUNCTION exists_opt function_name */ - { 402, 0 }, /* (310) agg_func_opt ::= */ - { 402, -1 }, /* (311) agg_func_opt ::= AGGREGATE */ - { 403, 0 }, /* (312) bufsize_opt ::= */ - { 403, -2 }, /* (313) bufsize_opt ::= BUFSIZE NK_INTEGER */ - { 404, 0 }, /* (314) language_opt ::= */ - { 404, -2 }, /* (315) language_opt ::= LANGUAGE NK_STRING */ - { 329, -12 }, /* (316) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ - { 329, -4 }, /* (317) cmd ::= DROP STREAM exists_opt stream_name */ - { 407, 0 }, /* (318) col_list_opt ::= */ - { 407, -3 }, /* (319) col_list_opt ::= NK_LP col_name_list NK_RP */ - { 408, 0 }, /* (320) tag_def_or_ref_opt ::= */ - { 408, -1 }, /* (321) tag_def_or_ref_opt ::= tags_def */ - { 408, -4 }, /* (322) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ - { 406, 0 }, /* (323) stream_options ::= */ - { 406, -3 }, /* (324) stream_options ::= stream_options TRIGGER AT_ONCE */ - { 406, -3 }, /* (325) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - { 406, -4 }, /* (326) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - { 406, -3 }, /* (327) stream_options ::= stream_options WATERMARK duration_literal */ - { 406, -4 }, /* (328) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - { 406, -3 }, /* (329) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - { 406, -3 }, /* (330) stream_options ::= stream_options DELETE_MARK duration_literal */ - { 406, -4 }, /* (331) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ - { 409, 0 }, /* (332) subtable_opt ::= */ - { 409, -4 }, /* (333) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - { 329, -3 }, /* (334) cmd ::= KILL CONNECTION NK_INTEGER */ - { 329, -3 }, /* (335) cmd ::= KILL QUERY NK_STRING */ - { 329, -3 }, /* (336) cmd ::= KILL TRANSACTION NK_INTEGER */ - { 329, -2 }, /* (337) cmd ::= BALANCE VGROUP */ - { 329, -4 }, /* (338) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - { 329, -4 }, /* (339) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - { 329, -3 }, /* (340) cmd ::= SPLIT VGROUP NK_INTEGER */ - { 411, -2 }, /* (341) dnode_list ::= DNODE NK_INTEGER */ - { 411, -3 }, /* (342) dnode_list ::= dnode_list DNODE NK_INTEGER */ - { 329, -4 }, /* (343) cmd ::= DELETE FROM full_table_name where_clause_opt */ - { 329, -1 }, /* (344) cmd ::= query_or_subquery */ - { 329, -1 }, /* (345) cmd ::= insert_query */ - { 401, -7 }, /* (346) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - { 401, -4 }, /* (347) insert_query ::= INSERT INTO full_table_name query_or_subquery */ - { 332, -1 }, /* (348) literal ::= NK_INTEGER */ - { 332, -1 }, /* (349) literal ::= NK_FLOAT */ - { 332, -1 }, /* (350) literal ::= NK_STRING */ - { 332, -1 }, /* (351) literal ::= NK_BOOL */ - { 332, -2 }, /* (352) literal ::= TIMESTAMP NK_STRING */ - { 332, -1 }, /* (353) literal ::= duration_literal */ - { 332, -1 }, /* (354) literal ::= NULL */ - { 332, -1 }, /* (355) literal ::= NK_QUESTION */ - { 378, -1 }, /* (356) duration_literal ::= NK_VARIABLE */ - { 413, -1 }, /* (357) signed ::= NK_INTEGER */ - { 413, -2 }, /* (358) signed ::= NK_PLUS NK_INTEGER */ - { 413, -2 }, /* (359) signed ::= NK_MINUS NK_INTEGER */ - { 413, -1 }, /* (360) signed ::= NK_FLOAT */ - { 413, -2 }, /* (361) signed ::= NK_PLUS NK_FLOAT */ - { 413, -2 }, /* (362) signed ::= NK_MINUS NK_FLOAT */ - { 367, -1 }, /* (363) signed_literal ::= signed */ - { 367, -1 }, /* (364) signed_literal ::= NK_STRING */ - { 367, -1 }, /* (365) signed_literal ::= NK_BOOL */ - { 367, -2 }, /* (366) signed_literal ::= TIMESTAMP NK_STRING */ - { 367, -1 }, /* (367) signed_literal ::= duration_literal */ - { 367, -1 }, /* (368) signed_literal ::= NULL */ - { 367, -1 }, /* (369) signed_literal ::= literal_func */ - { 367, -1 }, /* (370) signed_literal ::= NK_QUESTION */ - { 415, -1 }, /* (371) literal_list ::= signed_literal */ - { 415, -3 }, /* (372) literal_list ::= literal_list NK_COMMA signed_literal */ - { 340, -1 }, /* (373) db_name ::= NK_ID */ - { 373, -1 }, /* (374) table_name ::= NK_ID */ - { 365, -1 }, /* (375) column_name ::= NK_ID */ - { 380, -1 }, /* (376) function_name ::= NK_ID */ - { 416, -1 }, /* (377) table_alias ::= NK_ID */ - { 388, -1 }, /* (378) column_alias ::= NK_ID */ - { 334, -1 }, /* (379) user_name ::= NK_ID */ - { 341, -1 }, /* (380) topic_name ::= NK_ID */ - { 405, -1 }, /* (381) stream_name ::= NK_ID */ - { 398, -1 }, /* (382) cgroup_name ::= NK_ID */ - { 391, -1 }, /* (383) index_name ::= NK_ID */ - { 417, -1 }, /* (384) expr_or_subquery ::= expression */ - { 410, -1 }, /* (385) expression ::= literal */ - { 410, -1 }, /* (386) expression ::= pseudo_column */ - { 410, -1 }, /* (387) expression ::= column_reference */ - { 410, -1 }, /* (388) expression ::= function_expression */ - { 410, -1 }, /* (389) expression ::= case_when_expression */ - { 410, -3 }, /* (390) expression ::= NK_LP expression NK_RP */ - { 410, -2 }, /* (391) expression ::= NK_PLUS expr_or_subquery */ - { 410, -2 }, /* (392) expression ::= NK_MINUS expr_or_subquery */ - { 410, -3 }, /* (393) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - { 410, -3 }, /* (394) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - { 410, -3 }, /* (395) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - { 410, -3 }, /* (396) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - { 410, -3 }, /* (397) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - { 410, -3 }, /* (398) expression ::= column_reference NK_ARROW NK_STRING */ - { 410, -3 }, /* (399) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - { 410, -3 }, /* (400) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - { 370, -1 }, /* (401) expression_list ::= expr_or_subquery */ - { 370, -3 }, /* (402) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - { 419, -1 }, /* (403) column_reference ::= column_name */ - { 419, -3 }, /* (404) column_reference ::= table_name NK_DOT column_name */ - { 418, -1 }, /* (405) pseudo_column ::= ROWTS */ - { 418, -1 }, /* (406) pseudo_column ::= TBNAME */ - { 418, -3 }, /* (407) pseudo_column ::= table_name NK_DOT TBNAME */ - { 418, -1 }, /* (408) pseudo_column ::= QSTART */ - { 418, -1 }, /* (409) pseudo_column ::= QEND */ - { 418, -1 }, /* (410) pseudo_column ::= QDURATION */ - { 418, -1 }, /* (411) pseudo_column ::= WSTART */ - { 418, -1 }, /* (412) pseudo_column ::= WEND */ - { 418, -1 }, /* (413) pseudo_column ::= WDURATION */ - { 418, -1 }, /* (414) pseudo_column ::= IROWTS */ - { 418, -1 }, /* (415) pseudo_column ::= ISFILLED */ - { 418, -1 }, /* (416) pseudo_column ::= QTAGS */ - { 420, -4 }, /* (417) function_expression ::= function_name NK_LP expression_list NK_RP */ - { 420, -4 }, /* (418) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - { 420, -6 }, /* (419) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - { 420, -1 }, /* (420) function_expression ::= literal_func */ - { 414, -3 }, /* (421) literal_func ::= noarg_func NK_LP NK_RP */ - { 414, -1 }, /* (422) literal_func ::= NOW */ - { 424, -1 }, /* (423) noarg_func ::= NOW */ - { 424, -1 }, /* (424) noarg_func ::= TODAY */ - { 424, -1 }, /* (425) noarg_func ::= TIMEZONE */ - { 424, -1 }, /* (426) noarg_func ::= DATABASE */ - { 424, -1 }, /* (427) noarg_func ::= CLIENT_VERSION */ - { 424, -1 }, /* (428) noarg_func ::= SERVER_VERSION */ - { 424, -1 }, /* (429) noarg_func ::= SERVER_STATUS */ - { 424, -1 }, /* (430) noarg_func ::= CURRENT_USER */ - { 424, -1 }, /* (431) noarg_func ::= USER */ - { 422, -1 }, /* (432) star_func ::= COUNT */ - { 422, -1 }, /* (433) star_func ::= FIRST */ - { 422, -1 }, /* (434) star_func ::= LAST */ - { 422, -1 }, /* (435) star_func ::= LAST_ROW */ - { 423, -1 }, /* (436) star_func_para_list ::= NK_STAR */ - { 423, -1 }, /* (437) star_func_para_list ::= other_para_list */ - { 425, -1 }, /* (438) other_para_list ::= star_func_para */ - { 425, -3 }, /* (439) other_para_list ::= other_para_list NK_COMMA star_func_para */ - { 426, -1 }, /* (440) star_func_para ::= expr_or_subquery */ - { 426, -3 }, /* (441) star_func_para ::= table_name NK_DOT NK_STAR */ - { 421, -4 }, /* (442) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - { 421, -5 }, /* (443) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - { 427, -1 }, /* (444) when_then_list ::= when_then_expr */ - { 427, -2 }, /* (445) when_then_list ::= when_then_list when_then_expr */ - { 430, -4 }, /* (446) when_then_expr ::= WHEN common_expression THEN common_expression */ - { 428, 0 }, /* (447) case_when_else_opt ::= */ - { 428, -2 }, /* (448) case_when_else_opt ::= ELSE common_expression */ - { 431, -3 }, /* (449) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - { 431, -5 }, /* (450) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - { 431, -6 }, /* (451) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - { 431, -3 }, /* (452) predicate ::= expr_or_subquery IS NULL */ - { 431, -4 }, /* (453) predicate ::= expr_or_subquery IS NOT NULL */ - { 431, -3 }, /* (454) predicate ::= expr_or_subquery in_op in_predicate_value */ - { 432, -1 }, /* (455) compare_op ::= NK_LT */ - { 432, -1 }, /* (456) compare_op ::= NK_GT */ - { 432, -1 }, /* (457) compare_op ::= NK_LE */ - { 432, -1 }, /* (458) compare_op ::= NK_GE */ - { 432, -1 }, /* (459) compare_op ::= NK_NE */ - { 432, -1 }, /* (460) compare_op ::= NK_EQ */ - { 432, -1 }, /* (461) compare_op ::= LIKE */ - { 432, -2 }, /* (462) compare_op ::= NOT LIKE */ - { 432, -1 }, /* (463) compare_op ::= MATCH */ - { 432, -1 }, /* (464) compare_op ::= NMATCH */ - { 432, -1 }, /* (465) compare_op ::= CONTAINS */ - { 433, -1 }, /* (466) in_op ::= IN */ - { 433, -2 }, /* (467) in_op ::= NOT IN */ - { 434, -3 }, /* (468) in_predicate_value ::= NK_LP literal_list NK_RP */ - { 435, -1 }, /* (469) boolean_value_expression ::= boolean_primary */ - { 435, -2 }, /* (470) boolean_value_expression ::= NOT boolean_primary */ - { 435, -3 }, /* (471) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - { 435, -3 }, /* (472) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - { 436, -1 }, /* (473) boolean_primary ::= predicate */ - { 436, -3 }, /* (474) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - { 429, -1 }, /* (475) common_expression ::= expr_or_subquery */ - { 429, -1 }, /* (476) common_expression ::= boolean_value_expression */ - { 437, 0 }, /* (477) from_clause_opt ::= */ - { 437, -2 }, /* (478) from_clause_opt ::= FROM table_reference_list */ - { 438, -1 }, /* (479) table_reference_list ::= table_reference */ - { 438, -3 }, /* (480) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - { 439, -1 }, /* (481) table_reference ::= table_primary */ - { 439, -1 }, /* (482) table_reference ::= joined_table */ - { 440, -2 }, /* (483) table_primary ::= table_name alias_opt */ - { 440, -4 }, /* (484) table_primary ::= db_name NK_DOT table_name alias_opt */ - { 440, -2 }, /* (485) table_primary ::= subquery alias_opt */ - { 440, -1 }, /* (486) table_primary ::= parenthesized_joined_table */ - { 442, 0 }, /* (487) alias_opt ::= */ - { 442, -1 }, /* (488) alias_opt ::= table_alias */ - { 442, -2 }, /* (489) alias_opt ::= AS table_alias */ - { 444, -3 }, /* (490) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - { 444, -3 }, /* (491) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - { 441, -6 }, /* (492) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - { 445, 0 }, /* (493) join_type ::= */ - { 445, -1 }, /* (494) join_type ::= INNER */ - { 447, -12 }, /* (495) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - { 448, 0 }, /* (496) set_quantifier_opt ::= */ - { 448, -1 }, /* (497) set_quantifier_opt ::= DISTINCT */ - { 448, -1 }, /* (498) set_quantifier_opt ::= ALL */ - { 449, -1 }, /* (499) select_list ::= select_item */ - { 449, -3 }, /* (500) select_list ::= select_list NK_COMMA select_item */ - { 457, -1 }, /* (501) select_item ::= NK_STAR */ - { 457, -1 }, /* (502) select_item ::= common_expression */ - { 457, -2 }, /* (503) select_item ::= common_expression column_alias */ - { 457, -3 }, /* (504) select_item ::= common_expression AS column_alias */ - { 457, -3 }, /* (505) select_item ::= table_name NK_DOT NK_STAR */ - { 412, 0 }, /* (506) where_clause_opt ::= */ - { 412, -2 }, /* (507) where_clause_opt ::= WHERE search_condition */ - { 450, 0 }, /* (508) partition_by_clause_opt ::= */ - { 450, -3 }, /* (509) partition_by_clause_opt ::= PARTITION BY partition_list */ - { 458, -1 }, /* (510) partition_list ::= partition_item */ - { 458, -3 }, /* (511) partition_list ::= partition_list NK_COMMA partition_item */ - { 459, -1 }, /* (512) partition_item ::= expr_or_subquery */ - { 459, -2 }, /* (513) partition_item ::= expr_or_subquery column_alias */ - { 459, -3 }, /* (514) partition_item ::= expr_or_subquery AS column_alias */ - { 454, 0 }, /* (515) twindow_clause_opt ::= */ - { 454, -6 }, /* (516) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - { 454, -4 }, /* (517) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - { 454, -6 }, /* (518) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - { 454, -8 }, /* (519) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - { 454, -7 }, /* (520) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - { 393, 0 }, /* (521) sliding_opt ::= */ - { 393, -4 }, /* (522) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - { 453, 0 }, /* (523) fill_opt ::= */ - { 453, -4 }, /* (524) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - { 453, -6 }, /* (525) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ - { 453, -6 }, /* (526) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ - { 460, -1 }, /* (527) fill_mode ::= NONE */ - { 460, -1 }, /* (528) fill_mode ::= PREV */ - { 460, -1 }, /* (529) fill_mode ::= NULL */ - { 460, -1 }, /* (530) fill_mode ::= NULL_F */ - { 460, -1 }, /* (531) fill_mode ::= LINEAR */ - { 460, -1 }, /* (532) fill_mode ::= NEXT */ - { 455, 0 }, /* (533) group_by_clause_opt ::= */ - { 455, -3 }, /* (534) group_by_clause_opt ::= GROUP BY group_by_list */ - { 461, -1 }, /* (535) group_by_list ::= expr_or_subquery */ - { 461, -3 }, /* (536) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - { 456, 0 }, /* (537) having_clause_opt ::= */ - { 456, -2 }, /* (538) having_clause_opt ::= HAVING search_condition */ - { 451, 0 }, /* (539) range_opt ::= */ - { 451, -6 }, /* (540) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - { 452, 0 }, /* (541) every_opt ::= */ - { 452, -4 }, /* (542) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - { 462, -4 }, /* (543) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - { 463, -1 }, /* (544) query_simple ::= query_specification */ - { 463, -1 }, /* (545) query_simple ::= union_query_expression */ - { 467, -4 }, /* (546) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - { 467, -3 }, /* (547) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - { 468, -1 }, /* (548) query_simple_or_subquery ::= query_simple */ - { 468, -1 }, /* (549) query_simple_or_subquery ::= subquery */ - { 397, -1 }, /* (550) query_or_subquery ::= query_expression */ - { 397, -1 }, /* (551) query_or_subquery ::= subquery */ - { 464, 0 }, /* (552) order_by_clause_opt ::= */ - { 464, -3 }, /* (553) order_by_clause_opt ::= ORDER BY sort_specification_list */ - { 465, 0 }, /* (554) slimit_clause_opt ::= */ - { 465, -2 }, /* (555) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - { 465, -4 }, /* (556) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - { 465, -4 }, /* (557) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 466, 0 }, /* (558) limit_clause_opt ::= */ - { 466, -2 }, /* (559) limit_clause_opt ::= LIMIT NK_INTEGER */ - { 466, -4 }, /* (560) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - { 466, -4 }, /* (561) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 443, -3 }, /* (562) subquery ::= NK_LP query_expression NK_RP */ - { 443, -3 }, /* (563) subquery ::= NK_LP subquery NK_RP */ - { 446, -1 }, /* (564) search_condition ::= common_expression */ - { 469, -1 }, /* (565) sort_specification_list ::= sort_specification */ - { 469, -3 }, /* (566) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - { 470, -3 }, /* (567) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - { 471, 0 }, /* (568) ordering_specification_opt ::= */ - { 471, -1 }, /* (569) ordering_specification_opt ::= ASC */ - { 471, -1 }, /* (570) ordering_specification_opt ::= DESC */ - { 472, 0 }, /* (571) null_ordering_opt ::= */ - { 472, -2 }, /* (572) null_ordering_opt ::= NULLS FIRST */ - { 472, -2 }, /* (573) null_ordering_opt ::= NULLS LAST */ + { 330, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ + { 330, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ + { 331, 0 }, /* (2) account_options ::= */ + { 331, -3 }, /* (3) account_options ::= account_options PPS literal */ + { 331, -3 }, /* (4) account_options ::= account_options TSERIES literal */ + { 331, -3 }, /* (5) account_options ::= account_options STORAGE literal */ + { 331, -3 }, /* (6) account_options ::= account_options STREAMS literal */ + { 331, -3 }, /* (7) account_options ::= account_options QTIME literal */ + { 331, -3 }, /* (8) account_options ::= account_options DBS literal */ + { 331, -3 }, /* (9) account_options ::= account_options USERS literal */ + { 331, -3 }, /* (10) account_options ::= account_options CONNS literal */ + { 331, -3 }, /* (11) account_options ::= account_options STATE literal */ + { 332, -1 }, /* (12) alter_account_options ::= alter_account_option */ + { 332, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ + { 334, -2 }, /* (14) alter_account_option ::= PASS literal */ + { 334, -2 }, /* (15) alter_account_option ::= PPS literal */ + { 334, -2 }, /* (16) alter_account_option ::= TSERIES literal */ + { 334, -2 }, /* (17) alter_account_option ::= STORAGE literal */ + { 334, -2 }, /* (18) alter_account_option ::= STREAMS literal */ + { 334, -2 }, /* (19) alter_account_option ::= QTIME literal */ + { 334, -2 }, /* (20) alter_account_option ::= DBS literal */ + { 334, -2 }, /* (21) alter_account_option ::= USERS literal */ + { 334, -2 }, /* (22) alter_account_option ::= CONNS literal */ + { 334, -2 }, /* (23) alter_account_option ::= STATE literal */ + { 330, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ + { 330, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ + { 330, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ + { 330, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ + { 330, -3 }, /* (28) cmd ::= DROP USER user_name */ + { 336, 0 }, /* (29) sysinfo_opt ::= */ + { 336, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ + { 330, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ + { 330, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ + { 337, -1 }, /* (33) privileges ::= ALL */ + { 337, -1 }, /* (34) privileges ::= priv_type_list */ + { 337, -1 }, /* (35) privileges ::= SUBSCRIBE */ + { 339, -1 }, /* (36) priv_type_list ::= priv_type */ + { 339, -3 }, /* (37) priv_type_list ::= priv_type_list NK_COMMA priv_type */ + { 340, -1 }, /* (38) priv_type ::= READ */ + { 340, -1 }, /* (39) priv_type ::= WRITE */ + { 338, -3 }, /* (40) priv_level ::= NK_STAR NK_DOT NK_STAR */ + { 338, -3 }, /* (41) priv_level ::= db_name NK_DOT NK_STAR */ + { 338, -1 }, /* (42) priv_level ::= topic_name */ + { 330, -3 }, /* (43) cmd ::= CREATE DNODE dnode_endpoint */ + { 330, -5 }, /* (44) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ + { 330, -4 }, /* (45) cmd ::= DROP DNODE NK_INTEGER force_opt */ + { 330, -4 }, /* (46) cmd ::= DROP DNODE dnode_endpoint force_opt */ + { 330, -4 }, /* (47) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ + { 330, -5 }, /* (48) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ + { 330, -4 }, /* (49) cmd ::= ALTER ALL DNODES NK_STRING */ + { 330, -5 }, /* (50) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ + { 343, -1 }, /* (51) dnode_endpoint ::= NK_STRING */ + { 343, -1 }, /* (52) dnode_endpoint ::= NK_ID */ + { 343, -1 }, /* (53) dnode_endpoint ::= NK_IPTOKEN */ + { 344, 0 }, /* (54) force_opt ::= */ + { 344, -1 }, /* (55) force_opt ::= FORCE */ + { 330, -3 }, /* (56) cmd ::= ALTER LOCAL NK_STRING */ + { 330, -4 }, /* (57) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ + { 330, -5 }, /* (58) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (59) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (60) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (61) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (62) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (63) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (64) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (65) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ + { 330, -5 }, /* (66) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ + { 330, -4 }, /* (67) cmd ::= DROP DATABASE exists_opt db_name */ + { 330, -2 }, /* (68) cmd ::= USE db_name */ + { 330, -4 }, /* (69) cmd ::= ALTER DATABASE db_name alter_db_options */ + { 330, -3 }, /* (70) cmd ::= FLUSH DATABASE db_name */ + { 330, -4 }, /* (71) cmd ::= TRIM DATABASE db_name speed_opt */ + { 330, -5 }, /* (72) cmd ::= COMPACT DATABASE db_name start_opt end_opt */ + { 345, -3 }, /* (73) not_exists_opt ::= IF NOT EXISTS */ + { 345, 0 }, /* (74) not_exists_opt ::= */ + { 347, -2 }, /* (75) exists_opt ::= IF EXISTS */ + { 347, 0 }, /* (76) exists_opt ::= */ + { 346, 0 }, /* (77) db_options ::= */ + { 346, -3 }, /* (78) db_options ::= db_options BUFFER NK_INTEGER */ + { 346, -3 }, /* (79) db_options ::= db_options CACHEMODEL NK_STRING */ + { 346, -3 }, /* (80) db_options ::= db_options CACHESIZE NK_INTEGER */ + { 346, -3 }, /* (81) db_options ::= db_options COMP NK_INTEGER */ + { 346, -3 }, /* (82) db_options ::= db_options DURATION NK_INTEGER */ + { 346, -3 }, /* (83) db_options ::= db_options DURATION NK_VARIABLE */ + { 346, -3 }, /* (84) db_options ::= db_options MAXROWS NK_INTEGER */ + { 346, -3 }, /* (85) db_options ::= db_options MINROWS NK_INTEGER */ + { 346, -3 }, /* (86) db_options ::= db_options KEEP integer_list */ + { 346, -3 }, /* (87) db_options ::= db_options KEEP variable_list */ + { 346, -3 }, /* (88) db_options ::= db_options PAGES NK_INTEGER */ + { 346, -3 }, /* (89) db_options ::= db_options PAGESIZE NK_INTEGER */ + { 346, -3 }, /* (90) db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ + { 346, -3 }, /* (91) db_options ::= db_options PRECISION NK_STRING */ + { 346, -3 }, /* (92) db_options ::= db_options REPLICA NK_INTEGER */ + { 346, -3 }, /* (93) db_options ::= db_options VGROUPS NK_INTEGER */ + { 346, -3 }, /* (94) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ + { 346, -3 }, /* (95) db_options ::= db_options RETENTIONS retention_list */ + { 346, -3 }, /* (96) db_options ::= db_options SCHEMALESS NK_INTEGER */ + { 346, -3 }, /* (97) db_options ::= db_options WAL_LEVEL NK_INTEGER */ + { 346, -3 }, /* (98) db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ + { 346, -3 }, /* (99) db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ + { 346, -4 }, /* (100) db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ + { 346, -3 }, /* (101) db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ + { 346, -4 }, /* (102) db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ + { 346, -3 }, /* (103) db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ + { 346, -3 }, /* (104) db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ + { 346, -3 }, /* (105) db_options ::= db_options STT_TRIGGER NK_INTEGER */ + { 346, -3 }, /* (106) db_options ::= db_options TABLE_PREFIX NK_INTEGER */ + { 346, -3 }, /* (107) db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ + { 348, -1 }, /* (108) alter_db_options ::= alter_db_option */ + { 348, -2 }, /* (109) alter_db_options ::= alter_db_options alter_db_option */ + { 355, -2 }, /* (110) alter_db_option ::= BUFFER NK_INTEGER */ + { 355, -2 }, /* (111) alter_db_option ::= CACHEMODEL NK_STRING */ + { 355, -2 }, /* (112) alter_db_option ::= CACHESIZE NK_INTEGER */ + { 355, -2 }, /* (113) alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ + { 355, -2 }, /* (114) alter_db_option ::= KEEP integer_list */ + { 355, -2 }, /* (115) alter_db_option ::= KEEP variable_list */ + { 355, -2 }, /* (116) alter_db_option ::= PAGES NK_INTEGER */ + { 355, -2 }, /* (117) alter_db_option ::= REPLICA NK_INTEGER */ + { 355, -2 }, /* (118) alter_db_option ::= WAL_LEVEL NK_INTEGER */ + { 355, -2 }, /* (119) alter_db_option ::= STT_TRIGGER NK_INTEGER */ + { 355, -2 }, /* (120) alter_db_option ::= MINROWS NK_INTEGER */ + { 355, -2 }, /* (121) alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ + { 355, -3 }, /* (122) alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ + { 355, -2 }, /* (123) alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ + { 355, -3 }, /* (124) alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ + { 352, -1 }, /* (125) integer_list ::= NK_INTEGER */ + { 352, -3 }, /* (126) integer_list ::= integer_list NK_COMMA NK_INTEGER */ + { 353, -1 }, /* (127) variable_list ::= NK_VARIABLE */ + { 353, -3 }, /* (128) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ + { 354, -1 }, /* (129) retention_list ::= retention */ + { 354, -3 }, /* (130) retention_list ::= retention_list NK_COMMA retention */ + { 356, -3 }, /* (131) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ + { 349, 0 }, /* (132) speed_opt ::= */ + { 349, -2 }, /* (133) speed_opt ::= MAX_SPEED NK_INTEGER */ + { 350, 0 }, /* (134) start_opt ::= */ + { 350, -3 }, /* (135) start_opt ::= START WITH NK_INTEGER */ + { 350, -3 }, /* (136) start_opt ::= START WITH NK_STRING */ + { 350, -4 }, /* (137) start_opt ::= START WITH TIMESTAMP NK_STRING */ + { 351, 0 }, /* (138) end_opt ::= */ + { 351, -3 }, /* (139) end_opt ::= END WITH NK_INTEGER */ + { 351, -3 }, /* (140) end_opt ::= END WITH NK_STRING */ + { 351, -4 }, /* (141) end_opt ::= END WITH TIMESTAMP NK_STRING */ + { 330, -9 }, /* (142) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ + { 330, -3 }, /* (143) cmd ::= CREATE TABLE multi_create_clause */ + { 330, -9 }, /* (144) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ + { 330, -3 }, /* (145) cmd ::= DROP TABLE multi_drop_clause */ + { 330, -4 }, /* (146) cmd ::= DROP STABLE exists_opt full_table_name */ + { 330, -3 }, /* (147) cmd ::= ALTER TABLE alter_table_clause */ + { 330, -3 }, /* (148) cmd ::= ALTER STABLE alter_table_clause */ + { 364, -2 }, /* (149) alter_table_clause ::= full_table_name alter_table_options */ + { 364, -5 }, /* (150) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ + { 364, -4 }, /* (151) alter_table_clause ::= full_table_name DROP COLUMN column_name */ + { 364, -5 }, /* (152) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ + { 364, -5 }, /* (153) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ + { 364, -5 }, /* (154) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ + { 364, -4 }, /* (155) alter_table_clause ::= full_table_name DROP TAG column_name */ + { 364, -5 }, /* (156) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ + { 364, -5 }, /* (157) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ + { 364, -6 }, /* (158) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ + { 361, -1 }, /* (159) multi_create_clause ::= create_subtable_clause */ + { 361, -2 }, /* (160) multi_create_clause ::= multi_create_clause create_subtable_clause */ + { 369, -10 }, /* (161) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ + { 363, -1 }, /* (162) multi_drop_clause ::= drop_table_clause */ + { 363, -3 }, /* (163) multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ + { 372, -2 }, /* (164) drop_table_clause ::= exists_opt full_table_name */ + { 370, 0 }, /* (165) specific_cols_opt ::= */ + { 370, -3 }, /* (166) specific_cols_opt ::= NK_LP col_name_list NK_RP */ + { 357, -1 }, /* (167) full_table_name ::= table_name */ + { 357, -3 }, /* (168) full_table_name ::= db_name NK_DOT table_name */ + { 358, -1 }, /* (169) column_def_list ::= column_def */ + { 358, -3 }, /* (170) column_def_list ::= column_def_list NK_COMMA column_def */ + { 375, -2 }, /* (171) column_def ::= column_name type_name */ + { 375, -4 }, /* (172) column_def ::= column_name type_name COMMENT NK_STRING */ + { 367, -1 }, /* (173) type_name ::= BOOL */ + { 367, -1 }, /* (174) type_name ::= TINYINT */ + { 367, -1 }, /* (175) type_name ::= SMALLINT */ + { 367, -1 }, /* (176) type_name ::= INT */ + { 367, -1 }, /* (177) type_name ::= INTEGER */ + { 367, -1 }, /* (178) type_name ::= BIGINT */ + { 367, -1 }, /* (179) type_name ::= FLOAT */ + { 367, -1 }, /* (180) type_name ::= DOUBLE */ + { 367, -4 }, /* (181) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ + { 367, -1 }, /* (182) type_name ::= TIMESTAMP */ + { 367, -4 }, /* (183) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ + { 367, -2 }, /* (184) type_name ::= TINYINT UNSIGNED */ + { 367, -2 }, /* (185) type_name ::= SMALLINT UNSIGNED */ + { 367, -2 }, /* (186) type_name ::= INT UNSIGNED */ + { 367, -2 }, /* (187) type_name ::= BIGINT UNSIGNED */ + { 367, -1 }, /* (188) type_name ::= JSON */ + { 367, -4 }, /* (189) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ + { 367, -1 }, /* (190) type_name ::= MEDIUMBLOB */ + { 367, -1 }, /* (191) type_name ::= BLOB */ + { 367, -4 }, /* (192) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ + { 367, -1 }, /* (193) type_name ::= DECIMAL */ + { 367, -4 }, /* (194) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ + { 367, -6 }, /* (195) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + { 359, 0 }, /* (196) tags_def_opt ::= */ + { 359, -1 }, /* (197) tags_def_opt ::= tags_def */ + { 362, -4 }, /* (198) tags_def ::= TAGS NK_LP column_def_list NK_RP */ + { 360, 0 }, /* (199) table_options ::= */ + { 360, -3 }, /* (200) table_options ::= table_options COMMENT NK_STRING */ + { 360, -3 }, /* (201) table_options ::= table_options MAX_DELAY duration_list */ + { 360, -3 }, /* (202) table_options ::= table_options WATERMARK duration_list */ + { 360, -5 }, /* (203) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ + { 360, -3 }, /* (204) table_options ::= table_options TTL NK_INTEGER */ + { 360, -5 }, /* (205) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ + { 360, -3 }, /* (206) table_options ::= table_options DELETE_MARK duration_list */ + { 365, -1 }, /* (207) alter_table_options ::= alter_table_option */ + { 365, -2 }, /* (208) alter_table_options ::= alter_table_options alter_table_option */ + { 378, -2 }, /* (209) alter_table_option ::= COMMENT NK_STRING */ + { 378, -2 }, /* (210) alter_table_option ::= TTL NK_INTEGER */ + { 376, -1 }, /* (211) duration_list ::= duration_literal */ + { 376, -3 }, /* (212) duration_list ::= duration_list NK_COMMA duration_literal */ + { 377, -1 }, /* (213) rollup_func_list ::= rollup_func_name */ + { 377, -3 }, /* (214) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ + { 380, -1 }, /* (215) rollup_func_name ::= function_name */ + { 380, -1 }, /* (216) rollup_func_name ::= FIRST */ + { 380, -1 }, /* (217) rollup_func_name ::= LAST */ + { 373, -1 }, /* (218) col_name_list ::= col_name */ + { 373, -3 }, /* (219) col_name_list ::= col_name_list NK_COMMA col_name */ + { 382, -1 }, /* (220) col_name ::= column_name */ + { 330, -2 }, /* (221) cmd ::= SHOW DNODES */ + { 330, -2 }, /* (222) cmd ::= SHOW USERS */ + { 330, -3 }, /* (223) cmd ::= SHOW USER PRIVILEGES */ + { 330, -2 }, /* (224) cmd ::= SHOW DATABASES */ + { 330, -4 }, /* (225) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ + { 330, -4 }, /* (226) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ + { 330, -3 }, /* (227) cmd ::= SHOW db_name_cond_opt VGROUPS */ + { 330, -2 }, /* (228) cmd ::= SHOW MNODES */ + { 330, -2 }, /* (229) cmd ::= SHOW QNODES */ + { 330, -2 }, /* (230) cmd ::= SHOW FUNCTIONS */ + { 330, -5 }, /* (231) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ + { 330, -2 }, /* (232) cmd ::= SHOW STREAMS */ + { 330, -2 }, /* (233) cmd ::= SHOW ACCOUNTS */ + { 330, -2 }, /* (234) cmd ::= SHOW APPS */ + { 330, -2 }, /* (235) cmd ::= SHOW CONNECTIONS */ + { 330, -2 }, /* (236) cmd ::= SHOW LICENCES */ + { 330, -2 }, /* (237) cmd ::= SHOW GRANTS */ + { 330, -4 }, /* (238) cmd ::= SHOW CREATE DATABASE db_name */ + { 330, -4 }, /* (239) cmd ::= SHOW CREATE TABLE full_table_name */ + { 330, -4 }, /* (240) cmd ::= SHOW CREATE STABLE full_table_name */ + { 330, -2 }, /* (241) cmd ::= SHOW QUERIES */ + { 330, -2 }, /* (242) cmd ::= SHOW SCORES */ + { 330, -2 }, /* (243) cmd ::= SHOW TOPICS */ + { 330, -2 }, /* (244) cmd ::= SHOW VARIABLES */ + { 330, -3 }, /* (245) cmd ::= SHOW CLUSTER VARIABLES */ + { 330, -3 }, /* (246) cmd ::= SHOW LOCAL VARIABLES */ + { 330, -5 }, /* (247) cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ + { 330, -2 }, /* (248) cmd ::= SHOW BNODES */ + { 330, -2 }, /* (249) cmd ::= SHOW SNODES */ + { 330, -2 }, /* (250) cmd ::= SHOW CLUSTER */ + { 330, -2 }, /* (251) cmd ::= SHOW TRANSACTIONS */ + { 330, -4 }, /* (252) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ + { 330, -2 }, /* (253) cmd ::= SHOW CONSUMERS */ + { 330, -2 }, /* (254) cmd ::= SHOW SUBSCRIPTIONS */ + { 330, -5 }, /* (255) cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ + { 330, -7 }, /* (256) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ + { 330, -3 }, /* (257) cmd ::= SHOW VNODES NK_INTEGER */ + { 330, -3 }, /* (258) cmd ::= SHOW VNODES NK_STRING */ + { 330, -3 }, /* (259) cmd ::= SHOW db_name_cond_opt ALIVE */ + { 330, -3 }, /* (260) cmd ::= SHOW CLUSTER ALIVE */ + { 383, 0 }, /* (261) db_name_cond_opt ::= */ + { 383, -2 }, /* (262) db_name_cond_opt ::= db_name NK_DOT */ + { 384, 0 }, /* (263) like_pattern_opt ::= */ + { 384, -2 }, /* (264) like_pattern_opt ::= LIKE NK_STRING */ + { 385, -1 }, /* (265) table_name_cond ::= table_name */ + { 386, 0 }, /* (266) from_db_opt ::= */ + { 386, -2 }, /* (267) from_db_opt ::= FROM db_name */ + { 387, 0 }, /* (268) tag_list_opt ::= */ + { 387, -1 }, /* (269) tag_list_opt ::= tag_item */ + { 387, -3 }, /* (270) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ + { 388, -1 }, /* (271) tag_item ::= TBNAME */ + { 388, -1 }, /* (272) tag_item ::= QTAGS */ + { 388, -1 }, /* (273) tag_item ::= column_name */ + { 388, -2 }, /* (274) tag_item ::= column_name column_alias */ + { 388, -3 }, /* (275) tag_item ::= column_name AS column_alias */ + { 330, -8 }, /* (276) cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ + { 330, -9 }, /* (277) cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ + { 330, -4 }, /* (278) cmd ::= DROP INDEX exists_opt full_index_name */ + { 390, -1 }, /* (279) full_index_name ::= index_name */ + { 390, -3 }, /* (280) full_index_name ::= db_name NK_DOT index_name */ + { 391, -10 }, /* (281) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + { 391, -12 }, /* (282) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ + { 393, -1 }, /* (283) func_list ::= func */ + { 393, -3 }, /* (284) func_list ::= func_list NK_COMMA func */ + { 396, -4 }, /* (285) func ::= sma_func_name NK_LP expression_list NK_RP */ + { 397, -1 }, /* (286) sma_func_name ::= function_name */ + { 397, -1 }, /* (287) sma_func_name ::= COUNT */ + { 397, -1 }, /* (288) sma_func_name ::= FIRST */ + { 397, -1 }, /* (289) sma_func_name ::= LAST */ + { 397, -1 }, /* (290) sma_func_name ::= LAST_ROW */ + { 395, 0 }, /* (291) sma_stream_opt ::= */ + { 395, -3 }, /* (292) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + { 395, -3 }, /* (293) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + { 395, -3 }, /* (294) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + { 330, -6 }, /* (295) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + { 330, -7 }, /* (296) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ + { 330, -9 }, /* (297) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ + { 330, -7 }, /* (298) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ + { 330, -9 }, /* (299) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ + { 330, -4 }, /* (300) cmd ::= DROP TOPIC exists_opt topic_name */ + { 330, -7 }, /* (301) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + { 330, -2 }, /* (302) cmd ::= DESC full_table_name */ + { 330, -2 }, /* (303) cmd ::= DESCRIBE full_table_name */ + { 330, -3 }, /* (304) cmd ::= RESET QUERY CACHE */ + { 330, -4 }, /* (305) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + { 330, -4 }, /* (306) cmd ::= EXPLAIN analyze_opt explain_options insert_query */ + { 400, 0 }, /* (307) analyze_opt ::= */ + { 400, -1 }, /* (308) analyze_opt ::= ANALYZE */ + { 401, 0 }, /* (309) explain_options ::= */ + { 401, -3 }, /* (310) explain_options ::= explain_options VERBOSE NK_BOOL */ + { 401, -3 }, /* (311) explain_options ::= explain_options RATIO NK_FLOAT */ + { 330, -11 }, /* (312) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ + { 330, -4 }, /* (313) cmd ::= DROP FUNCTION exists_opt function_name */ + { 403, 0 }, /* (314) agg_func_opt ::= */ + { 403, -1 }, /* (315) agg_func_opt ::= AGGREGATE */ + { 404, 0 }, /* (316) bufsize_opt ::= */ + { 404, -2 }, /* (317) bufsize_opt ::= BUFSIZE NK_INTEGER */ + { 405, 0 }, /* (318) language_opt ::= */ + { 405, -2 }, /* (319) language_opt ::= LANGUAGE NK_STRING */ + { 330, -12 }, /* (320) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ + { 330, -4 }, /* (321) cmd ::= DROP STREAM exists_opt stream_name */ + { 408, 0 }, /* (322) col_list_opt ::= */ + { 408, -3 }, /* (323) col_list_opt ::= NK_LP col_name_list NK_RP */ + { 409, 0 }, /* (324) tag_def_or_ref_opt ::= */ + { 409, -1 }, /* (325) tag_def_or_ref_opt ::= tags_def */ + { 409, -4 }, /* (326) tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ + { 407, 0 }, /* (327) stream_options ::= */ + { 407, -3 }, /* (328) stream_options ::= stream_options TRIGGER AT_ONCE */ + { 407, -3 }, /* (329) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + { 407, -4 }, /* (330) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + { 407, -3 }, /* (331) stream_options ::= stream_options WATERMARK duration_literal */ + { 407, -4 }, /* (332) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + { 407, -3 }, /* (333) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + { 407, -3 }, /* (334) stream_options ::= stream_options DELETE_MARK duration_literal */ + { 407, -4 }, /* (335) stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ + { 410, 0 }, /* (336) subtable_opt ::= */ + { 410, -4 }, /* (337) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + { 330, -3 }, /* (338) cmd ::= KILL CONNECTION NK_INTEGER */ + { 330, -3 }, /* (339) cmd ::= KILL QUERY NK_STRING */ + { 330, -3 }, /* (340) cmd ::= KILL TRANSACTION NK_INTEGER */ + { 330, -2 }, /* (341) cmd ::= BALANCE VGROUP */ + { 330, -3 }, /* (342) cmd ::= BALANCE VGROUP LEADER */ + { 330, -4 }, /* (343) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + { 330, -4 }, /* (344) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + { 330, -3 }, /* (345) cmd ::= SPLIT VGROUP NK_INTEGER */ + { 412, -2 }, /* (346) dnode_list ::= DNODE NK_INTEGER */ + { 412, -3 }, /* (347) dnode_list ::= dnode_list DNODE NK_INTEGER */ + { 330, -4 }, /* (348) cmd ::= DELETE FROM full_table_name where_clause_opt */ + { 330, -1 }, /* (349) cmd ::= query_or_subquery */ + { 330, -1 }, /* (350) cmd ::= insert_query */ + { 402, -7 }, /* (351) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + { 402, -4 }, /* (352) insert_query ::= INSERT INTO full_table_name query_or_subquery */ + { 333, -1 }, /* (353) literal ::= NK_INTEGER */ + { 333, -1 }, /* (354) literal ::= NK_FLOAT */ + { 333, -1 }, /* (355) literal ::= NK_STRING */ + { 333, -1 }, /* (356) literal ::= NK_BOOL */ + { 333, -2 }, /* (357) literal ::= TIMESTAMP NK_STRING */ + { 333, -1 }, /* (358) literal ::= duration_literal */ + { 333, -1 }, /* (359) literal ::= NULL */ + { 333, -1 }, /* (360) literal ::= NK_QUESTION */ + { 379, -1 }, /* (361) duration_literal ::= NK_VARIABLE */ + { 414, -1 }, /* (362) signed ::= NK_INTEGER */ + { 414, -2 }, /* (363) signed ::= NK_PLUS NK_INTEGER */ + { 414, -2 }, /* (364) signed ::= NK_MINUS NK_INTEGER */ + { 414, -1 }, /* (365) signed ::= NK_FLOAT */ + { 414, -2 }, /* (366) signed ::= NK_PLUS NK_FLOAT */ + { 414, -2 }, /* (367) signed ::= NK_MINUS NK_FLOAT */ + { 368, -1 }, /* (368) signed_literal ::= signed */ + { 368, -1 }, /* (369) signed_literal ::= NK_STRING */ + { 368, -1 }, /* (370) signed_literal ::= NK_BOOL */ + { 368, -2 }, /* (371) signed_literal ::= TIMESTAMP NK_STRING */ + { 368, -1 }, /* (372) signed_literal ::= duration_literal */ + { 368, -1 }, /* (373) signed_literal ::= NULL */ + { 368, -1 }, /* (374) signed_literal ::= literal_func */ + { 368, -1 }, /* (375) signed_literal ::= NK_QUESTION */ + { 416, -1 }, /* (376) literal_list ::= signed_literal */ + { 416, -3 }, /* (377) literal_list ::= literal_list NK_COMMA signed_literal */ + { 341, -1 }, /* (378) db_name ::= NK_ID */ + { 374, -1 }, /* (379) table_name ::= NK_ID */ + { 366, -1 }, /* (380) column_name ::= NK_ID */ + { 381, -1 }, /* (381) function_name ::= NK_ID */ + { 417, -1 }, /* (382) table_alias ::= NK_ID */ + { 389, -1 }, /* (383) column_alias ::= NK_ID */ + { 335, -1 }, /* (384) user_name ::= NK_ID */ + { 342, -1 }, /* (385) topic_name ::= NK_ID */ + { 406, -1 }, /* (386) stream_name ::= NK_ID */ + { 399, -1 }, /* (387) cgroup_name ::= NK_ID */ + { 392, -1 }, /* (388) index_name ::= NK_ID */ + { 418, -1 }, /* (389) expr_or_subquery ::= expression */ + { 411, -1 }, /* (390) expression ::= literal */ + { 411, -1 }, /* (391) expression ::= pseudo_column */ + { 411, -1 }, /* (392) expression ::= column_reference */ + { 411, -1 }, /* (393) expression ::= function_expression */ + { 411, -1 }, /* (394) expression ::= case_when_expression */ + { 411, -3 }, /* (395) expression ::= NK_LP expression NK_RP */ + { 411, -2 }, /* (396) expression ::= NK_PLUS expr_or_subquery */ + { 411, -2 }, /* (397) expression ::= NK_MINUS expr_or_subquery */ + { 411, -3 }, /* (398) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + { 411, -3 }, /* (399) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + { 411, -3 }, /* (400) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + { 411, -3 }, /* (401) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + { 411, -3 }, /* (402) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + { 411, -3 }, /* (403) expression ::= column_reference NK_ARROW NK_STRING */ + { 411, -3 }, /* (404) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + { 411, -3 }, /* (405) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + { 371, -1 }, /* (406) expression_list ::= expr_or_subquery */ + { 371, -3 }, /* (407) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + { 420, -1 }, /* (408) column_reference ::= column_name */ + { 420, -3 }, /* (409) column_reference ::= table_name NK_DOT column_name */ + { 419, -1 }, /* (410) pseudo_column ::= ROWTS */ + { 419, -1 }, /* (411) pseudo_column ::= TBNAME */ + { 419, -3 }, /* (412) pseudo_column ::= table_name NK_DOT TBNAME */ + { 419, -1 }, /* (413) pseudo_column ::= QSTART */ + { 419, -1 }, /* (414) pseudo_column ::= QEND */ + { 419, -1 }, /* (415) pseudo_column ::= QDURATION */ + { 419, -1 }, /* (416) pseudo_column ::= WSTART */ + { 419, -1 }, /* (417) pseudo_column ::= WEND */ + { 419, -1 }, /* (418) pseudo_column ::= WDURATION */ + { 419, -1 }, /* (419) pseudo_column ::= IROWTS */ + { 419, -1 }, /* (420) pseudo_column ::= ISFILLED */ + { 419, -1 }, /* (421) pseudo_column ::= QTAGS */ + { 421, -4 }, /* (422) function_expression ::= function_name NK_LP expression_list NK_RP */ + { 421, -4 }, /* (423) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + { 421, -6 }, /* (424) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + { 421, -1 }, /* (425) function_expression ::= literal_func */ + { 415, -3 }, /* (426) literal_func ::= noarg_func NK_LP NK_RP */ + { 415, -1 }, /* (427) literal_func ::= NOW */ + { 425, -1 }, /* (428) noarg_func ::= NOW */ + { 425, -1 }, /* (429) noarg_func ::= TODAY */ + { 425, -1 }, /* (430) noarg_func ::= TIMEZONE */ + { 425, -1 }, /* (431) noarg_func ::= DATABASE */ + { 425, -1 }, /* (432) noarg_func ::= CLIENT_VERSION */ + { 425, -1 }, /* (433) noarg_func ::= SERVER_VERSION */ + { 425, -1 }, /* (434) noarg_func ::= SERVER_STATUS */ + { 425, -1 }, /* (435) noarg_func ::= CURRENT_USER */ + { 425, -1 }, /* (436) noarg_func ::= USER */ + { 423, -1 }, /* (437) star_func ::= COUNT */ + { 423, -1 }, /* (438) star_func ::= FIRST */ + { 423, -1 }, /* (439) star_func ::= LAST */ + { 423, -1 }, /* (440) star_func ::= LAST_ROW */ + { 424, -1 }, /* (441) star_func_para_list ::= NK_STAR */ + { 424, -1 }, /* (442) star_func_para_list ::= other_para_list */ + { 426, -1 }, /* (443) other_para_list ::= star_func_para */ + { 426, -3 }, /* (444) other_para_list ::= other_para_list NK_COMMA star_func_para */ + { 427, -1 }, /* (445) star_func_para ::= expr_or_subquery */ + { 427, -3 }, /* (446) star_func_para ::= table_name NK_DOT NK_STAR */ + { 422, -4 }, /* (447) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + { 422, -5 }, /* (448) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + { 428, -1 }, /* (449) when_then_list ::= when_then_expr */ + { 428, -2 }, /* (450) when_then_list ::= when_then_list when_then_expr */ + { 431, -4 }, /* (451) when_then_expr ::= WHEN common_expression THEN common_expression */ + { 429, 0 }, /* (452) case_when_else_opt ::= */ + { 429, -2 }, /* (453) case_when_else_opt ::= ELSE common_expression */ + { 432, -3 }, /* (454) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + { 432, -5 }, /* (455) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + { 432, -6 }, /* (456) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + { 432, -3 }, /* (457) predicate ::= expr_or_subquery IS NULL */ + { 432, -4 }, /* (458) predicate ::= expr_or_subquery IS NOT NULL */ + { 432, -3 }, /* (459) predicate ::= expr_or_subquery in_op in_predicate_value */ + { 433, -1 }, /* (460) compare_op ::= NK_LT */ + { 433, -1 }, /* (461) compare_op ::= NK_GT */ + { 433, -1 }, /* (462) compare_op ::= NK_LE */ + { 433, -1 }, /* (463) compare_op ::= NK_GE */ + { 433, -1 }, /* (464) compare_op ::= NK_NE */ + { 433, -1 }, /* (465) compare_op ::= NK_EQ */ + { 433, -1 }, /* (466) compare_op ::= LIKE */ + { 433, -2 }, /* (467) compare_op ::= NOT LIKE */ + { 433, -1 }, /* (468) compare_op ::= MATCH */ + { 433, -1 }, /* (469) compare_op ::= NMATCH */ + { 433, -1 }, /* (470) compare_op ::= CONTAINS */ + { 434, -1 }, /* (471) in_op ::= IN */ + { 434, -2 }, /* (472) in_op ::= NOT IN */ + { 435, -3 }, /* (473) in_predicate_value ::= NK_LP literal_list NK_RP */ + { 436, -1 }, /* (474) boolean_value_expression ::= boolean_primary */ + { 436, -2 }, /* (475) boolean_value_expression ::= NOT boolean_primary */ + { 436, -3 }, /* (476) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + { 436, -3 }, /* (477) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + { 437, -1 }, /* (478) boolean_primary ::= predicate */ + { 437, -3 }, /* (479) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + { 430, -1 }, /* (480) common_expression ::= expr_or_subquery */ + { 430, -1 }, /* (481) common_expression ::= boolean_value_expression */ + { 438, 0 }, /* (482) from_clause_opt ::= */ + { 438, -2 }, /* (483) from_clause_opt ::= FROM table_reference_list */ + { 439, -1 }, /* (484) table_reference_list ::= table_reference */ + { 439, -3 }, /* (485) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + { 440, -1 }, /* (486) table_reference ::= table_primary */ + { 440, -1 }, /* (487) table_reference ::= joined_table */ + { 441, -2 }, /* (488) table_primary ::= table_name alias_opt */ + { 441, -4 }, /* (489) table_primary ::= db_name NK_DOT table_name alias_opt */ + { 441, -2 }, /* (490) table_primary ::= subquery alias_opt */ + { 441, -1 }, /* (491) table_primary ::= parenthesized_joined_table */ + { 443, 0 }, /* (492) alias_opt ::= */ + { 443, -1 }, /* (493) alias_opt ::= table_alias */ + { 443, -2 }, /* (494) alias_opt ::= AS table_alias */ + { 445, -3 }, /* (495) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + { 445, -3 }, /* (496) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + { 442, -6 }, /* (497) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + { 446, 0 }, /* (498) join_type ::= */ + { 446, -1 }, /* (499) join_type ::= INNER */ + { 448, -12 }, /* (500) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + { 449, 0 }, /* (501) set_quantifier_opt ::= */ + { 449, -1 }, /* (502) set_quantifier_opt ::= DISTINCT */ + { 449, -1 }, /* (503) set_quantifier_opt ::= ALL */ + { 450, -1 }, /* (504) select_list ::= select_item */ + { 450, -3 }, /* (505) select_list ::= select_list NK_COMMA select_item */ + { 458, -1 }, /* (506) select_item ::= NK_STAR */ + { 458, -1 }, /* (507) select_item ::= common_expression */ + { 458, -2 }, /* (508) select_item ::= common_expression column_alias */ + { 458, -3 }, /* (509) select_item ::= common_expression AS column_alias */ + { 458, -3 }, /* (510) select_item ::= table_name NK_DOT NK_STAR */ + { 413, 0 }, /* (511) where_clause_opt ::= */ + { 413, -2 }, /* (512) where_clause_opt ::= WHERE search_condition */ + { 451, 0 }, /* (513) partition_by_clause_opt ::= */ + { 451, -3 }, /* (514) partition_by_clause_opt ::= PARTITION BY partition_list */ + { 459, -1 }, /* (515) partition_list ::= partition_item */ + { 459, -3 }, /* (516) partition_list ::= partition_list NK_COMMA partition_item */ + { 460, -1 }, /* (517) partition_item ::= expr_or_subquery */ + { 460, -2 }, /* (518) partition_item ::= expr_or_subquery column_alias */ + { 460, -3 }, /* (519) partition_item ::= expr_or_subquery AS column_alias */ + { 455, 0 }, /* (520) twindow_clause_opt ::= */ + { 455, -6 }, /* (521) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + { 455, -4 }, /* (522) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + { 455, -6 }, /* (523) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + { 455, -8 }, /* (524) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + { 455, -7 }, /* (525) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + { 394, 0 }, /* (526) sliding_opt ::= */ + { 394, -4 }, /* (527) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + { 454, 0 }, /* (528) fill_opt ::= */ + { 454, -4 }, /* (529) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + { 454, -6 }, /* (530) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ + { 454, -6 }, /* (531) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ + { 461, -1 }, /* (532) fill_mode ::= NONE */ + { 461, -1 }, /* (533) fill_mode ::= PREV */ + { 461, -1 }, /* (534) fill_mode ::= NULL */ + { 461, -1 }, /* (535) fill_mode ::= NULL_F */ + { 461, -1 }, /* (536) fill_mode ::= LINEAR */ + { 461, -1 }, /* (537) fill_mode ::= NEXT */ + { 456, 0 }, /* (538) group_by_clause_opt ::= */ + { 456, -3 }, /* (539) group_by_clause_opt ::= GROUP BY group_by_list */ + { 462, -1 }, /* (540) group_by_list ::= expr_or_subquery */ + { 462, -3 }, /* (541) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + { 457, 0 }, /* (542) having_clause_opt ::= */ + { 457, -2 }, /* (543) having_clause_opt ::= HAVING search_condition */ + { 452, 0 }, /* (544) range_opt ::= */ + { 452, -6 }, /* (545) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + { 453, 0 }, /* (546) every_opt ::= */ + { 453, -4 }, /* (547) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + { 463, -4 }, /* (548) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + { 464, -1 }, /* (549) query_simple ::= query_specification */ + { 464, -1 }, /* (550) query_simple ::= union_query_expression */ + { 468, -4 }, /* (551) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + { 468, -3 }, /* (552) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + { 469, -1 }, /* (553) query_simple_or_subquery ::= query_simple */ + { 469, -1 }, /* (554) query_simple_or_subquery ::= subquery */ + { 398, -1 }, /* (555) query_or_subquery ::= query_expression */ + { 398, -1 }, /* (556) query_or_subquery ::= subquery */ + { 465, 0 }, /* (557) order_by_clause_opt ::= */ + { 465, -3 }, /* (558) order_by_clause_opt ::= ORDER BY sort_specification_list */ + { 466, 0 }, /* (559) slimit_clause_opt ::= */ + { 466, -2 }, /* (560) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + { 466, -4 }, /* (561) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + { 466, -4 }, /* (562) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 467, 0 }, /* (563) limit_clause_opt ::= */ + { 467, -2 }, /* (564) limit_clause_opt ::= LIMIT NK_INTEGER */ + { 467, -4 }, /* (565) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + { 467, -4 }, /* (566) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 444, -3 }, /* (567) subquery ::= NK_LP query_expression NK_RP */ + { 444, -3 }, /* (568) subquery ::= NK_LP subquery NK_RP */ + { 447, -1 }, /* (569) search_condition ::= common_expression */ + { 470, -1 }, /* (570) sort_specification_list ::= sort_specification */ + { 470, -3 }, /* (571) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + { 471, -3 }, /* (572) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + { 472, 0 }, /* (573) ordering_specification_opt ::= */ + { 472, -1 }, /* (574) ordering_specification_opt ::= ASC */ + { 472, -1 }, /* (575) ordering_specification_opt ::= DESC */ + { 473, 0 }, /* (576) null_ordering_opt ::= */ + { 473, -2 }, /* (577) null_ordering_opt ::= NULLS FIRST */ + { 473, -2 }, /* (578) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -3754,11 +3768,11 @@ static YYACTIONTYPE yy_reduce( YYMINORTYPE yylhsminor; case 0: /* cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,330,&yymsp[0].minor); + yy_destructor(yypParser,331,&yymsp[0].minor); break; case 1: /* cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,331,&yymsp[0].minor); + yy_destructor(yypParser,332,&yymsp[0].minor); break; case 2: /* account_options ::= */ { } @@ -3772,20 +3786,20 @@ static YYACTIONTYPE yy_reduce( case 9: /* account_options ::= account_options USERS literal */ yytestcase(yyruleno==9); case 10: /* account_options ::= account_options CONNS literal */ yytestcase(yyruleno==10); case 11: /* account_options ::= account_options STATE literal */ yytestcase(yyruleno==11); -{ yy_destructor(yypParser,330,&yymsp[-2].minor); +{ yy_destructor(yypParser,331,&yymsp[-2].minor); { } - yy_destructor(yypParser,332,&yymsp[0].minor); + yy_destructor(yypParser,333,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ -{ yy_destructor(yypParser,333,&yymsp[0].minor); +{ yy_destructor(yypParser,334,&yymsp[0].minor); { } } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ -{ yy_destructor(yypParser,331,&yymsp[-1].minor); +{ yy_destructor(yypParser,332,&yymsp[-1].minor); { } - yy_destructor(yypParser,333,&yymsp[0].minor); + yy_destructor(yypParser,334,&yymsp[0].minor); } break; case 14: /* alter_account_option ::= PASS literal */ @@ -3799,81 +3813,81 @@ static YYACTIONTYPE yy_reduce( case 22: /* alter_account_option ::= CONNS literal */ yytestcase(yyruleno==22); case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); { } - yy_destructor(yypParser,332,&yymsp[0].minor); + yy_destructor(yypParser,333,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ -{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy63, &yymsp[-1].minor.yy0, yymsp[0].minor.yy707); } +{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy725, &yymsp[-1].minor.yy0, yymsp[0].minor.yy371); } break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy63, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy725, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } break; case 26: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy63, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy725, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } break; case 27: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy63, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy725, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } break; case 28: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy725); } break; case 29: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy707 = 1; } +{ yymsp[1].minor.yy371 = 1; } break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy707 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy371 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } break; case 31: /* cmd ::= GRANT privileges ON priv_level TO user_name */ -{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy393, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy189, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725); } break; case 32: /* cmd ::= REVOKE privileges ON priv_level FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy393, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy189, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725); } break; case 33: /* privileges ::= ALL */ -{ yymsp[0].minor.yy393 = PRIVILEGE_TYPE_ALL; } +{ yymsp[0].minor.yy189 = PRIVILEGE_TYPE_ALL; } break; case 34: /* privileges ::= priv_type_list */ case 36: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==36); -{ yylhsminor.yy393 = yymsp[0].minor.yy393; } - yymsp[0].minor.yy393 = yylhsminor.yy393; +{ yylhsminor.yy189 = yymsp[0].minor.yy189; } + yymsp[0].minor.yy189 = yylhsminor.yy189; break; case 35: /* privileges ::= SUBSCRIBE */ -{ yymsp[0].minor.yy393 = PRIVILEGE_TYPE_SUBSCRIBE; } +{ yymsp[0].minor.yy189 = PRIVILEGE_TYPE_SUBSCRIBE; } break; case 37: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy393 = yymsp[-2].minor.yy393 | yymsp[0].minor.yy393; } - yymsp[-2].minor.yy393 = yylhsminor.yy393; +{ yylhsminor.yy189 = yymsp[-2].minor.yy189 | yymsp[0].minor.yy189; } + yymsp[-2].minor.yy189 = yylhsminor.yy189; break; case 38: /* priv_type ::= READ */ -{ yymsp[0].minor.yy393 = PRIVILEGE_TYPE_READ; } +{ yymsp[0].minor.yy189 = PRIVILEGE_TYPE_READ; } break; case 39: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy393 = PRIVILEGE_TYPE_WRITE; } +{ yymsp[0].minor.yy189 = PRIVILEGE_TYPE_WRITE; } break; case 40: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy63 = yymsp[-2].minor.yy0; } - yymsp[-2].minor.yy63 = yylhsminor.yy63; +{ yylhsminor.yy725 = yymsp[-2].minor.yy0; } + yymsp[-2].minor.yy725 = yylhsminor.yy725; break; case 41: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy63 = yymsp[-2].minor.yy63; } - yymsp[-2].minor.yy63 = yylhsminor.yy63; +{ yylhsminor.yy725 = yymsp[-2].minor.yy725; } + yymsp[-2].minor.yy725 = yylhsminor.yy725; break; case 42: /* priv_level ::= topic_name */ - case 282: /* sma_func_name ::= function_name */ yytestcase(yyruleno==282); - case 488: /* alias_opt ::= table_alias */ yytestcase(yyruleno==488); -{ yylhsminor.yy63 = yymsp[0].minor.yy63; } - yymsp[0].minor.yy63 = yylhsminor.yy63; + case 286: /* sma_func_name ::= function_name */ yytestcase(yyruleno==286); + case 493: /* alias_opt ::= table_alias */ yytestcase(yyruleno==493); +{ yylhsminor.yy725 = yymsp[0].minor.yy725; } + yymsp[0].minor.yy725 = yylhsminor.yy725; break; case 43: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy63, NULL); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy725, NULL); } break; case 44: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy0); } break; case 45: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy669); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy437); } break; case 46: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy63, yymsp[0].minor.yy669); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy725, yymsp[0].minor.yy437); } break; case 47: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } @@ -3890,50 +3904,50 @@ static YYACTIONTYPE yy_reduce( case 51: /* dnode_endpoint ::= NK_STRING */ case 52: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==52); case 53: /* dnode_endpoint ::= NK_IPTOKEN */ yytestcase(yyruleno==53); - case 283: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==283); - case 284: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==284); - case 285: /* sma_func_name ::= LAST */ yytestcase(yyruleno==285); - case 286: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==286); - case 373: /* db_name ::= NK_ID */ yytestcase(yyruleno==373); - case 374: /* table_name ::= NK_ID */ yytestcase(yyruleno==374); - case 375: /* column_name ::= NK_ID */ yytestcase(yyruleno==375); - case 376: /* function_name ::= NK_ID */ yytestcase(yyruleno==376); - case 377: /* table_alias ::= NK_ID */ yytestcase(yyruleno==377); - case 378: /* column_alias ::= NK_ID */ yytestcase(yyruleno==378); - case 379: /* user_name ::= NK_ID */ yytestcase(yyruleno==379); - case 380: /* topic_name ::= NK_ID */ yytestcase(yyruleno==380); - case 381: /* stream_name ::= NK_ID */ yytestcase(yyruleno==381); - case 382: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==382); - case 383: /* index_name ::= NK_ID */ yytestcase(yyruleno==383); - case 423: /* noarg_func ::= NOW */ yytestcase(yyruleno==423); - case 424: /* noarg_func ::= TODAY */ yytestcase(yyruleno==424); - case 425: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==425); - case 426: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==426); - case 427: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==427); - case 428: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==428); - case 429: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==429); - case 430: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==430); - case 431: /* noarg_func ::= USER */ yytestcase(yyruleno==431); - case 432: /* star_func ::= COUNT */ yytestcase(yyruleno==432); - case 433: /* star_func ::= FIRST */ yytestcase(yyruleno==433); - case 434: /* star_func ::= LAST */ yytestcase(yyruleno==434); - case 435: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==435); -{ yylhsminor.yy63 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy63 = yylhsminor.yy63; + case 287: /* sma_func_name ::= COUNT */ yytestcase(yyruleno==287); + case 288: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==288); + case 289: /* sma_func_name ::= LAST */ yytestcase(yyruleno==289); + case 290: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==290); + case 378: /* db_name ::= NK_ID */ yytestcase(yyruleno==378); + case 379: /* table_name ::= NK_ID */ yytestcase(yyruleno==379); + case 380: /* column_name ::= NK_ID */ yytestcase(yyruleno==380); + case 381: /* function_name ::= NK_ID */ yytestcase(yyruleno==381); + case 382: /* table_alias ::= NK_ID */ yytestcase(yyruleno==382); + case 383: /* column_alias ::= NK_ID */ yytestcase(yyruleno==383); + case 384: /* user_name ::= NK_ID */ yytestcase(yyruleno==384); + case 385: /* topic_name ::= NK_ID */ yytestcase(yyruleno==385); + case 386: /* stream_name ::= NK_ID */ yytestcase(yyruleno==386); + case 387: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==387); + case 388: /* index_name ::= NK_ID */ yytestcase(yyruleno==388); + case 428: /* noarg_func ::= NOW */ yytestcase(yyruleno==428); + case 429: /* noarg_func ::= TODAY */ yytestcase(yyruleno==429); + case 430: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==430); + case 431: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==431); + case 432: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==432); + case 433: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==433); + case 434: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==434); + case 435: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==435); + case 436: /* noarg_func ::= USER */ yytestcase(yyruleno==436); + case 437: /* star_func ::= COUNT */ yytestcase(yyruleno==437); + case 438: /* star_func ::= FIRST */ yytestcase(yyruleno==438); + case 439: /* star_func ::= LAST */ yytestcase(yyruleno==439); + case 440: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==440); +{ yylhsminor.yy725 = yymsp[0].minor.yy0; } + yymsp[0].minor.yy725 = yylhsminor.yy725; break; case 54: /* force_opt ::= */ case 74: /* not_exists_opt ::= */ yytestcase(yyruleno==74); case 76: /* exists_opt ::= */ yytestcase(yyruleno==76); - case 303: /* analyze_opt ::= */ yytestcase(yyruleno==303); - case 310: /* agg_func_opt ::= */ yytestcase(yyruleno==310); - case 496: /* set_quantifier_opt ::= */ yytestcase(yyruleno==496); -{ yymsp[1].minor.yy669 = false; } + case 307: /* analyze_opt ::= */ yytestcase(yyruleno==307); + case 314: /* agg_func_opt ::= */ yytestcase(yyruleno==314); + case 501: /* set_quantifier_opt ::= */ yytestcase(yyruleno==501); +{ yymsp[1].minor.yy437 = false; } break; case 55: /* force_opt ::= FORCE */ - case 304: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==304); - case 311: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==311); - case 497: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==497); -{ yymsp[0].minor.yy669 = true; } + case 308: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==308); + case 315: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==315); + case 502: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==502); +{ yymsp[0].minor.yy437 = true; } break; case 56: /* cmd ::= ALTER LOCAL NK_STRING */ { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } @@ -3966,1403 +3980,1426 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } break; case 66: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy669, &yymsp[-1].minor.yy63, yymsp[0].minor.yy828); } +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy437, &yymsp[-1].minor.yy725, yymsp[0].minor.yy188); } break; case 67: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy669, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy437, &yymsp[0].minor.yy725); } break; case 68: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy725); } break; case 69: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy63, yymsp[0].minor.yy828); } +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy725, yymsp[0].minor.yy188); } break; case 70: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy63); } +{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy725); } break; case 71: /* cmd ::= TRIM DATABASE db_name speed_opt */ -{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy63, yymsp[0].minor.yy332); } +{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy725, yymsp[0].minor.yy136); } break; case 72: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ -{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy63, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } +{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy725, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; case 73: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy669 = true; } +{ yymsp[-2].minor.yy437 = true; } break; case 75: /* exists_opt ::= IF EXISTS */ -{ yymsp[-1].minor.yy669 = true; } +{ yymsp[-1].minor.yy437 = true; } break; case 77: /* db_options ::= */ -{ yymsp[1].minor.yy828 = createDefaultDatabaseOptions(pCxt); } +{ yymsp[1].minor.yy188 = createDefaultDatabaseOptions(pCxt); } break; case 78: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 79: /* db_options ::= db_options CACHEMODEL NK_STRING */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 80: /* db_options ::= db_options CACHESIZE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 81: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_COMP, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 82: /* db_options ::= db_options DURATION NK_INTEGER */ case 83: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==83); -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 84: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 85: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 86: /* db_options ::= db_options KEEP integer_list */ case 87: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==87); -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_KEEP, yymsp[0].minor.yy222); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_KEEP, yymsp[0].minor.yy172); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 88: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 89: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 90: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 91: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 92: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 93: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 94: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 95: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_RETENTIONS, yymsp[0].minor.yy222); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_RETENTIONS, yymsp[0].minor.yy172); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 96: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 97: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_WAL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 98: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 99: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 100: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-3].minor.yy828, DB_OPTION_WAL_RETENTION_PERIOD, &t); + yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-3].minor.yy188, DB_OPTION_WAL_RETENTION_PERIOD, &t); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; case 101: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 102: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-3].minor.yy828, DB_OPTION_WAL_RETENTION_SIZE, &t); + yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-3].minor.yy188, DB_OPTION_WAL_RETENTION_SIZE, &t); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; case 103: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 104: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 105: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 106: /* db_options ::= db_options TABLE_PREFIX NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 107: /* db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ -{ yylhsminor.yy828 = setDatabaseOption(pCxt, yymsp[-2].minor.yy828, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setDatabaseOption(pCxt, yymsp[-2].minor.yy188, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; case 108: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy828 = createAlterDatabaseOptions(pCxt); yylhsminor.yy828 = setAlterDatabaseOption(pCxt, yylhsminor.yy828, &yymsp[0].minor.yy233); } - yymsp[0].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = createAlterDatabaseOptions(pCxt); yylhsminor.yy188 = setAlterDatabaseOption(pCxt, yylhsminor.yy188, &yymsp[0].minor.yy653); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; case 109: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy828 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy828, &yymsp[0].minor.yy233); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; +{ yylhsminor.yy188 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy188, &yymsp[0].minor.yy653); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; case 110: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 111: /* alter_db_option ::= CACHEMODEL NK_STRING */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 112: /* alter_db_option ::= CACHESIZE NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 113: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 114: /* alter_db_option ::= KEEP integer_list */ case 115: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==115); -{ yymsp[-1].minor.yy233.type = DB_OPTION_KEEP; yymsp[-1].minor.yy233.pList = yymsp[0].minor.yy222; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_KEEP; yymsp[-1].minor.yy653.pList = yymsp[0].minor.yy172; } break; case 116: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_PAGES; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_PAGES; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 117: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 118: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_WAL; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_WAL; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 119: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy653.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; case 120: /* alter_db_option ::= MINROWS NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } - break; - case 121: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy222 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy222 = yylhsminor.yy222; - break; - case 122: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 342: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==342); -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-2].minor.yy222, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy222 = yylhsminor.yy222; - break; - case 123: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy222 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy222 = yylhsminor.yy222; - break; - case 124: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-2].minor.yy222, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy222 = yylhsminor.yy222; - break; - case 125: /* retention_list ::= retention */ - case 155: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==155); - case 158: /* multi_drop_clause ::= drop_table_clause */ yytestcase(yyruleno==158); - case 165: /* column_def_list ::= column_def */ yytestcase(yyruleno==165); - case 209: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==209); - case 214: /* col_name_list ::= col_name */ yytestcase(yyruleno==214); - case 265: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==265); - case 279: /* func_list ::= func */ yytestcase(yyruleno==279); - case 371: /* literal_list ::= signed_literal */ yytestcase(yyruleno==371); - case 438: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==438); - case 444: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==444); - case 499: /* select_list ::= select_item */ yytestcase(yyruleno==499); - case 510: /* partition_list ::= partition_item */ yytestcase(yyruleno==510); - case 565: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==565); -{ yylhsminor.yy222 = createNodeList(pCxt, yymsp[0].minor.yy828); } - yymsp[0].minor.yy222 = yylhsminor.yy222; - break; - case 126: /* retention_list ::= retention_list NK_COMMA retention */ - case 159: /* multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ yytestcase(yyruleno==159); - case 166: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==166); - case 210: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==210); - case 215: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==215); - case 266: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==266); - case 280: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==280); - case 372: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==372); - case 439: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==439); - case 500: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==500); - case 511: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==511); - case 566: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==566); -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-2].minor.yy222, yymsp[0].minor.yy828); } - yymsp[-2].minor.yy222 = yylhsminor.yy222; - break; - case 127: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ -{ yylhsminor.yy828 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; - break; - case 128: /* speed_opt ::= */ - case 312: /* bufsize_opt ::= */ yytestcase(yyruleno==312); -{ yymsp[1].minor.yy332 = 0; } - break; - case 129: /* speed_opt ::= MAX_SPEED NK_INTEGER */ - case 313: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==313); -{ yymsp[-1].minor.yy332 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } - break; - case 130: /* start_opt ::= */ - case 134: /* end_opt ::= */ yytestcase(yyruleno==134); - case 259: /* like_pattern_opt ::= */ yytestcase(yyruleno==259); - case 332: /* subtable_opt ::= */ yytestcase(yyruleno==332); - case 447: /* case_when_else_opt ::= */ yytestcase(yyruleno==447); - case 477: /* from_clause_opt ::= */ yytestcase(yyruleno==477); - case 506: /* where_clause_opt ::= */ yytestcase(yyruleno==506); - case 515: /* twindow_clause_opt ::= */ yytestcase(yyruleno==515); - case 521: /* sliding_opt ::= */ yytestcase(yyruleno==521); - case 523: /* fill_opt ::= */ yytestcase(yyruleno==523); - case 537: /* having_clause_opt ::= */ yytestcase(yyruleno==537); - case 539: /* range_opt ::= */ yytestcase(yyruleno==539); - case 541: /* every_opt ::= */ yytestcase(yyruleno==541); - case 554: /* slimit_clause_opt ::= */ yytestcase(yyruleno==554); - case 558: /* limit_clause_opt ::= */ yytestcase(yyruleno==558); -{ yymsp[1].minor.yy828 = NULL; } - break; - case 131: /* start_opt ::= START WITH NK_INTEGER */ - case 135: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==135); -{ yymsp[-2].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } - break; - case 132: /* start_opt ::= START WITH NK_STRING */ - case 136: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==136); -{ yymsp[-2].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } - break; - case 133: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ - case 137: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==137); -{ yymsp[-3].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } - break; - case 138: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ - case 140: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==140); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy669, yymsp[-5].minor.yy828, yymsp[-3].minor.yy222, yymsp[-1].minor.yy222, yymsp[0].minor.yy828); } - break; - case 139: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy222); } - break; - case 141: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy222); } - break; - case 142: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy669, yymsp[0].minor.yy828); } - break; - case 143: /* cmd ::= ALTER TABLE alter_table_clause */ - case 344: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==344); - case 345: /* cmd ::= insert_query */ yytestcase(yyruleno==345); -{ pCxt->pRootNode = yymsp[0].minor.yy828; } - break; - case 144: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy828); } - break; - case 145: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy828 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; - break; - case 146: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy828 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy63, yymsp[0].minor.yy686); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; - break; - case 147: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy828 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy828, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy63); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; - break; - case 148: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy828 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy63, yymsp[0].minor.yy686); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; - break; - case 149: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy828 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy63, &yymsp[0].minor.yy63); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; - break; - case 150: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy828 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy63, yymsp[0].minor.yy686); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; - break; - case 151: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy828 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy828, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy63); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; - break; - case 152: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy828 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy63, yymsp[0].minor.yy686); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; - break; - case 153: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy828 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy828, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy63, &yymsp[0].minor.yy63); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; +{ yymsp[-1].minor.yy653.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } + break; + case 121: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ +{ yymsp[-1].minor.yy653.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } + break; + case 122: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ +{ + SToken t = yymsp[-1].minor.yy0; + t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; + yymsp[-2].minor.yy653.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy653.val = t; + } + break; + case 123: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ +{ yymsp[-1].minor.yy653.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } + break; + case 124: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ +{ + SToken t = yymsp[-1].minor.yy0; + t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; + yymsp[-2].minor.yy653.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy653.val = t; + } + break; + case 125: /* integer_list ::= NK_INTEGER */ +{ yylhsminor.yy172 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy172 = yylhsminor.yy172; + break; + case 126: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ + case 347: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==347); +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-2].minor.yy172, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy172 = yylhsminor.yy172; + break; + case 127: /* variable_list ::= NK_VARIABLE */ +{ yylhsminor.yy172 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy172 = yylhsminor.yy172; + break; + case 128: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-2].minor.yy172, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy172 = yylhsminor.yy172; + break; + case 129: /* retention_list ::= retention */ + case 159: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==159); + case 162: /* multi_drop_clause ::= drop_table_clause */ yytestcase(yyruleno==162); + case 169: /* column_def_list ::= column_def */ yytestcase(yyruleno==169); + case 213: /* rollup_func_list ::= rollup_func_name */ yytestcase(yyruleno==213); + case 218: /* col_name_list ::= col_name */ yytestcase(yyruleno==218); + case 269: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==269); + case 283: /* func_list ::= func */ yytestcase(yyruleno==283); + case 376: /* literal_list ::= signed_literal */ yytestcase(yyruleno==376); + case 443: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==443); + case 449: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==449); + case 504: /* select_list ::= select_item */ yytestcase(yyruleno==504); + case 515: /* partition_list ::= partition_item */ yytestcase(yyruleno==515); + case 570: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==570); +{ yylhsminor.yy172 = createNodeList(pCxt, yymsp[0].minor.yy188); } + yymsp[0].minor.yy172 = yylhsminor.yy172; + break; + case 130: /* retention_list ::= retention_list NK_COMMA retention */ + case 163: /* multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ yytestcase(yyruleno==163); + case 170: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==170); + case 214: /* rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ yytestcase(yyruleno==214); + case 219: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==219); + case 270: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==270); + case 284: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==284); + case 377: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==377); + case 444: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==444); + case 505: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==505); + case 516: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==516); + case 571: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==571); +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-2].minor.yy172, yymsp[0].minor.yy188); } + yymsp[-2].minor.yy172 = yylhsminor.yy172; + break; + case 131: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ +{ yylhsminor.yy188 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; + break; + case 132: /* speed_opt ::= */ + case 316: /* bufsize_opt ::= */ yytestcase(yyruleno==316); +{ yymsp[1].minor.yy136 = 0; } + break; + case 133: /* speed_opt ::= MAX_SPEED NK_INTEGER */ + case 317: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==317); +{ yymsp[-1].minor.yy136 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } + break; + case 134: /* start_opt ::= */ + case 138: /* end_opt ::= */ yytestcase(yyruleno==138); + case 263: /* like_pattern_opt ::= */ yytestcase(yyruleno==263); + case 336: /* subtable_opt ::= */ yytestcase(yyruleno==336); + case 452: /* case_when_else_opt ::= */ yytestcase(yyruleno==452); + case 482: /* from_clause_opt ::= */ yytestcase(yyruleno==482); + case 511: /* where_clause_opt ::= */ yytestcase(yyruleno==511); + case 520: /* twindow_clause_opt ::= */ yytestcase(yyruleno==520); + case 526: /* sliding_opt ::= */ yytestcase(yyruleno==526); + case 528: /* fill_opt ::= */ yytestcase(yyruleno==528); + case 542: /* having_clause_opt ::= */ yytestcase(yyruleno==542); + case 544: /* range_opt ::= */ yytestcase(yyruleno==544); + case 546: /* every_opt ::= */ yytestcase(yyruleno==546); + case 559: /* slimit_clause_opt ::= */ yytestcase(yyruleno==559); + case 563: /* limit_clause_opt ::= */ yytestcase(yyruleno==563); +{ yymsp[1].minor.yy188 = NULL; } + break; + case 135: /* start_opt ::= START WITH NK_INTEGER */ + case 139: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==139); +{ yymsp[-2].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } + break; + case 136: /* start_opt ::= START WITH NK_STRING */ + case 140: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==140); +{ yymsp[-2].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } + break; + case 137: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ + case 141: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==141); +{ yymsp[-3].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } + break; + case 142: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ + case 144: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==144); +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy437, yymsp[-5].minor.yy188, yymsp[-3].minor.yy172, yymsp[-1].minor.yy172, yymsp[0].minor.yy188); } + break; + case 143: /* cmd ::= CREATE TABLE multi_create_clause */ +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy172); } + break; + case 145: /* cmd ::= DROP TABLE multi_drop_clause */ +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy172); } + break; + case 146: /* cmd ::= DROP STABLE exists_opt full_table_name */ +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy437, yymsp[0].minor.yy188); } + break; + case 147: /* cmd ::= ALTER TABLE alter_table_clause */ + case 349: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==349); + case 350: /* cmd ::= insert_query */ yytestcase(yyruleno==350); +{ pCxt->pRootNode = yymsp[0].minor.yy188; } + break; + case 148: /* cmd ::= ALTER STABLE alter_table_clause */ +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy188); } + break; + case 149: /* alter_table_clause ::= full_table_name alter_table_options */ +{ yylhsminor.yy188 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; + break; + case 150: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ +{ yylhsminor.yy188 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy725, yymsp[0].minor.yy160); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; + break; + case 151: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ +{ yylhsminor.yy188 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy188, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy725); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; + break; + case 152: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ +{ yylhsminor.yy188 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy725, yymsp[0].minor.yy160); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; + break; + case 153: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ +{ yylhsminor.yy188 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy725, &yymsp[0].minor.yy725); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; + break; + case 154: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ +{ yylhsminor.yy188 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy725, yymsp[0].minor.yy160); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; + break; + case 155: /* alter_table_clause ::= full_table_name DROP TAG column_name */ +{ yylhsminor.yy188 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy188, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy725); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; + break; + case 156: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ +{ yylhsminor.yy188 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy725, yymsp[0].minor.yy160); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; + break; + case 157: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ +{ yylhsminor.yy188 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy188, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy725, &yymsp[0].minor.yy725); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; break; - case 154: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy828 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy828, &yymsp[-2].minor.yy63, yymsp[0].minor.yy828); } - yymsp[-5].minor.yy828 = yylhsminor.yy828; + case 158: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ +{ yylhsminor.yy188 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy188, &yymsp[-2].minor.yy725, yymsp[0].minor.yy188); } + yymsp[-5].minor.yy188 = yylhsminor.yy188; break; - case 156: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ - case 445: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==445); -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-1].minor.yy222, yymsp[0].minor.yy828); } - yymsp[-1].minor.yy222 = yylhsminor.yy222; + case 160: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ + case 450: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==450); +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-1].minor.yy172, yymsp[0].minor.yy188); } + yymsp[-1].minor.yy172 = yylhsminor.yy172; break; - case 157: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy828 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy669, yymsp[-8].minor.yy828, yymsp[-6].minor.yy828, yymsp[-5].minor.yy222, yymsp[-2].minor.yy222, yymsp[0].minor.yy828); } - yymsp[-9].minor.yy828 = yylhsminor.yy828; + case 161: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ +{ yylhsminor.yy188 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy437, yymsp[-8].minor.yy188, yymsp[-6].minor.yy188, yymsp[-5].minor.yy172, yymsp[-2].minor.yy172, yymsp[0].minor.yy188); } + yymsp[-9].minor.yy188 = yylhsminor.yy188; break; - case 160: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy828 = createDropTableClause(pCxt, yymsp[-1].minor.yy669, yymsp[0].minor.yy828); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 164: /* drop_table_clause ::= exists_opt full_table_name */ +{ yylhsminor.yy188 = createDropTableClause(pCxt, yymsp[-1].minor.yy437, yymsp[0].minor.yy188); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 161: /* specific_cols_opt ::= */ - case 192: /* tags_def_opt ::= */ yytestcase(yyruleno==192); - case 264: /* tag_list_opt ::= */ yytestcase(yyruleno==264); - case 318: /* col_list_opt ::= */ yytestcase(yyruleno==318); - case 320: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==320); - case 508: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==508); - case 533: /* group_by_clause_opt ::= */ yytestcase(yyruleno==533); - case 552: /* order_by_clause_opt ::= */ yytestcase(yyruleno==552); -{ yymsp[1].minor.yy222 = NULL; } + case 165: /* specific_cols_opt ::= */ + case 196: /* tags_def_opt ::= */ yytestcase(yyruleno==196); + case 268: /* tag_list_opt ::= */ yytestcase(yyruleno==268); + case 322: /* col_list_opt ::= */ yytestcase(yyruleno==322); + case 324: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==324); + case 513: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==513); + case 538: /* group_by_clause_opt ::= */ yytestcase(yyruleno==538); + case 557: /* order_by_clause_opt ::= */ yytestcase(yyruleno==557); +{ yymsp[1].minor.yy172 = NULL; } break; - case 162: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ - case 319: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==319); -{ yymsp[-2].minor.yy222 = yymsp[-1].minor.yy222; } + case 166: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ + case 323: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==323); +{ yymsp[-2].minor.yy172 = yymsp[-1].minor.yy172; } break; - case 163: /* full_table_name ::= table_name */ -{ yylhsminor.yy828 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy63, NULL); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 167: /* full_table_name ::= table_name */ +{ yylhsminor.yy188 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy725, NULL); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 164: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy828 = createRealTableNode(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63, NULL); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 168: /* full_table_name ::= db_name NK_DOT table_name */ +{ yylhsminor.yy188 = createRealTableNode(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725, NULL); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 167: /* column_def ::= column_name type_name */ -{ yylhsminor.yy828 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy63, yymsp[0].minor.yy686, NULL); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 171: /* column_def ::= column_name type_name */ +{ yylhsminor.yy188 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy725, yymsp[0].minor.yy160, NULL); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 168: /* column_def ::= column_name type_name COMMENT NK_STRING */ -{ yylhsminor.yy828 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy63, yymsp[-2].minor.yy686, &yymsp[0].minor.yy0); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 172: /* column_def ::= column_name type_name COMMENT NK_STRING */ +{ yylhsminor.yy188 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy725, yymsp[-2].minor.yy160, &yymsp[0].minor.yy0); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 169: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_BOOL); } + case 173: /* type_name ::= BOOL */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_BOOL); } break; - case 170: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_TINYINT); } + case 174: /* type_name ::= TINYINT */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_TINYINT); } break; - case 171: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_SMALLINT); } + case 175: /* type_name ::= SMALLINT */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_SMALLINT); } break; - case 172: /* type_name ::= INT */ - case 173: /* type_name ::= INTEGER */ yytestcase(yyruleno==173); -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_INT); } + case 176: /* type_name ::= INT */ + case 177: /* type_name ::= INTEGER */ yytestcase(yyruleno==177); +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_INT); } break; - case 174: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_BIGINT); } + case 178: /* type_name ::= BIGINT */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_BIGINT); } break; - case 175: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_FLOAT); } + case 179: /* type_name ::= FLOAT */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_FLOAT); } break; - case 176: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_DOUBLE); } + case 180: /* type_name ::= DOUBLE */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_DOUBLE); } break; - case 177: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy686 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } + case 181: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy160 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } break; - case 178: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } + case 182: /* type_name ::= TIMESTAMP */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } break; - case 179: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy686 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } + case 183: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy160 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } break; - case 180: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy686 = createDataType(TSDB_DATA_TYPE_UTINYINT); } + case 184: /* type_name ::= TINYINT UNSIGNED */ +{ yymsp[-1].minor.yy160 = createDataType(TSDB_DATA_TYPE_UTINYINT); } break; - case 181: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy686 = createDataType(TSDB_DATA_TYPE_USMALLINT); } + case 185: /* type_name ::= SMALLINT UNSIGNED */ +{ yymsp[-1].minor.yy160 = createDataType(TSDB_DATA_TYPE_USMALLINT); } break; - case 182: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy686 = createDataType(TSDB_DATA_TYPE_UINT); } + case 186: /* type_name ::= INT UNSIGNED */ +{ yymsp[-1].minor.yy160 = createDataType(TSDB_DATA_TYPE_UINT); } break; - case 183: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy686 = createDataType(TSDB_DATA_TYPE_UBIGINT); } + case 187: /* type_name ::= BIGINT UNSIGNED */ +{ yymsp[-1].minor.yy160 = createDataType(TSDB_DATA_TYPE_UBIGINT); } break; - case 184: /* type_name ::= JSON */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_JSON); } + case 188: /* type_name ::= JSON */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_JSON); } break; - case 185: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy686 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } + case 189: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy160 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } break; - case 186: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } + case 190: /* type_name ::= MEDIUMBLOB */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } break; - case 187: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_BLOB); } + case 191: /* type_name ::= BLOB */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_BLOB); } break; - case 188: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy686 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } + case 192: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy160 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } break; - case 189: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy686 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 193: /* type_name ::= DECIMAL */ +{ yymsp[0].minor.yy160 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 190: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy686 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 194: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ +{ yymsp[-3].minor.yy160 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 191: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy686 = createDataType(TSDB_DATA_TYPE_DECIMAL); } + case 195: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +{ yymsp[-5].minor.yy160 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; - case 193: /* tags_def_opt ::= tags_def */ - case 321: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==321); - case 437: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==437); -{ yylhsminor.yy222 = yymsp[0].minor.yy222; } - yymsp[0].minor.yy222 = yylhsminor.yy222; + case 197: /* tags_def_opt ::= tags_def */ + case 325: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==325); + case 442: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==442); +{ yylhsminor.yy172 = yymsp[0].minor.yy172; } + yymsp[0].minor.yy172 = yylhsminor.yy172; break; - case 194: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ - case 322: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==322); -{ yymsp[-3].minor.yy222 = yymsp[-1].minor.yy222; } + case 198: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ + case 326: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==326); +{ yymsp[-3].minor.yy172 = yymsp[-1].minor.yy172; } break; - case 195: /* table_options ::= */ -{ yymsp[1].minor.yy828 = createDefaultTableOptions(pCxt); } + case 199: /* table_options ::= */ +{ yymsp[1].minor.yy188 = createDefaultTableOptions(pCxt); } break; - case 196: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-2].minor.yy828, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 200: /* table_options ::= table_options COMMENT NK_STRING */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-2].minor.yy188, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 197: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-2].minor.yy828, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy222); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 201: /* table_options ::= table_options MAX_DELAY duration_list */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-2].minor.yy188, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy172); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 198: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-2].minor.yy828, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy222); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 202: /* table_options ::= table_options WATERMARK duration_list */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-2].minor.yy188, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy172); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 199: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-4].minor.yy828, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy222); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; + case 203: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-4].minor.yy188, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy172); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; break; - case 200: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-2].minor.yy828, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 204: /* table_options ::= table_options TTL NK_INTEGER */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-2].minor.yy188, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 201: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-4].minor.yy828, TABLE_OPTION_SMA, yymsp[-1].minor.yy222); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; + case 205: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-4].minor.yy188, TABLE_OPTION_SMA, yymsp[-1].minor.yy172); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; break; - case 202: /* table_options ::= table_options DELETE_MARK duration_list */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-2].minor.yy828, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy222); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 206: /* table_options ::= table_options DELETE_MARK duration_list */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-2].minor.yy188, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy172); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 203: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy828 = createAlterTableOptions(pCxt); yylhsminor.yy828 = setTableOption(pCxt, yylhsminor.yy828, yymsp[0].minor.yy233.type, &yymsp[0].minor.yy233.val); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 207: /* alter_table_options ::= alter_table_option */ +{ yylhsminor.yy188 = createAlterTableOptions(pCxt); yylhsminor.yy188 = setTableOption(pCxt, yylhsminor.yy188, yymsp[0].minor.yy653.type, &yymsp[0].minor.yy653.val); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 204: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy828 = setTableOption(pCxt, yymsp[-1].minor.yy828, yymsp[0].minor.yy233.type, &yymsp[0].minor.yy233.val); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 208: /* alter_table_options ::= alter_table_options alter_table_option */ +{ yylhsminor.yy188 = setTableOption(pCxt, yymsp[-1].minor.yy188, yymsp[0].minor.yy653.type, &yymsp[0].minor.yy653.val); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 205: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy233.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } + case 209: /* alter_table_option ::= COMMENT NK_STRING */ +{ yymsp[-1].minor.yy653.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; - case 206: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy233.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy233.val = yymsp[0].minor.yy0; } + case 210: /* alter_table_option ::= TTL NK_INTEGER */ +{ yymsp[-1].minor.yy653.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy653.val = yymsp[0].minor.yy0; } break; - case 207: /* duration_list ::= duration_literal */ - case 401: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==401); -{ yylhsminor.yy222 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } - yymsp[0].minor.yy222 = yylhsminor.yy222; + case 211: /* duration_list ::= duration_literal */ + case 406: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==406); +{ yylhsminor.yy172 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } + yymsp[0].minor.yy172 = yylhsminor.yy172; break; - case 208: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 402: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==402); -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-2].minor.yy222, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } - yymsp[-2].minor.yy222 = yylhsminor.yy222; + case 212: /* duration_list ::= duration_list NK_COMMA duration_literal */ + case 407: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==407); +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-2].minor.yy172, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } + yymsp[-2].minor.yy172 = yylhsminor.yy172; break; - case 211: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy828 = createFunctionNode(pCxt, &yymsp[0].minor.yy63, NULL); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 215: /* rollup_func_name ::= function_name */ +{ yylhsminor.yy188 = createFunctionNode(pCxt, &yymsp[0].minor.yy725, NULL); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 212: /* rollup_func_name ::= FIRST */ - case 213: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==213); - case 268: /* tag_item ::= QTAGS */ yytestcase(yyruleno==268); -{ yylhsminor.yy828 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 216: /* rollup_func_name ::= FIRST */ + case 217: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==217); + case 272: /* tag_item ::= QTAGS */ yytestcase(yyruleno==272); +{ yylhsminor.yy188 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 216: /* col_name ::= column_name */ - case 269: /* tag_item ::= column_name */ yytestcase(yyruleno==269); -{ yylhsminor.yy828 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy63); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 220: /* col_name ::= column_name */ + case 273: /* tag_item ::= column_name */ yytestcase(yyruleno==273); +{ yylhsminor.yy188 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy725); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 217: /* cmd ::= SHOW DNODES */ + case 221: /* cmd ::= SHOW DNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } break; - case 218: /* cmd ::= SHOW USERS */ + case 222: /* cmd ::= SHOW USERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } break; - case 219: /* cmd ::= SHOW USER PRIVILEGES */ + case 223: /* cmd ::= SHOW USER PRIVILEGES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } break; - case 220: /* cmd ::= SHOW DATABASES */ + case 224: /* cmd ::= SHOW DATABASES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } break; - case 221: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy828, yymsp[0].minor.yy828, OP_TYPE_LIKE); } + case 225: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy188, yymsp[0].minor.yy188, OP_TYPE_LIKE); } break; - case 222: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy828, yymsp[0].minor.yy828, OP_TYPE_LIKE); } + case 226: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy188, yymsp[0].minor.yy188, OP_TYPE_LIKE); } break; - case 223: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy828, NULL, OP_TYPE_LIKE); } + case 227: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy188, NULL, OP_TYPE_LIKE); } break; - case 224: /* cmd ::= SHOW MNODES */ + case 228: /* cmd ::= SHOW MNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } break; - case 225: /* cmd ::= SHOW QNODES */ + case 229: /* cmd ::= SHOW QNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } break; - case 226: /* cmd ::= SHOW FUNCTIONS */ + case 230: /* cmd ::= SHOW FUNCTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } break; - case 227: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy828, yymsp[-1].minor.yy828, OP_TYPE_EQUAL); } + case 231: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy188, yymsp[-1].minor.yy188, OP_TYPE_EQUAL); } break; - case 228: /* cmd ::= SHOW STREAMS */ + case 232: /* cmd ::= SHOW STREAMS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } break; - case 229: /* cmd ::= SHOW ACCOUNTS */ + case 233: /* cmd ::= SHOW ACCOUNTS */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } break; - case 230: /* cmd ::= SHOW APPS */ + case 234: /* cmd ::= SHOW APPS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } break; - case 231: /* cmd ::= SHOW CONNECTIONS */ + case 235: /* cmd ::= SHOW CONNECTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } break; - case 232: /* cmd ::= SHOW LICENCES */ - case 233: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==233); + case 236: /* cmd ::= SHOW LICENCES */ + case 237: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==237); { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } break; - case 234: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy63); } + case 238: /* cmd ::= SHOW CREATE DATABASE db_name */ +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy725); } break; - case 235: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy828); } + case 239: /* cmd ::= SHOW CREATE TABLE full_table_name */ +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy188); } break; - case 236: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy828); } + case 240: /* cmd ::= SHOW CREATE STABLE full_table_name */ +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy188); } break; - case 237: /* cmd ::= SHOW QUERIES */ + case 241: /* cmd ::= SHOW QUERIES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } break; - case 238: /* cmd ::= SHOW SCORES */ + case 242: /* cmd ::= SHOW SCORES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } break; - case 239: /* cmd ::= SHOW TOPICS */ + case 243: /* cmd ::= SHOW TOPICS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } break; - case 240: /* cmd ::= SHOW VARIABLES */ - case 241: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==241); + case 244: /* cmd ::= SHOW VARIABLES */ + case 245: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==245); { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } break; - case 242: /* cmd ::= SHOW LOCAL VARIABLES */ + case 246: /* cmd ::= SHOW LOCAL VARIABLES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } break; - case 243: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy828); } + case 247: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ +{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy188); } break; - case 244: /* cmd ::= SHOW BNODES */ + case 248: /* cmd ::= SHOW BNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } break; - case 245: /* cmd ::= SHOW SNODES */ + case 249: /* cmd ::= SHOW SNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } break; - case 246: /* cmd ::= SHOW CLUSTER */ + case 250: /* cmd ::= SHOW CLUSTER */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } break; - case 247: /* cmd ::= SHOW TRANSACTIONS */ + case 251: /* cmd ::= SHOW TRANSACTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } break; - case 248: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy828); } + case 252: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy188); } break; - case 249: /* cmd ::= SHOW CONSUMERS */ + case 253: /* cmd ::= SHOW CONSUMERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } break; - case 250: /* cmd ::= SHOW SUBSCRIPTIONS */ + case 254: /* cmd ::= SHOW SUBSCRIPTIONS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } break; - case 251: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy828, yymsp[-1].minor.yy828, OP_TYPE_EQUAL); } + case 255: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy188, yymsp[-1].minor.yy188, OP_TYPE_EQUAL); } break; - case 252: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy828, yymsp[0].minor.yy828, yymsp[-3].minor.yy222); } + case 256: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy188, yymsp[0].minor.yy188, yymsp[-3].minor.yy172); } break; - case 253: /* cmd ::= SHOW VNODES NK_INTEGER */ + case 257: /* cmd ::= SHOW VNODES NK_INTEGER */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } break; - case 254: /* cmd ::= SHOW VNODES NK_STRING */ + case 258: /* cmd ::= SHOW VNODES NK_STRING */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } break; - case 255: /* cmd ::= SHOW db_name_cond_opt ALIVE */ -{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy828, QUERY_NODE_SHOW_DB_ALIVE_STMT); } + case 259: /* cmd ::= SHOW db_name_cond_opt ALIVE */ +{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy188, QUERY_NODE_SHOW_DB_ALIVE_STMT); } break; - case 256: /* cmd ::= SHOW CLUSTER ALIVE */ + case 260: /* cmd ::= SHOW CLUSTER ALIVE */ { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } break; - case 257: /* db_name_cond_opt ::= */ - case 262: /* from_db_opt ::= */ yytestcase(yyruleno==262); -{ yymsp[1].minor.yy828 = createDefaultDatabaseCondValue(pCxt); } + case 261: /* db_name_cond_opt ::= */ + case 266: /* from_db_opt ::= */ yytestcase(yyruleno==266); +{ yymsp[1].minor.yy188 = createDefaultDatabaseCondValue(pCxt); } break; - case 258: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy828 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy63); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 262: /* db_name_cond_opt ::= db_name NK_DOT */ +{ yylhsminor.yy188 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy725); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 260: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + case 264: /* like_pattern_opt ::= LIKE NK_STRING */ +{ yymsp[-1].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; - case 261: /* table_name_cond ::= table_name */ -{ yylhsminor.yy828 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy63); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 265: /* table_name_cond ::= table_name */ +{ yylhsminor.yy188 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy725); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 263: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy828 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy63); } + case 267: /* from_db_opt ::= FROM db_name */ +{ yymsp[-1].minor.yy188 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy725); } break; - case 267: /* tag_item ::= TBNAME */ -{ yylhsminor.yy828 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 271: /* tag_item ::= TBNAME */ +{ yylhsminor.yy188 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 270: /* tag_item ::= column_name column_alias */ -{ yylhsminor.yy828 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy63), &yymsp[0].minor.yy63); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 274: /* tag_item ::= column_name column_alias */ +{ yylhsminor.yy188 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy725), &yymsp[0].minor.yy725); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 271: /* tag_item ::= column_name AS column_alias */ -{ yylhsminor.yy828 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy63), &yymsp[0].minor.yy63); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 275: /* tag_item ::= column_name AS column_alias */ +{ yylhsminor.yy188 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy725), &yymsp[0].minor.yy725); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 272: /* cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy669, yymsp[-3].minor.yy828, yymsp[-1].minor.yy828, NULL, yymsp[0].minor.yy828); } + case 276: /* cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy437, yymsp[-3].minor.yy188, yymsp[-1].minor.yy188, NULL, yymsp[0].minor.yy188); } break; - case 273: /* cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy669, yymsp[-5].minor.yy828, yymsp[-3].minor.yy828, yymsp[-1].minor.yy222, NULL); } + case 277: /* cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy437, yymsp[-5].minor.yy188, yymsp[-3].minor.yy188, yymsp[-1].minor.yy172, NULL); } break; - case 274: /* cmd ::= DROP INDEX exists_opt full_index_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy669, yymsp[0].minor.yy828); } + case 278: /* cmd ::= DROP INDEX exists_opt full_index_name */ +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy437, yymsp[0].minor.yy188); } break; - case 275: /* full_index_name ::= index_name */ -{ yylhsminor.yy828 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy63); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 279: /* full_index_name ::= index_name */ +{ yylhsminor.yy188 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy725); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 276: /* full_index_name ::= db_name NK_DOT index_name */ -{ yylhsminor.yy828 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 280: /* full_index_name ::= db_name NK_DOT index_name */ +{ yylhsminor.yy188 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 277: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy828 = createIndexOption(pCxt, yymsp[-7].minor.yy222, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), NULL, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 281: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ +{ yymsp[-9].minor.yy188 = createIndexOption(pCxt, yymsp[-7].minor.yy172, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), NULL, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 278: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-11].minor.yy828 = createIndexOption(pCxt, yymsp[-9].minor.yy222, releaseRawExprNode(pCxt, yymsp[-5].minor.yy828), releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 282: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ +{ yymsp[-11].minor.yy188 = createIndexOption(pCxt, yymsp[-9].minor.yy172, releaseRawExprNode(pCxt, yymsp[-5].minor.yy188), releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 281: /* func ::= sma_func_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy828 = createFunctionNode(pCxt, &yymsp[-3].minor.yy63, yymsp[-1].minor.yy222); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 285: /* func ::= sma_func_name NK_LP expression_list NK_RP */ +{ yylhsminor.yy188 = createFunctionNode(pCxt, &yymsp[-3].minor.yy725, yymsp[-1].minor.yy172); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 287: /* sma_stream_opt ::= */ - case 323: /* stream_options ::= */ yytestcase(yyruleno==323); -{ yymsp[1].minor.yy828 = createStreamOptions(pCxt); } + case 291: /* sma_stream_opt ::= */ + case 327: /* stream_options ::= */ yytestcase(yyruleno==327); +{ yymsp[1].minor.yy188 = createStreamOptions(pCxt); } break; - case 288: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy828)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy828); yylhsminor.yy828 = yymsp[-2].minor.yy828; } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 292: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy188)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy188); yylhsminor.yy188 = yymsp[-2].minor.yy188; } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 289: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy828)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy828); yylhsminor.yy828 = yymsp[-2].minor.yy828; } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 293: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy188)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy188); yylhsminor.yy188 = yymsp[-2].minor.yy188; } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 290: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy828)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy828); yylhsminor.yy828 = yymsp[-2].minor.yy828; } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 294: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ +{ ((SStreamOptions*)yymsp[-2].minor.yy188)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy188); yylhsminor.yy188 = yymsp[-2].minor.yy188; } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 291: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy669, &yymsp[-2].minor.yy63, yymsp[0].minor.yy828); } + case 295: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy437, &yymsp[-2].minor.yy725, yymsp[0].minor.yy188); } break; - case 292: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy669, &yymsp[-3].minor.yy63, &yymsp[0].minor.yy63, false); } + case 296: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy437, &yymsp[-3].minor.yy725, &yymsp[0].minor.yy725, false); } break; - case 293: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy669, &yymsp[-5].minor.yy63, &yymsp[0].minor.yy63, true); } + case 297: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy437, &yymsp[-5].minor.yy725, &yymsp[0].minor.yy725, true); } break; - case 294: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy669, &yymsp[-3].minor.yy63, yymsp[0].minor.yy828, false); } + case 298: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy437, &yymsp[-3].minor.yy725, yymsp[0].minor.yy188, false); } break; - case 295: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy669, &yymsp[-5].minor.yy63, yymsp[0].minor.yy828, true); } + case 299: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy437, &yymsp[-5].minor.yy725, yymsp[0].minor.yy188, true); } break; - case 296: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy669, &yymsp[0].minor.yy63); } + case 300: /* cmd ::= DROP TOPIC exists_opt topic_name */ +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy437, &yymsp[0].minor.yy725); } break; - case 297: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy669, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63); } + case 301: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy437, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725); } break; - case 298: /* cmd ::= DESC full_table_name */ - case 299: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==299); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy828); } + case 302: /* cmd ::= DESC full_table_name */ + case 303: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==303); +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy188); } break; - case 300: /* cmd ::= RESET QUERY CACHE */ + case 304: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; - case 301: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - case 302: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==302); -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy669, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 305: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + case 306: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==306); +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy437, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 305: /* explain_options ::= */ -{ yymsp[1].minor.yy828 = createDefaultExplainOptions(pCxt); } + case 309: /* explain_options ::= */ +{ yymsp[1].minor.yy188 = createDefaultExplainOptions(pCxt); } break; - case 306: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy828 = setExplainVerbose(pCxt, yymsp[-2].minor.yy828, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 310: /* explain_options ::= explain_options VERBOSE NK_BOOL */ +{ yylhsminor.yy188 = setExplainVerbose(pCxt, yymsp[-2].minor.yy188, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 307: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy828 = setExplainRatio(pCxt, yymsp[-2].minor.yy828, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 311: /* explain_options ::= explain_options RATIO NK_FLOAT */ +{ yylhsminor.yy188 = setExplainRatio(pCxt, yymsp[-2].minor.yy188, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 308: /* cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ -{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy669, yymsp[-9].minor.yy669, &yymsp[-6].minor.yy63, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy686, yymsp[-1].minor.yy332, &yymsp[0].minor.yy63); } + case 312: /* cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ +{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy437, yymsp[-9].minor.yy437, &yymsp[-6].minor.yy725, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy160, yymsp[-1].minor.yy136, &yymsp[0].minor.yy725); } break; - case 309: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy669, &yymsp[0].minor.yy63); } + case 313: /* cmd ::= DROP FUNCTION exists_opt function_name */ +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy437, &yymsp[0].minor.yy725); } break; - case 314: /* language_opt ::= */ -{ yymsp[1].minor.yy63 = nil_token; } + case 318: /* language_opt ::= */ +{ yymsp[1].minor.yy725 = nil_token; } break; - case 315: /* language_opt ::= LANGUAGE NK_STRING */ -{ yymsp[-1].minor.yy63 = yymsp[0].minor.yy0; } + case 319: /* language_opt ::= LANGUAGE NK_STRING */ +{ yymsp[-1].minor.yy725 = yymsp[0].minor.yy0; } break; - case 316: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy669, &yymsp[-8].minor.yy63, yymsp[-5].minor.yy828, yymsp[-7].minor.yy828, yymsp[-3].minor.yy222, yymsp[-2].minor.yy828, yymsp[0].minor.yy828, yymsp[-4].minor.yy222); } + case 320: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy437, &yymsp[-8].minor.yy725, yymsp[-5].minor.yy188, yymsp[-7].minor.yy188, yymsp[-3].minor.yy172, yymsp[-2].minor.yy188, yymsp[0].minor.yy188, yymsp[-4].minor.yy172); } break; - case 317: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy669, &yymsp[0].minor.yy63); } + case 321: /* cmd ::= DROP STREAM exists_opt stream_name */ +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy437, &yymsp[0].minor.yy725); } break; - case 324: /* stream_options ::= stream_options TRIGGER AT_ONCE */ - case 325: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==325); -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-2].minor.yy828, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 328: /* stream_options ::= stream_options TRIGGER AT_ONCE */ + case 329: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==329); +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-2].minor.yy188, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 326: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-3].minor.yy828, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 330: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-3].minor.yy188, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 327: /* stream_options ::= stream_options WATERMARK duration_literal */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-2].minor.yy828, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 331: /* stream_options ::= stream_options WATERMARK duration_literal */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-2].minor.yy188, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 328: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-3].minor.yy828, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 332: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-3].minor.yy188, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 329: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-2].minor.yy828, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 333: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-2].minor.yy188, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 330: /* stream_options ::= stream_options DELETE_MARK duration_literal */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-2].minor.yy828, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 334: /* stream_options ::= stream_options DELETE_MARK duration_literal */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-2].minor.yy188, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 331: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ -{ yylhsminor.yy828 = setStreamOptions(pCxt, yymsp[-3].minor.yy828, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 335: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ +{ yylhsminor.yy188 = setStreamOptions(pCxt, yymsp[-3].minor.yy188, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 333: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 522: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==522); - case 542: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==542); -{ yymsp[-3].minor.yy828 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy828); } + case 337: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + case 527: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==527); + case 547: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==547); +{ yymsp[-3].minor.yy188 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy188); } break; - case 334: /* cmd ::= KILL CONNECTION NK_INTEGER */ + case 338: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } break; - case 335: /* cmd ::= KILL QUERY NK_STRING */ + case 339: /* cmd ::= KILL QUERY NK_STRING */ { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 336: /* cmd ::= KILL TRANSACTION NK_INTEGER */ + case 340: /* cmd ::= KILL TRANSACTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } break; - case 337: /* cmd ::= BALANCE VGROUP */ + case 341: /* cmd ::= BALANCE VGROUP */ { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; - case 338: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + case 342: /* cmd ::= BALANCE VGROUP LEADER */ +{ pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt); } + break; + case 343: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 339: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy222); } + case 344: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy172); } break; - case 340: /* cmd ::= SPLIT VGROUP NK_INTEGER */ + case 345: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 341: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy222 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + case 346: /* dnode_list ::= DNODE NK_INTEGER */ +{ yymsp[-1].minor.yy172 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; - case 343: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 348: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 346: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -{ yymsp[-6].minor.yy828 = createInsertStmt(pCxt, yymsp[-4].minor.yy828, yymsp[-2].minor.yy222, yymsp[0].minor.yy828); } + case 351: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ +{ yymsp[-6].minor.yy188 = createInsertStmt(pCxt, yymsp[-4].minor.yy188, yymsp[-2].minor.yy172, yymsp[0].minor.yy188); } break; - case 347: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ -{ yymsp[-3].minor.yy828 = createInsertStmt(pCxt, yymsp[-1].minor.yy828, NULL, yymsp[0].minor.yy828); } + case 352: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ +{ yymsp[-3].minor.yy188 = createInsertStmt(pCxt, yymsp[-1].minor.yy188, NULL, yymsp[0].minor.yy188); } break; - case 348: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 353: /* literal ::= NK_INTEGER */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 349: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 354: /* literal ::= NK_FLOAT */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 350: /* literal ::= NK_STRING */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 355: /* literal ::= NK_STRING */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 351: /* literal ::= NK_BOOL */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 356: /* literal ::= NK_BOOL */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 352: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 357: /* literal ::= TIMESTAMP NK_STRING */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 353: /* literal ::= duration_literal */ - case 363: /* signed_literal ::= signed */ yytestcase(yyruleno==363); - case 384: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==384); - case 385: /* expression ::= literal */ yytestcase(yyruleno==385); - case 386: /* expression ::= pseudo_column */ yytestcase(yyruleno==386); - case 387: /* expression ::= column_reference */ yytestcase(yyruleno==387); - case 388: /* expression ::= function_expression */ yytestcase(yyruleno==388); - case 389: /* expression ::= case_when_expression */ yytestcase(yyruleno==389); - case 420: /* function_expression ::= literal_func */ yytestcase(yyruleno==420); - case 469: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==469); - case 473: /* boolean_primary ::= predicate */ yytestcase(yyruleno==473); - case 475: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==475); - case 476: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==476); - case 479: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==479); - case 481: /* table_reference ::= table_primary */ yytestcase(yyruleno==481); - case 482: /* table_reference ::= joined_table */ yytestcase(yyruleno==482); - case 486: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==486); - case 544: /* query_simple ::= query_specification */ yytestcase(yyruleno==544); - case 545: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==545); - case 548: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==548); - case 550: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==550); -{ yylhsminor.yy828 = yymsp[0].minor.yy828; } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 358: /* literal ::= duration_literal */ + case 368: /* signed_literal ::= signed */ yytestcase(yyruleno==368); + case 389: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==389); + case 390: /* expression ::= literal */ yytestcase(yyruleno==390); + case 391: /* expression ::= pseudo_column */ yytestcase(yyruleno==391); + case 392: /* expression ::= column_reference */ yytestcase(yyruleno==392); + case 393: /* expression ::= function_expression */ yytestcase(yyruleno==393); + case 394: /* expression ::= case_when_expression */ yytestcase(yyruleno==394); + case 425: /* function_expression ::= literal_func */ yytestcase(yyruleno==425); + case 474: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==474); + case 478: /* boolean_primary ::= predicate */ yytestcase(yyruleno==478); + case 480: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==480); + case 481: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==481); + case 484: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==484); + case 486: /* table_reference ::= table_primary */ yytestcase(yyruleno==486); + case 487: /* table_reference ::= joined_table */ yytestcase(yyruleno==487); + case 491: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==491); + case 549: /* query_simple ::= query_specification */ yytestcase(yyruleno==549); + case 550: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==550); + case 553: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==553); + case 555: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==555); +{ yylhsminor.yy188 = yymsp[0].minor.yy188; } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 354: /* literal ::= NULL */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 359: /* literal ::= NULL */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 355: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 360: /* literal ::= NK_QUESTION */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 356: /* duration_literal ::= NK_VARIABLE */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 361: /* duration_literal ::= NK_VARIABLE */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 357: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 362: /* signed ::= NK_INTEGER */ +{ yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 358: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + case 363: /* signed ::= NK_PLUS NK_INTEGER */ +{ yymsp[-1].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } break; - case 359: /* signed ::= NK_MINUS NK_INTEGER */ + case 364: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 360: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 365: /* signed ::= NK_FLOAT */ +{ yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 361: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + case 366: /* signed ::= NK_PLUS NK_FLOAT */ +{ yymsp[-1].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; - case 362: /* signed ::= NK_MINUS NK_FLOAT */ + case 367: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 364: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 369: /* signed_literal ::= NK_STRING */ +{ yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 365: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 370: /* signed_literal ::= NK_BOOL */ +{ yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 366: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } + case 371: /* signed_literal ::= TIMESTAMP NK_STRING */ +{ yymsp[-1].minor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; - case 367: /* signed_literal ::= duration_literal */ - case 369: /* signed_literal ::= literal_func */ yytestcase(yyruleno==369); - case 440: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==440); - case 502: /* select_item ::= common_expression */ yytestcase(yyruleno==502); - case 512: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==512); - case 549: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==549); - case 551: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==551); - case 564: /* search_condition ::= common_expression */ yytestcase(yyruleno==564); -{ yylhsminor.yy828 = releaseRawExprNode(pCxt, yymsp[0].minor.yy828); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 372: /* signed_literal ::= duration_literal */ + case 374: /* signed_literal ::= literal_func */ yytestcase(yyruleno==374); + case 445: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==445); + case 507: /* select_item ::= common_expression */ yytestcase(yyruleno==507); + case 517: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==517); + case 554: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==554); + case 556: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==556); + case 569: /* search_condition ::= common_expression */ yytestcase(yyruleno==569); +{ yylhsminor.yy188 = releaseRawExprNode(pCxt, yymsp[0].minor.yy188); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 368: /* signed_literal ::= NULL */ -{ yylhsminor.yy828 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 373: /* signed_literal ::= NULL */ +{ yylhsminor.yy188 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 370: /* signed_literal ::= NK_QUESTION */ -{ yylhsminor.yy828 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 375: /* signed_literal ::= NK_QUESTION */ +{ yylhsminor.yy188 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 390: /* expression ::= NK_LP expression NK_RP */ - case 474: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==474); - case 563: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==563); -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy828)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 395: /* expression ::= NK_LP expression NK_RP */ + case 479: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==479); + case 568: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==568); +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy188)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 391: /* expression ::= NK_PLUS expr_or_subquery */ + case 396: /* expression ::= NK_PLUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 392: /* expression ::= NK_MINUS expr_or_subquery */ + case 397: /* expression ::= NK_MINUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy828), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy188), NULL)); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 393: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + case 398: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 394: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + case 399: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 395: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + case 400: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 396: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + case 401: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 397: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ + case 402: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 398: /* expression ::= column_reference NK_ARROW NK_STRING */ + case 403: /* expression ::= column_reference NK_ARROW NK_STRING */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 399: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + case 404: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 400: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + case 405: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 403: /* column_reference ::= column_name */ -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy63, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy63)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 408: /* column_reference ::= column_name */ +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy725, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy725)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 404: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63, createColumnNode(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy63)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 409: /* column_reference ::= table_name NK_DOT column_name */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725, createColumnNode(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy725)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 405: /* pseudo_column ::= ROWTS */ - case 406: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==406); - case 408: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==408); - case 409: /* pseudo_column ::= QEND */ yytestcase(yyruleno==409); - case 410: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==410); - case 411: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==411); - case 412: /* pseudo_column ::= WEND */ yytestcase(yyruleno==412); - case 413: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==413); - case 414: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==414); - case 415: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==415); - case 416: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==416); - case 422: /* literal_func ::= NOW */ yytestcase(yyruleno==422); -{ yylhsminor.yy828 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 410: /* pseudo_column ::= ROWTS */ + case 411: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==411); + case 413: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==413); + case 414: /* pseudo_column ::= QEND */ yytestcase(yyruleno==414); + case 415: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==415); + case 416: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==416); + case 417: /* pseudo_column ::= WEND */ yytestcase(yyruleno==417); + case 418: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==418); + case 419: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==419); + case 420: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==420); + case 421: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==421); + case 427: /* literal_func ::= NOW */ yytestcase(yyruleno==427); +{ yylhsminor.yy188 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 407: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy63)))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 412: /* pseudo_column ::= table_name NK_DOT TBNAME */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy725)))); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 417: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 418: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==418); -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy63, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy63, yymsp[-1].minor.yy222)); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 422: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 423: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==423); +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy725, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy725, yymsp[-1].minor.yy172)); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 419: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), yymsp[-1].minor.yy686)); } - yymsp[-5].minor.yy828 = yylhsminor.yy828; + case 424: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), yymsp[-1].minor.yy160)); } + yymsp[-5].minor.yy188 = yylhsminor.yy188; break; - case 421: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy63, NULL)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 426: /* literal_func ::= noarg_func NK_LP NK_RP */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy725, NULL)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 436: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy222 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy222 = yylhsminor.yy222; + case 441: /* star_func_para_list ::= NK_STAR */ +{ yylhsminor.yy172 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy172 = yylhsminor.yy172; break; - case 441: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 505: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==505); -{ yylhsminor.yy828 = createColumnNode(pCxt, &yymsp[-2].minor.yy63, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 446: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 510: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==510); +{ yylhsminor.yy188 = createColumnNode(pCxt, &yymsp[-2].minor.yy725, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 442: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy222, yymsp[-1].minor.yy828)); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 447: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy172, yymsp[-1].minor.yy188)); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 443: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), yymsp[-2].minor.yy222, yymsp[-1].minor.yy828)); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; + case 448: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), yymsp[-2].minor.yy172, yymsp[-1].minor.yy188)); } + yymsp[-4].minor.yy188 = yylhsminor.yy188; break; - case 446: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -{ yymsp[-3].minor.yy828 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828)); } + case 451: /* when_then_expr ::= WHEN common_expression THEN common_expression */ +{ yymsp[-3].minor.yy188 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188)); } break; - case 448: /* case_when_else_opt ::= ELSE common_expression */ -{ yymsp[-1].minor.yy828 = releaseRawExprNode(pCxt, yymsp[0].minor.yy828); } + case 453: /* case_when_else_opt ::= ELSE common_expression */ +{ yymsp[-1].minor.yy188 = releaseRawExprNode(pCxt, yymsp[0].minor.yy188); } break; - case 449: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 454: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==454); + case 454: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 459: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==459); { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy62, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy716, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 450: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + case 455: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy828), releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy188), releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-4].minor.yy828 = yylhsminor.yy828; + yymsp[-4].minor.yy188 = yylhsminor.yy188; break; - case 451: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + case 456: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy828), releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy188), releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-5].minor.yy828 = yylhsminor.yy828; + yymsp[-5].minor.yy188 = yylhsminor.yy188; break; - case 452: /* predicate ::= expr_or_subquery IS NULL */ + case 457: /* predicate ::= expr_or_subquery IS NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), NULL)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 453: /* predicate ::= expr_or_subquery IS NOT NULL */ + case 458: /* predicate ::= expr_or_subquery IS NOT NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), NULL)); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 455: /* compare_op ::= NK_LT */ -{ yymsp[0].minor.yy62 = OP_TYPE_LOWER_THAN; } + case 460: /* compare_op ::= NK_LT */ +{ yymsp[0].minor.yy716 = OP_TYPE_LOWER_THAN; } break; - case 456: /* compare_op ::= NK_GT */ -{ yymsp[0].minor.yy62 = OP_TYPE_GREATER_THAN; } + case 461: /* compare_op ::= NK_GT */ +{ yymsp[0].minor.yy716 = OP_TYPE_GREATER_THAN; } break; - case 457: /* compare_op ::= NK_LE */ -{ yymsp[0].minor.yy62 = OP_TYPE_LOWER_EQUAL; } + case 462: /* compare_op ::= NK_LE */ +{ yymsp[0].minor.yy716 = OP_TYPE_LOWER_EQUAL; } break; - case 458: /* compare_op ::= NK_GE */ -{ yymsp[0].minor.yy62 = OP_TYPE_GREATER_EQUAL; } + case 463: /* compare_op ::= NK_GE */ +{ yymsp[0].minor.yy716 = OP_TYPE_GREATER_EQUAL; } break; - case 459: /* compare_op ::= NK_NE */ -{ yymsp[0].minor.yy62 = OP_TYPE_NOT_EQUAL; } + case 464: /* compare_op ::= NK_NE */ +{ yymsp[0].minor.yy716 = OP_TYPE_NOT_EQUAL; } break; - case 460: /* compare_op ::= NK_EQ */ -{ yymsp[0].minor.yy62 = OP_TYPE_EQUAL; } + case 465: /* compare_op ::= NK_EQ */ +{ yymsp[0].minor.yy716 = OP_TYPE_EQUAL; } break; - case 461: /* compare_op ::= LIKE */ -{ yymsp[0].minor.yy62 = OP_TYPE_LIKE; } + case 466: /* compare_op ::= LIKE */ +{ yymsp[0].minor.yy716 = OP_TYPE_LIKE; } break; - case 462: /* compare_op ::= NOT LIKE */ -{ yymsp[-1].minor.yy62 = OP_TYPE_NOT_LIKE; } + case 467: /* compare_op ::= NOT LIKE */ +{ yymsp[-1].minor.yy716 = OP_TYPE_NOT_LIKE; } break; - case 463: /* compare_op ::= MATCH */ -{ yymsp[0].minor.yy62 = OP_TYPE_MATCH; } + case 468: /* compare_op ::= MATCH */ +{ yymsp[0].minor.yy716 = OP_TYPE_MATCH; } break; - case 464: /* compare_op ::= NMATCH */ -{ yymsp[0].minor.yy62 = OP_TYPE_NMATCH; } + case 469: /* compare_op ::= NMATCH */ +{ yymsp[0].minor.yy716 = OP_TYPE_NMATCH; } break; - case 465: /* compare_op ::= CONTAINS */ -{ yymsp[0].minor.yy62 = OP_TYPE_JSON_CONTAINS; } + case 470: /* compare_op ::= CONTAINS */ +{ yymsp[0].minor.yy716 = OP_TYPE_JSON_CONTAINS; } break; - case 466: /* in_op ::= IN */ -{ yymsp[0].minor.yy62 = OP_TYPE_IN; } + case 471: /* in_op ::= IN */ +{ yymsp[0].minor.yy716 = OP_TYPE_IN; } break; - case 467: /* in_op ::= NOT IN */ -{ yymsp[-1].minor.yy62 = OP_TYPE_NOT_IN; } + case 472: /* in_op ::= NOT IN */ +{ yymsp[-1].minor.yy716 = OP_TYPE_NOT_IN; } break; - case 468: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy222)); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 473: /* in_predicate_value ::= NK_LP literal_list NK_RP */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy172)); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 470: /* boolean_value_expression ::= NOT boolean_primary */ + case 475: /* boolean_value_expression ::= NOT boolean_primary */ { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy828), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy188), NULL)); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 471: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + case 476: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 472: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + case 477: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy828); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy828); - yylhsminor.yy828 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy188); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy188); + yylhsminor.yy188 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 478: /* from_clause_opt ::= FROM table_reference_list */ - case 507: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==507); - case 538: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==538); -{ yymsp[-1].minor.yy828 = yymsp[0].minor.yy828; } + case 483: /* from_clause_opt ::= FROM table_reference_list */ + case 512: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==512); + case 543: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==543); +{ yymsp[-1].minor.yy188 = yymsp[0].minor.yy188; } break; - case 480: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy828 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy828, yymsp[0].minor.yy828, NULL); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 485: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ +{ yylhsminor.yy188 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy188, yymsp[0].minor.yy188, NULL); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 483: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy828 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy63, &yymsp[0].minor.yy63); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 488: /* table_primary ::= table_name alias_opt */ +{ yylhsminor.yy188 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy725, &yymsp[0].minor.yy725); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 484: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy828 = createRealTableNode(pCxt, &yymsp[-3].minor.yy63, &yymsp[-1].minor.yy63, &yymsp[0].minor.yy63); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 489: /* table_primary ::= db_name NK_DOT table_name alias_opt */ +{ yylhsminor.yy188 = createRealTableNode(pCxt, &yymsp[-3].minor.yy725, &yymsp[-1].minor.yy725, &yymsp[0].minor.yy725); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 485: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy828 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy828), &yymsp[0].minor.yy63); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 490: /* table_primary ::= subquery alias_opt */ +{ yylhsminor.yy188 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy188), &yymsp[0].minor.yy725); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 487: /* alias_opt ::= */ -{ yymsp[1].minor.yy63 = nil_token; } + case 492: /* alias_opt ::= */ +{ yymsp[1].minor.yy725 = nil_token; } break; - case 489: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy63 = yymsp[0].minor.yy63; } + case 494: /* alias_opt ::= AS table_alias */ +{ yymsp[-1].minor.yy725 = yymsp[0].minor.yy725; } break; - case 490: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 491: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==491); -{ yymsp[-2].minor.yy828 = yymsp[-1].minor.yy828; } + case 495: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 496: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==496); +{ yymsp[-2].minor.yy188 = yymsp[-1].minor.yy188; } break; - case 492: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -{ yylhsminor.yy828 = createJoinTableNode(pCxt, yymsp[-4].minor.yy574, yymsp[-5].minor.yy828, yymsp[-2].minor.yy828, yymsp[0].minor.yy828); } - yymsp[-5].minor.yy828 = yylhsminor.yy828; + case 497: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ +{ yylhsminor.yy188 = createJoinTableNode(pCxt, yymsp[-4].minor.yy240, yymsp[-5].minor.yy188, yymsp[-2].minor.yy188, yymsp[0].minor.yy188); } + yymsp[-5].minor.yy188 = yylhsminor.yy188; break; - case 493: /* join_type ::= */ -{ yymsp[1].minor.yy574 = JOIN_TYPE_INNER; } + case 498: /* join_type ::= */ +{ yymsp[1].minor.yy240 = JOIN_TYPE_INNER; } break; - case 494: /* join_type ::= INNER */ -{ yymsp[0].minor.yy574 = JOIN_TYPE_INNER; } + case 499: /* join_type ::= INNER */ +{ yymsp[0].minor.yy240 = JOIN_TYPE_INNER; } break; - case 495: /* query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + case 500: /* query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ { - yymsp[-11].minor.yy828 = createSelectStmt(pCxt, yymsp[-10].minor.yy669, yymsp[-9].minor.yy222, yymsp[-8].minor.yy828); - yymsp[-11].minor.yy828 = addWhereClause(pCxt, yymsp[-11].minor.yy828, yymsp[-7].minor.yy828); - yymsp[-11].minor.yy828 = addPartitionByClause(pCxt, yymsp[-11].minor.yy828, yymsp[-6].minor.yy222); - yymsp[-11].minor.yy828 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy828, yymsp[-2].minor.yy828); - yymsp[-11].minor.yy828 = addGroupByClause(pCxt, yymsp[-11].minor.yy828, yymsp[-1].minor.yy222); - yymsp[-11].minor.yy828 = addHavingClause(pCxt, yymsp[-11].minor.yy828, yymsp[0].minor.yy828); - yymsp[-11].minor.yy828 = addRangeClause(pCxt, yymsp[-11].minor.yy828, yymsp[-5].minor.yy828); - yymsp[-11].minor.yy828 = addEveryClause(pCxt, yymsp[-11].minor.yy828, yymsp[-4].minor.yy828); - yymsp[-11].minor.yy828 = addFillClause(pCxt, yymsp[-11].minor.yy828, yymsp[-3].minor.yy828); + yymsp[-11].minor.yy188 = createSelectStmt(pCxt, yymsp[-10].minor.yy437, yymsp[-9].minor.yy172, yymsp[-8].minor.yy188); + yymsp[-11].minor.yy188 = addWhereClause(pCxt, yymsp[-11].minor.yy188, yymsp[-7].minor.yy188); + yymsp[-11].minor.yy188 = addPartitionByClause(pCxt, yymsp[-11].minor.yy188, yymsp[-6].minor.yy172); + yymsp[-11].minor.yy188 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy188, yymsp[-2].minor.yy188); + yymsp[-11].minor.yy188 = addGroupByClause(pCxt, yymsp[-11].minor.yy188, yymsp[-1].minor.yy172); + yymsp[-11].minor.yy188 = addHavingClause(pCxt, yymsp[-11].minor.yy188, yymsp[0].minor.yy188); + yymsp[-11].minor.yy188 = addRangeClause(pCxt, yymsp[-11].minor.yy188, yymsp[-5].minor.yy188); + yymsp[-11].minor.yy188 = addEveryClause(pCxt, yymsp[-11].minor.yy188, yymsp[-4].minor.yy188); + yymsp[-11].minor.yy188 = addFillClause(pCxt, yymsp[-11].minor.yy188, yymsp[-3].minor.yy188); } break; - case 498: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy669 = false; } + case 503: /* set_quantifier_opt ::= ALL */ +{ yymsp[0].minor.yy437 = false; } break; - case 501: /* select_item ::= NK_STAR */ -{ yylhsminor.yy828 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy828 = yylhsminor.yy828; + case 506: /* select_item ::= NK_STAR */ +{ yylhsminor.yy188 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy188 = yylhsminor.yy188; break; - case 503: /* select_item ::= common_expression column_alias */ - case 513: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==513); -{ yylhsminor.yy828 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy828), &yymsp[0].minor.yy63); } - yymsp[-1].minor.yy828 = yylhsminor.yy828; + case 508: /* select_item ::= common_expression column_alias */ + case 518: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==518); +{ yylhsminor.yy188 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy188), &yymsp[0].minor.yy725); } + yymsp[-1].minor.yy188 = yylhsminor.yy188; break; - case 504: /* select_item ::= common_expression AS column_alias */ - case 514: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==514); -{ yylhsminor.yy828 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), &yymsp[0].minor.yy63); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 509: /* select_item ::= common_expression AS column_alias */ + case 519: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==519); +{ yylhsminor.yy188 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), &yymsp[0].minor.yy725); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 509: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 534: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==534); - case 553: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==553); -{ yymsp[-2].minor.yy222 = yymsp[0].minor.yy222; } + case 514: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 539: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==539); + case 558: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==558); +{ yymsp[-2].minor.yy172 = yymsp[0].minor.yy172; } break; - case 516: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ -{ yymsp[-5].minor.yy828 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), releaseRawExprNode(pCxt, yymsp[-1].minor.yy828)); } + case 521: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ +{ yymsp[-5].minor.yy188 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), releaseRawExprNode(pCxt, yymsp[-1].minor.yy188)); } break; - case 517: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy828 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy828)); } + case 522: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +{ yymsp[-3].minor.yy188 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy188)); } break; - case 518: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy828 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), NULL, yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 523: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-5].minor.yy188 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), NULL, yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 519: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy828 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy828), releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), yymsp[-1].minor.yy828, yymsp[0].minor.yy828); } + case 524: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ +{ yymsp[-7].minor.yy188 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy188), releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), yymsp[-1].minor.yy188, yymsp[0].minor.yy188); } break; - case 520: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -{ yymsp[-6].minor.yy828 = createEventWindowNode(pCxt, yymsp[-3].minor.yy828, yymsp[0].minor.yy828); } + case 525: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +{ yymsp[-6].minor.yy188 = createEventWindowNode(pCxt, yymsp[-3].minor.yy188, yymsp[0].minor.yy188); } break; - case 524: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy828 = createFillNode(pCxt, yymsp[-1].minor.yy822, NULL); } + case 529: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +{ yymsp[-3].minor.yy188 = createFillNode(pCxt, yymsp[-1].minor.yy654, NULL); } break; - case 525: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ -{ yymsp[-5].minor.yy828 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy222)); } + case 530: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ +{ yymsp[-5].minor.yy188 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy172)); } break; - case 526: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ -{ yymsp[-5].minor.yy828 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy222)); } + case 531: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ +{ yymsp[-5].minor.yy188 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy172)); } break; - case 527: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy822 = FILL_MODE_NONE; } + case 532: /* fill_mode ::= NONE */ +{ yymsp[0].minor.yy654 = FILL_MODE_NONE; } break; - case 528: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy822 = FILL_MODE_PREV; } + case 533: /* fill_mode ::= PREV */ +{ yymsp[0].minor.yy654 = FILL_MODE_PREV; } break; - case 529: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy822 = FILL_MODE_NULL; } + case 534: /* fill_mode ::= NULL */ +{ yymsp[0].minor.yy654 = FILL_MODE_NULL; } break; - case 530: /* fill_mode ::= NULL_F */ -{ yymsp[0].minor.yy822 = FILL_MODE_NULL_F; } + case 535: /* fill_mode ::= NULL_F */ +{ yymsp[0].minor.yy654 = FILL_MODE_NULL_F; } break; - case 531: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy822 = FILL_MODE_LINEAR; } + case 536: /* fill_mode ::= LINEAR */ +{ yymsp[0].minor.yy654 = FILL_MODE_LINEAR; } break; - case 532: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy822 = FILL_MODE_NEXT; } + case 537: /* fill_mode ::= NEXT */ +{ yymsp[0].minor.yy654 = FILL_MODE_NEXT; } break; - case 535: /* group_by_list ::= expr_or_subquery */ -{ yylhsminor.yy222 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); } - yymsp[0].minor.yy222 = yylhsminor.yy222; + case 540: /* group_by_list ::= expr_or_subquery */ +{ yylhsminor.yy172 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } + yymsp[0].minor.yy172 = yylhsminor.yy172; break; - case 536: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -{ yylhsminor.yy222 = addNodeToList(pCxt, yymsp[-2].minor.yy222, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy828))); } - yymsp[-2].minor.yy222 = yylhsminor.yy222; + case 541: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +{ yylhsminor.yy172 = addNodeToList(pCxt, yymsp[-2].minor.yy172, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy188))); } + yymsp[-2].minor.yy172 = yylhsminor.yy172; break; - case 540: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -{ yymsp[-5].minor.yy828 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy828), releaseRawExprNode(pCxt, yymsp[-1].minor.yy828)); } + case 545: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +{ yymsp[-5].minor.yy188 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy188), releaseRawExprNode(pCxt, yymsp[-1].minor.yy188)); } break; - case 543: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 548: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { - yylhsminor.yy828 = addOrderByClause(pCxt, yymsp[-3].minor.yy828, yymsp[-2].minor.yy222); - yylhsminor.yy828 = addSlimitClause(pCxt, yylhsminor.yy828, yymsp[-1].minor.yy828); - yylhsminor.yy828 = addLimitClause(pCxt, yylhsminor.yy828, yymsp[0].minor.yy828); + yylhsminor.yy188 = addOrderByClause(pCxt, yymsp[-3].minor.yy188, yymsp[-2].minor.yy172); + yylhsminor.yy188 = addSlimitClause(pCxt, yylhsminor.yy188, yymsp[-1].minor.yy188); + yylhsminor.yy188 = addLimitClause(pCxt, yylhsminor.yy188, yymsp[0].minor.yy188); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 546: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -{ yylhsminor.yy828 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy828, yymsp[0].minor.yy828); } - yymsp[-3].minor.yy828 = yylhsminor.yy828; + case 551: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +{ yylhsminor.yy188 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy188, yymsp[0].minor.yy188); } + yymsp[-3].minor.yy188 = yylhsminor.yy188; break; - case 547: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -{ yylhsminor.yy828 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy828, yymsp[0].minor.yy828); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 552: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +{ yylhsminor.yy188 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy188, yymsp[0].minor.yy188); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 555: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 559: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==559); -{ yymsp[-1].minor.yy828 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } + case 560: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 564: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==564); +{ yymsp[-1].minor.yy188 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 556: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 560: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==560); -{ yymsp[-3].minor.yy828 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } + case 561: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 565: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==565); +{ yymsp[-3].minor.yy188 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 557: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 561: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==561); -{ yymsp[-3].minor.yy828 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } + case 562: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 566: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==566); +{ yymsp[-3].minor.yy188 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 562: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy828 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy828); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 567: /* subquery ::= NK_LP query_expression NK_RP */ +{ yylhsminor.yy188 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy188); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 567: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy828 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy828), yymsp[-1].minor.yy158, yymsp[0].minor.yy675); } - yymsp[-2].minor.yy828 = yylhsminor.yy828; + case 572: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +{ yylhsminor.yy188 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy188), yymsp[-1].minor.yy206, yymsp[0].minor.yy913); } + yymsp[-2].minor.yy188 = yylhsminor.yy188; break; - case 568: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy158 = ORDER_ASC; } + case 573: /* ordering_specification_opt ::= */ +{ yymsp[1].minor.yy206 = ORDER_ASC; } break; - case 569: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy158 = ORDER_ASC; } + case 574: /* ordering_specification_opt ::= ASC */ +{ yymsp[0].minor.yy206 = ORDER_ASC; } break; - case 570: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy158 = ORDER_DESC; } + case 575: /* ordering_specification_opt ::= DESC */ +{ yymsp[0].minor.yy206 = ORDER_DESC; } break; - case 571: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy675 = NULL_ORDER_DEFAULT; } + case 576: /* null_ordering_opt ::= */ +{ yymsp[1].minor.yy913 = NULL_ORDER_DEFAULT; } break; - case 572: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy675 = NULL_ORDER_FIRST; } + case 577: /* null_ordering_opt ::= NULLS FIRST */ +{ yymsp[-1].minor.yy913 = NULL_ORDER_FIRST; } break; - case 573: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy675 = NULL_ORDER_LAST; } + case 578: /* null_ordering_opt ::= NULLS LAST */ +{ yymsp[-1].minor.yy913 = NULL_ORDER_LAST; } break; default: break; diff --git a/source/libs/parser/test/parAlterToBalanceTest.cpp b/source/libs/parser/test/parAlterToBalanceTest.cpp index 4cccfd449c..db74e66d2b 100644 --- a/source/libs/parser/test/parAlterToBalanceTest.cpp +++ b/source/libs/parser/test/parAlterToBalanceTest.cpp @@ -109,7 +109,8 @@ TEST_F(ParserInitialATest, alterDnode) { * | WAL_LEVEL int_value -- enum 1, 2, default 1 * | STT_TRIGGER int_value -- rang [1, 16], default 8 * | MINROWS int_value -- rang [10, 1000], default 100 - * } + * | WAL_RETENTION_PERIOD int_value -- rang [-1, INT32_MAX], default 0 + * | WAL_RETENTION_SIZE int_value -- rang [-1, INT32_MAX], default 0 */ TEST_F(ParserInitialATest, alterDatabase) { useDb("root", "test"); @@ -135,6 +136,8 @@ TEST_F(ParserInitialATest, alterDatabase) { expect.replications = -1; expect.sstTrigger = -1; expect.minRows = -1; + expect.walRetentionPeriod = -2; + expect.walRetentionSize = -2; }; auto setAlterDbBuffer = [&](int32_t buffer) { expect.buffer = buffer; }; auto setAlterDbPageSize = [&](int32_t pageSize) { expect.pageSize = pageSize; }; @@ -153,6 +156,10 @@ TEST_F(ParserInitialATest, alterDatabase) { auto setAlterDbReplica = [&](int8_t replications) { expect.replications = replications; }; auto setAlterDbSttTrigger = [&](int8_t sstTrigger) { expect.sstTrigger = sstTrigger; }; auto setAlterDbMinRows = [&](int32_t minRows) { expect.minRows = minRows; }; + auto setAlterDbWalRetentionPeriod = [&](int32_t walRetentionPeriod) { + expect.walRetentionPeriod = walRetentionPeriod; + }; + auto setAlterDbWalRetentionSize = [&](int32_t walRetentionSize) { expect.walRetentionSize = walRetentionSize; }; setCheckDdlFunc([&](const SQuery* pQuery, ParserStage stage) { ASSERT_EQ(nodeType(pQuery->pRoot), QUERY_NODE_ALTER_DATABASE_STMT); @@ -174,6 +181,8 @@ TEST_F(ParserInitialATest, alterDatabase) { ASSERT_EQ(req.replications, expect.replications); ASSERT_EQ(req.sstTrigger, expect.sstTrigger); ASSERT_EQ(req.minRows, expect.minRows); + ASSERT_EQ(req.walRetentionPeriod, expect.walRetentionPeriod); + ASSERT_EQ(req.walRetentionSize, expect.walRetentionSize); }); const int32_t MINUTE_PER_DAY = MILLISECOND_PER_DAY / MILLISECOND_PER_MINUTE; @@ -189,8 +198,10 @@ TEST_F(ParserInitialATest, alterDatabase) { setAlterDbBuffer(16); setAlterDbPages(128); setAlterDbReplica(3); + setAlterDbWalRetentionPeriod(10); + setAlterDbWalRetentionSize(20); run("ALTER DATABASE test BUFFER 16 CACHEMODEL 'last_row' CACHESIZE 32 WAL_FSYNC_PERIOD 200 KEEP 10 PAGES 128 " - "REPLICA 3 WAL_LEVEL 1 STT_TRIGGER 16"); + "REPLICA 3 WAL_LEVEL 1 STT_TRIGGER 16 WAL_RETENTION_PERIOD 10 WAL_RETENTION_SIZE 20"); clearAlterDbReq(); initAlterDb("test"); @@ -290,6 +301,20 @@ TEST_F(ParserInitialATest, alterDatabase) { setAlterDbMinRows(1000); run("ALTER DATABASE test MINROWS 1000"); clearAlterDbReq(); + + initAlterDb("test"); + setAlterDbWalRetentionPeriod(-1); + run("ALTER DATABASE test WAL_RETENTION_PERIOD -1"); + setAlterDbWalRetentionPeriod(50); + run("ALTER DATABASE test WAL_RETENTION_PERIOD 50"); + clearAlterDbReq(); + + initAlterDb("test"); + setAlterDbWalRetentionSize(-1); + run("ALTER DATABASE test WAL_RETENTION_SIZE -1"); + setAlterDbWalRetentionSize(50); + run("ALTER DATABASE test WAL_RETENTION_SIZE 50"); + clearAlterDbReq(); } TEST_F(ParserInitialATest, alterDatabaseSemanticCheck) { @@ -612,7 +637,9 @@ TEST_F(ParserInitialATest, alterTable) { } ASSERT_EQ(req.isNull, expect.isNull); ASSERT_EQ(req.nTagVal, expect.nTagVal); - ASSERT_EQ(memcmp(req.pTagVal, expect.pTagVal, expect.nTagVal), 0); + if (nullptr != req.pTagVal) { + ASSERT_EQ(memcmp(req.pTagVal, expect.pTagVal, expect.nTagVal), 0); + } ASSERT_EQ(req.updateTTL, expect.updateTTL); ASSERT_EQ(req.newTTL, expect.newTTL); if (nullptr != expect.newComment) { @@ -831,4 +858,21 @@ TEST_F(ParserInitialATest, balanceVgroup) { run("BALANCE VGROUP"); } +/* + * BALANCE VGROUP LEADER + */ +TEST_F(ParserInitialATest, balanceVgroupLeader) { + useDb("root", "test"); + + setCheckDdlFunc([&](const SQuery* pQuery, ParserStage stage) { + ASSERT_EQ(nodeType(pQuery->pRoot), QUERY_NODE_BALANCE_VGROUP_LEADER_STMT); + ASSERT_EQ(pQuery->pCmdMsg->msgType, TDMT_MND_BALANCE_VGROUP_LEADER); + SBalanceVgroupLeaderReq req = {0}; + ASSERT_EQ(tDeserializeSBalanceVgroupLeaderReq(pQuery->pCmdMsg->pMsg, pQuery->pCmdMsg->msgLen, &req), + TSDB_CODE_SUCCESS); + }); + + run("BALANCE VGROUP LEADER"); +} + } // namespace ParserTest \ No newline at end of file diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 90f79fd93c..c3b1046bdf 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -228,6 +228,15 @@ int32_t syncLeaderTransfer(int64_t rid) { return ret; } +int32_t syncLeaderForceElection(int64_t rid) { + SSyncNode* pSyncNode = syncNodeAcquire(rid); + if (pSyncNode == NULL) return -1; + + int32_t ret = syncNodeElect(pSyncNode); + syncNodeRelease(pSyncNode); + return ret; +} + int32_t syncSendTimeoutRsp(int64_t rid, int64_t seq) { SSyncNode* pNode = syncNodeAcquire(rid); if (pNode == NULL) return -1; diff --git a/tests/script/tsim/query/udf.sim b/tests/script/tsim/query/udf.sim index 0b48a815e2..66a3d811a1 100644 --- a/tests/script/tsim/query/udf.sim +++ b/tests/script/tsim/query/udf.sim @@ -29,6 +29,9 @@ else sql create function bit_and as '/tmp/udf/libbitand.so' outputtype int bufSize 8; sql create aggregate function l2norm as '/tmp/udf/libl2norm.so' outputtype double bufSize 8; endi + +sql_error create function bit_and as '/tmp/udf/libbitand.so' oputtype json; + sql show functions; if $rows != 2 then return -1 diff --git a/tests/system-test/2-query/mode.py b/tests/system-test/2-query/mode.py index 807a1ac394..8321ef1675 100644 --- a/tests/system-test/2-query/mode.py +++ b/tests/system-test/2-query/mode.py @@ -53,6 +53,7 @@ class TDTestCase: ( '2022-02-01 01:01:20.000', 6, 66666, 666, 66, 6.66, 66.66, 1, "binary6", "nchar6", now()+6a ) ( '2022-10-28 01:01:26.000', 7, 00000, 000, 00, 0.00, 00.00, 1, "binary7", "nchar7", "1970-01-01 08:00:00.000" ) ( '2022-12-01 01:01:30.000', 8, -88888, -888, -88, -8.88, -88.88, 0, "binary8", "nchar8", "1969-01-01 01:00:00.000" ) + ( '2022-12-31 01:01:32.000', 9, -99999999999999999, -999, -99, -9.99, -999999999999999999999.99, 1, "binary9", "nchar9", "1900-01-01 00:00:00.000" ) ( '2022-12-31 01:01:36.000', 9, -99999999999999999, -999, -99, -9.99, -999999999999999999999.99, 1, "binary9", "nchar9", "1900-01-01 00:00:00.000" ) ( '2023-02-21 01:01:01.000', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) '''