=====oid базы=====
Для каждой базы данных создается каталог с номером oid базы данных в $ PGDATA / base вместе с набором файлов OID, OID_fsm, OID_vm, PG_VERSION для каждого объекта (Tables / Indexes / View / и т. Д.). \\
Все файлы OID, OID_fsm, OID_vm будут обновляться в соответствии с изменениями, внесенными на уровне базы данных. Однако файл PG_VERSION никогда не будет обновляться при любых изменениях, внесенных в базу данных.
parser_wb=# SELECT * from pg_database where datname = 'parser_wb';
oid | datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | datminmxid | dattablespace | datacl
-------+-----------+--------+----------+------------+------------+---------------+--------------+--------------+---------------+--------------+------------+---------------+--------
16384 | parser_wb | 10 | 6 | en_US.utf8 | en_US.utf8 | f | t | -1 | 13394 | 479 | 1 | 1663 |
(1 row)
====Как узнать время создания базы данных в PostgreSQL 9.0?====
так, мы собираемся использовать временную метку файла PG_VERSION в качестве времени создания базы данных. Я считаю, что будет возможность изменить временную метку PG_VERSION, но я не уверен, в каком случае эти изменения
CREATE OR REPLACE FUNCTION public.get_pg_version_loc(dbname varchar) RETURNS text AS
$body$
DECLARE
dbname ALIAS FOR $1;
data_dir text;
db_oid text;
os_execute text;
BEGIN
SELECT INTO db_oid oid from pg_database where datname = dbname;
show data_directory into data_dir;
os_execute := 'stat -c "%y" '||data_dir||'/base/'||db_oid||'/PG_VERSION';
return os_execute;
END;
$body$
LANGUAGE 'plpgsql';