Re: Extension development - Mailing list pgsql-hackers

From Tomas Vondra
Subject Re: Extension development
Date
Msg-id 20190815205351.trwqaybqslhczjri@development
Whole thread Raw
In response to Extension development  (Yonatan Misgan <yonamis@dtu.edu.et>)
List pgsql-hackers
On Thu, Aug 15, 2019 at 06:58:07AM +0000, Yonatan Misgan wrote:
>Hello, I am trying to develop calendar extension for PostgreSQL  but
>there is a difficulties on how to get day, month and year from
>PostgreSQL source code because when am read the PostgreSQL source code
>it uses DateADT as a data type and this DateADT returns the total
>numbers of day. So how can  I get day, month or year only. For example
>the below code is PostgreSQL source code to return current date.
>/*
>* GetSQLCurrentDate -- implements CURRENT_DATE
>*/
>DateADT
>GetSQLCurrentDate(void)
>{
>                TimestampTz ts;
>                struct pg_tm tt,
>                                                   *tm = &tt;
>                fsec_t                   fsec;
>                int                                           tz;
>
>                ts = GetCurrentTransactionStartTimestamp();
>
>                if (timestamp2tm(ts, &tz, tm, &fsec, NULL, NULL) != 0)
>                                ereport(ERROR,
>                                                                (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
>                                                                errmsg("timestamp out of range")));
>
>                return date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - POSTGRES_EPOCH_JDATE;
>}
>From this source code how can I get only the year to convert my own
>calendar year.  I need this because Ethiopian calendar is totally
>differ from GC in terms of day, month and year.
>

I think you might want to look at timestamptz_part() function, in
timestamp.c. That's what's behind date_part() SQL function, which seems
doing the sort of stuff you need.


regards

-- 
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services 



pgsql-hackers by date:

Previous
From: Ibrar Ahmed
Date:
Subject: Re: UNION ALL
Next
From: Tomas Vondra
Date:
Subject: Re: Speed up transaction completion faster after many relations areaccessed in a transaction