Files
Sergei Golubchik e3d9369774 cleanup: disconnect before DROP USER
let's always disconnect a user connection before dropping the said user.
MariaDB is traditionally very tolerant to active connections
of the dropped user, which isn't the case for most other databases.

Let's avoid unintentionally spreading incompatible behavior
and disconnect before drop.

Except in cases when the test specifically tests such a behavior.
2025-07-16 09:14:33 +07:00
..

Information Schema Disks
------------------------
This is a proof-of-concept information schema plugin that allows the
disk space situation to be monitored. When installed, it can be used
as follows:

  > select * from information_schema.disks;
  +-----------+-----------------------+-----------+----------+-----------+
  | Disk      | Path                  | Total     | Used     | Available |
  +-----------+-----------------------+-----------+----------+-----------+
  | /dev/sda3 | /                     |  47929956 | 30666304 |  14805864 |
  | /dev/sda1 | /boot/efi             |    191551 |     3461 |    188090 |
  | /dev/sda4 | /home                 | 174679768 | 80335392 |  85448120 |
  | /dev/sdb1 | /mnt/hdd              | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/Music    | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/Videos   | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/hdd      | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/Pictures | 961301832 |    83764 | 912363644 |
  | /dev/sda3 | /var/lib/docker/aufs  |  47929956 | 30666304 |  14805864 |
  +-----------+-----------------------+-----------+----------+-----------+
  9 rows in set (0.00 sec)

- 'Disk' is the name of the disk itself.
- 'Path' is the mount point of the disk.
- 'Total' is the total space in KiB.
- 'Used' is the used amount of space in KiB, and
- 'Available' is the amount of space in KiB available to non-root users.

Note that as the amount of space available to root may be more that what
is available to non-root users, 'available' + 'used' may be less than 'total'.

All paths to which a particular disk has been mounted are reported. The
rationale is that someone might want to take different action e.g. depending
on which disk is relevant for a particular path. This leads to the same disk
being reported multiple times. An alternative to this would be to have two
tables; disks and mounts.

  > select * from information_schema.disks;
  +-----------+-----------+----------+-----------+
  | Disk      | Total     | Used     | Available |
  +-----------+-----------+----------+-----------+
  | /dev/sda3 |  47929956 | 30666304 |  14805864 |
  | /dev/sda1 |    191551 |     3461 |    188090 |
  | /dev/sda4 | 174679768 | 80335392 |  85448120 |
  | /dev/sdb1 | 961301832 |    83764 | 912363644 |
  +-----------+-----------+----------+-----------+

  > select * from information_schema.mounts;
  +-----------------------+-----------+
  | Path                  | Disk      |
  +-----------------------+-----------+
  | /                     | /dev/sda3 |
  | /boot/efi             | /dev/sda1 |
  | /home                 | /dev/sda4 |
  | /mnt/hdd              | /dev/sdb1 |
  | /home/wikman/Music    | /dev/sdb1 |
  ...


Installation
------------

- Use "install plugin" or "install soname" command:

  MariaDB [(none)]> install plugin disks soname 'disks.so';

  or

  MariaDB [(none)]> install soname 'disks.so';

Usage
-----
The plugin appears as the table 'disks' in 'information_schema'.

  MariaDB [(none)]> select * from information_schema.disks;
  +-----------+-----------------------+-----------+----------+-----------+
  | Disk      | Path                  | Total     | Used     | Available |
  +-----------+-----------------------+-----------+----------+-----------+
  | /dev/sda3 | /                     |  47929956 | 30666308 |  14805860 |
  | /dev/sda1 | /boot/efi             |    191551 |     3461 |    188090 |
  | /dev/sda4 | /home                 | 174679768 | 80348148 |  85435364 |
  | /dev/sdb1 | /mnt/hdd              | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/Music    | 961301832 |    83764 | 912363644 |
  | /dev/sdb1 | /home/wikman/Videos   | 961301832 |    83764 | 912363644 |
  ...