Class HierarchicalResolver

Object
gudusoft.gsqlparser.sqlenv.HierarchicalResolver

public class HierarchicalResolver extends Object
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 Details

  • 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

      public TSQLTable findTable(TSQLEnv env, String qualifiedName)
      查找表(便捷方法)
      Parameters:
      env - SQL 环境
      qualifiedName - 限定名
      Returns:
      表对象,未找到时返回 null
    • findFunction

      public TSQLFunction findFunction(TSQLEnv env, String qualifiedName)
      查找函数(便捷方法)
      Parameters:
      env - SQL 环境
      qualifiedName - 限定名
      Returns:
      函数对象,未找到时返回 null
    • findProcedure

      public TSQLProcedure findProcedure(TSQLEnv env, String qualifiedName)
      查找存储过程(便捷方法)
      Parameters:
      env - SQL 环境
      qualifiedName - 限定名
      Returns:
      存储过程对象,未找到时返回 null
    • findColumn

      public TSQLColumn findColumn(TSQLTable table, String columnName)
      查找列(便捷方法)
      Parameters:
      table - 表对象
      columnName - 列名
      Returns:
      列对象,未找到时返回 null
    • findAllColumns

      批量查找列(便捷方法)

      用于 SELECT * 等场景,需要获取表的所有列。

      Parameters:
      table - 表对象
      Returns:
      列列表,表不存在时返回空列表