901schema.mql 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /**
  2. odbserver 通过 schema 命令获取类结构信息
  3. 早期版本调用方式
  4. schema <classname|classid>
  5. 存在问题,无法单独获取存在依赖关系的类
  6. 更新版本可以同时取多个类,增加 flag 作为最后一个参数,原调用方式为保持版本兼容,问题无法修正
  7. schema <classname|classid>... <flag>
  8. 更新的调用方式参数说明
  9. classname="" 从系统根类"/"开始,返回列表中包含系统根类"/"(cid=1)信息
  10. classname="/" 从自定义根类"/xxx"开始,返回列表中不包含系统根类"/"(cid=1)信息
  11. classname="/xxx" 从指定类开始,返回列表中包含指定类"/xxx"信息
  12. classname="/xxx/" 从指定类子类开始,返回列表中不包含指定类"/xxx"信息
  13. flag="" 只查一级子类,或只查指定类,返回简单类结构信息
  14. flag="*" 递归所有子类,返回简单类结构信息
  15. flag="one" || flag="1" 只查一级子类,或只查指定类,返回内部类结构信息
  16. flag="all" 递归所有子类,返回内部类结构信息
  17. 更新的调用方式返回的多个类结构信息会按照类间依赖关系进行第一排序,按classid进行第二排序
  18. **/
  19. ;
  20. create class if not exists /test() with namespace="test"
  21. ;
  22. create class if not exists /test/abc()
  23. ;
  24. alter class /test/abc/aaa delete column ccc
  25. /**
  26. onerror(continue,"ValidFieldList")
  27. **/
  28. ;
  29. drop class if exists CCC;
  30. drop class if exists BBB;
  31. drop class if exists AAA;
  32. create class if not exists AAA : /test/abc (
  33. info varchar,
  34. );
  35. create class if not exists BBB : /test/abc (
  36. info varchar,
  37. aaa AAA,
  38. );
  39. create class if not exists CCC : /test/abc (
  40. info varchar,
  41. bbb BBB,
  42. );
  43. alter class AAA add column ccc CCC
  44. /**
  45. onerror(must,"prohibit relationship loop")
  46. **/
  47. ;
  48. cmd: schema / all
  49. /**
  50. output()
  51. **/
  52. ;
  53. cmd: schema / *
  54. /**
  55. output()
  56. matchcount("Fullname", `(?is)/.*`, 7)
  57. **/
  58. ;
  59. cmd: schema 77
  60. /**
  61. output()
  62. **/
  63. ;
  64. /**
  65. sleep(5s)
  66. **/
  67. ;
  68. cmd: schema 77 1 1
  69. /**
  70. output()
  71. matchcount("Fullname", `(?is)/.*`, 7)
  72. **/
  73. ;
  74. /**
  75. sleep(5s)
  76. **/
  77. ;
  78. cmd: schema 77 all
  79. /**
  80. output()
  81. matchcount("Fullname", `(?is)/.*`, 7)
  82. **/
  83. ;
  84. /**
  85. sleep(5s)
  86. **/
  87. ;
  88. cmd: schema 77 /matrix *
  89. /**
  90. output()
  91. matchcount("Fullname", `(?is)/.*`, 7)
  92. **/
  93. ;
  94. /**
  95. sleep(5s)
  96. **/
  97. ;