Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^3: tree-oriented query against table-oriented data

by dimar (Curate)
on Jul 05, 2006 at 15:11 UTC ( #559362=note: print w/ replies, xml ) Need Help??


in reply to Re^2: tree-oriented query against table-oriented data
in thread tree-oriented query against table-oriented data

Just to refocus on the OP, the question was, (given the example 'one-off' solution that BrowserUk illustrated for this specific example, and considering the similarly-coded 'one-off' solutions by the OP in the past) where does there exist a "general purpose" mechanism to further abstract the process of doing this kind of transformation, such that there is no need to modify the 'one-off' code every time someone wants a different 'pivot' of the data structure.

The question is now mostly academic, since the humble aspirant has gone on to code a solution himself, absent a preexisting and obvious choice out there.

It is called 'vpath_pivot', named after the 'pivot table' feature found in spreadsheet software. It generates arbitrarily-nested tree structures using perl data variables, constructed from queries like:

### 1: provides same output as BrowserUk example TREE_SELECT genre,title,fname,lname FROM tvshow WITH_LEVELS ('genre','title' ) WITH_RECORD ( 'lname','fname' ) ### 2: a different 'pivot' of the same data TREE_SELECT title,genre,fname,lname FROM tvshow WITH_LEVELS ('title','genre','lname' ) WITH_RECORD ( 'fname' ) WHERE genre != 'gameshow' ### 3: another tree 'pivot' (more compact) TREE_SELECT title,fname,lname FROM tvshow WITH_LEVELS ('title' ) WITH_RECORD ( 'fname','lname' )

NOTE: the above is not SQL, it just looks similar for readability.

NOTE: the main approach here is to give the user the ability to 'slice and dice' the 'flat' data into different 'tree structures' all within a simple syntax (i.e., no need to re-edit the perl code).

tyvm for the replies
=oQDlNWYsBHI5JXZ2VGIulGIlJXYgQkUPxEIlhGdgY2bgMXZ5VGIlhGV


Comment on Re^3: tree-oriented query against table-oriented data
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://559362]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2015-07-03 03:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (48 votes), past polls