[jifty-devel] Frustration with limit's limitations

Todd Chapman todd at chaka.net
Fri Jun 27 08:28:04 EDT 2008


Jesse worked at Microsoft ?!

On Thu, Jun 26, 2008 at 7:55 PM, Jesse Vincent <jesse at bestpractical.com> wrote:
> limit is the oldest part of dbix::searchbuilder. I wrote the code in
> 1999 just after leaving microsoft. I share your desire for something
> more concise and expressive.  Ruslan has been working on a generalized
> version of rt's ticketsql for jdbi though I dunno if it's ready yet.
> You CAN do what you want with a combination of entry aggregators and
> named subclauses, but it is still clunkier than it should be.
>
> Solutions would be greatly appreciated, but please pick a better name
> for your new search method that makes more sense than limit.  I regret
> that poor naming every day.
>
>
> Jesse
>
> Sent from my phone. Please forgive my brevity.
>
> On Jun 27, 2008, at 2:23 AM, "Sterling Hanenkamp" <sterling at hanenkamp.com
>  > wrote:
>
>> Every so often I want to defenestrate Jifty::DBI for the simple fact
>> that I cannot describe a basic WHERE clause with it. For example,
>> the query:
>>
>> SELECT *
>> FROM tasks
>> WHERE parent = 12 AND task_type = 'action' AND (status = 'open' OR
>> (status = 'done' AND completed_on >= '2008-06-26 11:39:22'))
>>
>> Is there a way to do this? I haven't found a combination of limits
>> and subclauses that will let me do this that works. The code within
>> limit() is pretty complicated, so I haven't been able to unravel
>> what it is doing, let alone how this is supposed to work. I'll write
>> up a complex query example in the documentation if someone will give
>> me a demonstration on how this is supposed to be done. I have not
>> found a good example of a complex query either.
>>
>> My other issue with limit is that the format used in limit() is
>> pretty verbose. Has there been any consideration for allowing
>> arbitrary SQL to be used. I.e., this is arguably more straitforward:
>>
>> $tasks->limit(sql => "completed_on >= '2008-06-26 11:39:22'");
>>
>> than:
>>
>> $tasks->limit(column => 'completed_on', operator => '>=', value =>
>> '2008-06-26 11:39:22');
>>
>> Or the use of a more flexible and compact format for limits, such as
>> is used by SQL::Abstract:
>>
>> $tasks->limit(abstract => [ completed_on => [ '>=', '2008-06-26
>> 11:39:22' ] ]);
>>
>> Cheers,
>> Sterling
>> _______________________________________________
>> jifty-devel mailing list
>> jifty-devel at lists.jifty.org
>> http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
> _______________________________________________
> jifty-devel mailing list
> jifty-devel at lists.jifty.org
> http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
>


More information about the jifty-devel mailing list