Thanks.

I will test your suggestions.

I am currently working with Postgresql 9.1 and it takes nearly 5 minutes to
count a table > 42 000 000 records.

It will if we can have the option in the grid to not do a count of the
result as it is part of the problem in my case.  If for instance the query
is db.table.id > 0  I would prefer to use the other way to get an
approximate of the total records in the table.


If a query would request more records than the total in the table,
postgresql would not have a problem.

e.g.  in a table with 15 entries I have tested a query with 'limit 15
offset 10' and there was no problem.  Only last 5 records were shown.

Regards
Johann


On 17 April 2013 23:28, Niphlod <niph...@gmail.com> wrote:

> check trunk as soon as the Pull Request gets merged
>
>
> def test3(dbset, request_vars):
>     ##you can retrieve the current query with
>     ##dbset._select(), i.e. dbset is a "db(query)" object
>
>     ##request_vars are the current request.vars
>     ###so you can check for keywods etc etc etc
>     ###checking for groupby, distinct, etc is up to you!
>
>     ##given that is a callable you may cache it "externally"
>     ## with a return dbset.count(cache=(cache.ram, 60))
>     ## and do all your crazy things
>
>     ## method that works on postgresql only for a full-table-count
>     result = db.executesql("SELECT reltuples::integer FROM pg_class WHERE
> oid = 'public.awesome'::regclass;")
>     return result[0][0]
>
> def test2():
>     #mode1
>     cache_count = 127
>     #mode2
>     cache_count = (cache.ram, 60)
>     #mode3
>     cache_count = test3
>     grid = SQLFORM.grid(db.awesome, cache_count=cache_count)
>     return dict(grid=grid)
>
>
> Can I leave documentation up to someone willing to test it and report back
> ? :P
>
>
> PS: <self_confidence mode="on">fixed 8 hours later.....web2py is
> awesome</self_confidence>
>
> PS2: on a test table with 4M rows, two 'string' fields, postgresql 9.2
> takes 1.9sec to do a "standard" count(*).
> Things definitely improved (although it remains a heavy operation for MVCC
> databases) on the count(*) since previous versions.
>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



-- 
Because experiencing your loyal love is better than life itself,
my lips will praise you.  (Psalm 63:3)

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to