The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Title

   DBR Schema and Data Browser

Synopsis

    % dbr-browse conf=dbr.conf

    % dbr-browse conf=foo.conf class=master

    % dbr-browse conf=foo.conf pkeymax=50 dumpmax=25 highvar=300 highsamp=10

If you have not installed DBR yet:

    % perl -I ../lib dbr-browse conf=bar.conf

Description

dbr-browse is a DBR tool that shows you database tables with DBR metadata mixed in. DBR metadata includes the translator type (e.g. UnixTime, Dollars, Enum, Percent), enumeration handles associated with an Enum field, and the forward and backward names of relationships to other tables via foreign keys.

At present, the dbr-admin tool is the preferred method for adding in DBR metadata. Developers will subsequently find dbr-browse a useful tool for coding the correct names in "table paths" when accessing data from a Record object, specifying key values to use with ResultSet's hasmap_single() and hashmap_multi() methods, and when expressing constraints for an Object where() method.

Use

Synopsis

    SCHEMA> webshop
Find Tables
    TABLE> item

        0) items
        1) item_shipment
        2) received_items
Table Information
    TABLE> 0

    TABLE> products
Field Value Stats
    TABLE> 0 type

    TABLE> 0 type/product_id=432,654,765
Sample Record Dumps
    TABLE> 0 /item_id=1234

    TABLE> 0 /product.brand.name=Ford,GM/type=coupe,wagon,suv

    TABLE> 0 /order.customer.lastname=Jones

General

    The config file parameter establishes your access to a collection of databases.

    Those databases that have been scanned will have schema data available.

    The schemas will be listed and you will be prompted to enter the name of one.

    Table view mode is now entered.

    Your remaining inputs will be the name (or number) of a table to view.

    A blank input will return to the schema prompt; blank input again will exit.

    A '?' will list all tables, otherwise a list will be shown matching the input.

    When presented with a list, enter the number for the item or key in the full name.

    The number must be used if the table name is also a substring of other table names.

Command Arguments

conf
    The DBR config file.

    Required.
class
    By default, the "query" class database is queried.  You may have other classes defined.
    The other typical class is "master", which is the read-write instance.

    default: query
pkeymax
    When sample data for a field is requested, this arg sets the maximum number of sample
    pkey values for the table that will be shown.

    default: 10
dumpmax
    When a field is not specified with a search expression, full records are dumped.
    This arg controls the maximum number of sample dumps shown.

    default: 10
highvar
    This is the threshold number of distinct values for a field that will truncate the
    values listing.  Stands for "high variability" of field values.

    default: 200
highsamp
    If the values listing is truncated, this sets the number of sample values to display.

    default: 20

Field Value Stats

    Getting a sample of table field values is very helpful when
    getting to know a database.

    A table or result index may be followed with a field specification.

    If there are less than 200 (or highvar) distinct values in the field, each value
    and the number of times it occurs will be listed.

    If there are over 200 (or highvar) distinct values, a sampler of 20 (or highsamp) values
    will be shown.

    In any case, a sampler of up to 10 (or pkeymax) of the table's pkeys will be listed
    with each of the values shown.

    Multiple fields may be specified, separated by spaces, or "*" for
    all the table's fields (handy for getting an idea of all the data in the table).

Full Record Dumps

    If no field is specified with a search, a maximum of 10 (or dumpmax) records
    will be shown.

Examples

    examples/music/browse_test.sh

Technical Notes

    The get_chunker() and related manual chunking is not required - DBR will do this for
    us, but for large tables DBR simply has too much overhead when the scan covers the
    entire table (such as getting stats on the number of records associated with each
    one of 3 possible "status" field values).

4 POD Errors

The following errors were encountered while parsing the POD:

Around line 426:

'=item' outside of any '=over'

Around line 454:

You forgot a '=back' before '=head2'

Around line 476:

'=item' outside of any '=over'

Around line 516:

You forgot a '=back' before '=head2'