Class PGPropertyMaxResultBufferParser

java.lang.Object
org.postgresql.util.PGPropertyMaxResultBufferParser

public class PGPropertyMaxResultBufferParser extends Object
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • PERCENT_PHRASES

      private static final String[] PERCENT_PHRASES
  • Constructor Details

    • PGPropertyMaxResultBufferParser

      public PGPropertyMaxResultBufferParser()
  • Method Details

    • parseProperty

      public static long parseProperty(String value) throws PSQLException
      Method to parse value of max result buffer size.
      Parameters:
      value - string containing size of bytes with optional multiplier (T, G, M or K) or percent value to declare max percent of heap memory to use.
      Returns:
      value of max result buffer size.
      Throws:
      PSQLException - Exception when given value can't be parsed.
    • checkIfValueContainsPercent

      private static boolean checkIfValueContainsPercent(String value)
      Method to check if given value can contain percent declaration of size of max result buffer.
      Parameters:
      value - Value to check.
      Returns:
      Result if value contains percent.
    • parseBytePercentValue

      private static long parseBytePercentValue(String value) throws PSQLException
      Method to get percent value of max result buffer size dependable on actual free memory. This method doesn't check other possibilities of value declaration.
      Parameters:
      value - string containing percent used to define max result buffer.
      Returns:
      percent value of max result buffer size.
      Throws:
      PSQLException - Exception when given value can't be parsed.
    • getPercentPhraseLengthIfContains

      private static int getPercentPhraseLengthIfContains(String valueToCheck)
      Method to get length of percent phrase existing in given string, only if one of phrases exist on the length of string.
      Parameters:
      valueToCheck - String which is gonna be checked if contains percent phrase.
      Returns:
      Length of phrase inside string, returns -1 when no phrase found.
    • getPhraseLengthIfContains

      private static int getPhraseLengthIfContains(String valueToCheck, String phrase)
      Method to get length of given phrase in given string to check, method checks if phrase exist on the end of given string.
      Parameters:
      valueToCheck - String which gonna be checked if contains phrase.
      phrase - Phrase to be looked for on the end of given string.
      Returns:
      Length of phrase inside string, returns -1 when phrase wasn't found.
    • calculatePercentOfMemory

      private static long calculatePercentOfMemory(String value, int percentPhraseLength)
      Method to calculate percent of given max heap memory.
      Parameters:
      value - String which contains percent + percent phrase which gonna be used during calculations.
      percentPhraseLength - Length of percent phrase inside given value.
      Returns:
      Size of byte buffer based on percent of max heap memory.
    • parseByteValue

      private static long parseByteValue(String value) throws PSQLException
      Method to get size based on given string value. String can contains just a number or number + multiplier sign (like T, G, M or K).
      Parameters:
      value - Given string to be parsed.
      Returns:
      Size based on given string.
      Throws:
      PSQLException - Exception when given value can't be parsed.
    • adjustResultSize

      private static long adjustResultSize(long value)
      Method to adjust result memory limit size. If given memory is larger than 90% of max heap memory then it gonna be reduced to 90% of max heap memory.
      Parameters:
      value - Size to be adjusted.
      Returns:
      Adjusted size (original size or 90% of max heap memory)
    • throwExceptionAboutParsingError

      private static void throwExceptionAboutParsingError(String message, Object... values) throws PSQLException
      Method to throw message for parsing MaxResultBuffer.
      Parameters:
      message - Message to be added to exception.
      values - Values to be put inside exception message.
      Throws:
      PSQLException - Exception when given value can't be parsed.