Re: Re: or and combine missing

[email protected] Mon, 13 Dec 2010 11:25:35 +1000
Newsgroups gmane.comp.java.orm.simpleorm
Message-ID <[email protected]>
--=====================_1610923997==_
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hello Guenter,

There is a bit of an issue in that they were rather ugly.  But so are the alternatives.

A cleaner way would be something like

new SQuery().AddOr(SQuery.eq(...), SQuery.eq(...))...

with the tree being built up explicitly rather than with the .combine/.combineEnd push/pop methods.

However, note that SQuery.eq would need to be a static method, with no access to the actual query being built until the top level AddOr, which would hten have to validate it.

I just thought that as queries became that complex, maybe we should defer to SQL clauses, and keep SimpleOrm simple.

(One thing that might be useful is a specific isEmpty test for (? = '' OR ? IS NULL).  Likewise a fieldNullEq for (? = ? OR (? IS NULL AND ? IS NULL), and fieldEmptyEq ...).

To me, a bigger challenge, and the one that is very database dependent, is some function processing with dates and sub-strings for more complex queries.  That certainly would be a mess with the push/pop approach.

What is your use case, and does it really justify an additions?  Would you be prepared to suggest a properly thought out syntax, provide examples and test cases, and possibly offer an implementation?  (Not hard, but needs doing.)

Regards,

Anthony

At 07:17 PM 11/12/2010, Guenter Wildmann wrote:
>  
>
>Hello Franck,
>
>In 2.x there were the .or and .combine methods. (.combine and
>.combineEnd for opening bracket and closing bracket in where-condition).
>If there is no design-issue for not implementing this methods, i would
>like to have them back. The same with the extra_DLL possibility as i try
>to use SimpleORM as 'single source of truth'.
>
>Ciao, Guenter
>
>===========================
>Hi,
>
>> Why are the or and combine methods missing in SimpleORM 3.x?
>
>No specific reason AFAIK, they are just not implemented :-)
>
>By combine, do you mean UNION ?
>
>> What is the
>> best practice to use if the condition can not be created whith the
>> methods available?
>
>You can use the rawPredicate method, or even the rawSql...
>
>Franck
>

Dr Anthony Berglas, [email protected]       Mobile: +61 4 4838 8874
Just because it is possible to push twigs along the ground with ones nose
does not necessarily mean that is the best way to collect firewood.


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/SimpleORM/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/SimpleORM/join
    (Yahoo! ID required)

<*> To change settings via email:
    [email protected] 
    [email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


--=====================_1610923997==_
Content-Type: image/jpeg; name="6004bf60.jpg";
 x-mac-type="4A504547"; x-mac-creator="4A565752"
Content-ID: <.0>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="6004bf60.jpg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAPAIkDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9u/8A
gqt/wT1/at8K/CHXvj3+wX+1X+2PF4y8Dy6r4q8e/A+8/aI+LHiu08deFDNPqeqzfD2O78RS6vpn
iPw7Bva08KaZctb6/osUljo0EPiKCyj1fp/2df8Ago38INb/AOCZ1p8d/gZ8drX4UfEq38baZ4b8
aeDP2kLz4yftf+NLX4zalYW1nJ8IPAvhS7+J+h/FLxhP47ltLHUfhhB4b1trF7K61DUrvQotSi8U
x6d+3fx2+OPw1/Zt+FHjD41/F/W5/Dnw58CWNvqPibWrbSNX16extbu/tNMgePSdCstQ1W8aS9vb
aHZaWczKJDI4WJHdf4Zv2Pv2x/2Afg9/wWT/AGkv2t/GEdnoP7NXimD4ha78CddHwt17VB4d8eeL
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
AA5n/Yt/6B/xT/8ADna5/wDEUAf/2Q==
--=====================_1610923997==_--