Package org.postgresql.util
Class PGPropertyMaxResultBufferParser
java.lang.Object
org.postgresql.util.PGPropertyMaxResultBufferParser
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static long
adjustResultSize
(long value) Method to adjust result memory limit size.private static long
calculatePercentOfMemory
(String value, int percentPhraseLength) Method to calculate percent of given max heap memory.private static boolean
Method to check if given value can contain percent declaration of size of max result buffer.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.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.private static long
parseBytePercentValue
(String value) Method to get percent value of max result buffer size dependable on actual free memory.private static long
parseByteValue
(String value) Method to get size based on given string value.static long
parseProperty
(String value) Method to parse value of max result buffer size.private static void
throwExceptionAboutParsingError
(String message, Object... values) Method to throw message for parsing MaxResultBuffer.
-
Field Details
-
LOGGER
-
PERCENT_PHRASES
-
-
Constructor Details
-
PGPropertyMaxResultBufferParser
public PGPropertyMaxResultBufferParser()
-
-
Method Details
-
parseProperty
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
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
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
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
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
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
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.
-