From c3d959745e0a5c3063f4a79e661ecb839e71b50f Mon Sep 17 00:00:00 2001 From: XuanYang-cn <51370125+XuanYang-cn@users.noreply.github.com> Date: Wed, 2 Sep 2020 17:12:26 +0800 Subject: [PATCH] fix size meta to unsigned big int (#3550) Signed-off-by: yangxuan Co-authored-by: yangxuan --- CHANGELOG.md | 1 + core/src/db/meta/MetaSession.h | 4 ++-- core/src/db/meta/backend/MySqlEngine.cpp | 4 ++-- core/src/db/meta/backend/SqliteEngine.cpp | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf1edd66..be9606cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ Please mark all changes in change log and use the issue from GitHub - \#3406 No debug and info log generated after server started - \#3407 Server get stuck if create index after entities inserted with no manual flush - \#3446 ListIDInSegment get wrong result when delete more than one ids +- \#3482 Server crashed during adding entities ## Feature - \#2319 Redo metadata to support MVCC diff --git a/core/src/db/meta/MetaSession.h b/core/src/db/meta/MetaSession.h index 540f699c..b380f9bf 100644 --- a/core/src/db/meta/MetaSession.h +++ b/core/src/db/meta/MetaSession.h @@ -301,7 +301,7 @@ MetaSession::Select(const std::string& field, const std::vector& values, if (size_p != nullptr) { iter = raw.find(F_SIZE); if (iter != raw.end()) { - auto size = std::stol(iter->second); + uint64_t size = std::stoul(iter->second); size_p->SetSize(size); } } @@ -310,7 +310,7 @@ MetaSession::Select(const std::string& field, const std::vector& values, if (rc_p != nullptr) { iter = raw.find(F_ROW_COUNT); if (iter != raw.end()) { - auto rc = std::stol(iter->second); + uint64_t rc = std::stoul(iter->second); rc_p->SetRowCount(rc); } } diff --git a/core/src/db/meta/backend/MySqlEngine.cpp b/core/src/db/meta/backend/MySqlEngine.cpp index 4b6879d3..0b39685e 100644 --- a/core/src/db/meta/backend/MySqlEngine.cpp +++ b/core/src/db/meta/backend/MySqlEngine.cpp @@ -50,8 +50,8 @@ static const MetaField MetaStateField = MetaField(F_STATE, "TINYINT", "NOT NULL" static const MetaField MetaCreatedOnField = MetaField(F_CREATED_ON, "BIGINT", "NOT NULL"); static const MetaField MetaUpdatedOnField = MetaField(F_UPDATED_ON, "BIGINT", "NOT NULL"); static const MetaField MetaParamsField = MetaField(F_PARAMS, "JSON", "NOT NULL"); -static const MetaField MetaSizeField = MetaField(F_SIZE, "BIGINT", "NOT NULL"); -static const MetaField MetaRowCountField = MetaField(F_ROW_COUNT, "BIGINT", "NOT NULL"); +static const MetaField MetaSizeField = MetaField(F_SIZE, "BIGINT UNSIGNED", "NOT NULL"); +static const MetaField MetaRowCountField = MetaField(F_ROW_COUNT, "BIGINT UNSIGNED", "NOT NULL"); static const MetaField MetaTypeNameField = MetaField(F_TYPE_NAME, "VARCHAR(255)", "NOT NULL"); // Environment schema diff --git a/core/src/db/meta/backend/SqliteEngine.cpp b/core/src/db/meta/backend/SqliteEngine.cpp index e5b5fabc..1659b8be 100644 --- a/core/src/db/meta/backend/SqliteEngine.cpp +++ b/core/src/db/meta/backend/SqliteEngine.cpp @@ -42,8 +42,8 @@ static const MetaField MetaStateField = MetaField(F_STATE, "TINYINT", "NOT NULL" static const MetaField MetaCreatedOnField = MetaField(F_CREATED_ON, "BIGINT", "NOT NULL"); static const MetaField MetaUpdatedOnField = MetaField(F_UPDATED_ON, "BIGINT", "NOT NULL"); static const MetaField MetaParamsField = MetaField(F_PARAMS, "VARCHAR(255)", "NOT NULL"); -static const MetaField MetaSizeField = MetaField(F_SIZE, "BIGINT", "NOT NULL"); -static const MetaField MetaRowCountField = MetaField(F_ROW_COUNT, "BIGINT", "NOT NULL"); +static const MetaField MetaSizeField = MetaField(F_SIZE, "UNSIGNED BIG INT", "NOT NULL"); +static const MetaField MetaRowCountField = MetaField(F_ROW_COUNT, "UNSIGNED BIG INT", "NOT NULL"); static const MetaField MetaTypeNameField = MetaField(F_TYPE_NAME, "VARCHAR(255)", "NOT NULL"); // Environment schema -- GitLab