Package gudusoft.gsqlparser.sqlenv
Class HierarchicalResolver
Object
gudusoft.gsqlparser.sqlenv.HierarchicalResolver
Hierarchical Resolver (Phase 2 - 分层索引解析器)
使用分层索引(LinkedHashMap)进行 O(1) schema 对象查找。
核心设计:
- 每一层使用 IdentifierService 生成索引键
- 支持部分限定名(table, schema.table, catalog.schema.table)
- 当 USE_HIERARCHICAL_INDEX = false 时,回退到 legacy 查找
使用示例:
TSQLEnv env = ...; HierarchicalResolver resolver = new HierarchicalResolver(); // 查找表 TSQLTable table = resolver.findTable(env, "mydb.myschema.mytable"); // 查找列 TSQLColumn column = resolver.findColumn(table, "mycolumn");
- Since:
- 3.1.0.9
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfindAllColumns(TSQLTable table) 批量查找列(便捷方法)findColumn(TSQLTable table, String columnName) 查找列(便捷方法)findFunction(TSQLEnv env, String qualifiedName) 查找函数(便捷方法)findProcedure(TSQLEnv env, String qualifiedName) 查找存储过程(便捷方法)findSchemaObject(TSQLEnv env, String qualifiedName, ESQLDataObjectType objectType) 查找 schema 对象(通用方法)查找表(便捷方法)
-
Constructor Details
-
HierarchicalResolver
public HierarchicalResolver()
-
-
Method Details
-
findSchemaObject
public TSQLSchemaObject findSchemaObject(TSQLEnv env, String qualifiedName, ESQLDataObjectType objectType) 查找 schema 对象(通用方法)支持三种限定名格式:
- 单段:table(仅对象名)
- 双段:schema.table(schema + 对象名)
- 三段:catalog.schema.table(catalog + schema + 对象名)
- Parameters:
env- SQL 环境qualifiedName- 限定名(可能是部分限定)objectType- 对象类型- Returns:
- schema 对象,未找到时返回 null
-
findTable
查找表(便捷方法)- Parameters:
env- SQL 环境qualifiedName- 限定名- Returns:
- 表对象,未找到时返回 null
-
findFunction
查找函数(便捷方法)- Parameters:
env- SQL 环境qualifiedName- 限定名- Returns:
- 函数对象,未找到时返回 null
-
findProcedure
查找存储过程(便捷方法)- Parameters:
env- SQL 环境qualifiedName- 限定名- Returns:
- 存储过程对象,未找到时返回 null
-
findColumn
查找列(便捷方法)- Parameters:
table- 表对象columnName- 列名- Returns:
- 列对象,未找到时返回 null
-
findAllColumns
批量查找列(便捷方法)用于 SELECT * 等场景,需要获取表的所有列。
- Parameters:
table- 表对象- Returns:
- 列列表,表不存在时返回空列表
-