Class DatabaseContextTracker

Object
gudusoft.gsqlparser.resolver2.context.DatabaseContextTracker

public class DatabaseContextTracker extends Object
Delta 4: Database context tracker for USE/SET statements. Tracks USE DATABASE, USE SCHEMA, SET SCHEMA, and similar statements to maintain the current database/schema context during resolution. This enables proper resolution of unqualified table names when the context is set by prior statements in the same SQL batch. Example:
 USE mydb;
 SELECT * FROM t;  -- 't' should resolve to 'mydb.dbo.t' (or 'mydb.t')
 
  • Constructor Details

  • Method Details

    • processStatements

      public void processStatements(TStatementList statements)
      Process all statements in the list to extract database/schema context.
      Parameters:
      statements - The list of SQL statements to process
    • processStatement

      Process a single statement and update context if it's a USE/SET statement.
      Parameters:
      stmt - The statement to process
    • applyDefaults

      public void applyDefaults(TSQLEnv env)
      Apply the tracked defaults to a TSQLEnv.
      Parameters:
      env - The SQL environment to update
    • hasContext

      public boolean hasContext()
      Check if any context has been tracked.
      Returns:
      true if either database or schema context has been set
    • getCurrentDatabase

      Get the current database name.
      Returns:
      The current database name, or null if not set
    • getCurrentSchema

      Get the current schema name.
      Returns:
      The current schema name, or null if not set
    • reset

      public void reset()
      Reset the context tracker.
    • toString

      public String toString()
      Overrides:
      toString in class Object