Author: mjevans
Date: Tue May 25 01:46:50 2010
New Revision: 14031
Modified:
dbi/trunk/Changes
dbi/trunk/lib/DBD/File.pm
Log:
Changes for better English and explanation
N.B. if still says filenames are case sensitive and does not mention
quoted identifiers
Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes (original)
+++ dbi/trunk/Changes Tue May 25 01:46:50 2010
@@ -24,6 +24,8 @@
Added basic test for DBD::File (H. Merijn Brand)
Modernize Makefile.PL with CONFLICTS, recommended dependencies and
resources (Jens Rehsack)
+ Changes to DBD::File for better English and hopefully better
+ explanation (Martin J. Evans)
=head2 Changes in DBI 1.611 (svn r13935) 29th April 2010
Modified: dbi/trunk/lib/DBD/File.pm
==============================================================================
--- dbi/trunk/lib/DBD/File.pm (original)
+++ dbi/trunk/lib/DBD/File.pm Tue May 25 01:46:50 2010
@@ -1008,40 +1008,53 @@
LongReadLen
LongTruncOk
-Additional to the DBI attributes, you can use the following dbh
-attributes to control the behaviour of DBD::File in the file system:
+In addition to the DBI attributes, you can use the following dbh
+attributes:
=over 4
=item f_dir
This attribute is used for setting the directory where the files are
-opened. Usually you set it in the dbh, it defaults to the current
-directory ("."). However, it is overwritable in the statement handles
-before executing the statements. See L<BUGS AND LIMITATIONS>.
+opened and it defaults to the current directory ("."). Usually you set
+it on the dbh but it may be overriden on the statement handle.
=item f_ext
-This attribute is used for setting the file extension where files are
-opened. There are several possibilities.
+This attribute is used for setting the file extension. The format is:
+
+ extension{/flag}
+
+where the /flag is optional and the extension is case-insensitive.
+C<f_ext> allows you to specify an extension which:
+
+ o makes DBD::File prefer F<table.extension> over F<table>.
+ o makes the table name the filename minus the extension.
DBI:CSV:f_dir=data;f_ext=.csv
-In this case, DBD::File will open only C<table.csv> if both C<table.csv> and
-C<table> exist in the datadir. The table will still be named C<table>. If
-your datadir has files with extensions, and you do not pass this attribute,
-your table is named C<table.csv>, which is probably not what you wanted. The
-extension is always case-insensitive. The table names are not.
+In the above example and when C<f_dir> contains both F<table.csv> and
+F<table>, DBD::File will open F<table.csv> and the table will be
+named "table". If F<table.csv> does not exist but F<table> does
+that file is opened and the table is also called "table".
+
+If C<f_ext> is not specified and F<table.csv> exists it will be opened
+and the table will be called "table.csv" which is probably not what
+you want.
+
+NOTE: even though extensions are case-insensitive, table names are
+not.
- DBI:DBM:f_dir=data;f_ext=.db/r
+ DBI:CSV:f_dir=data;f_ext=.csv/r
-In this case the extension is required, and all filenames that do not match
-are ignored.
+The C<r> flag means the file extension is required and any filename
+that does not match the extension is ignored.
=item f_schema
-This will set the schema name. Default is the owner of the folder in which
-the table file resides. C<undef> is allowed.
+This will set the schema name and defaults to the owner of the
+directory in which the table file resides. You can set C<f_schema> to
+C<undef>.
my $dbh = DBI->connect ("dbi:CSV:", "", "", {
f_schema => undef,
@@ -1049,10 +1062,9 @@
f_ext => ".csv/r",
}) or die $DBI::errstr;
-The effect is that when you get table names from DBI, you can force all
-tables into the same (or no) schema:
+By setting the schema you effect the results from the tables call:
- my @tables $dbh->tables ();
+ my @tables = $dbh->tables ();
# no f_schema
"merijn".foo
@@ -1066,8 +1078,8 @@
foo
bar
-Defining f_schema to the empty string is equal to setting it to C<undef>,
-this to enable the DSN to be C<dbi:CSV:f_schema=;f_dir=.>.
+Defining f_schema to the empty string is equal to setting it to C<undef>
+so the DSN can be C<dbi:CSV:f_schema=;f_dir=.>.
=item f_lock