=head1 NAME

ObjStore - Perl Extension For C<ObjectStore> OODBMS

=head1 SYNOPSIS

Like perl?  Sick of SQL?  Ready to try something new?  This extension
implements something like a relational database management system,
except that s/SQL/Perl/ig.


=head1 PREREQUISITES

- ObjectStore 5.1 (see http://www.odi.com; evaluations are available!)

- Perl 5.005_03 or 5.005_5x

- Exception::Cxx (only on some operating systems; send email)

See http://www.perl.com/CPAN/authors/id/JPRIT/ !


=head1 IS THIS FOR GENERIC C++ OBJECTSTORE OR ONLY PERL?

> I was sort of hoping I'd be able to use perl to write quick-and-dirty data
> manipulation scripts to mess around with my databases that are used by my
> C++ applications. I don't know if I'd ever need that, but it sounded like
> a useful thing to have in the toolbox, so to speak.

My experience with ObjectStore is that it is very low-level.  This is
an advantage for applications that require the highest level of
performance.  However, there is nothing that I do with databases that
needs such extreme degrees of optimization.

Rather, I value ease of use and ease of change slightly above raw
performance.  When I designed the perl interface, I was always trying
to optimize for these priorities.  For example, I decided to start
with a common, generic schema.  This gained some big advantages: All
perl databases are compatible.  All perl databases will never
I<require> schema evolution.  All perl databases can be edited with a
standard perl shell.

Even so, ObjectStore's recent support of DLL schemas allows the
seemless integration of application specific C++ objects.  For
example, a code generator is available (L<ObjStore-REP-HashRecord>)
that creates optimized records (ordered, typed tuple of fields -- like
a C structure declaration).  Recently, I also got PDL properly
integrated (L<ObjStore-Lib-PDL>).  PDL is a perl extension for matrix
mathematics.

I believe the uncommon ability to integrate with everything at the
lowest level (C) while still remaining maximally generic and easy to
query is unique among database architectures.


=head1 R!CENT CHANGES


** 06-23-99 RELEASE 1.57 [STABLE]

- Split up ServerDB.pm into two files for smoother integration with
posh/qtposh.

- ObjStore::Job::Table::add_log_hook

- Minor code reorg in ObjStore::Serve.

- osperlserver: specific custom client-name.

- zpeek.t: try to find GNU-diff.


** 04-21-99 RELEASE 1.56 [STABLE]

- Fix ObjStore::Table3::add() to return the post-translated instead of
pre-translated record.

- Various updates for Event 0.38: qtposh, ObjStore::Serve,
ObjStore::Serve::Notify, ObjStore::Job, ObjStore::Job::Table.

- Fixed ObjAV[] = undef.  Added tests.

- Documentation updates.


see ./INSTALL for hints on installation
see ./UPGRADE if you are starting from a prior releases
see ./TODO for a list of stuff in the tuit queue
see ./CHANGES for a visionary perspective


Send any questions or comments to osperl@listbox.com.

If you'd like to subscribe to the mailing list, send email to
majordomo@listbox.com with 'subscribe osperl' in the body of your
message.  Thanks!

-------------------------------------------------------------------------
Copyright © 1997-1999 Joshua Nathaniel Pritikin.  All rights reserved.

This package is free software and is provided "as is" without express
or implied warranty.  It may be used, redistributed and/or modified
under the terms of the Perl Artistic License (see
http://www.perl.com/perl/misc/Artistic.html)