Surafel Temesgen wrote: > > About intervals, if there were locale-aware functions like > > add_interval(timestamptz, interval [, locale]) returns timestamptz > > or > > sub_timestamp(timestamptz, timestamptz [,locale]) returns interval > > that would use ICU to compute the results according to the locale, > > wouldn't it be good enough? > > > > > Yes it can be enough for now but there are patches proposed to support the > system and application time period which are in SQL standard
To clarify, these function signatures are not meant to oppose a core vs extension implementation, nor an ICU vs non-ICU implementation. They're meant to illustrate the case of using specific functions instead of adding specific data types. AFAIU, adding data types come from the idea that since (non-gregorian-date + interval) doesn't have the same result as (gregorian-date + interval), we could use a different type for non-gregorian-date and so a different "+" operator, maybe even a specific interval type. For the case of temporal tables, I'm not quite familiar with the feature, but I notice that the patch says: + When system versioning is specified two columns are added which + record the start timestamp and end timestamp of each row verson. + The data type of these columns will be TIMESTAMP WITH TIME ZONE. The user doesn't get to choose the data type, so if we'd require to use specific data types for non-gregorian calendars, that would seemingly complicate things for this feature. This is consistent with the remark upthread that the SQL standard assumes the gregorian calendar. > what it takes to support calendar locally is input/output function > and a converter from and to julian calendar and that may not be that > much hard since most of the world calendar is based on julian or > gregorian calendar[0] The conversions from julian dates are not necessarily hard, but the I/O functions means having localized names for all days, months, eras of all calendars in all supported languages. If you're thinking of implementing this from scratch (without the ICU dependency), where would these names come from? OTOH if we're using ICU, then why bother reinventing the julian-to-calendars conversions that ICU already does? Best regards, -- Daniel Vérité PostgreSQL-powered mailer: https://www.manitou-mail.org Twitter: @DanielVerite