#-------------------------------
# README
#-------------------------------


DESCRIPTION:
------------

   DB::Introspector looks into database metadata and derives detailed
   table level and foreign key information in a way that conforms to a
   collection of common interfaces across all dbs.

   The DB::Introspector::Utils::* classes provide a collection of
   algorithms, which carry out relationship traversal and SQL
   generation algorithms (like finding the column level and table level
   mappings between two indirectly related tables and generating DDL
   code). Because the DB::Introspector::Utils algorithms take advantage
   of the DB::Introspector's database independent metadata classes,
   these traversal algorithms can be performed on any database for
   which there exists an introspector (eg DB::Introspector::Oracle and
   DB::Introspector::PostgresSQL).


Should this be in DBI?
----------------------
   I think it is appropriate to separate this interface from the existing DBI
   module since it will allow for the expression of more arbitrary mappings
   between tables and columns (like subtables and boolean simulation) which
   can take into account the database being queried (eg like interpreting the
   Postgres internal inheritance structures). In addition, future drivers can
   be written to extract metadata from a source that can't be queried as a
   regular database ( like an XML source that just contains metadata -like
   hibernate mapping files ).