Search Postgresql Archives

Re: Writing a C function to return the log file name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kouber Saparev wrote:
> I am trying to write a function in C to return the log file name by given timestamp. I
> will use that later to make dynamic creation of a foreign table (file_fdw) to read the csv
> logs themselves. The thing is I do now want to hardcode neither the format, nor the
> directory in my extension.
> 
> I already looked into the adminpack extension, but the format is hardcoded to the default
> one there, so it does not serve my needs.
> 
> Here is what I currently have:
> https://gist.github.com/kouber/89b6e5b647452a672a446b12413e20cf
> 
> 
> The thing is the function is returning random results, obtained by pg_strftime().
> 
> kouber=# select now()::timestamp, sqlog.log_path(now()::timestamp);
> NOTICE:  Log directory = "pg_log"
> NOTICE:  Log filename = "postgresql-%F.log"
> NOTICE:  Length = "7"
> NOTICE:  Filename = "pg_log/postgresql-17422165-04-30.log"
>            now             |               log_path
> ----------------------------+--------------------------------------
> 2017-06-02 14:17:47.832446 | pg_log/postgresql-17422165-04-30.csv
> (1 row)
> 
> kouber=# select now()::timestamp, sqlog.log_path(now()::timestamp);
> NOTICE:  Log directory = "pg_log"
> NOTICE:  Log filename = "postgresql-%F.log"
> NOTICE:  Length = "7"
> NOTICE:  Filename = "pg_log/postgresql-17422166-02-08.log"
>            now             |               log_path
> ----------------------------+--------------------------------------
> 2017-06-02 14:18:12.390558 | pg_log/postgresql-17422166-02-08.csv
> (1 row)
> 
> 
> 
> 
> 
> Any idea what am I doing wrong?
> 
> 
> I copied logfile_getname() from syslogger.c, and simply added some debug messages in
> there.

You are mixing up "Timestamp" and "pg_time_t".

Both are int64, but the former contains the number of microseconds since
2000-01-01 00:00:00, while the latter represents "the number of seconds
elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC)"
(quote from "man localtime").

Yours,
Laurenz Albe

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux