#------------------------------- # 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 ).