
/**

odbserver 通过 schema 命令获取类结构信息

早期版本调用方式
schema <classname|classid>
存在问题，无法单独获取存在依赖关系的类

更新版本可以同时取多个类，增加 flag 作为最后一个参数，原调用方式为保持版本兼容，问题无法修正
schema <classname|classid>... <flag>
更新的调用方式参数说明
    classname="" 从系统根类"/"开始，返回列表中包含系统根类"/"(cid=1)信息
    classname="/" 从自定义根类"/xxx"开始，返回列表中不包含系统根类"/"(cid=1)信息
	classname="/xxx" 从指定类开始，返回列表中包含指定类"/xxx"信息
	classname="/xxx/" 从指定类子类开始，返回列表中不包含指定类"/xxx"信息
	flag="" 只查一级子类，或只查指定类，返回简单类结构信息
	flag="*" 递归所有子类，返回简单类结构信息
	flag="one" || flag="1" 只查一级子类，或只查指定类，返回内部类结构信息
	flag="all" 递归所有子类，返回内部类结构信息
更新的调用方式返回的多个类结构信息会按照类间依赖关系进行第一排序，按classid进行第二排序

**/
;

create class if not exists /test() with namespace="test"
;

create class if not exists /test/abc()
;

alter class /test/abc/aaa delete column ccc
/**
onerror(continue,"ValidFieldList")
**/
;

drop class if exists CCC;
drop class if exists BBB;
drop class if exists AAA;

create class if not exists AAA : /test/abc (
	info  varchar,
);

create class if not exists BBB : /test/abc (
	info  varchar,
	aaa   AAA,
);

create class if not exists CCC : /test/abc (
	info  varchar,
	bbb   BBB,
);

alter class AAA add column ccc CCC
/**
onerror(must,"prohibit relationship loop")
**/
;

cmd: schema  / all
/**
output()
**/
;

cmd: schema  / *
/**
output()
matchcount("Fullname", `(?is)/.*`, 7)
**/
;

cmd: schema 77
/**
output()
**/
;


/**
sleep(5s)
**/
;

cmd: schema  77 1 1
/**
output()
matchcount("Fullname", `(?is)/.*`, 7)
**/
;

/**
sleep(5s)
**/
;

cmd: schema  77 all
/**
output()
matchcount("Fullname", `(?is)/.*`, 7)
**/
;

/**
sleep(5s)
**/
;

cmd: schema  77 /matrix *
/**
output()
matchcount("Fullname", `(?is)/.*`, 7)
**/
;

/**
sleep(5s)
**/
;
