db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John I. Moore, Jr." <softmo...@att.net>
Subject RE: Getting transitive closure?
Date Sun, 14 Oct 2012 12:37:26 GMT
John,

I suggest that you take a look at Warshall's Algorithm.  See, for example,
http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm.  Google Warshall's Algorithm
for
additional links.


_________________________________________

John I. Moore, Jr.
SoftMoore Consulting

email:  jmoore@softmoore.com
web:    www.softmoore.com
cell:   843-906-7887

> -----Original Message-----
> From: John English [mailto:john.foreign@gmail.com]
> Sent: Sunday, October 14, 2012 7:53 AM
> To: Derby Discussion
> Subject: Getting transitive closure?
> 
> If I have a table defined like so:
> 
>    create table COMPONENTS (
>      ID          integer       generated always as identity,
>      COMPONENT   varchar(255)  not null,
>      PARENT      integer,
>      constraint COMPONENTS_PK  primary key (ID),
>      constraint COMPONENTS_1   foreign key (PARENT)
>                                references COMPONENTS(ID)
>                                on delete cascade
>    );
> 
> with (for example):
> 
>    insert into COMPONENTS(COMPONENT,PARENT) values
>       ('IC package',null),    -- ID = 1
>       ('Flip-flop',1),        -- ID = 2
>       ('D-type',2),           -- ID = 3
>       ('JK flip-flop',2),     -- ID = 4
>       ('7474 dual D-type flip-flop',3),
>       ('4013 dual CMOS D-type flip-flop',3),
>       ('7476 dual JK flip-flop with preset and clear',4),
>       ('4027 dual CMOS JK flip-flop',4);
> 
> Is there a clever an efficient way to get the set of all flip-flop
> packages, i.e. ID=2, all items with parent=2, and so on down the chain
> of descendants? Or in other words, the transitive closure of the set?
> 
> TIA,
> --
> John English


Mime
View raw message