volkanunsal / postgres-rrule

Recurring dates in Postgres.
MIT License
106 stars 26 forks source link

Does it support nth day rule??? #10

Open adityaawl opened 4 years ago

adityaawl commented 4 years ago

Executing occurrences on rrule RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1;BYDAY=1TU returns the error. Seems like it doesn't understand nth day. I'm not sure if I'm missing anything.

SQL Error [22P02]: ERROR: invalid input value for enum _rrule.day: "1TU" Where: SQL function "day_array" statement 1 SQL statement "WITH "tokens" AS ( WITH A20 as (SELECT _rrule.parse_line($1::text, 'RRULE') "r"), -- Split each key value pair into an array, e.g. {'FREQ', 'DAILY'} A30 as (SELECT regexp_split_to_array("r", '=') AS "y" FROM A20) SELECT "y"[1] AS "key", "y"[2] AS "val" FROM A30 ), candidate AS ( SELECT (SELECT "val"::_rrule.FREQ FROM "tokens" WHERE "key" = 'FREQ') AS "freq", (SELECT "val"::INTEGER FROM "tokens" WHERE "key" = 'INTERVAL') AS "interval", (SELECT "val"::INTEGER FROM "tokens" WHERE "key" = 'COUNT') AS "count", (SELECT "val"::TIMESTAMP FROM "tokens" WHERE "key" = 'UNTIL') AS "until", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYSECOND') AS "bysecond", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYMINUTE') AS "byminute", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYHOUR') AS "byhour", (SELECT _rrule.day_array("val") FROM "tokens" WHERE "key" = 'BYDAY') AS "byday", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYMONTHDAY') AS "bymonthday", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYYEARDAY') AS "byyearday", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYWEEKNO') AS "byweekno", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYMONTH') AS "bymonth", (SELECT _rrule.integer_array("val") FROM "tokens" WHERE "key" = 'BYSETPOS') AS "bysetpos", (SELECT "val"::_rrule.DAY FROM "tokens" WHERE "key" = 'WKST') AS "wkst"

volkanunsal commented 4 years ago

Nth day rule is not implemented.

antoinerl commented 4 years ago

Hi, @volkanunsal Do you think you would implement it ?

@adityaawl did you find a solution to get nth days ? Did you implement something ?

Thank you for your work

reysy commented 1 year ago

Hi, @volkanunsal do you think you would implement it?

Thank you.

volkanunsal commented 1 year ago

Hey @reysy . I have no immediate plans to implement this feature unfortunately.

reysy commented 1 year ago

@volkanunsal Hi, thank you for your work and the reply!

PeterSR commented 1 month ago

@adityaawl - Isn't the RRULE string supposed to be

RRULE:FREQ=MONTHLY;COUNT=3;INTERVAL=1;BYSETPOS=1;BYDAY=TU