From 24c2af24b9ed6ac443801d92337213ff1312d85a Mon Sep 17 00:00:00 2001 From: xywang Date: Mon, 6 Jun 2022 17:51:38 +0800 Subject: [PATCH] fix: inserting data from multi files is not supported --- docs-cn/12-taos-sql/05-insert.md | 7 ------- docs-en/12-taos-sql/05-insert.md | 7 ------- documentation20/cn/12.taos-sql/docs.md | 5 ----- src/client/inc/tsclient.h | 2 ++ src/client/src/tscParseInsert.c | 5 +++++ 5 files changed, 7 insertions(+), 19 deletions(-) diff --git a/docs-cn/12-taos-sql/05-insert.md b/docs-cn/12-taos-sql/05-insert.md index 04118303f3..047ff8e9c4 100644 --- a/docs-cn/12-taos-sql/05-insert.md +++ b/docs-cn/12-taos-sql/05-insert.md @@ -111,13 +111,6 @@ INSERT INTO d1001 FILE '/tmp/csvfile.csv'; INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) FILE '/tmp/csvfile.csv'; ``` -也可以在一条语句中向多个表以自动建表的方式插入记录。例如: - -``` -INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) FILE '/tmp/csvfile_21001.csv' - d21002 USING meters (groupId) TAGS (2) FILE '/tmp/csvfile_21002.csv'; -``` - ## 历史记录写入 可使用 IMPORT 或者 INSERT 命令,IMPORT 的语法,功能与 INSERT 完全一样。 diff --git a/docs-en/12-taos-sql/05-insert.md b/docs-en/12-taos-sql/05-insert.md index 1336cd7238..36640db9cf 100644 --- a/docs-en/12-taos-sql/05-insert.md +++ b/docs-en/12-taos-sql/05-insert.md @@ -113,13 +113,6 @@ From version 2.1.5.0, tables can be automatically created using a super table as INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) FILE '/tmp/csvfile.csv'; ``` -Multiple tables can be automatically created and inserted in a single SQL statement, like below: - -```sql -INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) FILE '/tmp/csvfile_21001.csv' - d21002 USING meters (groupId) TAGS (2) FILE '/tmp/csvfile_21002.csv'; -``` - ## More About Insert For SQL statement like `insert`, a stream parsing strategy is applied. That means before an error is found and the execution is aborted, the part prior to the error point has already been executed. Below is an experiment to help understand the behavior. diff --git a/documentation20/cn/12.taos-sql/docs.md b/documentation20/cn/12.taos-sql/docs.md index 2fd86b1c9e..a5044c6b7a 100755 --- a/documentation20/cn/12.taos-sql/docs.md +++ b/documentation20/cn/12.taos-sql/docs.md @@ -456,11 +456,6 @@ INSERT INTO ```mysql INSERT INTO d21001 USING meters TAGS ('Beijing.Chaoyang', 2) FILE '/tmp/csvfile.csv'; ``` - 也可以在一条语句中向多个表以自动建表的方式插入记录。例如: - ```mysql - INSERT INTO d21001 USING meters TAGS ('Beijing.Chaoyang', 2) FILE '/tmp/csvfile_21001.csv' - d21002 USING meters (groupId) TAGS (2) FILE '/tmp/csvfile_21002.csv'; - ``` **历史记录写入**:可使用IMPORT或者INSERT命令,IMPORT的语法,功能与INSERT完全一样。 diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h index 3f65c64aed..c353c4af5d 100644 --- a/src/client/inc/tsclient.h +++ b/src/client/inc/tsclient.h @@ -257,6 +257,8 @@ typedef struct SInsertStatementParam { int32_t batchSize; // for parameter ('?') binding and batch processing int32_t numOfParams; + int32_t numOfFiles; + char msg[512]; // error message uint32_t insertType; // insert data from [file|sql statement| bound statement] uint64_t objectId; // sql object id diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 979408b19d..ad209839bb 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -1501,6 +1501,11 @@ int tsParseInsertSql(SSqlObj *pSql) { tscInvalidOperationMsg(pInsertParam->msg, "invalid filename", sToken.z); goto _clean; } + + if (++pInsertParam->numOfFiles > 1) { + code = tscInvalidOperationMsg(pInsertParam->msg, "data from multi files is not supported", NULL); + goto _clean; + } } else { if (bindedColumns == NULL) { STableMeta *pTableMeta = pTableMetaInfo->pTableMeta; -- GitLab