Class ChParserUtils

java.lang.Object
org.pgcodekeeper.core.database.ch.parser.ChParserUtils

public final class ChParserUtils extends Object
Utility methods for ClickHouse SQL parsing with ANTLR.

Provides helper functions for working with ClickHouse SQL syntax during ANTLR-based parsing

  • Method Details

    • createParser

      public static CHParser createParser(String sql, String parsedObjectName, List<Object> errors)
      Creates a ClickHouse SQL parser from string input.
      Parameters:
      sql - ClickHouse SQL string to parse
      parsedObjectName - name of the object being parsed (for error reporting)
      errors - list to collect parsing errors
      Returns:
      configured CHParser instance
    • createParser

      public static CHParser createParser(InputStream is, String charset, String parsedObjectName, List<Object> errors) throws IOException
      Creates a ClickHouse SQL parser from input stream.
      Parameters:
      is - input stream containing ClickHouse SQL
      charset - character encoding of the stream
      parsedObjectName - name of the object being parsed
      errors - list to collect parsing errors
      Returns:
      configured CHParser instance
      Throws:
      IOException - if there's an error reading the stream
    • parseSqlStream

      public static void parseSqlStream(InputStreamProvider inputStream, String parsedObjectName, DiffSettings diffSettings, int monitoringLevel, IChContextProcessor listener, Queue<AntlrTask<?>> antlrTasks)
      Parses ClickHouse SQL stream asynchronously.
      Parameters:
      inputStream - provider of the input stream
      parsedObjectName - name of the object being parsed
      diffSettings - unified context object containing settings, monitor, and error accumulator
      monitoringLevel - level of parse tree monitoring
      listener - processor for the parsed content
      antlrTasks - queue for parser tasks
    • checkToCleanChParser

      public static void checkToCleanChParser(long cleaningInterval)
      Checks if parser caches need cleaning based on last usage time.
      Parameters:
      cleaningInterval - time interval in milliseconds after which cache should be cleaned
    • cleanCacheChParser

      public static void cleanCacheChParser()
      Clears the ClickHouse parser cache.
    • isSpecialChar

      public static boolean isSpecialChar(int type, int previous)
    • normalizeWhitespaceUnquoted

      public static String normalizeWhitespaceUnquoted(org.antlr.v4.runtime.ParserRuleContext ctx, org.antlr.v4.runtime.CommonTokenStream stream)
    • getTokenText

      public static String getTokenText(int type, org.antlr.v4.runtime.Token token)
    • parseQName

      public static QNameParser<org.antlr.v4.runtime.ParserRuleContext> parseQName(String schemaQualifiedName)
      Parses a ClickHouse qualified name into its components.
      Parameters:
      schemaQualifiedName - the qualified name string to parse
      Returns:
      QNameParser instance containing parsed components
    • wrapParsedQName

      public static QNameParserWrapper wrapParsedQName(String fullName)
      Creates a wrapper for parsing ClickHouse qualified names.
      Parameters:
      fullName - the qualified name string to parse
      Returns:
      wrapper containing parsed name components