summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorVicențiu Ciorbaru <vicentiu@mariadb.org>2020-06-11 22:35:30 +0300
committerVicențiu Ciorbaru <vicentiu@mariadb.org>2020-06-11 22:35:30 +0300
commit8c67ffffe827ce07fbe55ba0fb89b82cdd9152dc (patch)
tree9e164262c9d5ec839e46be8492aad7b8187325bf /plugin
parente835881c474ec1c43ab3c24a9d4a6e2615fb3398 (diff)
parentde20091f5cee6c018da37a6f4c2c57653d369ad6 (diff)
downloadmariadb-git-8c67ffffe827ce07fbe55ba0fb89b82cdd9152dc.tar.gz
Merge branch '10.1' into 10.2
Diffstat (limited to 'plugin')
-rw-r--r--plugin/disks/information_schema_disks.cc13
-rw-r--r--plugin/disks/mysql-test/disks/disks.result6
2 files changed, 10 insertions, 9 deletions
diff --git a/plugin/disks/information_schema_disks.cc b/plugin/disks/information_schema_disks.cc
index c4b558ba107..e3b0e96c2e7 100644
--- a/plugin/disks/information_schema_disks.cc
+++ b/plugin/disks/information_schema_disks.cc
@@ -32,9 +32,9 @@ ST_FIELD_INFO disks_table_fields[]=
{
{ "Disk", PATH_MAX, MYSQL_TYPE_STRING, 0, 0 ,0, 0 },
{ "Path", PATH_MAX, MYSQL_TYPE_STRING, 0, 0 ,0, 0 },
- { "Total", 32, MYSQL_TYPE_LONG, 0, 0 ,0 ,0 }, // Total amount available
- { "Used", 32, MYSQL_TYPE_LONG, 0, 0 ,0 ,0 }, // Amount of space used
- { "Available", 32, MYSQL_TYPE_LONG, 0, 0 ,0 ,0 }, // Amount available to users other than root.
+ { "Total", 32, MYSQL_TYPE_LONGLONG, 0, 0 ,0 ,0 }, // Total amount available
+ { "Used", 32, MYSQL_TYPE_LONGLONG, 0, 0 ,0 ,0 }, // Amount of space used
+ { "Available", 32, MYSQL_TYPE_LONGLONG, 0, 0 ,0 ,0 }, // Amount available to users other than root.
{ 0, 0, MYSQL_TYPE_NULL, 0, 0, 0, 0 }
};
@@ -51,9 +51,10 @@ int disks_table_add_row(THD* pThd,
// f_bfree Total number of free blocks.
// f_bavail Number of free blocks available to non-privileged process.
- size_t total = (info.f_frsize * info.f_blocks) / 1024;
- size_t used = (info.f_frsize * (info.f_blocks - info.f_bfree)) / 1024;
- size_t avail = (info.f_frsize * info.f_bavail) / 1024;
+ ulonglong total = ((ulonglong)info.f_frsize * info.f_blocks) / 1024;
+ ulonglong used = ((ulonglong)info.f_frsize *
+ (info.f_blocks - info.f_bfree)) / 1024;
+ ulonglong avail = ((ulonglong)info.f_frsize * info.f_bavail) / 1024;
pTable->field[0]->store(zDisk, strlen(zDisk), system_charset_info);
pTable->field[1]->store(zPath, strlen(zPath), system_charset_info);
diff --git a/plugin/disks/mysql-test/disks/disks.result b/plugin/disks/mysql-test/disks/disks.result
index 65b1127d479..0b4ee6249aa 100644
--- a/plugin/disks/mysql-test/disks/disks.result
+++ b/plugin/disks/mysql-test/disks/disks.result
@@ -3,9 +3,9 @@ Table Create Table
DISKS CREATE TEMPORARY TABLE `DISKS` (
`Disk` varchar(4096) NOT NULL DEFAULT '',
`Path` varchar(4096) NOT NULL DEFAULT '',
- `Total` int(32) NOT NULL DEFAULT 0,
- `Used` int(32) NOT NULL DEFAULT 0,
- `Available` int(32) NOT NULL DEFAULT 0
+ `Total` bigint(32) NOT NULL DEFAULT 0,
+ `Used` bigint(32) NOT NULL DEFAULT 0,
+ `Available` bigint(32) NOT NULL DEFAULT 0
) ENGINE=MEMORY DEFAULT CHARSET=utf8
select sum(Total) > sum(Available), sum(Total)>sum(Used) from information_schema.disks;
sum(Total) > sum(Available) sum(Total)>sum(Used)