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 423:

'=item' outside of any '=over'

Around line 451:

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

Around line 473:

'=item' outside of any '=over'

Around line 513:

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