Merge pull request #8024 from ClickHouse/millb-fix_metric_suffix_in_settings_value

Merging [#7678]
This commit is contained in:
alesapin 2019-12-04 14:27:14 +03:00 committed by GitHub
commit a651a1e05b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 1 deletions

View File

@ -62,7 +62,7 @@ void SettingNumber<Type>::set(const Field & x)
template <typename Type>
void SettingNumber<Type>::set(const String & x)
{
set(parse<Type>(x));
set(completeParse<Type>(x));
}
template <>

View File

@ -877,6 +877,30 @@ inline T parse(const char * data, size_t size)
return res;
}
/// Read something from text format, but expect complete parse of given text
/// For example: 723145 -- ok, 213MB -- not ok
template <typename T>
inline T completeParse(const char * data, size_t size)
{
T res;
ReadBufferFromMemory buf(data, size);
readText(res, buf);
assertEOF(buf);
return res;
}
template <typename T>
inline T completeParse(const String & s)
{
return completeParse<T>(s.data(), s.size());
}
template <typename T>
inline T completeParse(const char * data)
{
return completeParse<T>(data, strlen(data));
}
template <typename T>
inline T parse(const char * data)
{

View File

@ -0,0 +1,2 @@
10000000001
10000000001

View File

@ -0,0 +1,7 @@
SET max_memory_usage = 10000000001;
SELECT value FROM system.settings WHERE name = 'max_memory_usage';
SET max_memory_usage = '1G'; -- { serverError 27 }
SELECT value FROM system.settings WHERE name = 'max_memory_usage';