public class HierarchicalResolver extends Object
使用分层索引(LinkedHashMap)进行 O(1) schema 对象查找。
核心设计:
使用示例:
TSQLEnv env = ...; HierarchicalResolver resolver = new HierarchicalResolver(); // 查找表 TSQLTable table = resolver.findTable(env, "mydb.myschema.mytable"); // 查找列 TSQLColumn column = resolver.findColumn(table, "mycolumn");
| Constructor and Description |
|---|
HierarchicalResolver() |
| Modifier and Type | Method and Description |
|---|---|
List<TSQLColumn> |
findAllColumns(TSQLTable table)
批量查找列(便捷方法)
|
TSQLColumn |
findColumn(TSQLTable table,
String columnName)
查找列(便捷方法)
|
TSQLFunction |
findFunction(TSQLEnv env,
String qualifiedName)
查找函数(便捷方法)
|
TSQLProcedure |
findProcedure(TSQLEnv env,
String qualifiedName)
查找存储过程(便捷方法)
|
TSQLSchemaObject |
findSchemaObject(TSQLEnv env,
String qualifiedName,
ESQLDataObjectType objectType)
查找 schema 对象(通用方法)
|
TSQLTable |
findTable(TSQLEnv env,
String qualifiedName)
查找表(便捷方法)
|
public HierarchicalResolver()
public TSQLSchemaObject findSchemaObject(TSQLEnv env, String qualifiedName, ESQLDataObjectType objectType)
支持三种限定名格式:
env - SQL 环境qualifiedName - 限定名(可能是部分限定)objectType - 对象类型public TSQLTable findTable(TSQLEnv env, String qualifiedName)
env - SQL 环境qualifiedName - 限定名public TSQLFunction findFunction(TSQLEnv env, String qualifiedName)
env - SQL 环境qualifiedName - 限定名public TSQLProcedure findProcedure(TSQLEnv env, String qualifiedName)
env - SQL 环境qualifiedName - 限定名public TSQLColumn findColumn(TSQLTable table, String columnName)
table - 表对象columnName - 列名public List<TSQLColumn> findAllColumns(TSQLTable table)
用于 SELECT * 等场景,需要获取表的所有列。
table - 表对象