wecisecode 2 nedēļas atpakaļ
vecāks
revīzija
3a94ec9ca4

+ 26 - 19
odbctest/mql/aaa/19extensions/17beforerun.mql

@@ -1,82 +1,86 @@
 -- ============================================================
 -- beforerun 函数链:set / add / mod / case
+-- 注意:beforerun 设置的变量作用范围为「当前 mql 请求」(同一条语句),
+--       因此 beforerun 动作必须与使用变量的语句写在同一条语句内。
+--       校验前需 sleep 等待 Cassandra 索引可见(index.delay 默认 10s,实测约 2s)。
 -- ============================================================
 
+-- 1. beforerun set 设置变量(字符串需加引号)
+insert into /test/aaa/test_ext (e_name, e_value, e_text) values ('beforerun_set', 1, '{%s,myvar}')
 /**
 beforerun(set(myvar, 'hello_mql'))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_value, e_text) values ('beforerun_set', 1, {%s,myvar})
-/**
-onerror(continue,'JsonKeyValue')
-**/
+/** sleep(2s) **/
 ;
 
 select e_name, e_text from /test/aaa/test_ext where e_name='beforerun_set'
 /**
 output()
-onerror(continue)
+match("e_text","hello_mql")
 **/
 ;
 
 -- 2. beforerun add 累加
+insert into /test/aaa/test_ext (e_name, e_value, e_text) values ('beforerun_add', {%d,counter}, 'add test')
 /**
 beforerun(set(counter, 10), add(counter, 5))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_value, e_text) values (concat('beforerun_add_', {%d,counter}), {%d,counter}, 'add test')
-/**
-onerror(continue)
-**/
+/** sleep(2s) **/
 ;
 
-select e_name, e_value from /test/aaa/test_ext where e_name=^'beforerun_add'
+select e_name, e_value from /test/aaa/test_ext where e_name='beforerun_add'
 /**
 output()
+match("e_value",15)
 **/
 ;
 
 -- 3. beforerun add 带单位(时间累加)
+insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_time', '{%t,ct}')
 /**
 beforerun(set(ct, '2024-01-01 00:00:00'), add(ct, 30, second))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_time', concat('ct=', {%t,ct}))
+/** sleep(2s) **/
+;
+
+select e_name, e_text from /test/aaa/test_ext where e_name='beforerun_time'
 /**
-onerror(continue)
+output()
+match("e_text","2024-01-01 00:00:30")
 **/
 ;
 
 -- 4. beforerun mod 取模
+insert into /test/aaa/test_ext (e_name, e_value, e_text) values ('beforerun_mod', {%d,mod_val}, 'mod test 17%5')
 /**
 beforerun(set(mod_val, 17), mod(mod_val, 5))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_value, e_text) values (concat('beforerun_mod_', {%d,mod_val}), {%d,mod_val}, 'mod test 17%5')
-/**
-onerror(continue)
-**/
+/** sleep(2s) **/
 ;
 
-select e_name, e_value from /test/aaa/test_ext where e_name=^'beforerun_mod'
+select e_name, e_value from /test/aaa/test_ext where e_name='beforerun_mod'
 /**
 output()
+match("e_value",2)
 **/
 ;
 
 -- 5. beforerun case 条件判断(条件匹配)
+insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_yes', '{%s,case_result}')
 /**
 beforerun(set(case_val, 'yes'), set(case_result, 'default'), case(case_val=='yes', set(case_result, 'matched')))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_yes', {%s,case_result})
+/** sleep(2s) **/
 ;
 
 select e_name, e_text from /test/aaa/test_ext where e_name='beforerun_case_yes'
@@ -87,15 +91,15 @@ match("e_text","matched")
 ;
 
 -- 6. beforerun case 条件不匹配
+insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_no', '{%s,case_result}')
 /**
 beforerun(set(case_val, 'no'), set(case_result, 'default'), case(case_val=='yes', set(case_result, 'matched')))
 **/
 ;
 
-insert into /test/aaa/test_ext (e_name, e_text) values ('beforerun_case_no', {%s,case_result})
+/** sleep(2s) **/
 ;
 
 select e_name, e_text from /test/aaa/test_ext where e_name='beforerun_case_no'
 /**
 output()

+ 1 - 1
odbctest/mql/aaa/20subquery/11basic.mql

@@ -5,7 +5,7 @@
 -- 1. IN 子查询(服务器不支持 IN (select ...))
 select * from /test/aaa/test_subquery where s_name in (select s_name from /test/aaa/test_subquery where s_type='type_x')
 /**
-onerror(continue,"After '... ere s_name in ('")
+onerror(continue,"s_name in (")
 output()
 **/
 ;

odbctest/mql/aaa/15cypher/bug_reproduce.mql → odbctest/mql/aaa_server_error/15cypher/bug_reproduce.mql