wecisecode 6 päivää sitten
vanhempi
commit
7c4d0da234
2 muutettua tiedostoa jossa 49 lisäystä ja 22 poistoa
  1. 16 21
      odbctest/mql/basic/mdb/0100class.mql
  2. 33 1
      odbctest/mql/basic/mdb/0300valid.mql

+ 16 - 21
odbctest/mql/basic/mdb/0100class.mql

@@ -18,15 +18,14 @@ CREATE DB IF NOT EXISTS msqldb (
 ) 
 ;
 
-create class if not exists /msqldb () with namespace='msqldb', nickname='/msqldb'
-;
-
 create class if not exists /mdb () with namespace='mdb'
 ;
 
 create class if not exists /mdb/dba1 (
-	rdb            bucket {
-                        "type"  :  "msqldb"
+	rdb             bucket {
+                        -- 全表映射
+                        "type"  : "msqldb",
+                        "table" : "T__matrix__test___422YX2FPSXSLVDA9"
                     },
 ) with nickname='dba1'
 ;
@@ -37,24 +36,20 @@ create class if not exists /mdb/dba2 (
     xint            int,
     xbigint         bigint,
     xdouble         double,
+    xdate           date,
     xrdb            bucket {
-                        "type"  :  "msqldb",
-                        "fields": [{
-                            "name": "v_varchar",
-                            "type": "varchar"
-                        },{
-                            "name": "v_int",
-                            "type": "int"
-                        }],
+                        -- 条件映射
+                        "type"  : "msqldb",
+                        "table" : "T__matrix__test___422YX2FPSXSLVDA9",
+                        "fields": ["字符串", "大整数", "整数", "浮点", "双浮点"],
                         "conds" : {
-                            "type"  : "match",
-                            "lexp": {
-                                "field": "xvarchar"
-                            },
-                            "rexp": {
-                                "field": "v_varchar"
-                            }
-                        }
+                            "and": [{
+                                "like": ["_tokens","%/mtest/%"]},{
+                                "or": [{
+                                    "=": ["name", {"field":"xvarchar"}]},{
+                                    "=": ["字符串", {"field":"xvarchar"}]},{
+                                    "between": ["strftime('%Y-%m-%d',cast(day as integer)/1000.0+28800,'unixepoch')", "2026-01-01", {"field":"xdate"}]}]}]}
+                        -- TODO "groupby","having","orderby"
                     } "rdb test",
     xmap			map<varchar, varchar>,
     xlist			list<varchar>,

+ 33 - 1
odbctest/mql/basic/mdb/0300valid.mql

@@ -1,19 +1,51 @@
 
-
+-- 查询指定 DB 下的 表
+-- /DB/table 与 class 命名发生冲突时,class 优先级高于 /DB/table
 select * from /msqldb/sqlite_master
 /**
 output()
 **/
 ;
 
+select * from /msqldb/T__matrix__test___422YX2FPSXSLVDA9
+where day between '2026-01-01' and '2026-10-10'
+/**
+output()
+**/
+;
+
+-- 全表映射,
+-- 查询时自动赋值默认类属性:
+--  class: 类名/mdb/dba1,
+--  id:    组合映射表主键为字符串,
+--  name:  与id相同,
+--  day:   当前日期,
+--  vtime: 当前时间
+-- 实际类中没有数据
+-- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
+-- 支持 bucket 链式表达式
 select id,rdb from /mdb/dba1
 /**
 output()
 **/
 ;
 
+-- 条件映射
+-- 类中有数据,按指定条件出数
+-- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型
+-- 支持 bucket 链式表达式
 select * from /mdb/dba2
 /**
 output()
 **/
 ;
+
+-- 条件映射
+-- 类中有数据,按指定条件出数
+-- TODO 重组 rdb 指定字段,输出平表
+-- TODO 允许 bucket 与普通类操作方式一致
+-- select id, rdb.字符串, rdb.整数 from /mdb/dba2 where rdb.整数 > 0
+/**
+output()
+**/
+;