Roland Bouman wrote:
Hi Jim, all

On Wed, Feb 11, 2009 at 6:38 PM, Jim Starkey <[email protected]> wrote:
Many database systems use a type hierarchy of "record source blocks" or the
like.  Each member of type hierarchy has an open, fetch, and close method.
 The basic types are these:

  * Exhaustive retrieval
  * Index retrieval
  * Boolean filter
  * Sort
  * Looping join
  * Sort merge join
  * Hash join
  * Group by

The basic idea is that the compiler generates a tree of record source blocks
assembled like legos.  Each type is simple since it only has one thing to
do.  The intelligence comes from the way they are assembled.

This sounds interesting...it reminds me of how commands are piped on a
unix command line. Is that an appropriate metaphor?

(apologies in case this is an extremely stupid comparison)

Here's an example.  Given the tables

   upgrade table FOO.DATABASE_SYSTEMS (
       DID integer not null primary key,
       NAME varchar (30))

   upgrade table FOO.FEATURES (
       FEATURE varchar (80) not null primary key,
       DID integer references DATABASE_SYSTEMS)

and a query

   select *
   from database_systems d, features f
   where d.did = f.did
   and feature='Foreign Keys'
   order by name, feature

you get a record source tree of:

   Sort
     Join
       Exhaustive FOO.DATABASE_SYSTEMS (0)
       Boolean sieve
         And
           Eql
             Field FOO.DATABASE_SYSTEMS.DID (0)
             Field FOO.FEATURES.DID (1)
           Eql
             Field FOO.FEATURES.FEATURE (1)
             "Foreign Keys"
         Inversion FOO.FEATURES (1)
           Bitmap index FEATURES_PRIMARY_KEY
             "Foreign Keys"




--
Jim Starkey
President, NimbusDB, Inc.
978 526-1376


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to