|
|
|
|
@ -5,7 +5,7 @@ |
|
|
|
|
* Copyright (c) 2002-2005, PostgreSQL Global Development Group |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.7 2005/10/29 00:31:51 petere Exp $ |
|
|
|
|
* $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.7.2.1 2007/03/11 06:43:23 alvherre Exp $ |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
@ -51,10 +51,14 @@ db_dir_size(const char *path) |
|
|
|
|
snprintf(filename, MAXPGPATH, "%s/%s", path, direntry->d_name); |
|
|
|
|
|
|
|
|
|
if (stat(filename, &fst) < 0) |
|
|
|
|
ereport(ERROR, |
|
|
|
|
(errcode_for_file_access(), |
|
|
|
|
errmsg("could not stat file \"%s\": %m", filename))); |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
if (errno == ENOENT) |
|
|
|
|
continue; |
|
|
|
|
else |
|
|
|
|
ereport(ERROR, |
|
|
|
|
(errcode_for_file_access(), |
|
|
|
|
errmsg("could not stat file \"%s\": %m", filename))); |
|
|
|
|
} |
|
|
|
|
dirsize += fst.st_size; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -173,9 +177,14 @@ calculate_tablespace_size(Oid tblspcOid) |
|
|
|
|
snprintf(pathname, MAXPGPATH, "%s/%s", tblspcPath, direntry->d_name); |
|
|
|
|
|
|
|
|
|
if (stat(pathname, &fst) < 0) |
|
|
|
|
ereport(ERROR, |
|
|
|
|
(errcode_for_file_access(), |
|
|
|
|
errmsg("could not stat file \"%s\": %m", pathname))); |
|
|
|
|
{ |
|
|
|
|
if (errno == ENOENT) |
|
|
|
|
continue; |
|
|
|
|
else |
|
|
|
|
ereport(ERROR, |
|
|
|
|
(errcode_for_file_access(), |
|
|
|
|
errmsg("could not stat file \"%s\": %m", pathname))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (fst.st_mode & S_IFDIR) |
|
|
|
|
totalsize += db_dir_size(pathname); |
|
|
|
|
|