[PATCH v3 6/9] lib: add date range query support

Tomi Ollila tomi.ollila at iki.fi
Mon Sep 17 08:35:58 PDT 2012


On Mon, Sep 17 2012, Michal Nazarewicz wrote:

>> Michal Nazarewicz <mina86 at mina86.com> writes:
>>> IMO this is totally unintuitive and not how the range should work.
>>> date:foo..bar should return messages whose date >= foo and < bar.  So
>>> for instance date:november..yesterday should return messages whose date
>>> is > 2012/11/01 00:00:00 and < 2012/09/12 00:00:00.  So to get
>>> yesterdays messages one would do: date:yesterday..today.
>
> On Thu, Sep 13 2012, David Bremner wrote:
>> I don't find ranges being half-open by default to be very
>> intuitive. Perhaps I don't program in python enough.
>
> Perhaps C than: “for (i = 0; i < 10; ++i)” is the standard idiom and the
> end range is open.
>
> Let's take a look at:
>
> 	date:2012/01/01..2012/01/01 + 1 day
>
> in my opinion, that should give results from the first of January only,
> since “+ 1 day” indicates in a way how long user want the period to be.
>
> I think it's also easier to pragmatically create ranges.  For instance,
> let's say you want to create ranges for each week, you'd end up with:
>
> 	date:2012/01/02..2012/01/09	## 2012w01
> 	date:2012/01/09..2012/01/16	## 2012w02
> 	date:2012/01/16..2012/01/23	## 2012w03

Ok, these matches with ISO Week...

> Notice how the opening date of a range matches the closing date of
> the previous date.

	2012/01/02 is monday
        2012/01/09 is monday.

For me 
 	date:2012/01/02..2012/01/08	## 2012w01

would be more intuitive in this context.


for (i = 0; i < 10; ++i)  loops through 0 - 9.

for (i = 1; i <= 10; ++i)  loops through 1 - 10.

python -c 'for f in range(5): print f'  prints 0 - 4

perl -le 'for (1..5) { print $_ }'  prints 1 - 5


... these does not clarify, but confuses these intuitions :D

>
> -- 
> Best regards,                                         _     _

> ..o | Computer Science,  Michał “mina86” Nazarewicz    (o o)

Tomi


More information about the notmuch mailing list