未验证 提交 424c3d39 编写于 作者: D dapan1121 提交者: GitHub

Merge pull request #22048 from taosdata/feat/TD-25003

feat: add new syntax for show tags/index/table tags
......@@ -51,6 +51,11 @@ DESCRIBE [db_name.]stb_name;
### View tag information for all child tables in the supertable
```
SHOW TABLE TAGS FROM table_name [FROM db_name];
SHOW TABLE TAGS FROM [db_name.]table_name;
```
```
taos> SHOW TABLE TAGS FROM st1;
tbname | id | loc |
......
......@@ -101,6 +101,7 @@ Note: TDengine Enterprise Edition only.
```sql
SHOW INDEXES FROM tbl_name [FROM db_name];
SHOW INDEXES FROM [db_name.]tbl_name;
```
Shows indices that have been created.
......@@ -326,6 +327,7 @@ Note that only the information about the data blocks in the data file will be di
```sql
SHOW TAGS FROM child_table_name [FROM db_name];
SHOW TAGS FROM [db_name.]child_table_name;
```
Shows all tag information in a subtable.
......
......@@ -43,6 +43,7 @@ DROP INDEX index_name;
````sql
```sql
SHOW INDEXES FROM tbl_name [FROM db_name];
SHOW INDEXES FROM [db_name.]tbl_name ;
````
Shows indices that have been created for the specified database or table.
......@@ -51,6 +51,11 @@ DESCRIBE [db_name.]stb_name;
### 获取超级表中所有子表的标签信息
```
SHOW TABLE TAGS FROM table_name [FROM db_name];
SHOW TABLE TAGS FROM [db_name.]table_name;
```
```
taos> SHOW TABLE TAGS FROM st1;
tbname | id | loc |
......
......@@ -101,6 +101,7 @@ SHOW GRANTS;
```sql
SHOW INDEXES FROM tbl_name [FROM db_name];
SHOW INDEXES FROM [db_name.]tbl_name;
```
显示已创建的索引。
......@@ -269,6 +270,7 @@ Query OK, 24 row(s) in set (0.002444s)
```sql
SHOW TAGS FROM child_table_name [FROM db_name];
SHOW TAGS FROM [db_name.]child_table_name;
```
显示子表的标签信息。
......
......@@ -43,6 +43,7 @@ DROP INDEX index_name;
````sql
```sql
SHOW INDEXES FROM tbl_name [FROM db_name];
SHOW INDEXES FROM [db_name.]tbl_name;
````
显示在所指定的数据库或表上已创建的索引。
......@@ -355,8 +355,6 @@
#define TK_WAL 337
#define TK_NK_SPACE 600
#define TK_NK_COMMENT 601
#define TK_NK_ILLEGAL 602
......
......@@ -447,6 +447,7 @@ cmd ::= SHOW MNODES.
cmd ::= SHOW QNODES. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); }
cmd ::= SHOW FUNCTIONS. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); }
cmd ::= SHOW INDEXES FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, B, A, OP_TYPE_EQUAL); }
cmd ::= SHOW INDEXES FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &B), createIdentifierValueNode(pCxt, &A), OP_TYPE_EQUAL); }
cmd ::= SHOW STREAMS. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); }
cmd ::= SHOW ACCOUNTS. { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); }
cmd ::= SHOW APPS. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); }
......@@ -471,7 +472,9 @@ cmd ::= SHOW TABLE DISTRIBUTED full_table_name(A).
cmd ::= SHOW CONSUMERS. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); }
cmd ::= SHOW SUBSCRIPTIONS. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); }
cmd ::= SHOW TAGS FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, B, A, OP_TYPE_EQUAL); }
cmd ::= SHOW TAGS FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &B), createIdentifierValueNode(pCxt, &A), OP_TYPE_EQUAL); }
cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, A, B, C); }
cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &A), createIdentifierValueNode(pCxt, &B), C); }
cmd ::= SHOW VNODES NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); }
cmd ::= SHOW VNODES NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); }
// show alive
......
此差异已折叠。
......@@ -207,6 +207,7 @@
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/precisionUS.py
,,y,system-test,./pytest.sh python3 ./test.py -f 1-insert/precisionNS.py
,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/show.py
,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/show_tag_index.py
,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/information_schema.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/abs.py
,,y,system-test,./pytest.sh python3 ./test.py -f 2-query/abs.py -R
......
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import re
from util.log import *
from util.cases import *
from util.sql import *
from util.common import *
from util.sqlset import *
class TDTestCase:
def init(self, conn, logSql, replicaVar=1):
self.replicaVar = int(replicaVar)
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor())
def check_tags(self):
tdSql.checkRows(2)
tdSql.checkCols(6)
tdSql.checkData(0, 0, 'ctb1')
tdSql.checkData(0, 1, 'db')
tdSql.checkData(0, 2, 'stb')
tdSql.checkData(0, 3, 't0')
tdSql.checkData(0, 4, 'INT')
tdSql.checkData(0, 5, 1)
tdSql.checkData(1, 0, 'ctb1')
tdSql.checkData(1, 1, 'db')
tdSql.checkData(1, 2, 'stb')
tdSql.checkData(1, 3, 't1')
tdSql.checkData(1, 4, 'INT')
tdSql.checkData(1, 5, 1)
def check_table_tags(self, is_super_table):
if is_super_table == False:
tdSql.checkRows(1)
tdSql.checkCols(3)
tdSql.checkData(0, 0, 'ctb1')
tdSql.checkData(0, 1, 1)
tdSql.checkData(0, 2, 1)
else:
tdSql.checkRows(2)
tdSql.checkCols(3)
tdSql.checkData(0, 0, 'ctb1')
tdSql.checkData(1, 0, 'ctb2')
tdSql.checkData(0, 1, 1)
tdSql.checkData(1, 1, 2)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 2, 2)
def check_indexes(self):
tdSql.checkRows(1)
tdSql.checkCols(7)
tdSql.checkData(0, 0, 'idx1')
tdSql.checkData(0, 1, 'db')
tdSql.checkData(0, 2, 'stb')
tdSql.checkData(0, 3, -1)
tdSql.checkData(0, 5, 't1')
tdSql.checkData(0, 6, 'tag_index')
def run(self):
tdSql.execute(f'create database db')
tdSql.execute(f'use db')
tdSql.execute(f'create table stb (ts timestamp, c0 int) tags (t0 int, t1 int)')
tdSql.execute(f'create table ctb1 using stb tags (1, 1)')
tdSql.execute(f'create table ctb2 using stb tags (2, 2)')
tdSql.execute(f'insert into ctb1 values (now, 1)')
tdSql.execute(f'insert into ctb2 values (now, 2)')
# show tags
tdSql.query(f'show tags from stb')
tdSql.checkRows(0)
tdSql.query(f'show tags from stb')
tdSql.checkRows(0);
tdSql.query(f'show tags from `stb`')
tdSql.checkRows(0);
tdSql.query(f'show tags from stb from db')
tdSql.checkRows(0);
tdSql.query(f'show tags from `stb` from `db`')
tdSql.checkRows(0);
tdSql.query(f'show tags from db.stb')
tdSql.checkRows(0);
tdSql.query(f'show tags from `db`.`stb`')
tdSql.checkRows(0);
tdSql.query(f'show tags from ctb1')
self.check_tags();
tdSql.query(f'show tags from `ctb1`')
self.check_tags();
tdSql.query(f'show tags from ctb1 from db')
self.check_tags();
tdSql.query(f'show tags from `ctb1` from `db`')
self.check_tags();
tdSql.query(f'show tags from db.ctb1')
self.check_tags();
tdSql.query(f'show tags from `db`.`ctb1`')
self.check_tags();
tdSql.error(f'show tags from db.stb from db')
tdSql.error(f'show tags from `db`.`stb` from db')
tdSql.error(f'show tags from db.ctb1 from db')
tdSql.error(f'show tags from `db`.`ctb1` from db')
# show table tags
tdSql.query(f'show table tags from stb')
self.check_table_tags(True);
tdSql.query(f'show table tags from `stb`')
self.check_table_tags(True);
tdSql.query(f'show table tags from stb from db')
self.check_table_tags(True);
tdSql.query(f'show table tags from `stb` from `db`')
self.check_table_tags(True);
tdSql.query(f'show table tags from db.stb')
self.check_table_tags(True);
tdSql.query(f'show table tags from `db`.`stb`')
self.check_table_tags(True);
tdSql.query(f'show table tags from ctb1')
self.check_table_tags(False);
tdSql.query(f'show table tags from `ctb1`')
self.check_table_tags(False);
tdSql.query(f'show table tags from ctb1 from db')
self.check_table_tags(False);
tdSql.query(f'show table tags from `ctb1` from `db`')
self.check_table_tags(False);
tdSql.query(f'show table tags from db.ctb1')
self.check_table_tags(False);
tdSql.query(f'show table tags from `db`.`ctb1`')
self.check_table_tags(False);
tdSql.error(f'show table tags from db.stb from db')
tdSql.error(f'show table tags from `db`.`stb` from db')
tdSql.error(f'show table tags from db.ctb1 from db')
tdSql.error(f'show table tags from `db`.`ctb1` from db')
# show indexes
tdSql.execute(f'create index idx1 on stb (t1)')
tdSql.query(f'show indexes from stb')
self.check_indexes();
tdSql.query(f'show indexes from `stb`')
self.check_indexes();
tdSql.query(f'show indexes from stb from db')
self.check_indexes();
tdSql.query(f'show indexes from `stb` from `db`')
self.check_indexes();
tdSql.query(f'show indexes from db.stb')
self.check_indexes();
tdSql.query(f'show indexes from `db`.`stb`')
self.check_indexes();
tdSql.query(f'show indexes from ctb1')
tdSql.checkRows(0)
tdSql.query(f'show indexes from `ctb1`')
tdSql.checkRows(0)
tdSql.query(f'show indexes from ctb1 from db')
tdSql.checkRows(0)
tdSql.query(f'show indexes from `ctb1` from `db`')
tdSql.checkRows(0)
tdSql.query(f'show indexes from db.ctb1')
tdSql.checkRows(0)
tdSql.query(f'show indexes from `db`.`ctb1`')
tdSql.checkRows(0)
tdSql.error(f'show indexes from db.stb from db')
tdSql.error(f'show indexes from `db`.`stb` from db')
tdSql.error(f'show indexes from db.ctb1 from db')
tdSql.error(f'show indexes from `db`.`ctb1` from db')
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册