Re[2]: [yaala] feature request

qMax yaala@verplant.org
Tue, 9 Nov 2004 16:50:58 +0600


Tuesday, November 9, 2004, 3:44:23 PM, octo@verplant.org wrote:

FF> On Tue, Nov 09, 2004 at 02:20:37PM +0600, qMax wrote:
>> q> Need 4D tables (to split table into separate pages),

FF> I actually thought about 4- and n-dimensional tables before, but I
FF> didn't expect anyone would need it and it'd scare away novice users.
FF> However, it's not hard to implement at all :)

FF> So this changes my todo list for the next (unstable) release to:
FF> - sorting
here I see/need 2 variants:
1. when sorting specified in select with SORT, a-la SQL,
2. SORT not specified, and it make a sence to make sorting for _every_
aggregation in a table, generate alternative versions of tables for
each sorting, and generate links to alternative tables in table headers,
just like in windows widgets.

FF> - title for pages
titles already done - see my previous posts with patches.

FF> - n-dimensional tables
working on it.
I guess this will look like:
(n)D-report forms:
an index page with 1D-table(BY key1), with links to another pages, containing:
(n-1)D-report($key1=each($val1)), and so on, down to 2D-report, with
renders usual.
or maybe ever down to 3D-report, if to use skipped axes.

>> q> and skipped axes (kinda "BY foo,,bar" or "BY foo,,,bar").

FF> I'm afraid I don't understand what you mean with ``skipped axis''. One
FF> interpretation that'd make sense would be:
FF> Since you can only draw 1-d and 2-d tables in HTML you have to
(i've got an idea about cute 3D... stay online.)
FF> display n-dimensional tables as (n/2) two-dimensional tables and (if applicable)
FF> one one-dimensional table.
as a set of M (n-1)-dimentional tables, where M is number of values of key1,
and so on recursively, down to usual 2d.
(here i count not database keys but globally - row/col headers)

or, alternatively:
2d table (by first 2 keys), containing another (n-2)-dimentional
tables in cells (links to them).
but that will look too ugly - first (n-2) navigation tables will contain
only links to deeper tables and no usefull numbers.


FF> With a ``skipped axis'' (.. BY foo,,bar) yaala would draw two
FF> one-dimensional tables.
Nope,
yalla will draw one 1Dimentional table (index) and several
1Dimentional tables, like in 3D-report.

This is usefull, egg, if I do "select ... BY to,,from" for maillog.
and i want to make separate 1D-tables with values of 'from' for each value of 'to'

If I do "BY foo,bar" I'd get 2D report with bar values horisontally,
it may get too large(wide) if there're alot of $key2 values.
This is just the only possible case with senders/recipients.

If I do "BY foo,,bar" I'd get something like 3D report,
but it will contain one 1D_table(foo), and list of 1D_table(bar) (for
each value of foo).
that is, 'bar' goes not horisontally like $key2, but vertically, like
$key3.

This actually requires that 1d_table routine could be with $val2 pre-set,
like for 2d_table.
I'm currently hackin on it.

How to interpret this for ND reports - i dunno yet :)
But i really want abd need this for 3D and 4D, because reports for "all recipients for
each sender" get so large, that crashes all browsers.

FF> Also, could you enlighten me, what exactly your patch for
FF> ``classic_skip_empty'' does? It didn't make much sense to me this
FF> weekend..
This is for 3D tables in Combined -
to skip empty rows in all of those 2D tables (with val3 set).

-- 
 qMax