                             SQL-Routine
----------------------------------------------------------------------

by Darren Duncan <perl@DarrenDuncan.net>

CONTENTS

* Preface
* Keeping Up To Date
* Dependencies
* Support
* License And Copyright
* Acknowledgements

PREFACE

This distribution features the Perl 5 module named "SQL::Routine"; see the
files lib/SQL/Routine.pm and lib/SQL/Routine/Language.pod for the roots of
the main documentation, which is in POD format.  The distribution also
includes a ChangeLog file to say what changes already happened, and a TODO
file to say what changes have yet to happen.  The file INSTALL should help
with installation issues.  Read below for how to get support or keep up to
date, know this distribution's dependencies, or read the credits or
copyright and license.

KEEPING UP TO DATE

My module set is constantly under development.  The canonical copies are
all linked to through my website, "http://www.DarrenDuncan.net/", on the
page called "Perl Libraries I Made" (name subject to change).

For those of you that are interested in the bleeding edge, I now have a
public Subversion repository at "http://svn.utsl.gen.nz/trunk/Rosetta/";
this repository contains all of my newer modules (whose problem domain is
databases), but not my older modules (which are not about databases).

You can download slightly older but more stable versions of all of my
modules in standard tarred and gzipped distributions, either from the
public CPAN archives, "http://www.cpan.org/authors/id/D/DU/DUNCAND/", or
from my own web server, "http://www.DarrenDuncan.net/d/perl/".

CPAN also extracts the POD from modules and maintains that documentation in
an organized and searchable fashion.  Their main search site is
"http://search.cpan.org/", and my own DUNCAND author page is
"http://search.cpan.org/~duncand/"; distributions are also there.

You can download my oldest distributions from BACKPAN, at
"http://history.perl.org/backpan/authors/id/D/DU/DUNCAND/", or from my web
server, at "http://www.DarrenDuncan.net/d/perl/archives/".

DEPENDENCIES

This distribution requires any version of Perl 5.x.y that is at least
5.8.1.

It also requires the Perl modules 'version' and 'only', which would
conceptually be built-in to Perl, but aren't, so they are on CPAN instead.

It also requires the Perl module Scalar::Util, which would conceptually be
built-in to Perl, but is bundled with it instead.

It also requires these modules that are on CPAN:

    Locale::KeyedText 1.6.0 (for error messages)

This distribution also requires Test::More for its test suite, and that
module is bundled with Perl.

SUPPORT

Currently I don't have any support arranged with other people, lists,
newsgroups, or otherwise.  Feel free to ask me if you can't figure things
out on your own, or another person whom you know has used this.  I may
start a mailing list for support issues later, so that users of my modules
can help each other with them.

LICENCE AND COPYRIGHT

This file is part of the SQL::Routine database portability library.

SQL::Routine is Copyright (c) 2002-2005, Darren R. Duncan.  All rights
reserved. Address comments, suggestions, and bug reports to
perl@DarrenDuncan.net, or visit http://www.DarrenDuncan.net/ for more
information.

SQL::Routine is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License (GPL) as published by the
Free Software Foundation (http://www.fsf.org/); either version 2 of the
License, or (at your option) any later version.  You should have received a
copy of the GPL as part of the SQL::Routine distribution, in the file named
"GPL"; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
Fifth Floor, Boston, MA 02110-1301, USA.

Linking SQL::Routine statically or dynamically with other modules is making
a combined work based on SQL::Routine.  Thus, the terms and conditions of
the GPL cover the whole combination.  As a special exception, the copyright
holders of SQL::Routine give you permission to link SQL::Routine with
independent modules, regardless of the license terms of these independent
modules, and to copy and distribute the resulting combined work under terms
of your choice, provided that every copy of the combined work is
accompanied by a complete copy of the source code of SQL::Routine (the
version of SQL::Routine used to produce the combined work), being
distributed under the terms of the GPL plus this exception.  An independent
module is a module which is not derived from or based on SQL::Routine, and
which is fully useable when not linked to SQL::Routine in any form.

Any versions of SQL::Routine that you modify and distribute must carry
prominent notices stating that you changed the files and the date of any
changes, in addition to preserving this original copyright notice and other
credits. SQL::Routine is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

While it is by no means required, the copyright holders of SQL::Routine
would appreciate being informed any time you create a modified version of
SQL::Routine that you are willing to distribute, because that is a
practical way of suggesting improvements to the standard version.

ACKNOWLEDGEMENTS

Besides myself as the creator ...

* 2004.05.20 - Thanks to Jarrell Dunson (jarrell_dunson@asburyseminary.edu)
for inspiring me to add some concrete SYNOPSIS documentation examples to
this module, which demonstrate actual SQL statements that can be generated
from parts of a model, when he wrote me asking for examples of how to use
this module.

* 2005.03.21 - Thanks to Stevan Little (stevan@iinteractive.com) for
feedback towards improving this module's documentation, particularly
towards using a much shorter SYNOPSIS, so that it is easier for newcomers
to understand the module at a glance, and not be intimidated by large
amounts of detailed information.  Also thanks to Stevan for introducing me
to Scalar::Util::weaken(); by using it, SQL::Routine objects can be garbage
collected normally despite containing circular references, and users no
longer need to invoke destructor methods.

FIN

Share and Enjoy!
