From: | Ron Peterson <rpeterson(at)yellowbank(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | recursive queries? |
Date: | 2000-04-09 16:25:16 |
Message-ID: | 38F0AEEC.C322276A@yellowbank.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Now and again, I find myself wanting to store data in some kind of
variable-level hierarchy. To take a familiar example, let's say the
directory structure on my computer.
So I start to do something like:
CREATE SEQUENCE directory_id_seq;
CREATE TABLE directory {
parent INTEGER,
name TEXT,
id INTEGER
DEFAULT nextval('directory_id_seq')
PRIMARY KEY
};
INSERT INTO directory
VALUES (1, '\.');
ALTER TABLE directory
ADD FORIEGN KEY (parent)
REFERENCES directory(id)
ON DELETE CASCADE
ON UPDATE CASCADE;
Happy, happy. The problem is, while it's easy enough to define such a
data structure, support for recursive queries is rather lacking. To
unroll a directory tree, you basically have to resort to programming in
<insert your favorite language>.
Not that I really know what I'm talking about when I say 'unroll'. This
data structure is general enough to support cyclic directed graphs. So
what does it mean to 'unroll' such a beasty?
So what's my question then? Well, it seems like maybe there _should_,
or at least _could_ be support for some kinds of common problems. For
example, I would like to constrain my data structure to really be a
tree, and not a potentially cyclical graph.
Does anyone know whether there has been, or ever will be, movement in
this direction among the SQL literati? Am I asking a completely
inappropriate question?
Perhaps these types of problems are what OODB adherents are attempting
to address.
So, to sum, my question: Who plays in this space? Will the SQL
standard itself ever play in this space?
Personally, I'm really only interested in something elegant. Meaning I
don't want to mess around with a solution where this broker communicates
with that broker via an n-way blah blah blah. I can maintain literacy
in several tools at once, but not several dozen. Is my best bet simply
to accept SQL's limitations and program around them in C++ (or C, or
Python, or Perl, etc.)?
Ron Peterson
rpeterson(at)yellowbank(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | fdpmjw | 2000-04-09 17:15:49 | Giving A DOG HEAD !!! Doggy blow job! 6158 |
Previous Message | Felix Slager | 2000-04-09 16:16:28 | Permission denied while importing data from a file? |