sounds good. definitely sounds like a custom feature/plug-in rather than a
core functionality

Scott Bennett
______________________________________________________________

Please consider the environment, before printing this email.


On Wed, Feb 4, 2009 at 10:32 AM, Gerard Vignes <[email protected]>wrote:

> i would like to see a database server that forces all application
> logic to be implemented in the application itself: stripped down to
> the barest functionality; i spent years building application logic
> into sqlserver sprocs/udfs, but i finally saw the light and stopped
> doing that;
>
> i'm secretly hoping that drizzle turns out to be something like a
> daemonized version of sqlite: bigger, faster, and dumber; if the
> database were like a machine architecture and the orm were like a
> complier, then i would want to see a risc solution;
>
> -g
>
> On Tue, Feb 3, 2009 at 2:34 PM, Monty Taylor <[email protected]> wrote:
> > Jay Pipes wrote:
> >> Hi all again,
> >>
> >> I would like to propose the removal of the WEEK() and WEEKOFYEAR()
> >> functions from Drizzle and the corresponding default_week_format session
> >> variable, sometimes called the "week mode".
> >
> > Sounds fine to me. If someone really wants week() or weekofyear() they
> > can write them as UDFs.
> >
> >> Details of these things in MySQL can be found here:
> >>
> >>
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_week
> >>
> >>
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_weekofyear
> >>
> >>
> http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_default_week_format
> >>
> >>
> >> Why am I proposing this? A number of reasons:
> >>
> >> 1) Simplify the date functions
> >> 2) Standardize to format specifiers available in the C std library for
> >> strftime()
> >> 3) Removal of custom code that duplicates the strftime() and mktime()
> >> functions in cstdlib (about 1000 lines of code).
> >>
> >> Will there be any loss of functionality?
> >>
> >> No.  At least not any functionality that makes sense. :)
> >>
> >> The DATE_FORMAT() function has specifiers which enable getting the week
> >> number in three formats which correspond to the strftime() format
> >> specifiers:
> >>
> >> %U returns the week number 00-53 where week 1 is the first week
> >> containing a Sunday. Days in a week preceding the first Sunday are in
> >> week 0.
> >>
> >> %W returns the week number 00-53 where week 1 is the first week
> >> containing a Monday. Days in a week preceding the first Monday are in
> >> week 0.
> >>
> >> %V returns the week number of the year (Monday as the first day of the
> >> week) as a decimal number [01,53]. If the week containing 1 January has
> >> four or more days in the new year, then it is considered week 1.
> >> Otherwise, it is the last week of the previous year, and the next week
> >> is week 1.  This format is the format specified by ISO8601:1988.
> >>
> >> Currently, the WEEK() function is, IMHO, overly complex and mostly
> >> redundant with DATE_FORMAT() given one of the specifiers above.  It uses
> >> a week_mode second argument, which influences the return of the function
> >> per the following table:
> >>
> >> Mode     First day of week  Range   Week 1 is the first week...
> >> ------ ------------------- ------- -------------------------------
> >> 0      Sunday                0-53    with a Sunday in this year
> >> 1      Monday                0-53    with more than 3 days this year
> >> 2      Sunday                1-53    with a Sunday in this year
> >> 3      Monday                1-53    with more than 3 days this year
> >> 4      Sunday                0-53    with more than 3 days this year
> >> 5      Monday                0-53    with a Monday in this year
> >> 6      Sunday                1-53    with more than 3 days this year
> >> 7      Monday                1-53    with a Monday in this year
> >>
> >> If we removed the WEEK() function and week_mode variable entirely, the
> >> only supported behaviours would be modes 0, 3, and 5. All other modes
> >> correspond to behaviour that is contrary to any standard.
> >>
> >> ISO8601:1988 dictates that the first week is the one containing more
> >> than 3 days in a year, and that Monday is the start of the week and week
> >> numbers are numbered 1-53.  Therefore modes 1, 4, and 6 produce
> >> behaviour that is actually dangerous: it pretends to be ISO8601, but
> >> isn't correct.
> >>
> >> Therefore, I propose the removal of WEEK() and week_mode.
> >>
> >> Here is how one might produce the identical result to WEEK() for modes
> >> 0, 3, and 5 using DATE_FORMAT() properly:
> >>
> >> # "mode 0"
> >> SELECT DATE_FORMAT("2008-01-01", "%U")+0;
> >> # "mode 3"
> >> SELECT DATE_FORMAT("2008-01-01", "%V")+0;
> >> # "mode 5"
> >> SELECT DATE_FORMAT("2008-01-01", "%W")+0;
> >>
> >> Please vote for whether my proposal has merit.
> >>
> >> Thanks,
> >>
> >> Jay
> >>
> >> _______________________________________________
> >> Mailing list: 
> >> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> >> Post to     : [email protected]
> >> Unsubscribe : 
> >> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> >> More help   : https://help.launchpad.net/ListHelp
> >>
> >
> >
> > _______________________________________________
> > Mailing list: 
> > https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> > Post to     : [email protected]
> > Unsubscribe : 
> > https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> > More help   : https://help.launchpad.net/ListHelp
> >
>
> _______________________________________________
> Mailing list: 
> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> Post to     : [email protected]
> Unsubscribe : 
> https://launchpad.net/~drizzle-discuss<https://launchpad.net/%7Edrizzle-discuss>
> More help   : https://help.launchpad.net/ListHelp
>
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to