Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
2f34cf62
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2f34cf62
编写于
1月 21, 2021
作者:
H
haojun Liao
提交者:
GitHub
1月 21, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4960 from taosdata/feature/query
Feature/query
上级
55f258b8
18f70372
变更
426
展开全部
隐藏空白更改
内联
并排
Showing
426 changed file
with
2523 addition
and
2612 deletion
+2523
-2612
src/client/inc/tscLocalMerge.h
src/client/inc/tscLocalMerge.h
+4
-4
src/client/inc/tscUtil.h
src/client/inc/tscUtil.h
+6
-11
src/client/inc/tsclient.h
src/client/inc/tsclient.h
+8
-8
src/client/src/tscLocal.c
src/client/src/tscLocal.c
+9
-5
src/client/src/tscLocalMerge.c
src/client/src/tscLocalMerge.c
+171
-176
src/client/src/tscParseInsert.c
src/client/src/tscParseInsert.c
+79
-65
src/client/src/tscPrepare.c
src/client/src/tscPrepare.c
+2
-2
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+131
-108
src/client/src/tscSchemaUtil.c
src/client/src/tscSchemaUtil.c
+1
-0
src/client/src/tscServer.c
src/client/src/tscServer.c
+124
-123
src/client/src/tscSql.c
src/client/src/tscSql.c
+5
-2
src/client/src/tscStream.c
src/client/src/tscStream.c
+8
-7
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+10
-9
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+29
-48
src/common/inc/tname.h
src/common/inc/tname.h
+39
-3
src/common/src/tname.c
src/common/src/tname.c
+181
-24
src/inc/taosmsg.h
src/inc/taosmsg.h
+2
-3
src/inc/ttokendef.h
src/inc/ttokendef.h
+0
-3
src/mnode/inc/mnodeDb.h
src/mnode/inc/mnodeDb.h
+1
-1
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+7
-12
src/mnode/src/mnodeTable.c
src/mnode/src/mnodeTable.c
+54
-49
src/query/inc/qSqlparser.h
src/query/inc/qSqlparser.h
+25
-35
src/query/inc/sql.y
src/query/inc/sql.y
+18
-18
src/query/src/qAst.c
src/query/src/qAst.c
+1
-1
src/query/src/qExecutor.c
src/query/src/qExecutor.c
+15
-22
src/query/src/qParserImpl.c
src/query/src/qParserImpl.c
+55
-65
src/query/src/sql.c
src/query/src/sql.c
+848
-1143
src/tsdb/src/tsdbRead.c
src/tsdb/src/tsdbRead.c
+2
-2
src/util/inc/tarray.h
src/util/inc/tarray.h
+1
-1
src/util/src/tarray.c
src/util/src/tarray.c
+1
-1
tests/examples/c/CMakeLists.txt
tests/examples/c/CMakeLists.txt
+1
-1
tests/script/general/alter/cached_schema_after_alter.sim
tests/script/general/alter/cached_schema_after_alter.sim
+3
-3
tests/script/general/alter/count.sim
tests/script/general/alter/count.sim
+5
-5
tests/script/general/alter/dnode.sim
tests/script/general/alter/dnode.sim
+2
-2
tests/script/general/alter/import.sim
tests/script/general/alter/import.sim
+1
-1
tests/script/general/alter/insert1.sim
tests/script/general/alter/insert1.sim
+3
-3
tests/script/general/alter/insert2.sim
tests/script/general/alter/insert2.sim
+3
-3
tests/script/general/alter/metrics.sim
tests/script/general/alter/metrics.sim
+3
-3
tests/script/general/alter/table.sim
tests/script/general/alter/table.sim
+3
-3
tests/script/general/cache/new_metrics.sim
tests/script/general/cache/new_metrics.sim
+1
-1
tests/script/general/cache/restart_metrics.sim
tests/script/general/cache/restart_metrics.sim
+2
-2
tests/script/general/cache/restart_table.sim
tests/script/general/cache/restart_table.sim
+3
-3
tests/script/general/column/commit.sim
tests/script/general/column/commit.sim
+3
-3
tests/script/general/column/metrics.sim
tests/script/general/column/metrics.sim
+3
-3
tests/script/general/column/table.sim
tests/script/general/column/table.sim
+3
-3
tests/script/general/compress/commitlog.sim
tests/script/general/compress/commitlog.sim
+3
-3
tests/script/general/compress/compress.sim
tests/script/general/compress/compress.sim
+3
-3
tests/script/general/compress/compress2.sim
tests/script/general/compress/compress2.sim
+3
-3
tests/script/general/compress/uncompress.sim
tests/script/general/compress/uncompress.sim
+3
-3
tests/script/general/compute/avg.sim
tests/script/general/compute/avg.sim
+1
-1
tests/script/general/compute/bottom.sim
tests/script/general/compute/bottom.sim
+1
-1
tests/script/general/compute/count.sim
tests/script/general/compute/count.sim
+1
-1
tests/script/general/compute/diff.sim
tests/script/general/compute/diff.sim
+1
-1
tests/script/general/compute/diff2.sim
tests/script/general/compute/diff2.sim
+1
-1
tests/script/general/compute/first.sim
tests/script/general/compute/first.sim
+1
-1
tests/script/general/compute/interval.sim
tests/script/general/compute/interval.sim
+1
-1
tests/script/general/compute/last.sim
tests/script/general/compute/last.sim
+1
-1
tests/script/general/compute/last_row.sim
tests/script/general/compute/last_row.sim
+1
-1
tests/script/general/compute/leastsquare.sim
tests/script/general/compute/leastsquare.sim
+1
-1
tests/script/general/compute/max.sim
tests/script/general/compute/max.sim
+1
-1
tests/script/general/compute/min.sim
tests/script/general/compute/min.sim
+1
-1
tests/script/general/compute/null.sim
tests/script/general/compute/null.sim
+1
-1
tests/script/general/compute/percentile.sim
tests/script/general/compute/percentile.sim
+1
-1
tests/script/general/compute/stddev.sim
tests/script/general/compute/stddev.sim
+1
-1
tests/script/general/compute/sum.sim
tests/script/general/compute/sum.sim
+1
-1
tests/script/general/compute/top.sim
tests/script/general/compute/top.sim
+1
-1
tests/script/general/connection/connection.sim
tests/script/general/connection/connection.sim
+1
-1
tests/script/general/connection/mqtt.sim
tests/script/general/connection/mqtt.sim
+1
-1
tests/script/general/db/alter_option.sim
tests/script/general/db/alter_option.sim
+1
-1
tests/script/general/db/alter_tables_d2.sim
tests/script/general/db/alter_tables_d2.sim
+2
-2
tests/script/general/db/alter_tables_v4.sim
tests/script/general/db/alter_tables_v4.sim
+2
-2
tests/script/general/db/alter_vgroups.sim
tests/script/general/db/alter_vgroups.sim
+5
-5
tests/script/general/db/backup/keep.sim
tests/script/general/db/backup/keep.sim
+7
-7
tests/script/general/db/basic.sim
tests/script/general/db/basic.sim
+1
-1
tests/script/general/db/basic1.sim
tests/script/general/db/basic1.sim
+1
-1
tests/script/general/db/basic2.sim
tests/script/general/db/basic2.sim
+1
-1
tests/script/general/db/basic3.sim
tests/script/general/db/basic3.sim
+1
-1
tests/script/general/db/basic4.sim
tests/script/general/db/basic4.sim
+1
-1
tests/script/general/db/basic5.sim
tests/script/general/db/basic5.sim
+1
-1
tests/script/general/db/delete.sim
tests/script/general/db/delete.sim
+2
-2
tests/script/general/db/delete_reuse1.sim
tests/script/general/db/delete_reuse1.sim
+1
-1
tests/script/general/db/delete_reuse2.sim
tests/script/general/db/delete_reuse2.sim
+6
-6
tests/script/general/db/delete_reusevnode2.sim
tests/script/general/db/delete_reusevnode2.sim
+1
-1
tests/script/general/db/delete_writing1.sim
tests/script/general/db/delete_writing1.sim
+1
-1
tests/script/general/db/delete_writing2.sim
tests/script/general/db/delete_writing2.sim
+2
-2
tests/script/general/db/dropdnodes.sim
tests/script/general/db/dropdnodes.sim
+2
-2
tests/script/general/db/len.sim
tests/script/general/db/len.sim
+1
-1
tests/script/general/db/nosuchfile.sim
tests/script/general/db/nosuchfile.sim
+2
-2
tests/script/general/db/repeat.sim
tests/script/general/db/repeat.sim
+5
-5
tests/script/general/db/show_create_db.sim
tests/script/general/db/show_create_db.sim
+1
-1
tests/script/general/db/show_create_table.sim
tests/script/general/db/show_create_table.sim
+1
-1
tests/script/general/db/tables.sim
tests/script/general/db/tables.sim
+1
-1
tests/script/general/db/vnodes.sim
tests/script/general/db/vnodes.sim
+1
-1
tests/script/general/field/2.sim
tests/script/general/field/2.sim
+1
-1
tests/script/general/field/3.sim
tests/script/general/field/3.sim
+1
-1
tests/script/general/field/4.sim
tests/script/general/field/4.sim
+1
-1
tests/script/general/field/5.sim
tests/script/general/field/5.sim
+1
-1
tests/script/general/field/6.sim
tests/script/general/field/6.sim
+1
-1
tests/script/general/field/bigint.sim
tests/script/general/field/bigint.sim
+1
-1
tests/script/general/field/binary.sim
tests/script/general/field/binary.sim
+1
-1
tests/script/general/field/bool.sim
tests/script/general/field/bool.sim
+1
-1
tests/script/general/field/double.sim
tests/script/general/field/double.sim
+1
-1
tests/script/general/field/float.sim
tests/script/general/field/float.sim
+1
-1
tests/script/general/field/int.sim
tests/script/general/field/int.sim
+1
-1
tests/script/general/field/single.sim
tests/script/general/field/single.sim
+1
-1
tests/script/general/field/smallint.sim
tests/script/general/field/smallint.sim
+1
-1
tests/script/general/field/tinyint.sim
tests/script/general/field/tinyint.sim
+1
-1
tests/script/general/http/autocreate.sim
tests/script/general/http/autocreate.sim
+2
-2
tests/script/general/http/chunked.sim
tests/script/general/http/chunked.sim
+2
-2
tests/script/general/http/grafana.sim
tests/script/general/http/grafana.sim
+3
-3
tests/script/general/http/grafana_bug.sim
tests/script/general/http/grafana_bug.sim
+2
-2
tests/script/general/http/gzip.sim
tests/script/general/http/gzip.sim
+2
-2
tests/script/general/http/prepare.sim
tests/script/general/http/prepare.sim
+2
-2
tests/script/general/http/restful.sim
tests/script/general/http/restful.sim
+2
-2
tests/script/general/http/restful_full.sim
tests/script/general/http/restful_full.sim
+3
-3
tests/script/general/http/restful_insert.sim
tests/script/general/http/restful_insert.sim
+2
-2
tests/script/general/http/restful_limit.sim
tests/script/general/http/restful_limit.sim
+2
-2
tests/script/general/http/telegraf.sim
tests/script/general/http/telegraf.sim
+3
-3
tests/script/general/import/basic.sim
tests/script/general/import/basic.sim
+1
-1
tests/script/general/import/commit.sim
tests/script/general/import/commit.sim
+3
-3
tests/script/general/import/large.sim
tests/script/general/import/large.sim
+1
-1
tests/script/general/import/replica1.sim
tests/script/general/import/replica1.sim
+5
-5
tests/script/general/insert/basic.sim
tests/script/general/insert/basic.sim
+1
-1
tests/script/general/insert/insert_drop.sim
tests/script/general/insert/insert_drop.sim
+3
-3
tests/script/general/insert/query_block1_file.sim
tests/script/general/insert/query_block1_file.sim
+1
-1
tests/script/general/insert/query_block1_memory.sim
tests/script/general/insert/query_block1_memory.sim
+1
-1
tests/script/general/insert/query_block2_file.sim
tests/script/general/insert/query_block2_file.sim
+1
-1
tests/script/general/insert/query_block2_memory.sim
tests/script/general/insert/query_block2_memory.sim
+1
-1
tests/script/general/insert/query_file_memory.sim
tests/script/general/insert/query_file_memory.sim
+1
-1
tests/script/general/insert/query_multi_file.sim
tests/script/general/insert/query_multi_file.sim
+1
-1
tests/script/general/insert/tcp.sim
tests/script/general/insert/tcp.sim
+1
-1
tests/script/general/parser/alter.sim
tests/script/general/parser/alter.sim
+2
-2
tests/script/general/parser/auto_create_tb.sim
tests/script/general/parser/auto_create_tb.sim
+1
-1
tests/script/general/parser/col_arithmetic_operation.sim
tests/script/general/parser/col_arithmetic_operation.sim
+1
-1
tests/script/general/parser/commit.sim
tests/script/general/parser/commit.sim
+1
-1
tests/script/general/parser/first_last.sim
tests/script/general/parser/first_last.sim
+1
-1
tests/script/general/parser/function.sim
tests/script/general/parser/function.sim
+26
-1
tests/script/general/parser/import_commit1.sim
tests/script/general/parser/import_commit1.sim
+1
-1
tests/script/general/parser/import_commit2.sim
tests/script/general/parser/import_commit2.sim
+1
-1
tests/script/general/parser/import_commit3.sim
tests/script/general/parser/import_commit3.sim
+2
-2
tests/script/general/parser/interp.sim
tests/script/general/parser/interp.sim
+1
-1
tests/script/general/parser/lastrow.sim
tests/script/general/parser/lastrow.sim
+1
-1
tests/script/general/parser/limit.sim
tests/script/general/parser/limit.sim
+1
-1
tests/script/general/parser/limit1.sim
tests/script/general/parser/limit1.sim
+1
-1
tests/script/general/parser/limit1_tblocks100.sim
tests/script/general/parser/limit1_tblocks100.sim
+1
-1
tests/script/general/parser/limit2.sim
tests/script/general/parser/limit2.sim
+1
-1
tests/script/general/parser/mixed_blocks.sim
tests/script/general/parser/mixed_blocks.sim
+1
-1
tests/script/general/parser/projection_limit_offset.sim
tests/script/general/parser/projection_limit_offset.sim
+1
-1
tests/script/general/parser/selectResNum.sim
tests/script/general/parser/selectResNum.sim
+1
-1
tests/script/general/parser/select_from_cache_disk.sim
tests/script/general/parser/select_from_cache_disk.sim
+1
-1
tests/script/general/parser/single_row_in_tb.sim
tests/script/general/parser/single_row_in_tb.sim
+1
-1
tests/script/general/parser/slimit.sim
tests/script/general/parser/slimit.sim
+1
-1
tests/script/general/parser/slimit1.sim
tests/script/general/parser/slimit1.sim
+1
-1
tests/script/general/parser/slimit_alter_tags.sim
tests/script/general/parser/slimit_alter_tags.sim
+1
-1
tests/script/general/parser/tbnameIn.sim
tests/script/general/parser/tbnameIn.sim
+1
-1
tests/script/general/parser/topbot.sim
tests/script/general/parser/topbot.sim
+1
-1
tests/script/general/stable/disk.sim
tests/script/general/stable/disk.sim
+2
-2
tests/script/general/stable/metrics.sim
tests/script/general/stable/metrics.sim
+1
-1
tests/script/general/stable/refcount.sim
tests/script/general/stable/refcount.sim
+1
-1
tests/script/general/stable/show.sim
tests/script/general/stable/show.sim
+1
-1
tests/script/general/stable/values.sim
tests/script/general/stable/values.sim
+1
-1
tests/script/general/stable/vnode3.sim
tests/script/general/stable/vnode3.sim
+1
-1
tests/script/general/stream/agg_stream.sim
tests/script/general/stream/agg_stream.sim
+1
-1
tests/script/general/stream/column_stream.sim
tests/script/general/stream/column_stream.sim
+2
-2
tests/script/general/stream/metrics_del.sim
tests/script/general/stream/metrics_del.sim
+1
-1
tests/script/general/stream/metrics_replica1_vnoden.sim
tests/script/general/stream/metrics_replica1_vnoden.sim
+1
-1
tests/script/general/stream/restart_stream.sim
tests/script/general/stream/restart_stream.sim
+1
-1
tests/script/general/stream/stream_3.sim
tests/script/general/stream/stream_3.sim
+1
-1
tests/script/general/stream/stream_restart.sim
tests/script/general/stream/stream_restart.sim
+1
-1
tests/script/general/stream/table_del.sim
tests/script/general/stream/table_del.sim
+1
-1
tests/script/general/stream/table_replica1_vnoden.sim
tests/script/general/stream/table_replica1_vnoden.sim
+1
-1
tests/script/general/table/autocreate.sim
tests/script/general/table/autocreate.sim
+1
-1
tests/script/general/table/basic1.sim
tests/script/general/table/basic1.sim
+1
-1
tests/script/general/table/basic2.sim
tests/script/general/table/basic2.sim
+1
-1
tests/script/general/table/basic3.sim
tests/script/general/table/basic3.sim
+1
-1
tests/script/general/table/bigint.sim
tests/script/general/table/bigint.sim
+1
-1
tests/script/general/table/binary.sim
tests/script/general/table/binary.sim
+1
-1
tests/script/general/table/bool.sim
tests/script/general/table/bool.sim
+1
-1
tests/script/general/table/column2.sim
tests/script/general/table/column2.sim
+1
-1
tests/script/general/table/column_name.sim
tests/script/general/table/column_name.sim
+1
-1
tests/script/general/table/column_num.sim
tests/script/general/table/column_num.sim
+1
-1
tests/script/general/table/column_value.sim
tests/script/general/table/column_value.sim
+1
-1
tests/script/general/table/date.sim
tests/script/general/table/date.sim
+1
-1
tests/script/general/table/db.table.sim
tests/script/general/table/db.table.sim
+1
-1
tests/script/general/table/delete_reuse1.sim
tests/script/general/table/delete_reuse1.sim
+1
-1
tests/script/general/table/delete_reuse2.sim
tests/script/general/table/delete_reuse2.sim
+1
-1
tests/script/general/table/delete_writing.sim
tests/script/general/table/delete_writing.sim
+1
-1
tests/script/general/table/describe.sim
tests/script/general/table/describe.sim
+1
-1
tests/script/general/table/double.sim
tests/script/general/table/double.sim
+1
-1
tests/script/general/table/fill.sim
tests/script/general/table/fill.sim
+3
-3
tests/script/general/table/float.sim
tests/script/general/table/float.sim
+1
-1
tests/script/general/table/int.sim
tests/script/general/table/int.sim
+1
-1
tests/script/general/table/limit.sim
tests/script/general/table/limit.sim
+1
-1
tests/script/general/table/smallint.sim
tests/script/general/table/smallint.sim
+1
-1
tests/script/general/table/table.sim
tests/script/general/table/table.sim
+1
-1
tests/script/general/table/table_len.sim
tests/script/general/table/table_len.sim
+1
-1
tests/script/general/table/tinyint.sim
tests/script/general/table/tinyint.sim
+1
-1
tests/script/general/table/vgroup.sim
tests/script/general/table/vgroup.sim
+1
-1
tests/script/general/tag/3.sim
tests/script/general/tag/3.sim
+1
-1
tests/script/general/tag/4.sim
tests/script/general/tag/4.sim
+1
-1
tests/script/general/tag/5.sim
tests/script/general/tag/5.sim
+1
-1
tests/script/general/tag/6.sim
tests/script/general/tag/6.sim
+1
-1
tests/script/general/tag/add.sim
tests/script/general/tag/add.sim
+1
-1
tests/script/general/tag/bigint.sim
tests/script/general/tag/bigint.sim
+1
-1
tests/script/general/tag/binary.sim
tests/script/general/tag/binary.sim
+1
-1
tests/script/general/tag/binary_binary.sim
tests/script/general/tag/binary_binary.sim
+1
-1
tests/script/general/tag/bool.sim
tests/script/general/tag/bool.sim
+1
-1
tests/script/general/tag/bool_binary.sim
tests/script/general/tag/bool_binary.sim
+1
-1
tests/script/general/tag/bool_int.sim
tests/script/general/tag/bool_int.sim
+1
-1
tests/script/general/tag/change.sim
tests/script/general/tag/change.sim
+2
-2
tests/script/general/tag/column.sim
tests/script/general/tag/column.sim
+1
-1
tests/script/general/tag/commit.sim
tests/script/general/tag/commit.sim
+3
-3
tests/script/general/tag/create.sim
tests/script/general/tag/create.sim
+1
-1
tests/script/general/tag/delete.sim
tests/script/general/tag/delete.sim
+2
-2
tests/script/general/tag/double.sim
tests/script/general/tag/double.sim
+1
-1
tests/script/general/tag/filter.sim
tests/script/general/tag/filter.sim
+1
-1
tests/script/general/tag/float.sim
tests/script/general/tag/float.sim
+1
-1
tests/script/general/tag/int.sim
tests/script/general/tag/int.sim
+1
-1
tests/script/general/tag/int_binary.sim
tests/script/general/tag/int_binary.sim
+1
-1
tests/script/general/tag/int_float.sim
tests/script/general/tag/int_float.sim
+1
-1
tests/script/general/tag/set.sim
tests/script/general/tag/set.sim
+1
-1
tests/script/general/tag/smallint.sim
tests/script/general/tag/smallint.sim
+1
-1
tests/script/general/tag/tinyint.sim
tests/script/general/tag/tinyint.sim
+1
-1
tests/script/general/user/authority.sim
tests/script/general/user/authority.sim
+1
-1
tests/script/general/user/monitor.sim
tests/script/general/user/monitor.sim
+2
-2
tests/script/general/user/pass_alter.sim
tests/script/general/user/pass_alter.sim
+1
-1
tests/script/general/user/pass_len.sim
tests/script/general/user/pass_len.sim
+1
-1
tests/script/general/user/user_len.sim
tests/script/general/user/user_len.sim
+1
-1
tests/script/general/vector/metrics_field.sim
tests/script/general/vector/metrics_field.sim
+1
-1
tests/script/general/vector/metrics_mix.sim
tests/script/general/vector/metrics_mix.sim
+1
-1
tests/script/general/vector/metrics_query.sim
tests/script/general/vector/metrics_query.sim
+1
-1
tests/script/general/vector/metrics_tag.sim
tests/script/general/vector/metrics_tag.sim
+1
-1
tests/script/general/vector/metrics_time.sim
tests/script/general/vector/metrics_time.sim
+1
-1
tests/script/general/vector/multi.sim
tests/script/general/vector/multi.sim
+1
-1
tests/script/general/vector/single.sim
tests/script/general/vector/single.sim
+1
-1
tests/script/general/vector/table_field.sim
tests/script/general/vector/table_field.sim
+1
-1
tests/script/general/vector/table_mix.sim
tests/script/general/vector/table_mix.sim
+1
-1
tests/script/general/vector/table_query.sim
tests/script/general/vector/table_query.sim
+1
-1
tests/script/general/vector/table_time.sim
tests/script/general/vector/table_time.sim
+1
-1
tests/script/general/wal/kill.sim
tests/script/general/wal/kill.sim
+11
-11
tests/script/general/wal/maxtables.sim
tests/script/general/wal/maxtables.sim
+2
-2
tests/script/tmp/mnodes.sim
tests/script/tmp/mnodes.sim
+1
-1
tests/script/unique/account/account_create.sim
tests/script/unique/account/account_create.sim
+1
-1
tests/script/unique/account/account_delete.sim
tests/script/unique/account/account_delete.sim
+1
-1
tests/script/unique/account/account_len.sim
tests/script/unique/account/account_len.sim
+1
-1
tests/script/unique/account/authority.sim
tests/script/unique/account/authority.sim
+1
-1
tests/script/unique/account/basic.sim
tests/script/unique/account/basic.sim
+1
-1
tests/script/unique/account/paras.sim
tests/script/unique/account/paras.sim
+1
-1
tests/script/unique/account/pass_alter.sim
tests/script/unique/account/pass_alter.sim
+1
-1
tests/script/unique/account/pass_len.sim
tests/script/unique/account/pass_len.sim
+1
-1
tests/script/unique/account/usage.sim
tests/script/unique/account/usage.sim
+1
-1
tests/script/unique/account/user_create.sim
tests/script/unique/account/user_create.sim
+1
-1
tests/script/unique/account/user_len.sim
tests/script/unique/account/user_len.sim
+1
-1
tests/script/unique/arbitrator/check_cluster_cfg_para.sim
tests/script/unique/arbitrator/check_cluster_cfg_para.sim
+1
-1
tests/script/unique/arbitrator/dn2_mn1_cache_file_sync.sim
tests/script/unique/arbitrator/dn2_mn1_cache_file_sync.sim
+3
-3
tests/script/unique/arbitrator/dn2_mn1_cache_file_sync_second.sim
...ript/unique/arbitrator/dn2_mn1_cache_file_sync_second.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_full_createTableFail.sim
...script/unique/arbitrator/dn3_mn1_full_createTableFail.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_full_dropDnodeFail.sim
...s/script/unique/arbitrator/dn3_mn1_full_dropDnodeFail.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_multiCreateDropTable.sim
...script/unique/arbitrator/dn3_mn1_multiCreateDropTable.sim
+5
-5
tests/script/unique/arbitrator/dn3_mn1_nw_disable_timeout_autoDropDnode.sim
...e/arbitrator/dn3_mn1_nw_disable_timeout_autoDropDnode.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_r2_vnode_delDir.sim
tests/script/unique/arbitrator/dn3_mn1_r2_vnode_delDir.sim
+3
-3
tests/script/unique/arbitrator/dn3_mn1_r3_vnode_delDir.sim
tests/script/unique/arbitrator/dn3_mn1_r3_vnode_delDir.sim
+4
-4
tests/script/unique/arbitrator/dn3_mn1_replica2_wal1_AddDelDnode.sim
...t/unique/arbitrator/dn3_mn1_replica2_wal1_AddDelDnode.sim
+9
-9
tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim
...ipt/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_stopDnode_timeout.sim
tests/script/unique/arbitrator/dn3_mn1_stopDnode_timeout.sim
+3
-3
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
...t/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
...pt/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_createErrData_online.sim
.../unique/arbitrator/dn3_mn1_vnode_createErrData_online.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_delDir.sim
tests/script/unique/arbitrator/dn3_mn1_vnode_delDir.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
...unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
+2
-2
tests/script/unique/arbitrator/dn3_mn1_vnode_nomaster.sim
tests/script/unique/arbitrator/dn3_mn1_vnode_nomaster.sim
+3
-3
tests/script/unique/arbitrator/dn3_mn2_killDnode.sim
tests/script/unique/arbitrator/dn3_mn2_killDnode.sim
+4
-4
tests/script/unique/arbitrator/insert_duplicationTs.sim
tests/script/unique/arbitrator/insert_duplicationTs.sim
+4
-4
tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim
.../unique/arbitrator/offline_replica2_alterTable_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim
...pt/unique/arbitrator/offline_replica2_alterTag_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica2_createTable_online.sim
...unique/arbitrator/offline_replica2_createTable_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim
...ript/unique/arbitrator/offline_replica2_dropDb_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim
...t/unique/arbitrator/offline_replica2_dropTable_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim
.../unique/arbitrator/offline_replica3_alterTable_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim
...pt/unique/arbitrator/offline_replica3_alterTag_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica3_createTable_online.sim
...unique/arbitrator/offline_replica3_createTable_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica3_dropDb_online.sim
...ript/unique/arbitrator/offline_replica3_dropDb_online.sim
+2
-2
tests/script/unique/arbitrator/offline_replica3_dropTable_online.sim
...t/unique/arbitrator/offline_replica3_dropTable_online.sim
+2
-2
tests/script/unique/arbitrator/replica_changeWithArbitrator.sim
...script/unique/arbitrator/replica_changeWithArbitrator.sim
+6
-6
tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim
...script/unique/arbitrator/sync_replica2_alterTable_add.sim
+2
-2
tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim
...cript/unique/arbitrator/sync_replica2_alterTable_drop.sim
+2
-2
tests/script/unique/arbitrator/sync_replica2_dropDb.sim
tests/script/unique/arbitrator/sync_replica2_dropDb.sim
+2
-2
tests/script/unique/arbitrator/sync_replica2_dropTable.sim
tests/script/unique/arbitrator/sync_replica2_dropTable.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim
...script/unique/arbitrator/sync_replica3_alterTable_add.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim
...cript/unique/arbitrator/sync_replica3_alterTable_drop.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_createTable.sim
tests/script/unique/arbitrator/sync_replica3_createTable.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_dnodeChang_DropAddAlterTableDropDb.sim
...ator/sync_replica3_dnodeChang_DropAddAlterTableDropDb.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_dropDb.sim
tests/script/unique/arbitrator/sync_replica3_dropDb.sim
+2
-2
tests/script/unique/arbitrator/sync_replica3_dropTable.sim
tests/script/unique/arbitrator/sync_replica3_dropTable.sim
+2
-2
tests/script/unique/big/maxvnodes.sim
tests/script/unique/big/maxvnodes.sim
+2
-2
tests/script/unique/big/restartSpeed.sim
tests/script/unique/big/restartSpeed.sim
+1
-1
tests/script/unique/cluster/alter.sim
tests/script/unique/cluster/alter.sim
+2
-2
tests/script/unique/cluster/balance2.sim
tests/script/unique/cluster/balance2.sim
+2
-2
tests/script/unique/cluster/cache.sim
tests/script/unique/cluster/cache.sim
+2
-2
tests/script/unique/cluster/cluster_main.sim
tests/script/unique/cluster/cluster_main.sim
+7
-7
tests/script/unique/cluster/cluster_main0.sim
tests/script/unique/cluster/cluster_main0.sim
+9
-9
tests/script/unique/cluster/cluster_main1.sim
tests/script/unique/cluster/cluster_main1.sim
+7
-7
tests/script/unique/cluster/cluster_main2.sim
tests/script/unique/cluster/cluster_main2.sim
+8
-8
tests/script/unique/cluster/flowctrl.sim
tests/script/unique/cluster/flowctrl.sim
+3
-3
tests/script/unique/clusterSimCase/cluster_main.sim
tests/script/unique/clusterSimCase/cluster_main.sim
+6
-6
tests/script/unique/db/commit.sim
tests/script/unique/db/commit.sim
+6
-6
tests/script/unique/db/delete.sim
tests/script/unique/db/delete.sim
+2
-2
tests/script/unique/db/replica_reduce32.sim
tests/script/unique/db/replica_reduce32.sim
+1
-1
tests/script/unique/dnode/alternativeRole.sim
tests/script/unique/dnode/alternativeRole.sim
+2
-2
tests/script/unique/dnode/balance2.sim
tests/script/unique/dnode/balance2.sim
+1
-1
tests/script/unique/dnode/balancex.sim
tests/script/unique/dnode/balancex.sim
+3
-3
tests/script/unique/dnode/data1.sim
tests/script/unique/dnode/data1.sim
+3
-3
tests/script/unique/dnode/datatrans_1node.sim
tests/script/unique/dnode/datatrans_1node.sim
+2
-2
tests/script/unique/dnode/datatrans_3node.sim
tests/script/unique/dnode/datatrans_3node.sim
+3
-3
tests/script/unique/dnode/datatrans_3node_2.sim
tests/script/unique/dnode/datatrans_3node_2.sim
+3
-3
tests/script/unique/dnode/monitor.sim
tests/script/unique/dnode/monitor.sim
+3
-3
tests/script/unique/dnode/monitor_bug.sim
tests/script/unique/dnode/monitor_bug.sim
+2
-2
tests/script/unique/dnode/offline1.sim
tests/script/unique/dnode/offline1.sim
+1
-1
tests/script/unique/dnode/offline2.sim
tests/script/unique/dnode/offline2.sim
+3
-3
tests/script/unique/dnode/simple.sim
tests/script/unique/dnode/simple.sim
+2
-2
tests/script/unique/http/admin.sim
tests/script/unique/http/admin.sim
+2
-2
tests/script/unique/http/opentsdb.sim
tests/script/unique/http/opentsdb.sim
+2
-2
tests/script/unique/import/replica3.sim
tests/script/unique/import/replica3.sim
+2
-2
tests/script/unique/mnode/mgmt20.sim
tests/script/unique/mnode/mgmt20.sim
+1
-1
tests/script/unique/mnode/mgmt22.sim
tests/script/unique/mnode/mgmt22.sim
+1
-1
tests/script/unique/mnode/mgmt26.sim
tests/script/unique/mnode/mgmt26.sim
+1
-1
tests/script/unique/mnode/mgmt30.sim
tests/script/unique/mnode/mgmt30.sim
+1
-1
tests/script/unique/mnode/mgmtr2.sim
tests/script/unique/mnode/mgmtr2.sim
+1
-1
tests/script/unique/stable/dnode2_stop.sim
tests/script/unique/stable/dnode2_stop.sim
+2
-2
tests/script/unique/stream/metrics_balance.sim
tests/script/unique/stream/metrics_balance.sim
+2
-2
tests/script/unique/stream/metrics_vnode_stop.sim
tests/script/unique/stream/metrics_vnode_stop.sim
+2
-2
tests/script/unique/stream/table_balance.sim
tests/script/unique/stream/table_balance.sim
+2
-2
tests/script/unique/stream/table_move.sim
tests/script/unique/stream/table_move.sim
+3
-3
tests/script/unique/stream/table_vnode_stop.sim
tests/script/unique/stream/table_vnode_stop.sim
+2
-2
tests/script/unique/vnode/many.sim
tests/script/unique/vnode/many.sim
+5
-5
tests/script/unique/vnode/replica2_a_large.sim
tests/script/unique/vnode/replica2_a_large.sim
+3
-3
tests/script/unique/vnode/replica2_basic2.sim
tests/script/unique/vnode/replica2_basic2.sim
+6
-6
tests/script/unique/vnode/replica2_repeat.sim
tests/script/unique/vnode/replica2_repeat.sim
+5
-5
tests/script/unique/vnode/replica3_repeat.sim
tests/script/unique/vnode/replica3_repeat.sim
+8
-8
tests/script/unique/vnode/replica3_vgroup.sim
tests/script/unique/vnode/replica3_vgroup.sim
+2
-2
tests/script/windows/alter/metrics.sim
tests/script/windows/alter/metrics.sim
+3
-3
tests/script/windows/alter/table.sim
tests/script/windows/alter/table.sim
+3
-3
tests/script/windows/compute/avg.sim
tests/script/windows/compute/avg.sim
+1
-1
tests/script/windows/compute/bottom.sim
tests/script/windows/compute/bottom.sim
+1
-1
tests/script/windows/compute/count.sim
tests/script/windows/compute/count.sim
+1
-1
tests/script/windows/compute/diff.sim
tests/script/windows/compute/diff.sim
+1
-1
tests/script/windows/compute/first.sim
tests/script/windows/compute/first.sim
+1
-1
tests/script/windows/compute/interval.sim
tests/script/windows/compute/interval.sim
+1
-1
tests/script/windows/compute/last.sim
tests/script/windows/compute/last.sim
+1
-1
tests/script/windows/compute/leastsquare.sim
tests/script/windows/compute/leastsquare.sim
+1
-1
tests/script/windows/compute/max.sim
tests/script/windows/compute/max.sim
+1
-1
tests/script/windows/compute/min.sim
tests/script/windows/compute/min.sim
+1
-1
tests/script/windows/compute/percentile.sim
tests/script/windows/compute/percentile.sim
+1
-1
tests/script/windows/compute/stddev.sim
tests/script/windows/compute/stddev.sim
+1
-1
tests/script/windows/compute/sum.sim
tests/script/windows/compute/sum.sim
+1
-1
tests/script/windows/compute/top.sim
tests/script/windows/compute/top.sim
+1
-1
tests/script/windows/db/basic.sim
tests/script/windows/db/basic.sim
+1
-1
tests/script/windows/db/len.sim
tests/script/windows/db/len.sim
+1
-1
tests/script/windows/field/2.sim
tests/script/windows/field/2.sim
+1
-1
tests/script/windows/field/3.sim
tests/script/windows/field/3.sim
+1
-1
tests/script/windows/field/4.sim
tests/script/windows/field/4.sim
+1
-1
tests/script/windows/field/5.sim
tests/script/windows/field/5.sim
+1
-1
tests/script/windows/field/6.sim
tests/script/windows/field/6.sim
+1
-1
tests/script/windows/field/bigint.sim
tests/script/windows/field/bigint.sim
+1
-1
tests/script/windows/field/binary.sim
tests/script/windows/field/binary.sim
+1
-1
tests/script/windows/field/bool.sim
tests/script/windows/field/bool.sim
+1
-1
tests/script/windows/field/double.sim
tests/script/windows/field/double.sim
+1
-1
tests/script/windows/field/float.sim
tests/script/windows/field/float.sim
+1
-1
tests/script/windows/field/int.sim
tests/script/windows/field/int.sim
+1
-1
tests/script/windows/field/single.sim
tests/script/windows/field/single.sim
+1
-1
tests/script/windows/field/smallint.sim
tests/script/windows/field/smallint.sim
+1
-1
tests/script/windows/field/tinyint.sim
tests/script/windows/field/tinyint.sim
+1
-1
tests/script/windows/import/basic.sim
tests/script/windows/import/basic.sim
+1
-1
tests/script/windows/insert/basic.sim
tests/script/windows/insert/basic.sim
+1
-1
tests/script/windows/insert/query_block1_file.sim
tests/script/windows/insert/query_block1_file.sim
+1
-1
tests/script/windows/insert/query_block1_memory.sim
tests/script/windows/insert/query_block1_memory.sim
+1
-1
tests/script/windows/insert/query_block2_file.sim
tests/script/windows/insert/query_block2_file.sim
+1
-1
tests/script/windows/insert/query_block2_memory.sim
tests/script/windows/insert/query_block2_memory.sim
+1
-1
tests/script/windows/insert/query_file_memory.sim
tests/script/windows/insert/query_file_memory.sim
+1
-1
tests/script/windows/insert/query_multi_file.sim
tests/script/windows/insert/query_multi_file.sim
+1
-1
tests/script/windows/table/binary.sim
tests/script/windows/table/binary.sim
+1
-1
tests/script/windows/table/bool.sim
tests/script/windows/table/bool.sim
+1
-1
tests/script/windows/table/column_name.sim
tests/script/windows/table/column_name.sim
+1
-1
tests/script/windows/table/column_num.sim
tests/script/windows/table/column_num.sim
+1
-1
tests/script/windows/table/column_value.sim
tests/script/windows/table/column_value.sim
+1
-1
tests/script/windows/table/db.table.sim
tests/script/windows/table/db.table.sim
+1
-1
tests/script/windows/table/double.sim
tests/script/windows/table/double.sim
+1
-1
tests/script/windows/table/float.sim
tests/script/windows/table/float.sim
+1
-1
tests/script/windows/table/table.sim
tests/script/windows/table/table.sim
+1
-1
tests/script/windows/table/table_len.sim
tests/script/windows/table/table_len.sim
+1
-1
tests/script/windows/tag/3.sim
tests/script/windows/tag/3.sim
+1
-1
tests/script/windows/tag/4.sim
tests/script/windows/tag/4.sim
+1
-1
tests/script/windows/tag/5.sim
tests/script/windows/tag/5.sim
+1
-1
tests/script/windows/tag/6.sim
tests/script/windows/tag/6.sim
+1
-1
tests/script/windows/tag/add.sim
tests/script/windows/tag/add.sim
+1
-1
tests/script/windows/tag/bigint.sim
tests/script/windows/tag/bigint.sim
+1
-1
tests/script/windows/tag/binary.sim
tests/script/windows/tag/binary.sim
+1
-1
tests/script/windows/tag/binary_binary.sim
tests/script/windows/tag/binary_binary.sim
+1
-1
tests/script/windows/tag/bool.sim
tests/script/windows/tag/bool.sim
+1
-1
tests/script/windows/tag/bool_binary.sim
tests/script/windows/tag/bool_binary.sim
+1
-1
tests/script/windows/tag/bool_int.sim
tests/script/windows/tag/bool_int.sim
+1
-1
tests/script/windows/tag/change.sim
tests/script/windows/tag/change.sim
+2
-2
tests/script/windows/tag/column.sim
tests/script/windows/tag/column.sim
+1
-1
tests/script/windows/tag/create.sim
tests/script/windows/tag/create.sim
+1
-1
tests/script/windows/tag/delete.sim
tests/script/windows/tag/delete.sim
+2
-2
tests/script/windows/tag/double.sim
tests/script/windows/tag/double.sim
+1
-1
tests/script/windows/tag/filter.sim
tests/script/windows/tag/filter.sim
+1
-1
tests/script/windows/tag/float.sim
tests/script/windows/tag/float.sim
+1
-1
tests/script/windows/tag/int.sim
tests/script/windows/tag/int.sim
+1
-1
tests/script/windows/tag/int_binary.sim
tests/script/windows/tag/int_binary.sim
+1
-1
tests/script/windows/tag/int_float.sim
tests/script/windows/tag/int_float.sim
+1
-1
tests/script/windows/tag/set.sim
tests/script/windows/tag/set.sim
+1
-1
tests/script/windows/tag/smallint.sim
tests/script/windows/tag/smallint.sim
+1
-1
tests/script/windows/tag/tinyint.sim
tests/script/windows/tag/tinyint.sim
+1
-1
tests/script/windows/vector/metrics_field.sim
tests/script/windows/vector/metrics_field.sim
+1
-1
tests/script/windows/vector/metrics_mix.sim
tests/script/windows/vector/metrics_mix.sim
+1
-1
tests/script/windows/vector/metrics_query.sim
tests/script/windows/vector/metrics_query.sim
+1
-1
tests/script/windows/vector/metrics_tag.sim
tests/script/windows/vector/metrics_tag.sim
+1
-1
tests/script/windows/vector/metrics_time.sim
tests/script/windows/vector/metrics_time.sim
+1
-1
tests/script/windows/vector/multi.sim
tests/script/windows/vector/multi.sim
+1
-1
tests/script/windows/vector/single.sim
tests/script/windows/vector/single.sim
+1
-1
tests/script/windows/vector/table_field.sim
tests/script/windows/vector/table_field.sim
+1
-1
tests/script/windows/vector/table_mix.sim
tests/script/windows/vector/table_mix.sim
+1
-1
tests/script/windows/vector/table_query.sim
tests/script/windows/vector/table_query.sim
+1
-1
tests/script/windows/vector/table_time.sim
tests/script/windows/vector/table_time.sim
+1
-1
未找到文件。
src/client/inc/tscLocalMerge.h
浏览文件 @
2f34cf62
...
...
@@ -38,7 +38,7 @@ typedef struct SLocalDataSource {
tFilePage
filePage
;
}
SLocalDataSource
;
typedef
struct
SLocal
Reduc
er
{
typedef
struct
SLocal
Merg
er
{
SLocalDataSource
**
pLocalDataSrc
;
int32_t
numOfBuffer
;
int32_t
numOfCompleted
;
...
...
@@ -62,7 +62,7 @@ typedef struct SLocalReducer {
bool
discard
;
int32_t
offset
;
// limit offset value
bool
orderPrjOnSTable
;
// projection query on stable
}
SLocal
Reduc
er
;
}
SLocal
Merg
er
;
typedef
struct
SRetrieveSupport
{
tExtMemBuffer
**
pExtMemBuffer
;
// for build loser tree
...
...
@@ -89,10 +89,10 @@ int32_t tscFlushTmpBuffer(tExtMemBuffer *pMemoryBuf, tOrderDescriptor *pDesc, tF
/*
* create local reducer to launch the second-stage reduce process at client site
*/
void
tscCreateLocal
Reduc
er
(
tExtMemBuffer
**
pMemBuffer
,
int32_t
numOfBuffer
,
tOrderDescriptor
*
pDesc
,
void
tscCreateLocal
Merg
er
(
tExtMemBuffer
**
pMemBuffer
,
int32_t
numOfBuffer
,
tOrderDescriptor
*
pDesc
,
SColumnModel
*
finalModel
,
SColumnModel
*
pFFModel
,
SSqlObj
*
pSql
);
void
tscDestroyLocal
Reduc
er
(
SSqlObj
*
pSql
);
void
tscDestroyLocal
Merg
er
(
SSqlObj
*
pSql
);
int32_t
tscDoLocalMerge
(
SSqlObj
*
pSql
);
...
...
src/client/inc/tscUtil.h
浏览文件 @
2f34cf62
...
...
@@ -98,8 +98,7 @@ static FORCE_INLINE SQueryInfo* tscGetQueryInfoDetail(SSqlCmd* pCmd, int32_t sub
return
pCmd
->
pQueryInfo
[
subClauseIndex
];
}
int32_t
tscCreateDataBlock
(
size_t
initialSize
,
int32_t
rowSize
,
int32_t
startOffset
,
const
char
*
name
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
);
int32_t
tscCreateDataBlock
(
size_t
initialSize
,
int32_t
rowSize
,
int32_t
startOffset
,
SName
*
name
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
);
void
tscDestroyDataBlock
(
STableDataBlocks
*
pDataBlock
);
void
tscSortRemoveDataBlockDupRows
(
STableDataBlocks
*
dataBuf
);
...
...
@@ -111,7 +110,7 @@ void* tscDestroyBlockHashTable(SHashObj* pBlockHashTable);
int32_t
tscCopyDataBlockToPayload
(
SSqlObj
*
pSql
,
STableDataBlocks
*
pDataBlock
);
int32_t
tscMergeTableDataBlocks
(
SSqlObj
*
pSql
,
bool
freeBlockMap
);
int32_t
tscGetDataBlockFromList
(
SHashObj
*
pHashList
,
int64_t
id
,
int32_t
size
,
int32_t
startOffset
,
int32_t
rowSize
,
const
char
*
tableId
,
STableMeta
*
pTableMeta
,
int32_t
tscGetDataBlockFromList
(
SHashObj
*
pHashList
,
int64_t
id
,
int32_t
size
,
int32_t
startOffset
,
int32_t
rowSize
,
SName
*
pName
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
,
SArray
*
pBlockList
);
/**
...
...
@@ -142,10 +141,6 @@ void tscClearInterpInfo(SQueryInfo* pQueryInfo);
bool
tscIsInsertData
(
char
*
sqlstr
);
/* use for keep current db info temporarily, for handle table with db prefix */
// todo remove it
void
tscGetDBInfoFromTableFullName
(
char
*
tableId
,
char
*
db
);
int
tscAllocPayload
(
SSqlCmd
*
pCmd
,
int
size
);
TAOS_FIELD
tscCreateField
(
int8_t
type
,
const
char
*
name
,
int16_t
bytes
);
...
...
@@ -215,8 +210,8 @@ SQueryInfo *tscGetQueryInfoDetailSafely(SSqlCmd *pCmd, int32_t subClauseIndex);
void
tscClearTableMetaInfo
(
STableMetaInfo
*
pTableMetaInfo
);
STableMetaInfo
*
tscAddTableMetaInfo
(
SQueryInfo
*
pQueryInfo
,
const
char
*
name
,
STableMeta
*
pTableMeta
,
SVgroupsInfo
*
vgroupList
,
SArray
*
pTagCols
,
SArray
*
pVgroupTables
);
STableMetaInfo
*
tscAddTableMetaInfo
(
SQueryInfo
*
pQueryInfo
,
SName
*
name
,
STableMeta
*
pTableMeta
,
SVgroupsInfo
*
vgroupList
,
SArray
*
pTagCols
,
SArray
*
pVgroupTables
);
STableMetaInfo
*
tscAddEmptyMetaInfo
(
SQueryInfo
*
pQueryInfo
);
int32_t
tscAddSubqueryInfo
(
SSqlCmd
*
pCmd
);
...
...
@@ -225,7 +220,7 @@ void tscInitQueryInfo(SQueryInfo* pQueryInfo);
void
tscClearSubqueryInfo
(
SSqlCmd
*
pCmd
);
void
tscFreeVgroupTableInfo
(
SArray
*
pVgroupTables
);
SArray
*
tscVgroupTableInfo
Clone
(
SArray
*
pVgroupTables
);
SArray
*
tscVgroupTableInfo
Dup
(
SArray
*
pVgroupTables
);
void
tscRemoveVgroupTableGroup
(
SArray
*
pVgroupTable
,
int32_t
index
);
void
tscVgroupTableCopy
(
SVgroupTableInfo
*
info
,
SVgroupTableInfo
*
pInfo
);
...
...
@@ -292,7 +287,7 @@ uint32_t tscGetTableMetaSize(STableMeta* pTableMeta);
CChildTableMeta
*
tscCreateChildMeta
(
STableMeta
*
pTableMeta
);
uint32_t
tscGetTableMetaMaxSize
();
int32_t
tscCreateTableMetaFromCChildMeta
(
STableMeta
*
pChild
,
const
char
*
name
);
STableMeta
*
tscTableMeta
Clone
(
STableMeta
*
pTableMeta
);
STableMeta
*
tscTableMeta
Dup
(
STableMeta
*
pTableMeta
);
void
*
malloc_throw
(
size_t
size
);
...
...
src/client/inc/tsclient.h
浏览文件 @
2f34cf62
...
...
@@ -39,7 +39,7 @@ extern "C" {
// forward declaration
struct
SSqlInfo
;
struct
SLocal
Reduc
er
;
struct
SLocal
Merg
er
;
// data source from sql string or from file
enum
{
...
...
@@ -67,7 +67,7 @@ typedef struct CChildTableMeta {
int32_t
vgId
;
STableId
id
;
uint8_t
tableType
;
char
sTableName
[
TSDB_TABLE_FNAME_LEN
];
char
sTableName
[
TSDB_TABLE_FNAME_LEN
];
//super table name, not full name
}
CChildTableMeta
;
typedef
struct
STableMeta
{
...
...
@@ -91,7 +91,7 @@ typedef struct STableMetaInfo {
* 2. keep the vgroup index for multi-vnode insertion
*/
int32_t
vgroupIndex
;
char
name
[
TSDB_TABLE_FNAME_LEN
];
// (super) table name
SName
name
;
char
aliasName
[
TSDB_TABLE_NAME_LEN
];
// alias name of table specified in query sql
SArray
*
tagColList
;
// SArray<SColumn*>, involved tag columns
}
STableMetaInfo
;
...
...
@@ -142,7 +142,7 @@ typedef struct SCond {
}
SCond
;
typedef
struct
SJoinNode
{
char
table
Id
[
TSDB_TABLE_FNAME_LEN
];
char
table
Name
[
TSDB_TABLE_FNAME_LEN
];
uint64_t
uid
;
int16_t
tagColId
;
}
SJoinNode
;
...
...
@@ -176,7 +176,7 @@ typedef struct SParamInfo {
}
SParamInfo
;
typedef
struct
STableDataBlocks
{
char
tableName
[
TSDB_TABLE_FNAME_LEN
]
;
SName
tableName
;
int8_t
tsSource
;
// where does the UNIX timestamp come from, server or client
bool
ordered
;
// if current rows are ordered or not
int64_t
vgId
;
// virtual group id
...
...
@@ -254,7 +254,7 @@ typedef struct {
int8_t
submitSchema
;
// submit block is built with table schema
STagData
tagData
;
// NOTE: pTagData->data is used as a variant length array
char
**
pTableNameList
;
// all involved tableMeta list of current insert sql statement.
SName
**
pTableNameList
;
// all involved tableMeta list of current insert sql statement.
int32_t
numOfTables
;
SHashObj
*
pTableBlockHashList
;
// data block for each table
...
...
@@ -292,7 +292,7 @@ typedef struct {
SColumnIndex
*
pColumnIndex
;
SArithmeticSupport
*
pArithSup
;
// support the arithmetic expression calculation on agg functions
struct
SLocal
Reducer
*
pLocalReduc
er
;
struct
SLocal
Merger
*
pLocalMerg
er
;
}
SSqlRes
;
typedef
struct
STscObj
{
...
...
@@ -436,7 +436,7 @@ void waitForQueryRsp(void *param, TAOS_RES *tres, int code);
void
doAsyncQuery
(
STscObj
*
pObj
,
SSqlObj
*
pSql
,
__async_cb_func_t
fp
,
void
*
param
,
const
char
*
sqlstr
,
size_t
sqlLen
);
void
tsc
ProcessMultiVnodesImport
FromFile
(
SSqlObj
*
pSql
);
void
tsc
ImportData
FromFile
(
SSqlObj
*
pSql
);
void
tscInitResObjForLocalQuery
(
SSqlObj
*
pObj
,
int32_t
numOfRes
,
int32_t
rowLen
);
bool
tscIsUpdateQuery
(
SSqlObj
*
pSql
);
bool
tscHasReachLimitation
(
SQueryInfo
*
pQueryInfo
,
SSqlRes
*
pRes
);
...
...
src/client/src/tscLocal.c
浏览文件 @
2f34cf62
...
...
@@ -569,10 +569,12 @@ static int32_t tscRebuildDDLForSubTable(SSqlObj *pSql, const char *tableName, ch
}
char
fullName
[
TSDB_TABLE_FNAME_LEN
*
2
]
=
{
0
};
extractDBName
(
pTableMetaInfo
->
name
,
fullName
);
tNameGetDbName
(
&
pTableMetaInfo
->
name
,
fullName
);
extractTableName
(
pMeta
->
sTableName
,
param
->
sTableName
);
snprintf
(
fullName
+
strlen
(
fullName
),
TSDB_TABLE_FNAME_LEN
-
strlen
(
fullName
),
".%s"
,
param
->
sTableName
);
extractTableName
(
pTableMetaInfo
->
name
,
param
->
buf
);
strncpy
(
param
->
buf
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
),
TSDB_TABLE_NAME_LEN
);
param
->
pParentSql
=
pSql
;
param
->
pInterSql
=
pInterSql
;
...
...
@@ -602,6 +604,7 @@ static int32_t tscRebuildDDLForSubTable(SSqlObj *pSql, const char *tableName, ch
return
TSDB_CODE_TSC_ACTION_IN_PROGRESS
;
}
static
int32_t
tscRebuildDDLForNormalTable
(
SSqlObj
*
pSql
,
const
char
*
tableName
,
char
*
ddl
)
{
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
...
...
@@ -675,8 +678,7 @@ static int32_t tscProcessShowCreateTable(SSqlObj *pSql) {
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
assert
(
pTableMetaInfo
->
pTableMeta
!=
NULL
);
char
tableName
[
TSDB_TABLE_NAME_LEN
]
=
{
0
};
extractTableName
(
pTableMetaInfo
->
name
,
tableName
);
const
char
*
tableName
=
tNameGetTableName
(
&
pTableMetaInfo
->
name
);
char
*
result
=
(
char
*
)
calloc
(
1
,
TSDB_MAX_BINARY_LEN
);
int32_t
code
=
TSDB_CODE_SUCCESS
;
...
...
@@ -712,7 +714,9 @@ static int32_t tscProcessShowCreateDatabase(SSqlObj *pSql) {
free
(
pInterSql
);
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
extractTableName
(
pTableMetaInfo
->
name
,
param
->
buf
);
strncpy
(
param
->
buf
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
),
TSDB_TABLE_NAME_LEN
);
param
->
pParentSql
=
pSql
;
param
->
pInterSql
=
pInterSql
;
param
->
fp
=
tscRebuildCreateDBStatement
;
...
...
src/client/src/tscLocalMerge.c
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
src/client/src/tscParseInsert.c
浏览文件 @
2f34cf62
...
...
@@ -703,7 +703,7 @@ static int32_t doParseInsertStatement(SSqlCmd* pCmd, char **str, SParsedDataColI
STableDataBlocks
*
dataBuf
=
NULL
;
int32_t
ret
=
tscGetDataBlockFromList
(
pCmd
->
pTableBlockHashList
,
pTableMeta
->
id
.
uid
,
TSDB_DEFAULT_PAYLOAD_SIZE
,
sizeof
(
SSubmitBlk
),
tinfo
.
rowSize
,
pTableMetaInfo
->
name
,
pTableMeta
,
&
dataBuf
,
NULL
);
sizeof
(
SSubmitBlk
),
tinfo
.
rowSize
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
&
dataBuf
,
NULL
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
ret
;
}
...
...
@@ -813,26 +813,26 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql) {
tscAddEmptyMetaInfo
(
pQueryInfo
);
}
STableMetaInfo
*
pSTableMet
erMet
aInfo
=
tscGetMetaInfo
(
pQueryInfo
,
STABLE_INDEX
);
code
=
tscSetTableFullName
(
pSTableMet
erMet
aInfo
,
&
sToken
,
pSql
);
STableMetaInfo
*
pSTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
STABLE_INDEX
);
code
=
tscSetTableFullName
(
pSTableMetaInfo
,
&
sToken
,
pSql
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
t
strncpy
(
pCmd
->
tagData
.
name
,
pSTableMeterMetaInfo
->
name
,
sizeof
(
pCmd
->
tagData
.
name
)
);
t
NameExtractFullName
(
&
pSTableMetaInfo
->
name
,
pCmd
->
tagData
.
name
);
pCmd
->
tagData
.
dataLen
=
0
;
code
=
tscGetTableMeta
(
pSql
,
pSTableMet
erMet
aInfo
);
code
=
tscGetTableMeta
(
pSql
,
pSTableMetaInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
if
(
!
UTIL_TABLE_IS_SUPER_TABLE
(
pSTableMet
erMet
aInfo
))
{
if
(
!
UTIL_TABLE_IS_SUPER_TABLE
(
pSTableMetaInfo
))
{
return
tscInvalidSQLErrMsg
(
pCmd
->
payload
,
"create table only from super table is allowed"
,
sToken
.
z
);
}
SSchema
*
pTagSchema
=
tscGetTableTagSchema
(
pSTableMet
erMet
aInfo
->
pTableMeta
);
STableComInfo
tinfo
=
tscGetTableInfo
(
pSTableMet
erMet
aInfo
->
pTableMeta
);
SSchema
*
pTagSchema
=
tscGetTableTagSchema
(
pSTableMetaInfo
->
pTableMeta
);
STableComInfo
tinfo
=
tscGetTableInfo
(
pSTableMetaInfo
->
pTableMeta
);
index
=
0
;
sToken
=
tStrGetToken
(
sql
,
&
index
,
false
,
0
,
NULL
);
...
...
@@ -840,7 +840,7 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql) {
SParsedDataColInfo
spd
=
{
0
};
uint8_t
numOfTags
=
tscGetNumOfTags
(
pSTableMet
erMet
aInfo
->
pTableMeta
);
uint8_t
numOfTags
=
tscGetNumOfTags
(
pSTableMetaInfo
->
pTableMeta
);
spd
.
numOfCols
=
numOfTags
;
// if specify some tags column
...
...
@@ -1406,39 +1406,38 @@ typedef struct SImportFileSupport {
FILE
*
fp
;
}
SImportFileSupport
;
static
void
parseFileSendDataBlock
(
void
*
param
,
TAOS_RES
*
tres
,
int
code
)
{
static
void
parseFileSendDataBlock
(
void
*
param
,
TAOS_RES
*
tres
,
int
32_t
numOfRows
)
{
assert
(
param
!=
NULL
&&
tres
!=
NULL
);
char
*
tokenBuf
=
NULL
;
size_t
n
=
0
;
ssize_t
readLen
=
0
;
char
*
line
=
NULL
;
int32_t
count
=
0
;
int32_t
maxRows
=
0
;
FILE
*
fp
=
NULL
;
SSqlObj
*
pSql
=
tres
;
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SImportFileSupport
*
pSupporter
=
(
SImportFileSupport
*
)
param
;
SImportFileSupport
*
pSupporter
=
(
SImportFileSupport
*
)
param
;
SSqlObj
*
pParentSql
=
pSupporter
->
pSql
;
FILE
*
fp
=
pSupporter
->
fp
;
if
(
taos_errno
(
pSql
)
!=
TSDB_CODE_SUCCESS
)
{
// handle error
assert
(
taos_errno
(
pSql
)
==
code
);
do
{
if
(
code
==
TSDB_CODE_TDB_TABLE_RECONFIGURE
)
{
assert
(
pSql
->
res
.
numOfRows
==
0
);
int32_t
errc
=
fseek
(
fp
,
0
,
SEEK_SET
);
if
(
errc
<
0
)
{
tscError
(
"%p failed to seek SEEK_SET since:%s"
,
pSql
,
tstrerror
(
errno
));
}
else
{
break
;
}
}
taos_free_result
(
pSql
);
tfree
(
pSupporter
);
fclose
(
fp
);
pParentSql
->
res
.
code
=
code
;
tscAsyncResultOnError
(
pParentSql
);
return
;
}
while
(
0
);
fp
=
pSupporter
->
fp
;
int32_t
code
=
pSql
->
res
.
code
;
// retry parse data from file and import data from the begining again
if
(
code
==
TSDB_CODE_TDB_TABLE_RECONFIGURE
)
{
assert
(
pSql
->
res
.
numOfRows
==
0
);
int32_t
ret
=
fseek
(
fp
,
0
,
SEEK_SET
);
if
(
ret
<
0
)
{
tscError
(
"%p failed to seek SEEK_SET since:%s"
,
pSql
,
tstrerror
(
errno
));
code
=
TAOS_SYSTEM_ERROR
(
errno
);
goto
_error
;
}
}
else
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
goto
_error
;
}
// accumulate the total submit records
...
...
@@ -1452,28 +1451,32 @@ static void parseFileSendDataBlock(void *param, TAOS_RES *tres, int code) {
SParsedDataColInfo
spd
=
{.
numOfCols
=
tinfo
.
numOfColumns
};
tscSetAssignedColumnInfo
(
&
spd
,
pSchema
,
tinfo
.
numOfColumns
);
size_t
n
=
0
;
ssize_t
readLen
=
0
;
char
*
line
=
NULL
;
int32_t
count
=
0
;
int32_t
maxRows
=
0
;
tfree
(
pCmd
->
pTableNameList
);
pCmd
->
pDataBlocks
=
tscDestroyBlockArrayList
(
pCmd
->
pDataBlocks
);
if
(
pCmd
->
pTableBlockHashList
==
NULL
)
{
pCmd
->
pTableBlockHashList
=
taosHashInit
(
16
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BIGINT
),
true
,
false
);
if
(
pCmd
->
pTableBlockHashList
==
NULL
)
{
code
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
goto
_error
;
}
}
STableDataBlocks
*
pTableDataBlock
=
NULL
;
int32_t
ret
=
tscGetDataBlockFromList
(
pCmd
->
pTableBlockHashList
,
pTableMeta
->
id
.
uid
,
TSDB_PAYLOAD_SIZE
,
sizeof
(
SSubmitBlk
),
tinfo
.
rowSize
,
pTableMetaInfo
->
name
,
pTableMeta
,
&
pTableDataBlock
,
NULL
);
int32_t
ret
=
tscGetDataBlockFromList
(
pCmd
->
pTableBlockHashList
,
pTableMeta
->
id
.
uid
,
TSDB_PAYLOAD_SIZE
,
sizeof
(
SSubmitBlk
),
tinfo
.
rowSize
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
&
pTableDataBlock
,
NULL
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
// return ret;
pParentSql
->
res
.
code
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
goto
_error
;
}
tscAllocateMemIfNeed
(
pTableDataBlock
,
tinfo
.
rowSize
,
&
maxRows
);
char
*
tokenBuf
=
calloc
(
1
,
4096
);
tokenBuf
=
calloc
(
1
,
TSDB_MAX_BYTES_PER_ROW
);
if
(
tokenBuf
==
NULL
)
{
code
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
goto
_error
;
}
while
((
readLen
=
tgetline
(
&
line
,
&
n
,
fp
))
!=
-
1
)
{
if
((
'\r'
==
line
[
readLen
-
1
])
||
(
'\n'
==
line
[
readLen
-
1
]))
{
...
...
@@ -1501,30 +1504,42 @@ static void parseFileSendDataBlock(void *param, TAOS_RES *tres, int code) {
}
tfree
(
tokenBuf
);
free
(
line
);
tfree
(
line
);
pParentSql
->
res
.
code
=
code
;
if
(
code
==
TSDB_CODE_SUCCESS
)
{
if
(
count
>
0
)
{
code
=
doPackSendDataBlock
(
pSql
,
count
,
pTableDataBlock
);
if
(
code
==
TSDB_CODE_SUCCESS
)
{
return
;
}
else
{
goto
_error
;
}
}
else
{
taos_free_result
(
pSql
);
tfree
(
pSupporter
);
fclose
(
fp
);
if
(
count
>
0
)
{
code
=
doPackSendDataBlock
(
pSql
,
count
,
pTableDataBlock
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
pParentSql
->
res
.
code
=
code
;
tscAsyncResultOnError
(
pParentSql
);
pParentSql
->
fp
=
pParentSql
->
fetchFp
;
// all data has been sent to vnode, call user function
int32_t
v
=
(
code
!=
TSDB_CODE_SUCCESS
)
?
code
:
(
int32_t
)
pParentSql
->
res
.
numOfRows
;
(
*
pParentSql
->
fp
)(
pParentSql
->
param
,
pParentSql
,
v
);
return
;
}
}
}
else
{
taos_free_result
(
pSql
);
tfree
(
pSupporter
);
fclose
(
fp
);
pParentSql
->
fp
=
pParentSql
->
fetchFp
;
_error:
tfree
(
tokenBuf
);
tfree
(
line
);
taos_free_result
(
pSql
);
tfree
(
pSupporter
);
fclose
(
fp
)
;
// all data has been sent to vnode, call user function
int32_t
v
=
(
pParentSql
->
res
.
code
!=
TSDB_CODE_SUCCESS
)
?
pParentSql
->
res
.
code
:
(
int32_t
)
pParentSql
->
res
.
numOfRows
;
(
*
pParentSql
->
fp
)(
pParentSql
->
param
,
pParentSql
,
v
);
}
tscAsyncResultOnError
(
pParentSql
);
}
void
tsc
ProcessMultiVnodesImport
FromFile
(
SSqlObj
*
pSql
)
{
void
tsc
ImportData
FromFile
(
SSqlObj
*
pSql
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
if
(
pCmd
->
command
!=
TSDB_SQL_INSERT
)
{
return
;
...
...
@@ -1543,12 +1558,11 @@ void tscProcessMultiVnodesImportFromFile(SSqlObj *pSql) {
tfree
(
pSupporter
);
tscAsyncResultOnError
(
pSql
);
return
;
}
pSupporter
->
pSql
=
pSql
;
pSupporter
->
fp
=
fp
;
pSupporter
->
fp
=
fp
;
parseFileSendDataBlock
(
pSupporter
,
pNew
,
0
);
parseFileSendDataBlock
(
pSupporter
,
pNew
,
TSDB_CODE_SUCCESS
);
}
src/client/src/tscPrepare.c
浏览文件 @
2f34cf62
...
...
@@ -707,7 +707,7 @@ static int insertStmtBindParam(STscStmt* stmt, TAOS_BIND* bind) {
int32_t
ret
=
tscGetDataBlockFromList
(
pCmd
->
pTableBlockHashList
,
pTableMeta
->
id
.
uid
,
TSDB_PAYLOAD_SIZE
,
sizeof
(
SSubmitBlk
),
pTableMeta
->
tableInfo
.
rowSize
,
pTableMetaInfo
->
name
,
pTableMeta
,
&
pBlock
,
NULL
);
pTableMeta
->
tableInfo
.
rowSize
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
&
pBlock
,
NULL
);
if
(
ret
!=
0
)
{
// todo handle error
}
...
...
@@ -790,7 +790,7 @@ static int insertStmtExecute(STscStmt* stmt) {
int32_t
ret
=
tscGetDataBlockFromList
(
pCmd
->
pTableBlockHashList
,
pTableMeta
->
id
.
uid
,
TSDB_PAYLOAD_SIZE
,
sizeof
(
SSubmitBlk
),
pTableMeta
->
tableInfo
.
rowSize
,
pTableMetaInfo
->
name
,
pTableMeta
,
&
pBlock
,
NULL
);
pTableMeta
->
tableInfo
.
rowSize
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
&
pBlock
,
NULL
);
assert
(
ret
==
0
);
pBlock
->
size
=
sizeof
(
SSubmitBlk
)
+
pCmd
->
batchSize
*
pBlock
->
rowSize
;
SSubmitBlk
*
pBlk
=
(
SSubmitBlk
*
)
pBlock
->
pData
;
...
...
src/client/src/tscSQLParser.c
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
src/client/src/tscSchemaUtil.c
浏览文件 @
2f34cf62
...
...
@@ -106,6 +106,7 @@ STableMeta* tscCreateTableMetaFromMsg(STableMetaMsg* pTableMetaMsg) {
pTableMeta
->
sversion
=
pTableMetaMsg
->
sversion
;
pTableMeta
->
tversion
=
pTableMetaMsg
->
tversion
;
tstrncpy
(
pTableMeta
->
sTableName
,
pTableMetaMsg
->
sTableName
,
TSDB_TABLE_FNAME_LEN
);
memcpy
(
pTableMeta
->
schema
,
pTableMetaMsg
->
schema
,
schemaSize
);
...
...
src/client/src/tscServer.c
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
src/client/src/tscSql.c
浏览文件 @
2f34cf62
...
...
@@ -995,7 +995,8 @@ static int tscParseTblNameList(SSqlObj *pSql, const char *tblNameList, int32_t t
return
code
;
}
if
(
payloadLen
+
strlen
(
pTableMetaInfo
->
name
)
+
128
>=
pCmd
->
allocSize
)
{
int32_t
xlen
=
tNameLen
(
&
pTableMetaInfo
->
name
);
if
(
payloadLen
+
xlen
+
128
>=
pCmd
->
allocSize
)
{
char
*
pNewMem
=
realloc
(
pCmd
->
payload
,
pCmd
->
allocSize
+
tblListLen
);
if
(
pNewMem
==
NULL
)
{
code
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
...
...
@@ -1008,7 +1009,9 @@ static int tscParseTblNameList(SSqlObj *pSql, const char *tblNameList, int32_t t
pMsg
=
pCmd
->
payload
;
}
payloadLen
+=
sprintf
(
pMsg
+
payloadLen
,
"%s,"
,
pTableMetaInfo
->
name
);
char
n
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tNameExtractFullName
(
&
pTableMetaInfo
->
name
,
n
);
payloadLen
+=
sprintf
(
pMsg
+
payloadLen
,
"%s,"
,
n
);
}
*
(
pMsg
+
payloadLen
)
=
'\0'
;
...
...
src/client/src/tscStream.c
浏览文件 @
2f34cf62
...
...
@@ -104,7 +104,7 @@ static void doLaunchQuery(void* param, TAOS_RES* tres, int32_t code) {
// failed to get table Meta or vgroup list, retry in 10sec.
if
(
code
==
TSDB_CODE_SUCCESS
)
{
tscTansformSQLFuncForSTableQuery
(
pQueryInfo
);
tscDebug
(
"%p stream:%p, start stream query on:%s"
,
pSql
,
pStream
,
pTableMetaInfo
->
name
);
tscDebug
(
"%p stream:%p, start stream query on:%s"
,
pSql
,
pStream
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
)
);
pSql
->
fp
=
tscProcessStreamQueryCallback
;
pSql
->
fetchFp
=
tscProcessStreamQueryCallback
;
...
...
@@ -191,8 +191,9 @@ static void tscProcessStreamQueryCallback(void *param, TAOS_RES *tres, int numOf
STableMetaInfo
*
pTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pStream
->
pSql
->
cmd
,
0
,
0
);
char
*
name
=
pTableMetaInfo
->
name
;
taosHashRemove
(
tscTableMetaInfo
,
name
,
strnlen
(
name
,
TSDB_TABLE_FNAME_LEN
));
assert
(
0
);
// char* name = pTableMetaInfo->name;
// taosHashRemove(tscTableMetaInfo, name, strnlen(name, TSDB_TABLE_FNAME_LEN));
pTableMetaInfo
->
vgroupList
=
tscVgroupInfoClear
(
pTableMetaInfo
->
vgroupList
);
tscSetRetryTimer
(
pStream
,
pStream
->
pSql
,
retryDelay
);
...
...
@@ -291,8 +292,8 @@ static void tscProcessStreamRetrieveResult(void *param, TAOS_RES *res, int numOf
pStream
->
stime
+=
1
;
}
tscDebug
(
"%p stream:%p, query on:%s, fetch result completed, fetched rows:%"
PRId64
,
pSql
,
pStream
,
pTableMetaInfo
->
name
,
pStream
->
numOfRes
);
//
tscDebug("%p stream:%p, query on:%s, fetch result completed, fetched rows:%" PRId64, pSql, pStream, pTableMetaInfo->name,
//
pStream->numOfRes);
tfree
(
pTableMetaInfo
->
pTableMeta
);
...
...
@@ -555,8 +556,8 @@ static void tscCreateStream(void *param, TAOS_RES *res, int code) {
taosTmrReset
(
tscProcessStreamTimer
,
(
int32_t
)
starttime
,
pStream
,
tscTmr
,
&
pStream
->
pTimer
);
tscDebug
(
"%p stream:%p is opened, query on:%s, interval:%"
PRId64
", sliding:%"
PRId64
", first launched in:%"
PRId64
", sql:%s"
,
pSql
,
pStream
,
pTableMetaInfo
->
name
,
pStream
->
interval
.
interval
,
pStream
->
interval
.
sliding
,
starttime
,
pSql
->
sqlstr
);
//
tscDebug("%p stream:%p is opened, query on:%s, interval:%" PRId64 ", sliding:%" PRId64 ", first launched in:%" PRId64 ", sql:%s", pSql,
//
pStream, pTableMetaInfo->name, pStream->interval.interval, pStream->interval.sliding, starttime, pSql->sqlstr);
}
void
tscSetStreamDestTable
(
SSqlStream
*
pStream
,
const
char
*
dstTable
)
{
...
...
src/client/src/tscSubquery.c
浏览文件 @
2f34cf62
...
...
@@ -534,7 +534,7 @@ static int32_t tscLaunchRealSubqueries(SSqlObj* pSql) {
size_t
numOfCols
=
taosArrayGetSize
(
pQueryInfo
->
colList
);
tscDebug
(
"%p subquery:%p tableIndex:%d, vgroupIndex:%d, type:%d, exprInfo:%"
PRIzu
", colList:%"
PRIzu
", fieldsInfo:%d, name:%s"
,
pSql
,
pNew
,
0
,
pTableMetaInfo
->
vgroupIndex
,
pQueryInfo
->
type
,
taosArrayGetSize
(
pQueryInfo
->
exprList
),
numOfCols
,
pQueryInfo
->
fieldsInfo
.
numOfOutput
,
pTableMetaInfo
->
name
);
numOfCols
,
pQueryInfo
->
fieldsInfo
.
numOfOutput
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
)
);
}
//prepare the subqueries object failed, abort
...
...
@@ -730,7 +730,7 @@ static void issueTSCompQuery(SSqlObj* pSql, SJoinSupporter* pSupporter, SSqlObj*
"%p subquery:%p tableIndex:%d, vgroupIndex:%d, numOfVgroups:%d, type:%d, ts_comp query to retrieve timestamps, "
"numOfExpr:%"
PRIzu
", colList:%"
PRIzu
", numOfOutputFields:%d, name:%s"
,
pParent
,
pSql
,
0
,
pTableMetaInfo
->
vgroupIndex
,
pTableMetaInfo
->
vgroupList
->
numOfVgroups
,
pQueryInfo
->
type
,
tscSqlExprNumOfExprs
(
pQueryInfo
),
numOfCols
,
pQueryInfo
->
fieldsInfo
.
numOfOutput
,
pTableMetaInfo
->
name
);
tscSqlExprNumOfExprs
(
pQueryInfo
),
numOfCols
,
pQueryInfo
->
fieldsInfo
.
numOfOutput
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
)
);
tscProcessSql
(
pSql
);
}
...
...
@@ -951,10 +951,10 @@ static void tidTagRetrieveCallback(void* param, TAOS_RES* tres, int32_t numOfRow
tscBuildVgroupTableInfo
(
pParentSql
,
pTableMetaInfo2
,
s2
);
SSqlObj
*
psub1
=
pParentSql
->
pSubs
[
0
];
((
SJoinSupporter
*
)
psub1
->
param
)
->
pVgroupTables
=
tscVgroupTableInfo
Clone
(
pTableMetaInfo1
->
pVgroupTables
);
((
SJoinSupporter
*
)
psub1
->
param
)
->
pVgroupTables
=
tscVgroupTableInfo
Dup
(
pTableMetaInfo1
->
pVgroupTables
);
SSqlObj
*
psub2
=
pParentSql
->
pSubs
[
1
];
((
SJoinSupporter
*
)
psub2
->
param
)
->
pVgroupTables
=
tscVgroupTableInfo
Clone
(
pTableMetaInfo2
->
pVgroupTables
);
((
SJoinSupporter
*
)
psub2
->
param
)
->
pVgroupTables
=
tscVgroupTableInfo
Dup
(
pTableMetaInfo2
->
pVgroupTables
);
pParentSql
->
subState
.
numOfSub
=
2
;
...
...
@@ -1636,7 +1636,7 @@ int32_t tscCreateJoinSubquery(SSqlObj *pSql, int16_t tableIndex, SJoinSupporter
"%p subquery:%p tableIndex:%d, vgroupIndex:%d, type:%d, transfer to tid_tag query to retrieve (tableId, tags), "
"exprInfo:%"
PRIzu
", colList:%"
PRIzu
", fieldsInfo:%d, tagIndex:%d, name:%s"
,
pSql
,
pNew
,
tableIndex
,
pTableMetaInfo
->
vgroupIndex
,
pNewQueryInfo
->
type
,
tscSqlExprNumOfExprs
(
pNewQueryInfo
),
numOfCols
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
colIndex
.
columnIndex
,
pNewQueryInfo
->
pTableMetaInfo
[
0
]
->
name
);
numOfCols
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
colIndex
.
columnIndex
,
tNameGetTableName
(
&
pNewQueryInfo
->
pTableMetaInfo
[
0
]
->
name
)
);
}
else
{
SSchema
colSchema
=
{.
type
=
TSDB_DATA_TYPE_BINARY
,
.
bytes
=
1
};
SColumnIndex
colIndex
=
{
0
,
PRIMARYKEY_TIMESTAMP_COL_INDEX
};
...
...
@@ -1671,7 +1671,7 @@ int32_t tscCreateJoinSubquery(SSqlObj *pSql, int16_t tableIndex, SJoinSupporter
"%p subquery:%p tableIndex:%d, vgroupIndex:%d, type:%u, transfer to ts_comp query to retrieve timestamps, "
"exprInfo:%"
PRIzu
", colList:%"
PRIzu
", fieldsInfo:%d, name:%s"
,
pSql
,
pNew
,
tableIndex
,
pTableMetaInfo
->
vgroupIndex
,
pNewQueryInfo
->
type
,
tscSqlExprNumOfExprs
(
pNewQueryInfo
),
numOfCols
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
pNewQueryInfo
->
pTableMetaInfo
[
0
]
->
name
);
numOfCols
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
tNameGetTableName
(
&
pNewQueryInfo
->
pTableMetaInfo
[
0
]
->
name
)
);
}
}
else
{
assert
(
0
);
...
...
@@ -2133,7 +2133,7 @@ static void tscAllDataRetrievedFromDnode(SRetrieveSupport *trsupport, SSqlObj* p
SQueryInfo
*
pPQueryInfo
=
tscGetQueryInfoDetail
(
&
pParentSql
->
cmd
,
0
);
tscClearInterpInfo
(
pPQueryInfo
);
tscCreateLocal
Reduc
er
(
trsupport
->
pExtMemBuffer
,
pState
->
numOfSub
,
pDesc
,
trsupport
->
pFinalColModel
,
trsupport
->
pFFColModel
,
pParentSql
);
tscCreateLocal
Merg
er
(
trsupport
->
pExtMemBuffer
,
pState
->
numOfSub
,
pDesc
,
trsupport
->
pFinalColModel
,
trsupport
->
pFFColModel
,
pParentSql
);
tscDebug
(
"%p build loser tree completed"
,
pParentSql
);
pParentSql
->
res
.
precision
=
pSql
->
res
.
precision
;
...
...
@@ -2421,7 +2421,7 @@ static void multiVnodeInsertFinalize(void* param, TAOS_RES* tres, int numOfRows)
tscFreeQueryInfo
(
&
pSql
->
cmd
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetailSafely
(
&
pSql
->
cmd
,
0
);
STableMetaInfo
*
pMasterTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pParentObj
->
cmd
,
pSql
->
cmd
.
clauseIndex
,
0
);
tscAddTableMetaInfo
(
pQueryInfo
,
pMasterTableMetaInfo
->
name
,
NULL
,
NULL
,
NULL
,
NULL
);
tscAddTableMetaInfo
(
pQueryInfo
,
&
pMasterTableMetaInfo
->
name
,
NULL
,
NULL
,
NULL
,
NULL
);
subquerySetState
(
pSql
,
&
pParentObj
->
subState
,
i
,
0
);
...
...
@@ -2434,7 +2434,8 @@ static void multiVnodeInsertFinalize(void* param, TAOS_RES* tres, int numOfRows)
tscDebug
(
"%p cleanup %d tableMeta in hashTable"
,
pParentObj
,
pParentObj
->
cmd
.
numOfTables
);
for
(
int32_t
i
=
0
;
i
<
pParentObj
->
cmd
.
numOfTables
;
++
i
)
{
char
*
name
=
pParentObj
->
cmd
.
pTableNameList
[
i
];
char
name
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tNameExtractFullName
(
pParentObj
->
cmd
.
pTableNameList
[
i
],
name
);
taosHashRemove
(
tscTableMetaInfo
,
name
,
strnlen
(
name
,
TSDB_TABLE_FNAME_LEN
));
}
...
...
src/client/src/tscUtil.c
浏览文件 @
2f34cf62
...
...
@@ -89,21 +89,6 @@ bool tscQueryTags(SQueryInfo* pQueryInfo) {
return
true
;
}
// todo refactor, extract methods and move the common module
void
tscGetDBInfoFromTableFullName
(
char
*
tableId
,
char
*
db
)
{
char
*
st
=
strstr
(
tableId
,
TS_PATH_DELIMITER
);
if
(
st
!=
NULL
)
{
char
*
end
=
strstr
(
st
+
1
,
TS_PATH_DELIMITER
);
if
(
end
!=
NULL
)
{
memcpy
(
db
,
tableId
,
(
end
-
tableId
));
db
[
end
-
tableId
]
=
0
;
return
;
}
}
db
[
0
]
=
0
;
}
bool
tscIsTwoStageSTableQuery
(
SQueryInfo
*
pQueryInfo
,
int32_t
tableIndex
)
{
if
(
pQueryInfo
==
NULL
)
{
return
false
;
...
...
@@ -420,7 +405,7 @@ void tscResetSqlCmdObj(SSqlCmd* pCmd) {
}
void
tscFreeSqlResult
(
SSqlObj
*
pSql
)
{
tscDestroyLocal
Reduc
er
(
pSql
);
tscDestroyLocal
Merg
er
(
pSql
);
SSqlRes
*
pRes
=
&
pSql
->
res
;
tscDestroyResPointerInfo
(
pRes
);
...
...
@@ -612,15 +597,13 @@ int32_t tscCopyDataBlockToPayload(SSqlObj* pSql, STableDataBlocks* pDataBlock) {
// todo refactor
// set the correct table meta object, the table meta has been locked in pDataBlocks, so it must be in the cache
if
(
pTableMetaInfo
->
pTableMeta
!=
pDataBlock
->
pTableMeta
)
{
t
strncpy
(
pTableMetaInfo
->
name
,
pDataBlock
->
tableName
,
sizeof
(
pTableMetaInfo
->
name
)
);
t
NameAssign
(
&
pTableMetaInfo
->
name
,
&
pDataBlock
->
tableName
);
if
(
pTableMetaInfo
->
pTableMeta
!=
NULL
)
{
tfree
(
pTableMetaInfo
->
pTableMeta
);
}
pTableMetaInfo
->
pTableMeta
=
tscTableMetaClone
(
pDataBlock
->
pTableMeta
);
}
else
{
assert
(
strncmp
(
pTableMetaInfo
->
name
,
pDataBlock
->
tableName
,
tListLen
(
pDataBlock
->
tableName
))
==
0
);
pTableMetaInfo
->
pTableMeta
=
tscTableMetaDup
(
pDataBlock
->
pTableMeta
);
}
/*
...
...
@@ -655,7 +638,7 @@ int32_t tscCopyDataBlockToPayload(SSqlObj* pSql, STableDataBlocks* pDataBlock) {
* @param dataBlocks
* @return
*/
int32_t
tscCreateDataBlock
(
size_t
initialSize
,
int32_t
rowSize
,
int32_t
startOffset
,
const
char
*
name
,
int32_t
tscCreateDataBlock
(
size_t
initialSize
,
int32_t
rowSize
,
int32_t
startOffset
,
SName
*
name
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
)
{
STableDataBlocks
*
dataBuf
=
(
STableDataBlocks
*
)
calloc
(
1
,
sizeof
(
STableDataBlocks
));
if
(
dataBuf
==
NULL
)
{
...
...
@@ -683,18 +666,18 @@ int32_t tscCreateDataBlock(size_t initialSize, int32_t rowSize, int32_t startOff
dataBuf
->
size
=
startOffset
;
dataBuf
->
tsSource
=
-
1
;
t
strncpy
(
dataBuf
->
tableName
,
name
,
sizeof
(
dataBuf
->
tableName
)
);
t
NameAssign
(
&
dataBuf
->
tableName
,
name
);
//Here we keep the tableMeta to avoid it to be remove by other threads.
dataBuf
->
pTableMeta
=
tscTableMeta
Clone
(
pTableMeta
);
dataBuf
->
pTableMeta
=
tscTableMeta
Dup
(
pTableMeta
);
assert
(
initialSize
>
0
&&
pTableMeta
!=
NULL
&&
dataBuf
->
pTableMeta
!=
NULL
);
*
dataBlocks
=
dataBuf
;
return
TSDB_CODE_SUCCESS
;
}
int32_t
tscGetDataBlockFromList
(
SHashObj
*
pHashList
,
int64_t
id
,
int32_t
size
,
int32_t
startOffset
,
int32_t
rowSize
,
const
char
*
tableId
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
,
SArray
*
pBlockList
)
{
int32_t
tscGetDataBlockFromList
(
SHashObj
*
pHashList
,
int64_t
id
,
int32_t
size
,
int32_t
startOffset
,
int32_t
rowSize
,
SName
*
name
,
STableMeta
*
pTableMeta
,
STableDataBlocks
**
dataBlocks
,
SArray
*
pBlockList
)
{
*
dataBlocks
=
NULL
;
STableDataBlocks
**
t1
=
(
STableDataBlocks
**
)
taosHashGet
(
pHashList
,
(
const
char
*
)
&
id
,
sizeof
(
id
));
if
(
t1
!=
NULL
)
{
...
...
@@ -702,7 +685,7 @@ int32_t tscGetDataBlockFromList(SHashObj* pHashList, int64_t id, int32_t size, i
}
if
(
*
dataBlocks
==
NULL
)
{
int32_t
ret
=
tscCreateDataBlock
((
size_t
)
size
,
rowSize
,
startOffset
,
tableId
,
pTableMeta
,
dataBlocks
);
int32_t
ret
=
tscCreateDataBlock
((
size_t
)
size
,
rowSize
,
startOffset
,
name
,
pTableMeta
,
dataBlocks
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
ret
;
}
...
...
@@ -803,7 +786,7 @@ static void extractTableNameList(SSqlCmd* pCmd, bool freeBlockMap) {
int32_t
i
=
0
;
while
(
p1
)
{
STableDataBlocks
*
pBlocks
=
*
p1
;
pCmd
->
pTableNameList
[
i
++
]
=
strndup
(
pBlocks
->
tableName
,
TSDB_TABLE_FNAME_LEN
);
pCmd
->
pTableNameList
[
i
++
]
=
tNameDup
(
&
pBlocks
->
tableName
);
p1
=
taosHashIterate
(
pCmd
->
pTableBlockHashList
,
p1
);
}
...
...
@@ -828,7 +811,7 @@ int32_t tscMergeTableDataBlocks(SSqlObj* pSql, bool freeBlockMap) {
STableDataBlocks
*
dataBuf
=
NULL
;
int32_t
ret
=
tscGetDataBlockFromList
(
pVnodeDataBlockHashList
,
pOneTableBlock
->
vgId
,
TSDB_PAYLOAD_SIZE
,
INSERT_HEAD_SIZE
,
0
,
pOneTableBlock
->
tableName
,
pOneTableBlock
->
pTableMeta
,
&
dataBuf
,
pVnodeDataBlockList
);
INSERT_HEAD_SIZE
,
0
,
&
pOneTableBlock
->
tableName
,
pOneTableBlock
->
pTableMeta
,
&
dataBuf
,
pVnodeDataBlockList
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
tscError
(
"%p failed to prepare the data block buffer for merging table data, code:%d"
,
pSql
,
ret
);
taosHashCleanup
(
pVnodeDataBlockHashList
);
...
...
@@ -861,8 +844,8 @@ int32_t tscMergeTableDataBlocks(SSqlObj* pSql, bool freeBlockMap) {
tscSortRemoveDataBlockDupRows
(
pOneTableBlock
);
char
*
ekey
=
(
char
*
)
pBlocks
->
data
+
pOneTableBlock
->
rowSize
*
(
pBlocks
->
numOfRows
-
1
);
tscDebug
(
"%p name:%s,
sid:%d rows:%d sversion:%d skey:%"
PRId64
", ekey:%"
PRId64
,
pSql
,
pOneTableBlock
->
tableName
,
tscDebug
(
"%p name:%s,
name:%d rows:%d sversion:%d skey:%"
PRId64
", ekey:%"
PRId64
,
pSql
,
tNameGetTableName
(
&
pOneTableBlock
->
tableName
)
,
pBlocks
->
tid
,
pBlocks
->
numOfRows
,
pBlocks
->
sversion
,
GET_INT64_VAL
(
pBlocks
->
data
),
GET_INT64_VAL
(
ekey
));
int32_t
len
=
pBlocks
->
numOfRows
*
(
pOneTableBlock
->
rowSize
+
expandSize
)
+
sizeof
(
STColumn
)
*
tscGetNumOfColumns
(
pOneTableBlock
->
pTableMeta
);
...
...
@@ -1310,7 +1293,7 @@ SColumn* tscColumnClone(const SColumn* src) {
dst
->
colIndex
=
src
->
colIndex
;
dst
->
numOfFilters
=
src
->
numOfFilters
;
dst
->
filterInfo
=
t
scFilterInfoClone
(
src
->
filterInfo
,
src
->
numOfFilters
);
dst
->
filterInfo
=
t
FilterInfoDup
(
src
->
filterInfo
,
src
->
numOfFilters
);
return
dst
;
}
...
...
@@ -1816,10 +1799,10 @@ void tscVgroupTableCopy(SVgroupTableInfo* info, SVgroupTableInfo* pInfo) {
info
->
vgInfo
.
epAddr
[
j
].
fqdn
=
strdup
(
pInfo
->
vgInfo
.
epAddr
[
j
].
fqdn
);
}
info
->
itemList
=
taosArray
Clone
(
pInfo
->
itemList
);
info
->
itemList
=
taosArray
Dup
(
pInfo
->
itemList
);
}
SArray
*
tscVgroupTableInfo
Clone
(
SArray
*
pVgroupTables
)
{
SArray
*
tscVgroupTableInfo
Dup
(
SArray
*
pVgroupTables
)
{
if
(
pVgroupTables
==
NULL
)
{
return
NULL
;
}
...
...
@@ -1850,7 +1833,7 @@ void clearAllTableMetaInfo(SQueryInfo* pQueryInfo) {
tfree
(
pQueryInfo
->
pTableMetaInfo
);
}
STableMetaInfo
*
tscAddTableMetaInfo
(
SQueryInfo
*
pQueryInfo
,
const
char
*
name
,
STableMeta
*
pTableMeta
,
STableMetaInfo
*
tscAddTableMetaInfo
(
SQueryInfo
*
pQueryInfo
,
SName
*
name
,
STableMeta
*
pTableMeta
,
SVgroupsInfo
*
vgroupList
,
SArray
*
pTagCols
,
SArray
*
pVgroupTables
)
{
void
*
pAlloc
=
realloc
(
pQueryInfo
->
pTableMetaInfo
,
(
pQueryInfo
->
numOfTables
+
1
)
*
POINTER_BYTES
);
if
(
pAlloc
==
NULL
)
{
...
...
@@ -1868,7 +1851,7 @@ STableMetaInfo* tscAddTableMetaInfo(SQueryInfo* pQueryInfo, const char* name, ST
pQueryInfo
->
pTableMetaInfo
[
pQueryInfo
->
numOfTables
]
=
pTableMetaInfo
;
if
(
name
!=
NULL
)
{
t
strncpy
(
pTableMetaInfo
->
name
,
name
,
sizeof
(
pTableMetaInfo
->
name
)
);
t
NameAssign
(
&
pTableMetaInfo
->
name
,
name
);
}
pTableMetaInfo
->
pTableMeta
=
pTableMeta
;
...
...
@@ -1887,7 +1870,7 @@ STableMetaInfo* tscAddTableMetaInfo(SQueryInfo* pQueryInfo, const char* name, ST
tscColumnListCopy
(
pTableMetaInfo
->
tagColList
,
pTagCols
,
-
1
);
}
pTableMetaInfo
->
pVgroupTables
=
tscVgroupTableInfo
Clone
(
pVgroupTables
);
pTableMetaInfo
->
pVgroupTables
=
tscVgroupTableInfo
Dup
(
pVgroupTables
);
pQueryInfo
->
numOfTables
+=
1
;
return
pTableMetaInfo
;
...
...
@@ -1965,7 +1948,7 @@ SSqlObj* createSimpleSubObj(SSqlObj* pSql, __async_cb_func_t fp, void* param, in
assert
(
pSql
->
cmd
.
clauseIndex
==
0
);
STableMetaInfo
*
pMasterTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
&
pSql
->
cmd
,
pSql
->
cmd
.
clauseIndex
,
0
);
tscAddTableMetaInfo
(
pQueryInfo
,
pMasterTableMetaInfo
->
name
,
NULL
,
NULL
,
NULL
,
NULL
);
tscAddTableMetaInfo
(
pQueryInfo
,
&
pMasterTableMetaInfo
->
name
,
NULL
,
NULL
,
NULL
,
NULL
);
registerSqlObj
(
pNew
);
return
pNew
;
...
...
@@ -2070,7 +2053,7 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
pNewQueryInfo
->
groupbyExpr
=
pQueryInfo
->
groupbyExpr
;
if
(
pQueryInfo
->
groupbyExpr
.
columnInfo
!=
NULL
)
{
pNewQueryInfo
->
groupbyExpr
.
columnInfo
=
taosArray
Clone
(
pQueryInfo
->
groupbyExpr
.
columnInfo
);
pNewQueryInfo
->
groupbyExpr
.
columnInfo
=
taosArray
Dup
(
pQueryInfo
->
groupbyExpr
.
columnInfo
);
if
(
pNewQueryInfo
->
groupbyExpr
.
columnInfo
==
NULL
)
{
terrno
=
TSDB_CODE_TSC_OUT_OF_MEMORY
;
goto
_error
;
...
...
@@ -2121,27 +2104,26 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
pNew
->
param
=
param
;
pNew
->
maxRetry
=
TSDB_MAX_REPLICA
;
char
*
name
=
pTableMetaInfo
->
name
;
STableMetaInfo
*
pFinalInfo
=
NULL
;
if
(
pPrevSql
==
NULL
)
{
STableMeta
*
pTableMeta
=
tscTableMeta
Clone
(
pTableMetaInfo
->
pTableMeta
);
STableMeta
*
pTableMeta
=
tscTableMeta
Dup
(
pTableMetaInfo
->
pTableMeta
);
assert
(
pTableMeta
!=
NULL
);
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
name
,
pTableMeta
,
pTableMetaInfo
->
vgroupList
,
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
&
pTableMetaInfo
->
name
,
pTableMeta
,
pTableMetaInfo
->
vgroupList
,
pTableMetaInfo
->
tagColList
,
pTableMetaInfo
->
pVgroupTables
);
}
else
{
// transfer the ownership of pTableMeta to the newly create sql object.
STableMetaInfo
*
pPrevInfo
=
tscGetTableMetaInfoFromCmd
(
&
pPrevSql
->
cmd
,
pPrevSql
->
cmd
.
clauseIndex
,
0
);
STableMeta
*
pPrevTableMeta
=
tscTableMeta
Clone
(
pPrevInfo
->
pTableMeta
);
STableMeta
*
pPrevTableMeta
=
tscTableMeta
Dup
(
pPrevInfo
->
pTableMeta
);
SVgroupsInfo
*
pVgroupsInfo
=
pPrevInfo
->
vgroupList
;
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
name
,
pPrevTableMeta
,
pVgroupsInfo
,
pTableMetaInfo
->
tagColList
,
pFinalInfo
=
tscAddTableMetaInfo
(
pNewQueryInfo
,
&
pTableMetaInfo
->
name
,
pPrevTableMeta
,
pVgroupsInfo
,
pTableMetaInfo
->
tagColList
,
pTableMetaInfo
->
pVgroupTables
);
}
// this case cannot be happened
if
(
pFinalInfo
->
pTableMeta
==
NULL
)
{
tscError
(
"%p new subquery failed since no tableMeta, name:%s"
,
pSql
,
name
);
tscError
(
"%p new subquery failed since no tableMeta, name:%s"
,
pSql
,
tNameGetTableName
(
&
pTableMetaInfo
->
name
)
);
if
(
pPrevSql
!=
NULL
)
{
// pass the previous error to client
assert
(
pPrevSql
->
res
.
code
!=
TSDB_CODE_SUCCESS
);
...
...
@@ -2166,7 +2148,7 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
"%p new subquery:%p, tableIndex:%d, vgroupIndex:%d, type:%d, exprInfo:%"
PRIzu
", colList:%"
PRIzu
","
"fieldInfo:%d, name:%s, qrang:%"
PRId64
" - %"
PRId64
" order:%d, limit:%"
PRId64
,
pSql
,
pNew
,
tableIndex
,
pTableMetaInfo
->
vgroupIndex
,
pNewQueryInfo
->
type
,
tscSqlExprNumOfExprs
(
pNewQueryInfo
),
size
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
pFinalInfo
->
name
,
pNewQueryInfo
->
window
.
skey
,
size
,
pNewQueryInfo
->
fieldsInfo
.
numOfOutput
,
tNameGetTableName
(
&
pFinalInfo
->
name
)
,
pNewQueryInfo
->
window
.
skey
,
pNewQueryInfo
->
window
.
ekey
,
pNewQueryInfo
->
order
.
order
,
pNewQueryInfo
->
limit
.
limit
);
tscPrintSelectClause
(
pNew
,
0
);
...
...
@@ -2203,7 +2185,7 @@ void tscDoQuery(SSqlObj* pSql) {
}
if
(
pCmd
->
dataSourceType
==
DATA_FROM_DATA_FILE
)
{
tsc
ProcessMultiVnodesImport
FromFile
(
pSql
);
tsc
ImportData
FromFile
(
pSql
);
}
else
{
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
pCmd
,
pCmd
->
clauseIndex
);
uint16_t
type
=
pQueryInfo
->
type
;
...
...
@@ -2303,7 +2285,6 @@ int32_t tscSQLSyntaxErrMsg(char* msg, const char* additionalInfo, const char* s
}
return
TSDB_CODE_TSC_SQL_SYNTAX_ERROR
;
}
int32_t
tscInvalidSQLErrMsg
(
char
*
msg
,
const
char
*
additionalInfo
,
const
char
*
sql
)
{
...
...
@@ -2701,7 +2682,7 @@ uint32_t tscGetTableMetaMaxSize() {
return
sizeof
(
STableMeta
)
+
TSDB_MAX_COLUMNS
*
sizeof
(
SSchema
);
}
STableMeta
*
tscTableMeta
Clone
(
STableMeta
*
pTableMeta
)
{
STableMeta
*
tscTableMeta
Dup
(
STableMeta
*
pTableMeta
)
{
assert
(
pTableMeta
!=
NULL
);
uint32_t
size
=
tscGetTableMetaSize
(
pTableMeta
);
STableMeta
*
p
=
calloc
(
1
,
size
);
...
...
src/common/inc/tname.h
浏览文件 @
2f34cf62
...
...
@@ -21,6 +21,20 @@ typedef struct SColumnInfoData {
void
*
pData
;
// the corresponding block data in memory
}
SColumnInfoData
;
#define TSDB_DB_NAME_T 1
#define TSDB_TABLE_NAME_T 2
#define T_NAME_ACCT 0x1u
#define T_NAME_DB 0x2u
#define T_NAME_TABLE 0x4u
typedef
struct
SName
{
uint8_t
type
;
//db_name_t, table_name_t
char
acctId
[
TSDB_ACCT_ID_LEN
];
char
dbname
[
TSDB_DB_NAME_LEN
];
char
tname
[
TSDB_TABLE_NAME_LEN
];
}
SName
;
void
extractTableName
(
const
char
*
tableId
,
char
*
name
);
char
*
extractDBName
(
const
char
*
tableId
,
char
*
name
);
...
...
@@ -35,9 +49,9 @@ SSchema tGetUserSpecifiedColumnSchema(tVariant* pVal, SStrToken* exprStr, const
bool
tscValidateTableNameLength
(
size_t
len
);
SColumnFilterInfo
*
t
scFilterInfoClone
(
const
SColumnFilterInfo
*
src
,
int32_t
numOfFilters
);
SColumnFilterInfo
*
t
FilterInfoDup
(
const
SColumnFilterInfo
*
src
,
int32_t
numOfFilters
);
SSchema
t
sc
GetTbnameColumnSchema
();
SSchema
tGetTbnameColumnSchema
();
/**
* check if the schema is valid or not, including following aspects:
...
...
@@ -51,6 +65,28 @@ SSchema tscGetTbnameColumnSchema();
* @param numOfCols
* @return
*/
bool
isValidSchema
(
struct
SSchema
*
pSchema
,
int32_t
numOfCols
,
int32_t
numOfTags
);
bool
tIsValidSchema
(
struct
SSchema
*
pSchema
,
int32_t
numOfCols
,
int32_t
numOfTags
);
int32_t
tNameExtractFullName
(
const
SName
*
name
,
char
*
dst
);
int32_t
tNameLen
(
const
SName
*
name
);
SName
*
tNameDup
(
const
SName
*
name
);
bool
tIsValidName
(
const
SName
*
name
);
const
char
*
tNameGetTableName
(
const
SName
*
name
);
int32_t
tNameGetDbName
(
const
SName
*
name
,
char
*
dst
);
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
);
bool
tNameIsEmpty
(
const
SName
*
name
);
void
tNameAssign
(
SName
*
dst
,
const
SName
*
src
);
int32_t
tNameFromString
(
SName
*
dst
,
const
char
*
str
,
uint32_t
type
);
int32_t
tNameSetAcctId
(
SName
*
dst
,
const
char
*
acct
);
int32_t
tNameSetDbName
(
SName
*
dst
,
const
char
*
acct
,
SStrToken
*
dbToken
);
#endif // TDENGINE_NAME_H
src/common/src/tname.c
浏览文件 @
2f34cf62
...
...
@@ -3,31 +3,12 @@
#include "tname.h"
#include "tstoken.h"
#include "ttokendef.h"
#include "tvariant.h"
#define VALIDNUMOFCOLS(x) ((x) >= TSDB_MIN_COLUMNS && (x) <= TSDB_MAX_COLUMNS)
#define VALIDNUMOFCOLS(x) ((x) >= TSDB_MIN_COLUMNS && (x) <= TSDB_MAX_COLUMNS)
#define VALIDNUMOFTAGS(x) ((x) >= 0 && (x) <= TSDB_MAX_TAGS)
// todo refactor
UNUSED_FUNC
static
FORCE_INLINE
const
char
*
skipSegments
(
const
char
*
input
,
char
delim
,
int32_t
num
)
{
for
(
int32_t
i
=
0
;
i
<
num
;
++
i
)
{
while
(
*
input
!=
0
&&
*
input
++
!=
delim
)
{
};
}
return
input
;
}
UNUSED_FUNC
static
FORCE_INLINE
size_t
copy
(
char
*
dst
,
const
char
*
src
,
char
delimiter
)
{
size_t
len
=
0
;
while
(
*
src
!=
delimiter
&&
*
src
!=
0
)
{
*
dst
++
=
*
src
++
;
len
++
;
}
return
len
;
}
#define VALID_NAME_TYPE(x) ((x) == TSDB_DB_NAME_T || (x) == TSDB_TABLE_NAME_T)
void
extractTableName
(
const
char
*
tableId
,
char
*
name
)
{
size_t
s1
=
strcspn
(
tableId
,
&
TS_PATH_DELIMITER
[
0
]);
...
...
@@ -85,7 +66,7 @@ bool tscValidateTableNameLength(size_t len) {
return
len
<
TSDB_TABLE_NAME_LEN
;
}
SColumnFilterInfo
*
t
scFilterInfoClone
(
const
SColumnFilterInfo
*
src
,
int32_t
numOfFilters
)
{
SColumnFilterInfo
*
t
FilterInfoDup
(
const
SColumnFilterInfo
*
src
,
int32_t
numOfFilters
)
{
if
(
numOfFilters
==
0
)
{
assert
(
src
==
NULL
);
return
NULL
;
...
...
@@ -200,7 +181,7 @@ void extractTableNameFromToken(SStrToken* pToken, SStrToken* pTable) {
}
}
SSchema
t
sc
GetTbnameColumnSchema
()
{
SSchema
tGetTbnameColumnSchema
()
{
struct
SSchema
s
=
{
.
colId
=
TSDB_TBNAME_COLUMN_INDEX
,
.
type
=
TSDB_DATA_TYPE_BINARY
,
...
...
@@ -248,7 +229,7 @@ static bool doValidateSchema(SSchema* pSchema, int32_t numOfCols, int32_t maxLen
return
rowLen
<=
maxLen
;
}
bool
i
sValidSchema
(
struct
SSchema
*
pSchema
,
int32_t
numOfCols
,
int32_t
numOfTags
)
{
bool
tI
sValidSchema
(
struct
SSchema
*
pSchema
,
int32_t
numOfCols
,
int32_t
numOfTags
)
{
if
(
!
VALIDNUMOFCOLS
(
numOfCols
))
{
return
false
;
}
...
...
@@ -272,3 +253,179 @@ bool isValidSchema(struct SSchema* pSchema, int32_t numOfCols, int32_t numOfTags
return
true
;
}
int32_t
tNameExtractFullName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
// invalid full name format, abort
if
(
!
tIsValidName
(
name
))
{
return
-
1
;
}
int32_t
len
=
snprintf
(
dst
,
TSDB_ACCT_ID_LEN
+
1
+
TSDB_DB_NAME_LEN
,
"%s.%s"
,
name
->
acctId
,
name
->
dbname
);
size_t
tnameLen
=
strlen
(
name
->
tname
);
if
(
tnameLen
>
0
)
{
assert
(
name
->
type
==
TSDB_TABLE_NAME_T
);
dst
[
len
]
=
TS_PATH_DELIMITER
[
0
];
memcpy
(
dst
+
len
+
1
,
name
->
tname
,
tnameLen
);
dst
[
len
+
tnameLen
+
1
]
=
0
;
}
return
0
;
}
int32_t
tNameLen
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
int32_t
len
=
(
int32_t
)
strlen
(
name
->
acctId
);
int32_t
len1
=
(
int32_t
)
strlen
(
name
->
dbname
);
int32_t
len2
=
(
int32_t
)
strlen
(
name
->
tname
);
if
(
name
->
type
==
TSDB_DB_NAME_T
)
{
assert
(
len2
==
0
);
return
len
+
len1
+
TS_PATH_DELIMITER_LEN
;
}
else
{
assert
(
len2
>
0
);
return
len
+
len1
+
len2
+
TS_PATH_DELIMITER_LEN
*
2
;
}
}
bool
tIsValidName
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
if
(
!
VALID_NAME_TYPE
(
name
->
type
))
{
return
false
;
}
if
(
strlen
(
name
->
acctId
)
<=
0
)
{
return
false
;
}
if
(
name
->
type
==
TSDB_DB_NAME_T
)
{
return
strlen
(
name
->
dbname
)
>
0
;
}
else
{
return
strlen
(
name
->
dbname
)
>
0
&&
strlen
(
name
->
tname
)
>
0
;
}
}
SName
*
tNameDup
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
SName
*
p
=
calloc
(
1
,
sizeof
(
SName
));
memcpy
(
p
,
name
,
sizeof
(
SName
));
return
p
;
}
int32_t
tNameGetDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
strncpy
(
dst
,
name
->
dbname
,
tListLen
(
name
->
dbname
));
return
0
;
}
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
snprintf
(
dst
,
TSDB_ACCT_ID_LEN
+
TS_PATH_DELIMITER_LEN
+
TSDB_DB_NAME_LEN
,
"%s.%s"
,
name
->
acctId
,
name
->
dbname
);
return
0
;
}
bool
tNameIsEmpty
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
);
return
name
->
type
==
0
||
strlen
(
name
->
acctId
)
<=
0
;
}
const
char
*
tNameGetTableName
(
const
SName
*
name
)
{
assert
(
name
!=
NULL
&&
name
->
type
==
TSDB_TABLE_NAME_T
);
return
&
name
->
tname
[
0
];
}
void
tNameAssign
(
SName
*
dst
,
const
SName
*
src
)
{
memcpy
(
dst
,
src
,
sizeof
(
SName
));
}
int32_t
tNameSetDbName
(
SName
*
dst
,
const
char
*
acct
,
SStrToken
*
dbToken
)
{
assert
(
dst
!=
NULL
&&
dbToken
!=
NULL
&&
acct
!=
NULL
);
// too long account id or too long db name
if
(
strlen
(
acct
)
>=
tListLen
(
dst
->
acctId
)
||
dbToken
->
n
>=
tListLen
(
dst
->
dbname
))
{
return
-
1
;
}
dst
->
type
=
TSDB_DB_NAME_T
;
tstrncpy
(
dst
->
acctId
,
acct
,
tListLen
(
dst
->
acctId
));
tstrncpy
(
dst
->
dbname
,
dbToken
->
z
,
dbToken
->
n
+
1
);
return
0
;
}
int32_t
tNameSetAcctId
(
SName
*
dst
,
const
char
*
acct
)
{
assert
(
dst
!=
NULL
&&
acct
!=
NULL
);
// too long account id or too long db name
if
(
strlen
(
acct
)
>=
tListLen
(
dst
->
acctId
))
{
return
-
1
;
}
tstrncpy
(
dst
->
acctId
,
acct
,
tListLen
(
dst
->
acctId
));
return
0
;
}
int32_t
tNameFromString
(
SName
*
dst
,
const
char
*
str
,
uint32_t
type
)
{
assert
(
dst
!=
NULL
&&
str
!=
NULL
&&
strlen
(
str
)
>
0
);
char
*
p
=
NULL
;
if
((
type
&
T_NAME_ACCT
)
==
T_NAME_ACCT
)
{
p
=
strstr
(
str
,
TS_PATH_DELIMITER
);
if
(
p
==
NULL
)
{
return
-
1
;
}
int32_t
len
=
(
int32_t
)(
p
-
str
);
// too long account id or too long db name
if
(
len
>=
tListLen
(
dst
->
acctId
)
||
len
==
0
)
{
return
-
1
;
}
memcpy
(
dst
->
acctId
,
str
,
len
);
dst
->
acctId
[
len
]
=
0
;
}
if
((
type
&
T_NAME_DB
)
==
T_NAME_DB
)
{
dst
->
type
=
TSDB_DB_NAME_T
;
char
*
start
=
(
char
*
)((
p
==
NULL
)
?
str
:
(
p
+
1
));
int32_t
len
=
0
;
p
=
strstr
(
start
,
TS_PATH_DELIMITER
);
if
(
p
==
NULL
)
{
len
=
(
int32_t
)
strlen
(
start
);
}
else
{
len
=
(
int32_t
)
(
p
-
start
);
}
// too long account id or too long db name
if
(
len
>=
tListLen
(
dst
->
dbname
)
||
len
==
0
)
{
return
-
1
;
}
memcpy
(
dst
->
dbname
,
start
,
len
);
dst
->
dbname
[
len
]
=
0
;
}
if
((
type
&
T_NAME_TABLE
)
==
T_NAME_TABLE
)
{
dst
->
type
=
TSDB_TABLE_NAME_T
;
char
*
start
=
(
char
*
)
((
p
==
NULL
)
?
str
:
(
p
+
1
));
int32_t
len
=
(
int32_t
)
strlen
(
start
);
// too long account id or too long db name
if
(
len
>=
tListLen
(
dst
->
tname
)
||
len
==
0
)
{
return
-
1
;
}
memcpy
(
dst
->
tname
,
start
,
len
);
dst
->
tname
[
len
]
=
0
;
}
return
0
;
}
src/inc/taosmsg.h
浏览文件 @
2f34cf62
...
...
@@ -268,8 +268,7 @@ typedef struct {
typedef
struct
{
int32_t
len
;
// one create table message
char
tableFname
[
TSDB_TABLE_FNAME_LEN
];
char
db
[
TSDB_ACCT_ID_LEN
+
TSDB_DB_NAME_LEN
];
char
tableName
[
TSDB_TABLE_FNAME_LEN
];
int8_t
igExists
;
int8_t
getMeta
;
int16_t
numOfTags
;
...
...
@@ -285,7 +284,7 @@ typedef struct {
}
SCMCreateTableMsg
;
typedef
struct
{
char
tableF
name
[
TSDB_TABLE_FNAME_LEN
];
char
name
[
TSDB_TABLE_FNAME_LEN
];
int8_t
igNotExists
;
}
SCMDropTableMsg
;
...
...
src/inc/ttokendef.h
浏览文件 @
2f34cf62
...
...
@@ -227,9 +227,6 @@
#define TK_SPACE 300
#define TK_COMMENT 301
#define TK_ILLEGAL 302
...
...
src/mnode/inc/mnodeDb.h
浏览文件 @
2f34cf62
...
...
@@ -32,7 +32,7 @@ int32_t mnodeInitDbs();
void
mnodeCleanupDbs
();
int64_t
mnodeGetDbNum
();
SDbObj
*
mnodeGetDb
(
char
*
db
);
SDbObj
*
mnodeGetDbByTable
Id
(
char
*
db
);
SDbObj
*
mnodeGetDbByTable
Name
(
char
*
db
);
void
*
mnodeGetNextDb
(
void
*
pIter
,
SDbObj
**
pDb
);
void
mnodeCancelGetNextDb
(
void
*
pIter
);
void
mnodeIncDbRef
(
SDbObj
*
pDb
);
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
2f34cf62
...
...
@@ -199,18 +199,13 @@ void mnodeDecDbRef(SDbObj *pDb) {
return
sdbDecRef
(
tsDbSdb
,
pDb
);
}
SDbObj
*
mnodeGetDbByTableId
(
char
*
tableId
)
{
char
db
[
TSDB_TABLE_FNAME_LEN
],
*
pos
;
// tableId format should be : acct.db.table
pos
=
strstr
(
tableId
,
TS_PATH_DELIMITER
);
assert
(
NULL
!=
pos
);
pos
=
strstr
(
pos
+
1
,
TS_PATH_DELIMITER
);
assert
(
NULL
!=
pos
);
memset
(
db
,
0
,
sizeof
(
db
));
strncpy
(
db
,
tableId
,
pos
-
tableId
);
SDbObj
*
mnodeGetDbByTableName
(
char
*
tableName
)
{
SName
name
=
{
0
};
tNameFromString
(
&
name
,
tableName
,
T_NAME_ACCT
|
T_NAME_DB
|
T_NAME_TABLE
);
// validate the tableName?
char
db
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tNameGetFullDbName
(
&
name
,
db
);
return
mnodeGetDb
(
db
);
}
...
...
src/mnode/src/mnodeTable.c
浏览文件 @
2f34cf62
...
...
@@ -297,7 +297,7 @@ static int32_t mnodeChildTableActionRestored() {
pIter = mnodeGetNextChildTable(pIter, &pTable);
if (pTable == NULL) break;
SDbObj *pDb = mnodeGetDbByTable
Id
(pTable->info.tableId);
SDbObj *pDb = mnodeGetDbByTable
Name
(pTable->info.tableId);
if (pDb == NULL || pDb->status != TSDB_DB_STATUS_READY) {
mError("ctable:%s, failed to get db or db in dropping, discard it", pTable->info.tableId);
SSdbRow desc = {.type = SDB_OPER_LOCAL, .pObj = pTable, .pTable = tsChildTableSdb};
...
...
@@ -443,7 +443,7 @@ static int32_t mnodeSuperTableActionDestroy(SSdbRow *pRow) {
static
int32_t
mnodeSuperTableActionInsert
(
SSdbRow
*
pRow
)
{
SSTableObj
*
pStable
=
pRow
->
pObj
;
SDbObj
*
pDb
=
mnodeGetDbByTable
Id
(
pStable
->
info
.
tableId
);
SDbObj
*
pDb
=
mnodeGetDbByTable
Name
(
pStable
->
info
.
tableId
);
if
(
pDb
!=
NULL
&&
pDb
->
status
==
TSDB_DB_STATUS_READY
)
{
mnodeAddSuperTableIntoDb
(
pDb
);
}
...
...
@@ -455,7 +455,7 @@ static int32_t mnodeSuperTableActionInsert(SSdbRow *pRow) {
static
int32_t
mnodeSuperTableActionDelete
(
SSdbRow
*
pRow
)
{
SSTableObj
*
pStable
=
pRow
->
pObj
;
SDbObj
*
pDb
=
mnodeGetDbByTable
Id
(
pStable
->
info
.
tableId
);
SDbObj
*
pDb
=
mnodeGetDbByTable
Name
(
pStable
->
info
.
tableId
);
if
(
pDb
!=
NULL
)
{
mnodeRemoveSuperTableFromDb
(
pDb
);
mnodeDropAllChildTablesInStable
((
SSTableObj
*
)
pStable
);
...
...
@@ -748,9 +748,12 @@ void mnodeDestroySubMsg(SMnodeMsg *pSubMsg) {
}
static
int32_t
mnodeValidateCreateTableMsg
(
SCreateTableMsg
*
pCreateTable
,
SMnodeMsg
*
pMsg
)
{
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDb
(
pCreateTable
->
db
);
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
tableFname
);
pMsg
->
pDb
=
mnodeGetDbByTableName
(
pCreateTable
->
tableName
);
}
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
tableName
);
return
TSDB_CODE_MND_DB_NOT_SELECTED
;
}
...
...
@@ -759,28 +762,28 @@ static int32_t mnodeValidateCreateTableMsg(SCreateTableMsg *pCreateTable, SMnode
return
TSDB_CODE_MND_DB_IN_DROPPING
;
}
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pCreateTable
->
table
Fn
ame
);
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pCreateTable
->
table
N
ame
);
if
(
pMsg
->
pTable
!=
NULL
&&
pMsg
->
retry
==
0
)
{
if
(
pCreateTable
->
getMeta
)
{
mDebug
(
"msg:%p, app:%p table:%s, continue to get meta"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
Fn
ame
);
mDebug
(
"msg:%p, app:%p table:%s, continue to get meta"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
N
ame
);
return
mnodeGetChildTableMeta
(
pMsg
);
}
else
if
(
pCreateTable
->
igExists
)
{
mDebug
(
"msg:%p, app:%p table:%s, is already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
Fn
ame
);
mDebug
(
"msg:%p, app:%p table:%s, is already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
N
ame
);
return
TSDB_CODE_SUCCESS
;
}
else
{
mError
(
"msg:%p, app:%p table:%s, failed to create, table already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
Fn
ame
);
pCreateTable
->
table
N
ame
);
return
TSDB_CODE_MND_TABLE_ALREADY_EXIST
;
}
}
if
(
pCreateTable
->
numOfTags
!=
0
)
{
mDebug
(
"msg:%p, app:%p table:%s, create stable msg is received from thandle:%p"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
Fn
ame
,
pMsg
->
rpcMsg
.
handle
);
pCreateTable
->
table
N
ame
,
pMsg
->
rpcMsg
.
handle
);
return
mnodeProcessCreateSuperTableMsg
(
pMsg
);
}
else
{
mDebug
(
"msg:%p, app:%p table:%s, create ctable msg is received from thandle:%p"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreateTable
->
table
Fn
ame
,
pMsg
->
rpcMsg
.
handle
);
pCreateTable
->
table
N
ame
,
pMsg
->
rpcMsg
.
handle
);
return
mnodeProcessCreateChildTableMsg
(
pMsg
);
}
}
...
...
@@ -860,9 +863,12 @@ static int32_t mnodeProcessCreateTableMsg(SMnodeMsg *pMsg) {
}
SCreateTableMsg
*
p
=
(
SCreateTableMsg
*
)((
char
*
)
pCreate
+
sizeof
(
SCMCreateTableMsg
));
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDb
(
p
->
db
);
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
tableFname
);
pMsg
->
pDb
=
mnodeGetDbByTableName
(
p
->
tableName
);
}
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
tableName
);
return
TSDB_CODE_MND_DB_NOT_SELECTED
;
}
...
...
@@ -871,37 +877,37 @@ static int32_t mnodeProcessCreateTableMsg(SMnodeMsg *pMsg) {
return
TSDB_CODE_MND_DB_IN_DROPPING
;
}
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
p
->
table
Fn
ame
);
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
p
->
table
N
ame
);
if
(
pMsg
->
pTable
!=
NULL
&&
pMsg
->
retry
==
0
)
{
if
(
p
->
getMeta
)
{
mDebug
(
"msg:%p, app:%p table:%s, continue to get meta"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
Fn
ame
);
mDebug
(
"msg:%p, app:%p table:%s, continue to get meta"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
N
ame
);
return
mnodeGetChildTableMeta
(
pMsg
);
}
else
if
(
p
->
igExists
)
{
mDebug
(
"msg:%p, app:%p table:%s, is already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
Fn
ame
);
mDebug
(
"msg:%p, app:%p table:%s, is already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
N
ame
);
return
TSDB_CODE_SUCCESS
;
}
else
{
mError
(
"msg:%p, app:%p table:%s, failed to create, table already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to create, table already exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
N
ame
);
return
TSDB_CODE_MND_TABLE_ALREADY_EXIST
;
}
}
if
(
p
->
numOfTags
!=
0
)
{
mDebug
(
"msg:%p, app:%p table:%s, create stable msg is received from thandle:%p"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
Fn
ame
,
pMsg
->
rpcMsg
.
handle
);
p
->
table
N
ame
,
pMsg
->
rpcMsg
.
handle
);
return
mnodeProcessCreateSuperTableMsg
(
pMsg
);
}
else
{
mDebug
(
"msg:%p, app:%p table:%s, create ctable msg is received from thandle:%p"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
p
->
table
Fn
ame
,
pMsg
->
rpcMsg
.
handle
);
p
->
table
N
ame
,
pMsg
->
rpcMsg
.
handle
);
return
mnodeProcessCreateChildTableMsg
(
pMsg
);
}
}
static
int32_t
mnodeProcessDropTableMsg
(
SMnodeMsg
*
pMsg
)
{
SCMDropTableMsg
*
pDrop
=
pMsg
->
rpcMsg
.
pCont
;
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Id
(
pDrop
->
tableF
name
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Name
(
pDrop
->
name
);
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to drop table, db not selected or db in dropping"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
);
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
name
);
return
TSDB_CODE_MND_DB_NOT_SELECTED
;
}
...
...
@@ -912,17 +918,17 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
if
(
mnodeCheckIsMonitorDB
(
pMsg
->
pDb
->
name
,
tsMonitorDbName
))
{
mError
(
"msg:%p, app:%p table:%s, failed to drop table, in monitor database"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
);
pDrop
->
name
);
return
TSDB_CODE_MND_MONITOR_DB_FORBIDDEN
;
}
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pDrop
->
tableF
name
);
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pDrop
->
name
);
if
(
pMsg
->
pTable
==
NULL
)
{
if
(
pDrop
->
igNotExists
)
{
mDebug
(
"msg:%p, app:%p table:%s is not exist, treat as success"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
);
mDebug
(
"msg:%p, app:%p table:%s is not exist, treat as success"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
name
);
return
TSDB_CODE_SUCCESS
;
}
else
{
mError
(
"msg:%p, app:%p table:%s, failed to drop, table not exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
);
mError
(
"msg:%p, app:%p table:%s, failed to drop, table not exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
name
);
return
TSDB_CODE_MND_INVALID_TABLE_NAME
;
}
}
...
...
@@ -930,12 +936,12 @@ static int32_t mnodeProcessDropTableMsg(SMnodeMsg *pMsg) {
if
(
pMsg
->
pTable
->
type
==
TSDB_SUPER_TABLE
)
{
SSTableObj
*
pSTable
=
(
SSTableObj
*
)
pMsg
->
pTable
;
mInfo
(
"msg:%p, app:%p table:%s, start to drop stable, uid:%"
PRIu64
", numOfChildTables:%d, sizeOfVgList:%d"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
,
pSTable
->
uid
,
pSTable
->
numOfTables
,
taosHashGetSize
(
pSTable
->
vgHash
));
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
name
,
pSTable
->
uid
,
pSTable
->
numOfTables
,
taosHashGetSize
(
pSTable
->
vgHash
));
return
mnodeProcessDropSuperTableMsg
(
pMsg
);
}
else
{
SCTableObj
*
pCTable
=
(
SCTableObj
*
)
pMsg
->
pTable
;
mInfo
(
"msg:%p, app:%p table:%s, start to drop ctable, vgId:%d tid:%d uid:%"
PRIu64
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pDrop
->
tableF
name
,
pCTable
->
vgId
,
pCTable
->
tid
,
pCTable
->
uid
);
pDrop
->
name
,
pCTable
->
vgId
,
pCTable
->
tid
,
pCTable
->
uid
);
return
mnodeProcessDropChildTableMsg
(
pMsg
);
}
}
...
...
@@ -946,7 +952,7 @@ static int32_t mnodeProcessTableMetaMsg(SMnodeMsg *pMsg) {
mDebug
(
"msg:%p, app:%p table:%s, table meta msg is received from thandle:%p, createFlag:%d"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pInfo
->
tableFname
,
pMsg
->
rpcMsg
.
handle
,
pInfo
->
createFlag
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Id
(
pInfo
->
tableFname
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Name
(
pInfo
->
tableFname
);
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to get table meta, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pInfo
->
tableFname
);
...
...
@@ -1006,12 +1012,12 @@ static int32_t mnodeProcessCreateSuperTableMsg(SMnodeMsg *pMsg) {
SSTableObj
*
pStable
=
calloc
(
1
,
sizeof
(
SSTableObj
));
if
(
pStable
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, no enough memory"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to create, no enough memory"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
TSDB_CODE_MND_OUT_OF_MEMORY
;
}
int64_t
us
=
taosGetTimestampUs
();
pStable
->
info
.
tableId
=
strdup
(
pCreate
->
table
Fn
ame
);
pStable
->
info
.
tableId
=
strdup
(
pCreate
->
table
N
ame
);
pStable
->
info
.
type
=
TSDB_SUPER_TABLE
;
pStable
->
createdTime
=
taosGetTimestampMs
();
pStable
->
uid
=
(
us
<<
24
)
+
((
sdbGetVersion
()
&
((
1ul
<<
16
)
-
1ul
))
<<
8
)
+
(
taosRand
()
&
((
1ul
<<
8
)
-
1ul
));
...
...
@@ -1025,14 +1031,14 @@ static int32_t mnodeProcessCreateSuperTableMsg(SMnodeMsg *pMsg) {
pStable
->
schema
=
(
SSchema
*
)
calloc
(
1
,
schemaSize
);
if
(
pStable
->
schema
==
NULL
)
{
free
(
pStable
);
mError
(
"msg:%p, app:%p table:%s, failed to create, no schema input"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to create, no schema input"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
TSDB_CODE_MND_INVALID_TABLE_NAME
;
}
memcpy
(
pStable
->
schema
,
pCreate
->
schema
,
numOfCols
*
sizeof
(
SSchema
));
if
(
pStable
->
numOfColumns
>
TSDB_MAX_COLUMNS
||
pStable
->
numOfTags
>
TSDB_MAX_TAGS
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, too many columns"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to create, too many columns"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
TSDB_CODE_MND_INVALID_TABLE_NAME
;
}
...
...
@@ -1044,8 +1050,8 @@ static int32_t mnodeProcessCreateSuperTableMsg(SMnodeMsg *pMsg) {
tschema
[
col
].
bytes
=
htons
(
tschema
[
col
].
bytes
);
}
if
(
!
i
sValidSchema
(
pStable
->
schema
,
pStable
->
numOfColumns
,
pStable
->
numOfTags
))
{
mError
(
"msg:%p, app:%p table:%s, failed to create table, invalid schema"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
if
(
!
tI
sValidSchema
(
pStable
->
schema
,
pStable
->
numOfColumns
,
pStable
->
numOfTags
))
{
mError
(
"msg:%p, app:%p table:%s, failed to create table, invalid schema"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
TSDB_CODE_MND_INVALID_CREATE_TABLE_MSG
;
}
...
...
@@ -1065,7 +1071,7 @@ static int32_t mnodeProcessCreateSuperTableMsg(SMnodeMsg *pMsg) {
if
(
code
!=
TSDB_CODE_SUCCESS
&&
code
!=
TSDB_CODE_MND_ACTION_IN_PROGRESS
)
{
mnodeDestroySuperTable
(
pStable
);
pMsg
->
pTable
=
NULL
;
mError
(
"msg:%p, app:%p table:%s, failed to create, sdb error"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to create, sdb error"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
}
return
code
;
...
...
@@ -1907,12 +1913,12 @@ static int32_t mnodeDoCreateChildTable(SMnodeMsg *pMsg, int32_t tid) {
SCTableObj
*
pTable
=
calloc
(
1
,
sizeof
(
SCTableObj
));
if
(
pTable
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to alloc memory"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mError
(
"msg:%p, app:%p table:%s, failed to alloc memory"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
TSDB_CODE_MND_OUT_OF_MEMORY
;
}
pTable
->
info
.
type
=
(
pCreate
->
numOfColumns
==
0
)
?
TSDB_CHILD_TABLE
:
TSDB_NORMAL_TABLE
;
pTable
->
info
.
tableId
=
strdup
(
pCreate
->
table
Fn
ame
);
pTable
->
info
.
tableId
=
strdup
(
pCreate
->
table
N
ame
);
pTable
->
createdTime
=
taosGetTimestampMs
();
pTable
->
tid
=
tid
;
pTable
->
vgId
=
pVgroup
->
vgId
;
...
...
@@ -1928,7 +1934,7 @@ static int32_t mnodeDoCreateChildTable(SMnodeMsg *pMsg, int32_t tid) {
size_t
prefixLen
=
tableIdPrefix
(
pMsg
->
pDb
->
name
,
prefix
,
64
);
if
(
0
!=
strncasecmp
(
prefix
,
stableName
,
prefixLen
))
{
mError
(
"msg:%p, app:%p table:%s, corresponding super table:%s not in this db"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
,
stableName
);
pCreate
->
table
N
ame
,
stableName
);
mnodeDestroyChildTable
(
pTable
);
return
TSDB_CODE_TDB_INVALID_CREATE_TB_MSG
;
}
...
...
@@ -1936,7 +1942,7 @@ static int32_t mnodeDoCreateChildTable(SMnodeMsg *pMsg, int32_t tid) {
if
(
pMsg
->
pSTable
==
NULL
)
pMsg
->
pSTable
=
mnodeGetSuperTable
(
stableName
);
if
(
pMsg
->
pSTable
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, corresponding super table:%s does not exist"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
,
stableName
);
pCreate
->
table
N
ame
,
stableName
);
mnodeDestroyChildTable
(
pTable
);
return
TSDB_CODE_MND_INVALID_TABLE_NAME
;
}
...
...
@@ -2003,7 +2009,7 @@ static int32_t mnodeDoCreateChildTable(SMnodeMsg *pMsg, int32_t tid) {
if
(
code
!=
TSDB_CODE_SUCCESS
&&
code
!=
TSDB_CODE_MND_ACTION_IN_PROGRESS
)
{
mnodeDestroyChildTable
(
pTable
);
pMsg
->
pTable
=
NULL
;
mError
(
"msg:%p, app:%p table:%s, failed to create, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
,
mError
(
"msg:%p, app:%p table:%s, failed to create, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
,
tstrerror
(
code
));
}
else
{
mDebug
(
"msg:%p, app:%p table:%s, allocated in vgroup, vgId:%d sid:%d uid:%"
PRIu64
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
...
...
@@ -2020,7 +2026,7 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
int32_t
code
=
grantCheck
(
TSDB_GRANT_TIMESERIES
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"msg:%p, app:%p table:%s, failed to create, grant timeseries failed"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
pCreate
->
table
N
ame
);
return
code
;
}
...
...
@@ -2031,7 +2037,7 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
code
=
mnodeGetAvailableVgroup
(
pMsg
,
&
pVgroup
,
&
tid
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mDebug
(
"msg:%p, app:%p table:%s, failed to get available vgroup, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
,
tstrerror
(
code
));
pCreate
->
table
N
ame
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -2045,15 +2051,15 @@ static int32_t mnodeProcessCreateChildTableMsg(SMnodeMsg *pMsg) {
return
mnodeDoCreateChildTable
(
pMsg
,
tid
);
}
}
else
{
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pCreate
->
table
Fn
ame
);
if
(
pMsg
->
pTable
==
NULL
)
pMsg
->
pTable
=
mnodeGetTable
(
pCreate
->
table
N
ame
);
}
if
(
pMsg
->
pTable
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, object not found, retry:%d reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
,
pMsg
->
retry
,
mError
(
"msg:%p, app:%p table:%s, object not found, retry:%d reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
,
pMsg
->
retry
,
tstrerror
(
terrno
));
return
terrno
;
}
else
{
mDebug
(
"msg:%p, app:%p table:%s, send create msg to vnode again"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
Fn
ame
);
mDebug
(
"msg:%p, app:%p table:%s, send create msg to vnode again"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pCreate
->
table
N
ame
);
return
mnodeDoCreateChildTableFp
(
pMsg
);
}
}
...
...
@@ -2398,8 +2404,7 @@ static int32_t mnodeAutoCreateChildTable(SMnodeMsg *pMsg) {
SCreateTableMsg
*
pCreate
=
(
SCreateTableMsg
*
)
((
char
*
)
pCreateMsg
+
sizeof
(
SCMCreateTableMsg
));
size_t
size
=
tListLen
(
pInfo
->
tableFname
);
tstrncpy
(
pCreate
->
tableFname
,
pInfo
->
tableFname
,
size
);
tstrncpy
(
pCreate
->
db
,
pMsg
->
pDb
->
name
,
sizeof
(
pCreate
->
db
));
tstrncpy
(
pCreate
->
tableName
,
pInfo
->
tableFname
,
size
);
pCreate
->
igExists
=
1
;
pCreate
->
getMeta
=
1
;
...
...
@@ -2767,7 +2772,7 @@ static int32_t mnodeProcessMultiTableMetaMsg(SMnodeMsg *pMsg) {
SCTableObj
*
pTable
=
mnodeGetChildTable
(
tableId
);
if
(
pTable
==
NULL
)
continue
;
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Id
(
tableId
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Name
(
tableId
);
if
(
pMsg
->
pDb
==
NULL
||
pMsg
->
pDb
->
status
!=
TSDB_DB_STATUS_READY
)
{
mnodeDecTableRef
(
pTable
);
continue
;
...
...
@@ -2988,7 +2993,7 @@ static int32_t mnodeProcessAlterTableMsg(SMnodeMsg *pMsg) {
mDebug
(
"msg:%p, app:%p table:%s, alter table msg is received from thandle:%p"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pAlter
->
tableFname
,
pMsg
->
rpcMsg
.
handle
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Id
(
pAlter
->
tableFname
);
if
(
pMsg
->
pDb
==
NULL
)
pMsg
->
pDb
=
mnodeGetDbByTable
Name
(
pAlter
->
tableFname
);
if
(
pMsg
->
pDb
==
NULL
)
{
mError
(
"msg:%p, app:%p table:%s, failed to alter table, db not selected"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
pAlter
->
tableFname
);
return
TSDB_CODE_MND_DB_NOT_SELECTED
;
...
...
src/query/inc/qSqlparser.h
浏览文件 @
2f34cf62
...
...
@@ -96,16 +96,16 @@ typedef struct SCreateTableSQL {
SQuerySQL
*
pSelect
;
}
SCreateTableSQL
;
typedef
struct
SAlterTable
SQL
{
typedef
struct
SAlterTable
Info
{
SStrToken
name
;
int16_t
tableType
;
int16_t
type
;
STagData
tagData
;
SArray
*
pAddColumns
;
// SArray<TAOS_FIELD>
SArray
*
varList
;
// set t=val or: change src dst, SArray<tVariantListItem>
}
SAlterTable
SQL
;
}
SAlterTable
Info
;
typedef
struct
SCreateD
B
Info
{
typedef
struct
SCreateD
b
Info
{
SStrToken
dbname
;
int32_t
replica
;
int32_t
cacheBlockSize
;
...
...
@@ -123,11 +123,10 @@ typedef struct SCreateDBInfo {
bool
ignoreExists
;
int8_t
update
;
int8_t
cachelast
;
SArray
*
keep
;
}
SCreateDBInfo
;
SArray
*
keep
;
}
SCreateDbInfo
;
typedef
struct
SCreateAcct
SQL
{
typedef
struct
SCreateAcct
Info
{
int32_t
maxUsers
;
int32_t
maxDbs
;
int32_t
maxTimeSeries
;
...
...
@@ -137,7 +136,7 @@ typedef struct SCreateAcctSQL {
int64_t
maxQueryTime
;
int32_t
maxConnections
;
SStrToken
stat
;
}
SCreateAcct
SQL
;
}
SCreateAcct
Info
;
typedef
struct
SShowInfo
{
uint8_t
showType
;
...
...
@@ -152,23 +151,18 @@ typedef struct SUserInfo {
int16_t
type
;
}
SUserInfo
;
typedef
struct
tDCLSQL
{
int32_t
nTokens
;
/* Number of expressions on the list */
int32_t
nAlloc
;
/* Number of entries allocated below */
SStrToken
*
a
;
/* one entry for element */
bool
existsCheck
;
typedef
struct
SMiscInfo
{
SArray
*
a
;
// SArray<SStrToken>
bool
existsCheck
;
int16_t
tableType
;
SUserInfo
user
;
union
{
SCreateD
BInfo
dbOpt
;
SCreateAcct
SQL
acctOpt
;
SShowInfo
showOpt
;
SStrToken
ip
;
SCreateD
bInfo
dbOpt
;
SCreateAcct
Info
acctOpt
;
SShowInfo
showOpt
;
SStrToken
id
;
};
SUserInfo
user
;
}
tDCLSQL
;
}
SMiscInfo
;
typedef
struct
SSubclauseInfo
{
// "UNION" multiple select sub-clause
SQuerySQL
**
pClause
;
...
...
@@ -178,15 +172,13 @@ typedef struct SSubclauseInfo { // "UNION" multiple select sub-clause
typedef
struct
SSqlInfo
{
int32_t
type
;
bool
valid
;
SSubclauseInfo
subclauseInfo
;
char
msg
[
256
];
union
{
SCreateTableSQL
*
pCreateTableInfo
;
SAlterTable
SQL
*
pAlterInfo
;
tDCLSQL
*
pDCL
Info
;
SCreateTableSQL
*
pCreateTableInfo
;
SAlterTable
Info
*
pAlterInfo
;
SMiscInfo
*
pMisc
Info
;
};
SSubclauseInfo
subclauseInfo
;
char
pzErrMsg
[
256
];
}
SSqlInfo
;
typedef
struct
tSQLExpr
{
...
...
@@ -252,7 +244,7 @@ SCreateTableSQL *tSetCreateSqlElems(SArray *pCols, SArray *pTags, SQuerySQL *pSe
void
tSqlExprNodeDestroy
(
tSQLExpr
*
pExpr
);
SAlterTable
SQL
*
tAlterTableSqlElems
(
SStrToken
*
pTableName
,
SArray
*
pCols
,
SArray
*
pVals
,
int32_t
type
,
int16_t
tableTable
);
SAlterTable
Info
*
tAlterTableSqlElems
(
SStrToken
*
pTableName
,
SArray
*
pCols
,
SArray
*
pVals
,
int32_t
type
,
int16_t
tableTable
);
SCreatedTableInfo
createNewChildTableInfo
(
SStrToken
*
pTableName
,
SArray
*
pTagVals
,
SStrToken
*
pToken
,
SStrToken
*
igExists
);
void
destroyAllSelectClause
(
SSubclauseInfo
*
pSql
);
...
...
@@ -272,16 +264,14 @@ void setDCLSQLElems(SSqlInfo *pInfo, int32_t type, int32_t nParams, ...);
void
setDropDbTableInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SStrToken
*
existsCheck
,
int16_t
tableType
);
void
setShowOptions
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
prefix
,
SStrToken
*
pPatterns
);
tDCLSQL
*
tTokenListAppend
(
tDCLSQL
*
pTokenList
,
SStrToken
*
pToken
);
void
setCreateDBSQL
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SCreateDBInfo
*
pDB
,
SStrToken
*
pIgExists
);
void
setCreateDbInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SCreateDbInfo
*
pDB
,
SStrToken
*
pIgExists
);
void
setCreateAcctSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SCreateAcct
SQL
*
pAcctInfo
);
void
setCreateAcctSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SCreateAcct
Info
*
pAcctInfo
);
void
setCreateUserSql
(
SSqlInfo
*
pInfo
,
SStrToken
*
pName
,
SStrToken
*
pPasswd
);
void
setKillSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
ip
);
void
setAlterUserSql
(
SSqlInfo
*
pInfo
,
int16_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SStrToken
*
pPrivilege
);
void
setDefaultCreateDbOption
(
SCreateD
B
Info
*
pDBInfo
);
void
setDefaultCreateDbOption
(
SCreateD
b
Info
*
pDBInfo
);
// prefix show db.tables;
void
setDbName
(
SStrToken
*
pCpxName
,
SStrToken
*
pDb
);
...
...
src/query/inc/sql.y
浏览文件 @
2f34cf62
...
...
@@ -36,7 +36,7 @@
%syntax_error {
pInfo->valid = false;
int32_t outputBufLen = tListLen(pInfo->
pzErrM
sg);
int32_t outputBufLen = tListLen(pInfo->
m
sg);
int32_t len = 0;
if(TOKEN.z) {
...
...
@@ -46,13 +46,13 @@
if (sqlLen + sizeof(msg)/sizeof(msg[0]) + 1 > outputBufLen) {
char tmpstr[128] = {0};
memcpy(tmpstr, &TOKEN.z[0], sizeof(tmpstr)/sizeof(tmpstr[0]) - 1);
len = sprintf(pInfo->
pzErrM
sg, msg, tmpstr);
len = sprintf(pInfo->
m
sg, msg, tmpstr);
} else {
len = sprintf(pInfo->
pzErrM
sg, msg, &TOKEN.z[0]);
len = sprintf(pInfo->
m
sg, msg, &TOKEN.z[0]);
}
} else {
len = sprintf(pInfo->
pzErrM
sg, "Incomplete SQL statement");
len = sprintf(pInfo->
m
sg, "Incomplete SQL statement");
}
assert(len <= outputBufLen);
...
...
@@ -216,7 +216,7 @@ conns(Y) ::= CONNS INTEGER(X). { Y = X; }
state(Y) ::= . { Y.n = 0; }
state(Y) ::= STATE ids(X). { Y = X; }
%type acct_optr {SCreateAcct
SQL
}
%type acct_optr {SCreateAcct
Info
}
acct_optr(Y) ::= pps(C) tseries(D) storage(P) streams(F) qtime(Q) dbs(E) users(K) conns(L) state(M). {
Y.maxUsers = (K.n>0)?atoi(K.z):-1;
Y.maxDbs = (E.n>0)?atoi(E.z):-1;
...
...
@@ -248,7 +248,7 @@ prec(Y) ::= PRECISION STRING(X). { Y = X; }
update(Y) ::= UPDATE INTEGER(X). { Y = X; }
cachelast(Y) ::= CACHELAST INTEGER(X). { Y = X; }
%type db_optr {SCreateD
B
Info}
%type db_optr {SCreateD
b
Info}
db_optr(Y) ::= . {setDefaultCreateDbOption(&Y);}
db_optr(Y) ::= db_optr(Z) cache(X). { Y = Z; Y.cacheBlockSize = strtol(X.z, NULL, 10); }
...
...
@@ -267,7 +267,7 @@ db_optr(Y) ::= db_optr(Z) keep(X). { Y = Z; Y.keep = X; }
db_optr(Y) ::= db_optr(Z) update(X). { Y = Z; Y.update = strtol(X.z, NULL, 10); }
db_optr(Y) ::= db_optr(Z) cachelast(X). { Y = Z; Y.cachelast = strtol(X.z, NULL, 10); }
%type alter_db_optr {SCreateD
B
Info}
%type alter_db_optr {SCreateD
b
Info}
alter_db_optr(Y) ::= . { setDefaultCreateDbOption(&Y);}
alter_db_optr(Y) ::= alter_db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); }
...
...
@@ -692,7 +692,7 @@ cmd ::= RESET QUERY CACHE. { setDCLSQLElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
///////////////////////////////////ALTER TABLE statement//////////////////////////////////
cmd ::= ALTER TABLE ids(X) cpxName(F) ADD COLUMN columnlist(A). {
X.n += F.n;
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -702,14 +702,14 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) DROP COLUMN ids(A). {
toTSDBType(A.type);
SArray* K = tVariantListAppendToken(NULL, &A, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
//////////////////////////////////ALTER TAGS statement/////////////////////////////////////
cmd ::= ALTER TABLE ids(X) cpxName(Y) ADD TAG columnlist(A). {
X.n += Y.n;
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
cmd ::= ALTER TABLE ids(X) cpxName(Z) DROP TAG ids(Y). {
...
...
@@ -718,7 +718,7 @@ cmd ::= ALTER TABLE ids(X) cpxName(Z) DROP TAG ids(Y). {
toTSDBType(Y.type);
SArray* A = tVariantListAppendToken(NULL, &Y, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -731,7 +731,7 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) CHANGE TAG ids(Y) ids(Z). {
toTSDBType(Z.type);
A = tVariantListAppendToken(A, &Z, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -742,7 +742,7 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) SET TAG ids(Y) EQ tagitem(Z). {
SArray* A = tVariantListAppendToken(NULL, &Y, -1);
A = tVariantListAppend(A, &Z, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -750,7 +750,7 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) SET TAG ids(Y) EQ tagitem(Z). {
///////////////////////////////////ALTER STABLE statement//////////////////////////////////
cmd ::= ALTER STABLE ids(X) cpxName(F) ADD COLUMN columnlist(A). {
X.n += F.n;
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -760,14 +760,14 @@ cmd ::= ALTER STABLE ids(X) cpxName(F) DROP COLUMN ids(A). {
toTSDBType(A.type);
SArray* K = tVariantListAppendToken(NULL, &A, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, TSDB_SUPER_TABLE);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
//////////////////////////////////ALTER TAGS statement/////////////////////////////////////
cmd ::= ALTER STABLE ids(X) cpxName(Y) ADD TAG columnlist(A). {
X.n += Y.n;
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, A, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
cmd ::= ALTER STABLE ids(X) cpxName(Z) DROP TAG ids(Y). {
...
...
@@ -776,7 +776,7 @@ cmd ::= ALTER STABLE ids(X) cpxName(Z) DROP TAG ids(Y). {
toTSDBType(Y.type);
SArray* A = tVariantListAppendToken(NULL, &Y, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, TSDB_SUPER_TABLE);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
@@ -789,7 +789,7 @@ cmd ::= ALTER STABLE ids(X) cpxName(F) CHANGE TAG ids(Y) ids(Z). {
toTSDBType(Z.type);
A = tVariantListAppendToken(A, &Z, -1);
SAlterTable
SQL
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, TSDB_SUPER_TABLE);
SAlterTable
Info
* pAlterTable = tAlterTableSqlElems(&X, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
...
...
src/query/src/qAst.c
浏览文件 @
2f34cf62
...
...
@@ -407,7 +407,7 @@ tExprNode* exprTreeFromTableName(const char* tbnameCond) {
SSchema
*
pSchema
=
exception_calloc
(
1
,
sizeof
(
SSchema
));
left
->
pSchema
=
pSchema
;
*
pSchema
=
t
sc
GetTbnameColumnSchema
();
*
pSchema
=
tGetTbnameColumnSchema
();
tExprNode
*
right
=
exception_calloc
(
1
,
sizeof
(
tExprNode
));
expr
->
_node
.
pRight
=
right
;
...
...
src/query/src/qExecutor.c
浏览文件 @
2f34cf62
...
...
@@ -1875,6 +1875,7 @@ static int32_t setCtxTagColumnInfo(SQueryRuntimeEnv *pRuntimeEnv, SQLFunctionCtx
return
TSDB_CODE_SUCCESS
;
}
// todo refactor
static
int32_t
setupQueryRuntimeEnv
(
SQueryRuntimeEnv
*
pRuntimeEnv
,
int16_t
order
)
{
qDebug
(
"QInfo:%p setup runtime env"
,
GET_QINFO_ADDR
(
pRuntimeEnv
));
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
...
...
@@ -3849,11 +3850,6 @@ void setExecutionContext(SQInfo *pQInfo, int32_t groupIndex, TSKEY nextKey) {
// lastKey needs to be updated
pTableQueryInfo
->
lastKey
=
nextKey
;
if
(
pRuntimeEnv
->
hasTagResults
||
pRuntimeEnv
->
pTsBuf
!=
NULL
)
{
setAdditionalInfo
(
pQInfo
,
pTableQueryInfo
->
pTable
,
pTableQueryInfo
);
}
if
(
pRuntimeEnv
->
prevGroupId
!=
INT32_MIN
&&
pRuntimeEnv
->
prevGroupId
==
groupIndex
)
{
return
;
}
...
...
@@ -4779,19 +4775,17 @@ static void enableExecutionForNextTable(SQueryRuntimeEnv *pRuntimeEnv) {
}
}
// TODO refactor: setAdditionalInfo
static
FORCE_INLINE
void
setEnvForEachBlock
(
SQInfo
*
pQInfo
,
STableQueryInfo
*
pTableQueryInfo
,
SDataBlockInfo
*
pBlockInfo
)
{
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
SQuery
*
pQuery
=
pQInfo
->
runtimeEnv
.
pQuery
;
int32_t
step
=
GET_FORWARD_DIRECTION_FACTOR
(
pQuery
->
order
.
order
);
if
(
QUERY_IS_INTERVAL_QUERY
(
pQuery
)
)
{
TSKEY
nextKey
=
pBlockInfo
->
window
.
skey
;
setIntervalQueryRange
(
pQInfo
,
nextKey
);
if
(
pRuntimeEnv
->
hasTagResults
||
pRuntimeEnv
->
pTsBuf
!=
NULL
)
{
setAdditionalInfo
(
pQInfo
,
pTableQueryInfo
->
pTable
,
pTableQueryInfo
)
;
}
if
(
pRuntimeEnv
->
hasTagResults
||
pRuntimeEnv
->
pTsBuf
!=
NULL
)
{
setAdditionalInfo
(
pQInfo
,
pTableQueryInfo
->
pTable
,
pTableQueryInfo
);
}
if
(
QUERY_IS_INTERVAL_QUERY
(
pQuery
))
{
setIntervalQueryRange
(
pQInfo
,
pBlockInfo
->
window
.
skey
);
}
else
{
// non-interval query
setExecutionContext
(
pQInfo
,
pTableQueryInfo
->
groupIndex
,
pBlockInfo
->
window
.
ekey
+
step
);
}
...
...
@@ -4814,7 +4808,7 @@ static void doTableQueryInfoTimeWindowCheck(SQuery* pQuery, STableQueryInfo* pTa
static
int64_t
scanMultiTableDataBlocks
(
SQInfo
*
pQInfo
)
{
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
SQueryCostInfo
*
summary
=
&
pRuntimeEnv
->
summary
;
SQueryCostInfo
*
summary
=
&
pRuntimeEnv
->
summary
;
int64_t
st
=
taosGetTimestampMs
();
...
...
@@ -5047,7 +5041,7 @@ static void sequentialTableProcess(SQInfo *pQInfo) {
STsdbQueryCond
cond
=
createTsdbQueryCond
(
pQuery
,
&
pQuery
->
window
);
SArray
*
g1
=
taosArrayInit
(
1
,
POINTER_BYTES
);
SArray
*
tx
=
taosArray
Clone
(
group
);
SArray
*
tx
=
taosArray
Dup
(
group
);
taosArrayPush
(
g1
,
&
tx
);
STableGroupInfo
gp
=
{.
numOfTables
=
taosArrayGetSize
(
tx
),
.
pGroupList
=
g1
};
...
...
@@ -5107,7 +5101,7 @@ static void sequentialTableProcess(SQInfo *pQInfo) {
STsdbQueryCond
cond
=
createTsdbQueryCond
(
pQuery
,
&
pQuery
->
window
);
SArray
*
g1
=
taosArrayInit
(
1
,
POINTER_BYTES
);
SArray
*
tx
=
taosArray
Clone
(
group
);
SArray
*
tx
=
taosArray
Dup
(
group
);
taosArrayPush
(
g1
,
&
tx
);
STableGroupInfo
gp
=
{.
numOfTables
=
taosArrayGetSize
(
tx
),
.
pGroupList
=
g1
};
...
...
@@ -5471,7 +5465,7 @@ static void doRestoreContext(SQInfo *pQInfo) {
SET_MASTER_SCAN_FLAG
(
pRuntimeEnv
);
}
static
void
doCloseAllTimeWindow
AfterScan
(
SQInfo
*
pQInfo
)
{
static
void
doCloseAllTimeWindow
(
SQInfo
*
pQInfo
)
{
SQuery
*
pQuery
=
pQInfo
->
runtimeEnv
.
pQuery
;
if
(
QUERY_IS_INTERVAL_QUERY
(
pQuery
))
{
...
...
@@ -5523,7 +5517,7 @@ static void multiTableQueryProcess(SQInfo *pQInfo) {
}
// close all time window results
doCloseAllTimeWindow
AfterScan
(
pQInfo
);
doCloseAllTimeWindow
(
pQInfo
);
if
(
needReverseScan
(
pQuery
))
{
int32_t
code
=
doSaveContext
(
pQInfo
);
...
...
@@ -5848,8 +5842,7 @@ static void stableQueryImpl(SQInfo *pQInfo) {
(
isFixedOutputQuery
(
pRuntimeEnv
)
&&
(
!
isPointInterpoQuery
(
pQuery
))
&&
(
!
pRuntimeEnv
->
groupbyColumn
)))
{
multiTableQueryProcess
(
pQInfo
);
}
else
{
assert
((
pQuery
->
checkResultBuf
==
1
&&
pQuery
->
interval
.
interval
==
0
)
||
isPointInterpoQuery
(
pQuery
)
||
pRuntimeEnv
->
groupbyColumn
);
assert
(
pQuery
->
checkResultBuf
==
1
||
isPointInterpoQuery
(
pQuery
)
||
pRuntimeEnv
->
groupbyColumn
);
sequentialTableProcess
(
pQInfo
);
}
...
...
@@ -6377,7 +6370,7 @@ static int32_t createQueryFuncExprFromMsg(SQueryTableMsg *pQueryMsg, int32_t num
if
(
functId
==
TSDB_FUNC_TOP
||
functId
==
TSDB_FUNC_BOTTOM
)
{
int32_t
j
=
getColumnIndexInSource
(
pQueryMsg
,
&
pExprs
[
i
].
base
,
pTagCols
);
if
(
j
<
0
||
j
>=
pQueryMsg
->
numOfCols
)
{
assert
(
0
)
;
return
TSDB_CODE_QRY_INVALID_MSG
;
}
else
{
SColumnInfo
*
pCol
=
&
pQueryMsg
->
colList
[
j
];
int32_t
ret
=
...
...
@@ -6576,7 +6569,7 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SSqlGroupbyExpr *pGrou
int32_t
srcSize
=
0
;
for
(
int16_t
i
=
0
;
i
<
numOfCols
;
++
i
)
{
pQuery
->
colList
[
i
]
=
pQueryMsg
->
colList
[
i
];
pQuery
->
colList
[
i
].
filters
=
t
scFilterInfoClone
(
pQueryMsg
->
colList
[
i
].
filters
,
pQuery
->
colList
[
i
].
numOfFilters
);
pQuery
->
colList
[
i
].
filters
=
t
FilterInfoDup
(
pQueryMsg
->
colList
[
i
].
filters
,
pQuery
->
colList
[
i
].
numOfFilters
);
srcSize
+=
pQuery
->
colList
[
i
].
bytes
;
}
...
...
@@ -6642,7 +6635,7 @@ static SQInfo *createQInfoImpl(SQueryTableMsg *pQueryMsg, SSqlGroupbyExpr *pGrou
pQInfo
->
runtimeEnv
.
summary
.
tableInfoSize
+=
(
pTableGroupInfo
->
numOfTables
*
sizeof
(
STableQueryInfo
));
pQInfo
->
runtimeEnv
.
pResultRowHashTable
=
taosHashInit
(
pTableGroupInfo
->
numOfTables
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BINARY
),
true
,
HASH_NO_LOCK
);
pQInfo
->
runtimeEnv
.
keyBuf
=
malloc
(
TSDB_MAX_BYTES_PER_ROW
);
pQInfo
->
runtimeEnv
.
keyBuf
=
malloc
(
TSDB_MAX_BYTES_PER_ROW
);
// todo opt size
pQInfo
->
runtimeEnv
.
pool
=
initResultRowPool
(
getResultRowSize
(
&
pQInfo
->
runtimeEnv
));
pQInfo
->
runtimeEnv
.
prevRow
=
malloc
(
POINTER_BYTES
*
pQuery
->
numOfCols
+
srcSize
);
...
...
src/query/src/qParserImpl.c
浏览文件 @
2f34cf62
...
...
@@ -54,7 +54,7 @@ SSqlInfo qSQLParse(const char *pStr) {
case
TK_QUESTION
:
case
TK_ILLEGAL
:
{
snprintf
(
sqlInfo
.
pzErrMsg
,
tListLen
(
sqlInfo
.
pzErrM
sg
),
"unrecognized token:
\"
%s
\"
"
,
t0
.
z
);
snprintf
(
sqlInfo
.
msg
,
tListLen
(
sqlInfo
.
m
sg
),
"unrecognized token:
\"
%s
\"
"
,
t0
.
z
);
sqlInfo
.
valid
=
false
;
goto
abort_parse
;
}
...
...
@@ -585,8 +585,8 @@ SCreatedTableInfo createNewChildTableInfo(SStrToken *pTableName, SArray *pTagVal
return
info
;
}
SAlterTable
SQL
*
tAlterTableSqlElems
(
SStrToken
*
pTableName
,
SArray
*
pCols
,
SArray
*
pVals
,
int32_t
type
,
int16_t
tableType
)
{
SAlterTable
SQL
*
pAlterTable
=
calloc
(
1
,
sizeof
(
SAlterTableSQL
));
SAlterTable
Info
*
tAlterTableSqlElems
(
SStrToken
*
pTableName
,
SArray
*
pCols
,
SArray
*
pVals
,
int32_t
type
,
int16_t
tableType
)
{
SAlterTable
Info
*
pAlterTable
=
calloc
(
1
,
sizeof
(
SAlterTableInfo
));
pAlterTable
->
name
=
*
pTableName
;
pAlterTable
->
type
=
type
;
...
...
@@ -632,15 +632,15 @@ void SqlInfoDestroy(SSqlInfo *pInfo) {
tfree
(
pInfo
->
pAlterInfo
->
tagData
.
data
);
tfree
(
pInfo
->
pAlterInfo
);
}
else
{
if
(
pInfo
->
p
DCLInfo
!=
NULL
&&
pInfo
->
pDCLInfo
->
nAlloc
>
0
)
{
free
(
pInfo
->
pDCL
Info
->
a
);
if
(
pInfo
->
p
MiscInfo
!=
NULL
)
{
taosArrayDestroy
(
pInfo
->
pMisc
Info
->
a
);
}
if
(
pInfo
->
p
DCL
Info
!=
NULL
&&
pInfo
->
type
==
TSDB_SQL_CREATE_DB
)
{
taosArrayDestroyEx
(
pInfo
->
p
DCL
Info
->
dbOpt
.
keep
,
freeVariant
);
if
(
pInfo
->
p
Misc
Info
!=
NULL
&&
pInfo
->
type
==
TSDB_SQL_CREATE_DB
)
{
taosArrayDestroyEx
(
pInfo
->
p
Misc
Info
->
dbOpt
.
keep
,
freeVariant
);
}
tfree
(
pInfo
->
p
DCL
Info
);
tfree
(
pInfo
->
p
Misc
Info
);
}
}
...
...
@@ -697,58 +697,49 @@ void setCreatedTableName(SSqlInfo *pInfo, SStrToken *pTableNameToken, SStrToken
pInfo
->
pCreateTableInfo
->
existCheck
=
(
pIfNotExists
->
n
!=
0
);
}
void
tTokenListBuyMoreSpace
(
tDCLSQL
*
pTokenList
)
{
if
(
pTokenList
->
nAlloc
<=
pTokenList
->
nTokens
)
{
//
pTokenList
->
nAlloc
=
(
pTokenList
->
nAlloc
<<
1u
)
+
4
;
pTokenList
->
a
=
realloc
(
pTokenList
->
a
,
pTokenList
->
nAlloc
*
sizeof
(
pTokenList
->
a
[
0
]));
if
(
pTokenList
->
a
==
0
)
{
pTokenList
->
nTokens
=
pTokenList
->
nAlloc
=
0
;
}
}
}
tDCLSQL
*
tTokenListAppend
(
tDCLSQL
*
pTokenList
,
SStrToken
*
pToken
)
{
if
(
pToken
==
NULL
)
return
NULL
;
if
(
pTokenList
==
NULL
)
pTokenList
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
tTokenListBuyMoreSpace
(
pTokenList
);
pTokenList
->
a
[
pTokenList
->
nTokens
++
]
=
*
pToken
;
return
pTokenList
;
}
void
setDCLSQLElems
(
SSqlInfo
*
pInfo
,
int32_t
type
,
int32_t
nParam
,
...)
{
pInfo
->
type
=
type
;
if
(
nParam
==
0
)
{
return
;
}
if
(
nParam
==
0
)
return
;
if
(
pInfo
->
pDCLInfo
==
NULL
)
pInfo
->
pDCLInfo
=
(
tDCLSQL
*
)
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
pMiscInfo
==
NULL
)
{
pInfo
->
pMiscInfo
=
(
SMiscInfo
*
)
calloc
(
1
,
sizeof
(
SMiscInfo
));
pInfo
->
pMiscInfo
->
a
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
}
va_list
va
;
va_start
(
va
,
nParam
);
while
(
nParam
--
>
0
)
{
while
(
(
nParam
--
)
>
0
)
{
SStrToken
*
pToken
=
va_arg
(
va
,
SStrToken
*
);
pInfo
->
pDCLInfo
=
tTokenListAppend
(
pInfo
->
pDCLInfo
,
pToken
);
taosArrayPush
(
pInfo
->
pMiscInfo
->
a
,
pToken
);
}
va_end
(
va
);
}
void
setDropDbTableInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SStrToken
*
existsCheck
,
int16_t
tableType
)
{
pInfo
->
type
=
type
;
pInfo
->
pDCLInfo
=
tTokenListAppend
(
pInfo
->
pDCLInfo
,
pToken
);
pInfo
->
pDCLInfo
->
tableType
=
tableType
;
pInfo
->
pDCLInfo
->
existsCheck
=
(
existsCheck
->
n
==
1
);
if
(
pInfo
->
pMiscInfo
==
NULL
)
{
pInfo
->
pMiscInfo
=
(
SMiscInfo
*
)
calloc
(
1
,
sizeof
(
SMiscInfo
));
pInfo
->
pMiscInfo
->
a
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
}
taosArrayPush
(
pInfo
->
pMiscInfo
->
a
,
pToken
);
pInfo
->
pMiscInfo
->
existsCheck
=
(
existsCheck
->
n
==
1
);
pInfo
->
pMiscInfo
->
tableType
=
tableType
;
}
void
setShowOptions
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
prefix
,
SStrToken
*
pPatterns
)
{
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
pInfo
->
type
=
TSDB_SQL_SHOW
;
SShowInfo
*
pShowInfo
=
&
pInfo
->
p
DCL
Info
->
showOpt
;
SShowInfo
*
pShowInfo
=
&
pInfo
->
p
Misc
Info
->
showOpt
;
pShowInfo
->
showType
=
type
;
if
(
prefix
!=
NULL
&&
prefix
->
type
!=
0
)
{
...
...
@@ -764,54 +755,54 @@ void setShowOptions(SSqlInfo *pInfo, int32_t type, SStrToken* prefix, SStrToken*
}
}
void
setCreateD
BSQL
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SCreateDB
Info
*
pDB
,
SStrToken
*
pIgExists
)
{
void
setCreateD
bInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SCreateDb
Info
*
pDB
,
SStrToken
*
pIgExists
)
{
pInfo
->
type
=
type
;
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
pInfo
->
p
DCL
Info
->
dbOpt
=
*
pDB
;
pInfo
->
p
DCL
Info
->
dbOpt
.
dbname
=
*
pToken
;
pInfo
->
p
DCL
Info
->
dbOpt
.
ignoreExists
=
pIgExists
->
n
;
// sql.y has: ifnotexists(X) ::= IF NOT EXISTS. {X.n = 1;}
pInfo
->
p
Misc
Info
->
dbOpt
=
*
pDB
;
pInfo
->
p
Misc
Info
->
dbOpt
.
dbname
=
*
pToken
;
pInfo
->
p
Misc
Info
->
dbOpt
.
ignoreExists
=
pIgExists
->
n
;
// sql.y has: ifnotexists(X) ::= IF NOT EXISTS. {X.n = 1;}
}
void
setCreateAcctSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SCreateAcct
SQL
*
pAcctInfo
)
{
void
setCreateAcctSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SCreateAcct
Info
*
pAcctInfo
)
{
pInfo
->
type
=
type
;
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
pInfo
->
p
DCL
Info
->
acctOpt
=
*
pAcctInfo
;
pInfo
->
p
Misc
Info
->
acctOpt
=
*
pAcctInfo
;
assert
(
pName
!=
NULL
);
pInfo
->
p
DCL
Info
->
user
.
user
=
*
pName
;
pInfo
->
p
Misc
Info
->
user
.
user
=
*
pName
;
if
(
pPwd
!=
NULL
)
{
pInfo
->
p
DCL
Info
->
user
.
passwd
=
*
pPwd
;
pInfo
->
p
Misc
Info
->
user
.
passwd
=
*
pPwd
;
}
}
void
setCreateUserSql
(
SSqlInfo
*
pInfo
,
SStrToken
*
pName
,
SStrToken
*
pPasswd
)
{
pInfo
->
type
=
TSDB_SQL_CREATE_USER
;
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
assert
(
pName
!=
NULL
&&
pPasswd
!=
NULL
);
pInfo
->
p
DCL
Info
->
user
.
user
=
*
pName
;
pInfo
->
p
DCL
Info
->
user
.
passwd
=
*
pPasswd
;
pInfo
->
p
Misc
Info
->
user
.
user
=
*
pName
;
pInfo
->
p
Misc
Info
->
user
.
passwd
=
*
pPasswd
;
}
void
setAlterUserSql
(
SSqlInfo
*
pInfo
,
int16_t
type
,
SStrToken
*
pName
,
SStrToken
*
pPwd
,
SStrToken
*
pPrivilege
)
{
pInfo
->
type
=
TSDB_SQL_ALTER_USER
;
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
assert
(
pName
!=
NULL
);
SUserInfo
*
pUser
=
&
pInfo
->
p
DCL
Info
->
user
;
SUserInfo
*
pUser
=
&
pInfo
->
p
Misc
Info
->
user
;
pUser
->
type
=
type
;
pUser
->
user
=
*
pName
;
...
...
@@ -828,18 +819,17 @@ void setAlterUserSql(SSqlInfo *pInfo, int16_t type, SStrToken *pName, SStrToken*
}
}
void
setKillSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
i
p
)
{
void
setKillSql
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
i
d
)
{
pInfo
->
type
=
type
;
if
(
pInfo
->
p
DCL
Info
==
NULL
)
{
pInfo
->
p
DCLInfo
=
calloc
(
1
,
sizeof
(
tDCLSQL
));
if
(
pInfo
->
p
Misc
Info
==
NULL
)
{
pInfo
->
p
MiscInfo
=
calloc
(
1
,
sizeof
(
SMiscInfo
));
}
assert
(
ip
!=
NULL
);
pInfo
->
pDCLInfo
->
ip
=
*
ip
;
assert
(
id
!=
NULL
);
pInfo
->
pMiscInfo
->
id
=
*
id
;
}
void
setDefaultCreateDbOption
(
SCreateD
B
Info
*
pDBInfo
)
{
void
setDefaultCreateDbOption
(
SCreateD
b
Info
*
pDBInfo
)
{
pDBInfo
->
compressionLevel
=
-
1
;
pDBInfo
->
walLevel
=
-
1
;
...
...
src/query/src/sql.c
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
src/tsdb/src/tsdbRead.c
浏览文件 @
2f34cf62
...
...
@@ -1388,8 +1388,8 @@ static void doMergeTwoLevelData(STsdbQueryHandle* pQueryHandle, STableCheckInfo*
break
;
}
if
(((
tsArray
[
pos
]
>
pQueryHandle
->
window
.
ekey
||
pos
>
endPos
)
&&
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
||
((
tsArray
[
pos
]
<
pQueryHandle
->
window
.
ekey
||
pos
<
endPos
)
&&
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)))
{
if
(((
pos
>
endPos
||
tsArray
[
pos
]
>
pQueryHandle
->
window
.
ekey
)
&&
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
||
((
pos
<
endPos
||
tsArray
[
pos
]
<
pQueryHandle
->
window
.
ekey
)
&&
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)))
{
break
;
}
...
...
src/util/inc/tarray.h
浏览文件 @
2f34cf62
...
...
@@ -110,7 +110,7 @@ void taosArrayCopy(SArray* pDst, const SArray* pSrc);
* clone a new array
* @param pSrc
*/
SArray
*
taosArray
Clone
(
const
SArray
*
pSrc
);
SArray
*
taosArray
Dup
(
const
SArray
*
pSrc
);
/**
* clear the array (remove all element)
...
...
src/util/src/tarray.c
浏览文件 @
2f34cf62
...
...
@@ -165,7 +165,7 @@ void taosArrayCopy(SArray* pDst, const SArray* pSrc) {
pDst
->
size
=
pSrc
->
size
;
}
SArray
*
taosArray
Clone
(
const
SArray
*
pSrc
)
{
SArray
*
taosArray
Dup
(
const
SArray
*
pSrc
)
{
assert
(
pSrc
!=
NULL
);
if
(
pSrc
->
size
==
0
)
{
// empty array list
...
...
tests/examples/c/CMakeLists.txt
浏览文件 @
2f34cf62
...
...
@@ -3,6 +3,6 @@ PROJECT(TDengine)
IF
(
TD_LINUX
)
INCLUDE_DIRECTORIES
(
.
${
TD_COMMUNITY_DIR
}
/src/inc
${
TD_COMMUNITY_DIR
}
/src/client/inc
${
TD_COMMUNITY_DIR
}
/inc
)
AUX_SOURCE_DIRECTORY
(
. SRC
)
ADD_EXECUTABLE
(
demo
demo
.c
)
ADD_EXECUTABLE
(
demo
apitest
.c
)
TARGET_LINK_LIBRARIES
(
demo taos_static trpc tutil pthread
)
ENDIF
()
tests/script/general/alter/cached_schema_after_alter.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$db = csaa_db
...
...
@@ -53,10 +53,10 @@ endi
print ================== restart server to commit data into disk
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
print ================== server restart completed
sleep
5
000
sleep
3
000
sql connect
sql use $db
...
...
tests/script/general/alter/count.sim
浏览文件 @
2f34cf62
...
...
@@ -7,7 +7,7 @@ system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
print ========= start dnode1 as master
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -141,9 +141,9 @@ endi
print ============= step10
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql select count(a), count(b), count(c), count(d), count(e), count(f), count(g), count(h) from tb
if $data00 != 24 then
...
...
@@ -250,9 +250,9 @@ endi
print ============== step18
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
#sql select count(g) from tb
#if $data00 != 12 then
...
...
tests/script/general/alter/dnode.sim
浏览文件 @
2f34cf62
...
...
@@ -4,14 +4,14 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
sql alter dnode 1 resetlog
sql alter dnode 1 monitor 1
sleep
5
000
sleep
3
000
sql select * from log.dn
if $rows <= 0 then
return -1
...
...
tests/script/general/alter/import.sim
浏览文件 @
2f34cf62
...
...
@@ -7,7 +7,7 @@ system sh/cfg.sh -n dnode1 -c mnodeEqualVnodeNum -v 4
print ========= start dnode1 as master
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
tests/script/general/alter/insert1.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -940,9 +940,9 @@ endi
print ======== step9
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql select * from tb order by ts asc
if $rows != 8 then
...
...
tests/script/general/alter/insert2.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -608,9 +608,9 @@ sql_error alter table tb drop column a
print ======== step9
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql select * from tb order by ts desc
if $rows != 7 then
...
...
tests/script/general/alter/metrics.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -367,9 +367,9 @@ endi
print ======== step9
print ======== step10
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql use d2
sql describe tb
...
...
tests/script/general/alter/table.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -318,9 +318,9 @@ endi
print ======== step9
print ======== step10
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql use d1
sql describe tb
...
...
tests/script/general/cache/new_metrics.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$i = 0
...
...
tests/script/general/cache/restart_metrics.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
@@ -49,7 +49,7 @@ endi
print =============== step2
system sh/exec.sh -n dnode1 -s stop
sleep
5
000
sleep
3
000
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
...
...
tests/script/general/cache/restart_table.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
@@ -33,14 +33,14 @@ endi
print =============== step2
system sh/exec.sh -n dnode1 -s stop
sleep
5
000
sleep
3
000
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
print =============== step3
print ==> sleep 8 seconds to renew cache
sleep
3
000
sleep
2
000
sql reset query cache
sleep 18000
...
...
tests/script/general/column/commit.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step1
...
...
@@ -89,9 +89,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print =============== step5
...
...
tests/script/general/column/metrics.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step1
...
...
@@ -157,9 +157,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print =============== step5
...
...
tests/script/general/column/table.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step1
...
...
@@ -129,9 +129,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print ============== step5
...
...
tests/script/general/compress/commitlog.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode1 -c comp -v 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
@@ -87,9 +87,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print =============== step5
...
...
tests/script/general/compress/compress.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c comp -v 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
@@ -82,9 +82,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print =============== step5
...
...
tests/script/general/compress/compress2.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c comp -v 2
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
@@ -82,9 +82,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
print =============== step5
...
...
tests/script/general/compress/uncompress.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c comp -v 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
@@ -81,9 +81,9 @@ endi
print =============== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 5000
system sh/exec.sh -n dnode1 -s start
sleep 3000
system sh/exec.sh -n dnode1 -s start
sleep 2000
print =============== step5
...
...
tests/script/general/compute/avg.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_av_db
...
...
tests/script/general/compute/bottom.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_bo_db
...
...
tests/script/general/compute/count.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_co_db
...
...
tests/script/general/compute/diff.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_di_db
...
...
tests/script/general/compute/diff2.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_di_db
...
...
tests/script/general/compute/first.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_fi_db
...
...
tests/script/general/compute/interval.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_in_db
...
...
tests/script/general/compute/last.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_la_db
...
...
tests/script/general/compute/last_row.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_la_db
...
...
tests/script/general/compute/leastsquare.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_le_db
...
...
tests/script/general/compute/max.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_ma_db
...
...
tests/script/general/compute/min.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_mi_db
...
...
tests/script/general/compute/null.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = db
...
...
tests/script/general/compute/percentile.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_pe_db
...
...
tests/script/general/compute/stddev.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_st_db
...
...
tests/script/general/compute/sum.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_su_db
...
...
tests/script/general/compute/top.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
$dbPrefix = m_to_db
...
...
tests/script/general/connection/connection.sim
浏览文件 @
2f34cf62
...
...
@@ -2,7 +2,7 @@ system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============= step1
...
...
tests/script/general/connection/mqtt.sim
浏览文件 @
2f34cf62
...
...
@@ -10,7 +10,7 @@ system sh/cfg.sh -n dnode1 -c mqtt -v 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
sql create database mqttdb;
sql create table mqttdb.devices(ts timestamp, value double) tags(name binary(32), model binary(32), serial binary(16), param binary(16), unit binary(16));
...
...
tests/script/general/db/alter_option.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 1000
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============= create database
...
...
tests/script/general/db/alter_tables_d2.sim
浏览文件 @
2f34cf62
...
...
@@ -264,10 +264,10 @@ endi
print ============================ step7
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
sleep
5
000
sleep
3
000
sql reset query cache
sleep 1000
...
...
tests/script/general/db/alter_tables_v4.sim
浏览文件 @
2f34cf62
...
...
@@ -232,9 +232,9 @@ endi
print ============================ step7
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql reset query cache
sleep 1000
...
...
tests/script/general/db/alter_vgroups.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 20
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ step1
...
...
@@ -70,9 +70,9 @@ endi
print ============================ step3
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 2
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql create table db.t100 using db.st tags(0)
sql create table db.t101 using db.st tags(1)
...
...
@@ -132,9 +132,9 @@ print ============================ step5
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 3
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
sleep
5
000
sleep
3
000
sql create table db.t200 using db.st tags(0)
sql create table db.t201 using db.st tags(1)
...
...
tests/script/general/db/backup/keep.sim
浏览文件 @
2f34cf62
...
...
@@ -23,7 +23,7 @@ sql connect
print ========= start other dnodes
sql create dnode $hostname2
system sh/exec.sh -n dnode2 -s start
sleep
3
000
sleep
2
000
print ======== step1 create db
sql create database keepdb replica 1 keep 30 days 7
...
...
@@ -50,9 +50,9 @@ endi
print ======== step2 stop dnode
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode2 -s start
sleep
5
000
sleep
3
000
sql select * from tb
print ===> rows $rows
...
...
@@ -112,9 +112,9 @@ endi
print ======== step5 stop dnode
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode2 -s start
sleep
5
000
sleep
3
000
sql select * from tb
print ===> rows $rows
...
...
@@ -153,9 +153,9 @@ endi
print ======== step7 stop dnode
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep
3
000
sleep
2
000
system sh/exec.sh -n dnode2 -s start
sleep
3
000
sleep
2
000
sql select * from tb
print ===> rows $rows
...
...
tests/script/general/db/basic.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 1000
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
tests/script/general/db/basic1.sim
浏览文件 @
2f34cf62
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== create database
...
...
tests/script/general/db/basic2.sim
浏览文件 @
2f34cf62
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== create database d1
...
...
tests/script/general/db/basic3.sim
浏览文件 @
2f34cf62
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== create database d1
...
...
tests/script/general/db/basic4.sim
浏览文件 @
2f34cf62
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== create database d1
...
...
tests/script/general/db/basic5.sim
浏览文件 @
2f34cf62
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== create database d1
...
...
tests/script/general/db/delete.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 1000
print ========= start dnodes
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
@@ -44,7 +44,7 @@ endi
print ======= step3
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
5
000
sleep
3
000
system sh/exec.sh -n dnode1 -s start
$x = 0
...
...
tests/script/general/db/delete_reuse1.sim
浏览文件 @
2f34cf62
...
...
@@ -22,7 +22,7 @@ system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 4
print ========= start dnodes
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
tests/script/general/db/delete_reuse2.sim
浏览文件 @
2f34cf62
...
...
@@ -21,9 +21,9 @@ system sh/cfg.sh -n dnode3 -c mnodeEqualVnodeNum -v 4
system sh/cfg.sh -n dnode4 -c mnodeEqualVnodeNum -v 4
print ========= start dnodes
sleep 2000
system sh/exec.sh -n dnode1 -s start
sleep 3000
sleep 2000
sql connect
sql reset query cache
...
...
@@ -65,7 +65,7 @@ endi
print ======== step2
sql drop database d1
sleep
10
00
sleep
5
00
sql insert into d1.t1 values(now, 2) -x step2
return -1
step2:
...
...
@@ -73,7 +73,7 @@ step2:
print ========= step3
sql create database db1 replica 1
sql reset query cache
sleep
10
00
sleep
5
00
sql create table db1.tb1 (ts timestamp, i int)
sql insert into db1.tb1 values(now, 2)
sql select * from db1.tb1
...
...
@@ -90,7 +90,7 @@ while $x < 20
sql use $db
sql drop database $db
sleep
10
00
sleep
5
00
sql insert into $tb values(now, -1) -x step4
return -1
step4:
...
...
@@ -100,7 +100,7 @@ while $x < 20
$tb = tb . $x
sql reset query cache
sleep
10
00
sleep
5
00
sql create database $db replica 1
sql use $db
...
...
tests/script/general/db/delete_reusevnode2.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 4
print ========= start dnodes
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======== step1
...
...
tests/script/general/db/delete_writing1.sim
浏览文件 @
2f34cf62
...
...
@@ -43,7 +43,7 @@ while $x < 20
sql create database db
sql create table db.tb (ts timestamp, i int)
sleep
3
000
sleep
2
000
$x = $x + 1
endw
...
...
tests/script/general/db/delete_writing2.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c wallevel -v 0
print ========= start dnodes
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
sql create database db
...
...
@@ -39,7 +39,7 @@ while $x < 10
sql create database db
sql create table db.tb (ts timestamp, i int)
sleep
3
000
sleep
2
000
$x = $x + 1
endw
...
...
tests/script/general/db/dropdnodes.sim
浏览文件 @
2f34cf62
...
...
@@ -11,7 +11,7 @@ print ========== prepare data
system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start
sleep
3
000
sleep
2
000
sql connect
sql create dnode $hostname2
...
...
@@ -72,7 +72,7 @@ endi
print ========== step3
system sh/exec.sh -n dnode2 -s stop -x SIGINT
sleep
5
000
sleep
3
000
sql drop dnode $hostname2
sleep 2000
...
...
tests/script/general/db/len.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 2000
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step1
...
...
tests/script/general/db/nosuchfile.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode1 -c wallevel -v 2
print ========== step1
system sh/exec.sh -n dnode1 -s start
sql connect
sleep
3
000
sleep
2
000
print ========== step3
sql create database d1
...
...
@@ -20,7 +20,7 @@ sql insert into d1.t1 values(now+5s, 31)
print ========== step4
system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
print ========== step5
sql select * from d1.t1 order by t desc
...
...
tests/script/general/db/repeat.sim
浏览文件 @
2f34cf62
...
...
@@ -5,7 +5,7 @@ system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ============================ dnode1 start
...
...
@@ -21,13 +21,13 @@ sql create table d3.t1(ts timestamp, i int)
sql create database d4
sql create table d4.t1(ts timestamp, i int)
sleep
3
000
sleep
2
000
sql drop database d1
sql drop database d2
sql drop database d3
sql drop database d4
sleep
3
000
sleep
2
000
sql create database d5
sql create table d5.t1(ts timestamp, i int)
...
...
@@ -41,14 +41,14 @@ sql create table d7.t1(ts timestamp, i int)
sql create database d8
sql create table d8.t1(ts timestamp, i int)
sleep
3
000
sleep
2
000
sql drop database d5
sql drop database d6
sql drop database d7
sql drop database d8
sleep
3
000
sleep
2
000
sql create database d9;
sql create table d9.t1(ts timestamp, i int)
...
...
tests/script/general/db/show_create_db.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step2
...
...
tests/script/general/db/show_create_table.sim
浏览文件 @
2f34cf62
...
...
@@ -4,7 +4,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ===============create three type table
...
...
tests/script/general/db/tables.sim
浏览文件 @
2f34cf62
...
...
@@ -6,7 +6,7 @@ system sh/cfg.sh -n dnode2 -c maxVgroupsPerDb -v 4
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 4
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print =============== step2
...
...
tests/script/general/db/vnodes.sim
浏览文件 @
2f34cf62
...
...
@@ -15,7 +15,7 @@ system sh/cfg.sh -n dnode1 -c maxMgmtConnections -v 100000
print ========== prepare data
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
sql create database db blocks 3 cache 1
sql use db
...
...
tests/script/general/field/2.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/3.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/4.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/5.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/6.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/bigint.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/binary.sim
浏览文件 @
2f34cf62
...
...
@@ -3,7 +3,7 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/exec.sh -n dnode1 -s start
sleep
3
000
sleep
2
000
sql connect
print ======================== dnode1 start
...
...
tests/script/general/field/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/single.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/smallint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/field/tinyint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/autocreate.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/chunked.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/grafana.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/grafana_bug.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/gzip.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/prepare.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/restful.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/restful_full.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/restful_insert.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/restful_limit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/http/telegraf.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/import/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/import/commit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/import/large.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/import/replica1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/insert_drop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_block1_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_block1_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_block2_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_block2_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_file_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/query_multi_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/insert/tcp.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/alter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/auto_create_tb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/col_arithmetic_operation.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/commit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/first_last.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/function.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/import_commit1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/import_commit2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/import_commit3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/interp.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/lastrow.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/limit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/limit1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/limit1_tblocks100.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/limit2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/mixed_blocks.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/projection_limit_offset.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/selectResNum.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/select_from_cache_disk.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/single_row_in_tb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/slimit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/slimit1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/slimit_alter_tags.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/tbnameIn.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/parser/topbot.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/disk.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/metrics.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/refcount.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/show.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/values.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stable/vnode3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/agg_stream.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/column_stream.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/metrics_del.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/metrics_replica1_vnoden.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/restart_stream.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/stream_3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/stream_restart.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/table_del.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/stream/table_replica1_vnoden.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/autocreate.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/basic1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/basic2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/basic3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/bigint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/column2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/column_name.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/column_num.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/column_value.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/date.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/db.table.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/delete_reuse1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/delete_reuse2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/delete_writing.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/describe.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/fill.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/limit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/smallint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/table.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/table_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/tinyint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/table/vgroup.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/4.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/5.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/6.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/add.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/bigint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/binary_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/bool_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/bool_int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/change.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/column.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/commit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/create.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/delete.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/filter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/int_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/int_float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/set.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/smallint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/tag/tinyint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/user/authority.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/user/monitor.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/user/pass_alter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/user/pass_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/user/user_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/metrics_field.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/metrics_mix.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/metrics_query.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/metrics_tag.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/metrics_time.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/multi.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/single.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/table_field.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/table_mix.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/table_query.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/vector/table_time.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/wal/kill.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/general/wal/maxtables.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/tmp/mnodes.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/account_create.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/account_delete.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/account_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/authority.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/paras.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/pass_alter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/pass_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/usage.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/user_create.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/account/user_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/check_cluster_cfg_para.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn2_mn1_cache_file_sync.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn2_mn1_cache_file_sync_second.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_full_createTableFail.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_full_dropDnodeFail.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_multiCreateDropTable.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_nw_disable_timeout_autoDropDnode.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_r2_vnode_delDir.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_r3_vnode_delDir.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_replica2_wal1_AddDelDnode.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_stopDnode_timeout.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_createErrData_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_delDir.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn1_vnode_nomaster.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/dn3_mn2_killDnode.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/insert_duplicationTs.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica2_createTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica3_createTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica3_dropDb_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/offline_replica3_dropTable_online.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/replica_changeWithArbitrator.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica2_dropDb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica2_dropTable.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_createTable.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_dnodeChang_DropAddAlterTableDropDb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_dropDb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/arbitrator/sync_replica3_dropTable.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/big/maxvnodes.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/big/restartSpeed.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/alter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/balance2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/cache.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/cluster_main.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/cluster_main0.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/cluster_main1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/cluster_main2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/cluster/flowctrl.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/clusterSimCase/cluster_main.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/db/commit.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/db/delete.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/db/replica_reduce32.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/alternativeRole.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/balance2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/balancex.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/data1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/datatrans_1node.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/datatrans_3node.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/datatrans_3node_2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/monitor.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/monitor_bug.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/offline1.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/offline2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/dnode/simple.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/http/admin.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/http/opentsdb.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/import/replica3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/mnode/mgmt20.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/mnode/mgmt22.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/mnode/mgmt26.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/mnode/mgmt30.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/mnode/mgmtr2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stable/dnode2_stop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stream/metrics_balance.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stream/metrics_vnode_stop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stream/table_balance.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stream/table_move.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/stream/table_vnode_stop.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/many.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/replica2_a_large.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/replica2_basic2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/replica2_repeat.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/replica3_repeat.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/unique/vnode/replica3_vgroup.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/alter/metrics.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/alter/table.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/avg.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/bottom.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/count.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/diff.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/first.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/interval.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/last.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/leastsquare.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/max.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/min.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/percentile.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/stddev.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/sum.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/compute/top.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/db/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/db/len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/2.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/4.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/5.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/6.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/bigint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/single.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/smallint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/field/tinyint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/import/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/basic.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_block1_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_block1_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_block2_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_block2_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_file_memory.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/insert/query_multi_file.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/column_name.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/column_num.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/column_value.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/db.table.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/table.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/table/table_len.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/3.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/4.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/5.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/6.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/add.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/bigint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/binary_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/bool.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/bool_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/bool_int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/change.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/column.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/create.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/delete.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/double.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/filter.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/int.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/int_binary.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/int_float.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/set.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/smallint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/tag/tinyint.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/metrics_field.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/metrics_mix.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/metrics_query.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/metrics_tag.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/metrics_time.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/multi.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/single.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/table_field.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/table_mix.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/table_query.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
tests/script/windows/vector/table_time.sim
浏览文件 @
2f34cf62
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录