You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Immi <mi...@nowhow.ch> on 2007/02/22 11:34:05 UTC
Re: [2] Minilang enhancement suggestion
You're right. But this are filters and are applied after reading from the
database.
That means ofbiz is reading all my datasets (over a million) from the
database
before filtering out the valid datasets.
If there are 3 datasets out of a million wich are valid today, I doesn't
seem to
be very performant to read million datasets and apply the filter on them
before
returning the 3 found datasets...
Michael
Jacopo Cappellato wrote:
>
> Immi,
>
> <find-by-and> has already an attribute that can be used for this:
>
> filter-by-date
>
> for example:
>
> <find-by-and filter-by-date="true" entity-name="Archivindex"
> map-name="searchMap" list-name="list"/>
>
> Or you should use the more flexible:
>
> <entity-condition> operator instead of <find-by-and>
>
> For a full list of available options you should look at:
>
> framework/minilang/dtd/simple-methods.xsd
>
> Jacopo
>
>
> Immi wrote:
>> I would like to make a database query on a archiv database with millions
>> of
>> datasets.
>> But I'm only interested by the current valid entries (would be around
>> 5000).
>>
>> Ofbiz minilang provides following commands for such queries:
>> <find-by-and/>
>> and <filter-list-by-date/>.
>>
>> But if I look at the code, then <find-by-and/> is reading all entries
>> (Well,
>> in blocks if I use the iterator)
>> and then, with <filter-list-by-date/>, a date filter is applied on the
>> found
>> entries!
>>
>> I suggest an enhancement of the minilang commang <find-by-and/> (and
>> <remove-by-and/>, ...):
>> A new Element <where/> as subelement from <find-by-and/>
>>
>> <find-by-and entity-name="Archivindex" map-name="searchMap"
>> list-name="list">
>> <where field-name="dateFrom" operator="less-equals"
>> env-name="parameters.date"/>
>> <where field-name="dateTo" operator="greater-equals"
>> env-name="parameters.date"/>
>> </find-by-and>
>>
>> With this enhancement, it would be possible to make custom database
>> queries...
>>
>> What do you think about this??
>>
>> Regards
>> Michael
>>
>>
>>
>
>
>
>
--
View this message in context: http://www.nabble.com/Minilang-enhancement-suggestion-tf3271907.html#a9097505
Sent from the OFBiz - User mailing list archive at Nabble.com.
Re: [2] Minilang enhancement suggestion
Posted by Immi <mi...@nowhow.ch>.
Ok, I got it. The <entity-condition/> is solving all my problems...
Thanks
What's about iterator
David E. Jones-2 wrote:
>
>
> If you want these sorts of conditions the best thing is to build your
> condition tree with the entity-condition operation, then you can have
> the database filter by these conditions, etc, and all very explicitly.
>
> -David
>
>
> On Feb 22, 2007, at 6:52 AM, Immi wrote:
>
>>
>> That doesn't matter, Jacopo. You can call me Immi or Michael.
>> Immi is just a nickname:-)
>>
>> Back to business:
>>
>> I would like to test the attribute "filter-by-date" but I couldn't
>> find it
>> in
>> my "framework/minilang/dtd/simple-methods.xsd".
>> I just checked out the last version of ofbiz from
>> "http://svn.apache.org/repos/asf/ofbiz"!!
>>
>> My next step would be to test reverse date validation:
>> - Ofbiz suggests two dates on the database: "FROM_DATE"/"THRU_DATE"
>> and
>> clients are searching
>> for a specific date.
>> - Our client wants to search datasets between date1 & date2. That
>> means we
>> have on date field on the
>> database and two dates to search with.
>>
>> Is this possible with the current minilang?
>>
>> Michael
>>
>>
>> Jacopo Cappellato wrote:
>>>
>>> Immi,
>>>
>>> Immi wrote:
>>>> You're right. But this are filters and are applied after reading
>>>> from the
>>>> database.
>>>
>>> why are you saying this? Please read carefully what I suggested
>>> you to
>>> do. It's different from what you did initially.
>>>
>>> Jacopo
>>>
>>>> That means ofbiz is reading all my datasets (over a million) from
>>>> the
>>>> database
>>>> before filtering out the valid datasets.
>>>> If there are 3 datasets out of a million wich are valid today, I
>>>> doesn't
>>>> seem to
>>>> be very performant to read million datasets and apply the filter
>>>> on them
>>>> before
>>>> returning the 3 found datasets...
>>>>
>>>> Michael
>>>>
>>>>
>>>> Jacopo Cappellato wrote:
>>>>> Immi,
>>>>>
>>>>> <find-by-and> has already an attribute that can be used for this:
>>>>>
>>>>> filter-by-date
>>>>>
>>>>> for example:
>>>>>
>>>>> <find-by-and filter-by-date="true" entity-name="Archivindex"
>>>>> map-name="searchMap" list-name="list"/>
>>>>>
>>>>> Or you should use the more flexible:
>>>>>
>>>>> <entity-condition> operator instead of <find-by-and>
>>>>>
>>>>> For a full list of available options you should look at:
>>>>>
>>>>> framework/minilang/dtd/simple-methods.xsd
>>>>>
>>>>> Jacopo
>>>>>
>>>>>
>>>>> Immi wrote:
>>>>>> I would like to make a database query on a archiv database with
>>>>>> millions
>>>>>> of
>>>>>> datasets.
>>>>>> But I'm only interested by the current valid entries (would be
>>>>>> around
>>>>>> 5000).
>>>>>>
>>>>>> Ofbiz minilang provides following commands for such queries:
>>>>>> <find-by-and/>
>>>>>> and <filter-list-by-date/>.
>>>>>>
>>>>>> But if I look at the code, then <find-by-and/> is reading all
>>>>>> entries
>>>>>> (Well,
>>>>>> in blocks if I use the iterator)
>>>>>> and then, with <filter-list-by-date/>, a date filter is applied
>>>>>> on the
>>>>>> found
>>>>>> entries!
>>>>>>
>>>>>> I suggest an enhancement of the minilang commang <find-by-and/>
>>>>>> (and
>>>>>> <remove-by-and/>, ...):
>>>>>> A new Element <where/> as subelement from <find-by-and/>
>>>>>>
>>>>>> <find-by-and entity-name="Archivindex" map-
>>>>>> name="searchMap"
>>>>>> list-name="list">
>>>>>> <where field-name="dateFrom" operator="less-equals"
>>>>>> env-name="parameters.date"/>
>>>>>> <where field-name="dateTo" operator="greater-equals"
>>>>>> env-name="parameters.date"/>
>>>>>> </find-by-and>
>>>>>>
>>>>>> With this enhancement, it would be possible to make custom
>>>>>> database
>>>>>> queries...
>>>>>>
>>>>>> What do you think about this??
>>>>>>
>>>>>> Regards
>>>>>> Michael
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context: http://www.nabble.com/Minilang-
>> enhancement-suggestion-tf3271907.html#a9100199
>> Sent from the OFBiz - User mailing list archive at Nabble.com.
>>
>
>
>
>
--
View this message in context: http://www.nabble.com/Minilang-enhancement-suggestion-tf3271907.html#a9100945
Sent from the OFBiz - User mailing list archive at Nabble.com.
Re: [2] Minilang enhancement suggestion
Posted by "David E. Jones" <jo...@hotwaxmedia.com>.
If you want these sorts of conditions the best thing is to build your
condition tree with the entity-condition operation, then you can have
the database filter by these conditions, etc, and all very explicitly.
-David
On Feb 22, 2007, at 6:52 AM, Immi wrote:
>
> That doesn't matter, Jacopo. You can call me Immi or Michael.
> Immi is just a nickname:-)
>
> Back to business:
>
> I would like to test the attribute "filter-by-date" but I couldn't
> find it
> in
> my "framework/minilang/dtd/simple-methods.xsd".
> I just checked out the last version of ofbiz from
> "http://svn.apache.org/repos/asf/ofbiz"!!
>
> My next step would be to test reverse date validation:
> - Ofbiz suggests two dates on the database: "FROM_DATE"/"THRU_DATE"
> and
> clients are searching
> for a specific date.
> - Our client wants to search datasets between date1 & date2. That
> means we
> have on date field on the
> database and two dates to search with.
>
> Is this possible with the current minilang?
>
> Michael
>
>
> Jacopo Cappellato wrote:
>>
>> Immi,
>>
>> Immi wrote:
>>> You're right. But this are filters and are applied after reading
>>> from the
>>> database.
>>
>> why are you saying this? Please read carefully what I suggested
>> you to
>> do. It's different from what you did initially.
>>
>> Jacopo
>>
>>> That means ofbiz is reading all my datasets (over a million) from
>>> the
>>> database
>>> before filtering out the valid datasets.
>>> If there are 3 datasets out of a million wich are valid today, I
>>> doesn't
>>> seem to
>>> be very performant to read million datasets and apply the filter
>>> on them
>>> before
>>> returning the 3 found datasets...
>>>
>>> Michael
>>>
>>>
>>> Jacopo Cappellato wrote:
>>>> Immi,
>>>>
>>>> <find-by-and> has already an attribute that can be used for this:
>>>>
>>>> filter-by-date
>>>>
>>>> for example:
>>>>
>>>> <find-by-and filter-by-date="true" entity-name="Archivindex"
>>>> map-name="searchMap" list-name="list"/>
>>>>
>>>> Or you should use the more flexible:
>>>>
>>>> <entity-condition> operator instead of <find-by-and>
>>>>
>>>> For a full list of available options you should look at:
>>>>
>>>> framework/minilang/dtd/simple-methods.xsd
>>>>
>>>> Jacopo
>>>>
>>>>
>>>> Immi wrote:
>>>>> I would like to make a database query on a archiv database with
>>>>> millions
>>>>> of
>>>>> datasets.
>>>>> But I'm only interested by the current valid entries (would be
>>>>> around
>>>>> 5000).
>>>>>
>>>>> Ofbiz minilang provides following commands for such queries:
>>>>> <find-by-and/>
>>>>> and <filter-list-by-date/>.
>>>>>
>>>>> But if I look at the code, then <find-by-and/> is reading all
>>>>> entries
>>>>> (Well,
>>>>> in blocks if I use the iterator)
>>>>> and then, with <filter-list-by-date/>, a date filter is applied
>>>>> on the
>>>>> found
>>>>> entries!
>>>>>
>>>>> I suggest an enhancement of the minilang commang <find-by-and/>
>>>>> (and
>>>>> <remove-by-and/>, ...):
>>>>> A new Element <where/> as subelement from <find-by-and/>
>>>>>
>>>>> <find-by-and entity-name="Archivindex" map-
>>>>> name="searchMap"
>>>>> list-name="list">
>>>>> <where field-name="dateFrom" operator="less-equals"
>>>>> env-name="parameters.date"/>
>>>>> <where field-name="dateTo" operator="greater-equals"
>>>>> env-name="parameters.date"/>
>>>>> </find-by-and>
>>>>>
>>>>> With this enhancement, it would be possible to make custom
>>>>> database
>>>>> queries...
>>>>>
>>>>> What do you think about this??
>>>>>
>>>>> Regards
>>>>> Michael
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Minilang-
> enhancement-suggestion-tf3271907.html#a9100199
> Sent from the OFBiz - User mailing list archive at Nabble.com.
>
Re: [2] Minilang enhancement suggestion
Posted by Immi <mi...@nowhow.ch>.
That doesn't matter, Jacopo. You can call me Immi or Michael.
Immi is just a nickname:-)
Back to business:
I would like to test the attribute "filter-by-date" but I couldn't find it
in
my "framework/minilang/dtd/simple-methods.xsd".
I just checked out the last version of ofbiz from
"http://svn.apache.org/repos/asf/ofbiz"!!
My next step would be to test reverse date validation:
- Ofbiz suggests two dates on the database: "FROM_DATE"/"THRU_DATE" and
clients are searching
for a specific date.
- Our client wants to search datasets between date1 & date2. That means we
have on date field on the
database and two dates to search with.
Is this possible with the current minilang?
Michael
Jacopo Cappellato wrote:
>
> Immi,
>
> Immi wrote:
>> You're right. But this are filters and are applied after reading from the
>> database.
>
> why are you saying this? Please read carefully what I suggested you to
> do. It's different from what you did initially.
>
> Jacopo
>
>> That means ofbiz is reading all my datasets (over a million) from the
>> database
>> before filtering out the valid datasets.
>> If there are 3 datasets out of a million wich are valid today, I doesn't
>> seem to
>> be very performant to read million datasets and apply the filter on them
>> before
>> returning the 3 found datasets...
>>
>> Michael
>>
>>
>> Jacopo Cappellato wrote:
>>> Immi,
>>>
>>> <find-by-and> has already an attribute that can be used for this:
>>>
>>> filter-by-date
>>>
>>> for example:
>>>
>>> <find-by-and filter-by-date="true" entity-name="Archivindex"
>>> map-name="searchMap" list-name="list"/>
>>>
>>> Or you should use the more flexible:
>>>
>>> <entity-condition> operator instead of <find-by-and>
>>>
>>> For a full list of available options you should look at:
>>>
>>> framework/minilang/dtd/simple-methods.xsd
>>>
>>> Jacopo
>>>
>>>
>>> Immi wrote:
>>>> I would like to make a database query on a archiv database with
>>>> millions
>>>> of
>>>> datasets.
>>>> But I'm only interested by the current valid entries (would be around
>>>> 5000).
>>>>
>>>> Ofbiz minilang provides following commands for such queries:
>>>> <find-by-and/>
>>>> and <filter-list-by-date/>.
>>>>
>>>> But if I look at the code, then <find-by-and/> is reading all entries
>>>> (Well,
>>>> in blocks if I use the iterator)
>>>> and then, with <filter-list-by-date/>, a date filter is applied on the
>>>> found
>>>> entries!
>>>>
>>>> I suggest an enhancement of the minilang commang <find-by-and/> (and
>>>> <remove-by-and/>, ...):
>>>> A new Element <where/> as subelement from <find-by-and/>
>>>>
>>>> <find-by-and entity-name="Archivindex" map-name="searchMap"
>>>> list-name="list">
>>>> <where field-name="dateFrom" operator="less-equals"
>>>> env-name="parameters.date"/>
>>>> <where field-name="dateTo" operator="greater-equals"
>>>> env-name="parameters.date"/>
>>>> </find-by-and>
>>>>
>>>> With this enhancement, it would be possible to make custom database
>>>> queries...
>>>>
>>>> What do you think about this??
>>>>
>>>> Regards
>>>> Michael
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>
>
--
View this message in context: http://www.nabble.com/Minilang-enhancement-suggestion-tf3271907.html#a9100199
Sent from the OFBiz - User mailing list archive at Nabble.com.
Re: [2] Minilang enhancement suggestion
Posted by Jacopo Cappellato <ti...@sastau.it>.
Jacopo Cappellato wrote:
> Immi,
>
Well, sorry, I just noticed that your name is Michael, not "Immi".
Jacopo
Re: [2] Minilang enhancement suggestion
Posted by Jacopo Cappellato <ti...@sastau.it>.
Immi,
Immi wrote:
> You're right. But this are filters and are applied after reading from the
> database.
why are you saying this? Please read carefully what I suggested you to
do. It's different from what you did initially.
Jacopo
> That means ofbiz is reading all my datasets (over a million) from the
> database
> before filtering out the valid datasets.
> If there are 3 datasets out of a million wich are valid today, I doesn't
> seem to
> be very performant to read million datasets and apply the filter on them
> before
> returning the 3 found datasets...
>
> Michael
>
>
> Jacopo Cappellato wrote:
>> Immi,
>>
>> <find-by-and> has already an attribute that can be used for this:
>>
>> filter-by-date
>>
>> for example:
>>
>> <find-by-and filter-by-date="true" entity-name="Archivindex"
>> map-name="searchMap" list-name="list"/>
>>
>> Or you should use the more flexible:
>>
>> <entity-condition> operator instead of <find-by-and>
>>
>> For a full list of available options you should look at:
>>
>> framework/minilang/dtd/simple-methods.xsd
>>
>> Jacopo
>>
>>
>> Immi wrote:
>>> I would like to make a database query on a archiv database with millions
>>> of
>>> datasets.
>>> But I'm only interested by the current valid entries (would be around
>>> 5000).
>>>
>>> Ofbiz minilang provides following commands for such queries:
>>> <find-by-and/>
>>> and <filter-list-by-date/>.
>>>
>>> But if I look at the code, then <find-by-and/> is reading all entries
>>> (Well,
>>> in blocks if I use the iterator)
>>> and then, with <filter-list-by-date/>, a date filter is applied on the
>>> found
>>> entries!
>>>
>>> I suggest an enhancement of the minilang commang <find-by-and/> (and
>>> <remove-by-and/>, ...):
>>> A new Element <where/> as subelement from <find-by-and/>
>>>
>>> <find-by-and entity-name="Archivindex" map-name="searchMap"
>>> list-name="list">
>>> <where field-name="dateFrom" operator="less-equals"
>>> env-name="parameters.date"/>
>>> <where field-name="dateTo" operator="greater-equals"
>>> env-name="parameters.date"/>
>>> </find-by-and>
>>>
>>> With this enhancement, it would be possible to make custom database
>>> queries...
>>>
>>> What do you think about this??
>>>
>>> Regards
>>> Michael
>>>
>>>
>>>
>>
>>
>>
>