Dagfinn Ilmari Mannsåker [Fri, 20 Dec 2013 22:18:53 +0000]
Warn on belongs_to rels to non-unique columns
Dagfinn Ilmari Mannsåker [Fri, 20 Dec 2013 22:06:29 +0000]
Swap order of _relnames_and_method return values
It makes more sense to have the local relname first, then the remote
relname and method. Note that this plus the previous commit are not a
no-op, since the meanings of the names have changed.
Dagfinn Ilmari Mannsåker [Fri, 20 Dec 2013 21:47:47 +0000]
Swap local_relname and remote_relname around in RelBuilder
All the other remote/local names refer to things _on_ the respective
tables, except these, which referred to the name of the rel _to_ the
named table. Fixing this longstanding inconsistency makes the code
easier to understand (IMHO, at least).
Dagfinn Ilmari Mannsåker [Fri, 20 Dec 2013 19:28:33 +0000]
Use hash slice assignment instead of loop
Dagfinn Ilmari Mannsåker [Fri, 20 Dec 2013 19:11:40 +0000]
Re-wrap and re-indent for readability and consistency
Dagfinn Ilmari Mannsåker [Wed, 20 Nov 2013 11:38:16 +0000]
Release 0.07038
Dagfinn Ilmari Mannsåker [Fri, 15 Nov 2013 15:03:44 +0000]
Fix detection of qualified sequence names for Oracle (RT#90341)
Dagfinn Ilmari Mannsåker [Tue, 19 Nov 2013 18:36:01 +0000]
Fix national character type sizes on DBD::Oracle >= 1.52
Older versions erroneously reported the size in bytes (using UTF-16),
not characters.
Dagfinn Ilmari Mannsåker [Tue, 19 Nov 2013 18:32:42 +0000]
Actually test data types that require separate tables
Dagfinn Ilmari Mannsåker [Tue, 19 Nov 2013 18:31:25 +0000]
Fix moniker_map callback test for upcasing databases (e.g. Oracle)
Dagfinn Ilmari Mannsåker [Tue, 19 Nov 2013 18:27:26 +0000]
Fix skip count for Oracle multi-schema tests
David Steinbrunner [Fri, 15 Nov 2013 17:46:25 +0000]
update repository url
Dagfinn Ilmari Mannsåker [Fri, 15 Nov 2013 17:38:17 +0000]
Fix MySQL column info detection with multiple schemas (RT#82358)
Specifically, if similarly-named tables exist in multiple schemas, we
might get the column info for the wrong one.
Dagfinn Ilmari Mannsåker [Thu, 7 Nov 2013 13:53:42 +0000]
Allow coderef maps to call back into the hashref mapping code
Dagfinn Ilmari Mannsåker [Wed, 30 Oct 2013 12:44:41 +0000]
Release 0.07037
Dagfinn Ilmari Mannsåker [Fri, 25 Oct 2013 15:48:43 +0000]
Allow overriding individual moniker parts
If there's no moniker_map entry, moniker_part_map is consulted for each
part individually.
Dagfinn Ilmari Mannsåker [Thu, 24 Oct 2013 11:57:53 +0000]
Release 0.07036_04
Aaron Crane [Sun, 29 Sep 2013 13:19:19 +0000]
Set $result_source_class->table_class appropriately on views
This constitutes partial support for the per-backend TODO items labelled
"introspect view SQL". I've therefore left those items unchanged for the
backends that are now known to support this, and added a note for this part
of the work to the other backends.
Backends whose DBD implements enough of the DBI table_info method to indicate
whether a relation is in fact a view should also acquire support for setting
table_class, but there are no tests for other backends, so they haven't been
declared working.
Aaron Crane [Sun, 29 Sep 2013 13:11:06 +0000]
Push table-equality checks into _dbh_table_info
Some DBDs don't support table_info. Even in those that do, we may need
to iterate over the table_info data to find the entry that exactly
matches the table we want.
Dagfinn Ilmari Mannsåker [Tue, 22 Oct 2013 10:50:59 +0000]
Release 0.07036_03
Dagfinn Ilmari Mannsåker [Tue, 22 Oct 2013 00:05:21 +0000]
Use sigwarn_silencer() everywhere appropriate
Dagfinn Ilmari Mannsåker [Mon, 21 Oct 2013 23:35:21 +0000]
Silence warnings from pure-perl Cwd::abs_path()
Dagfinn Ilmari Mannsåker [Mon, 21 Oct 2013 17:36:20 +0000]
Fix t/23dumpmore on perl 5.8.8 and earlier
/m isn't honoured for $ when matching a pre-compiled regex (qr//), so
just drop the anchoring
Dagfinn Ilmari Mannsåker [Sun, 20 Oct 2013 14:25:06 +0000]
Merge branch 'topic/better-multi-schema' into master
Dagfinn Ilmari Mannsåker [Wed, 25 Sep 2013 12:36:57 +0000]
Release 0.07036_02
Dagfinn Ilmari Mannsåker [Wed, 25 Sep 2013 12:29:23 +0000]
Fully-qualify all pg_catalog.* names
Dagfinn Ilmari Mannsåker [Wed, 25 Sep 2013 12:17:13 +0000]
Restore support for PostgreSQL 8.3 (RT#87291)
Instead of using a subselect with unnest(array), join agaist a
generate_series() matching the array indices.
Dagfinn Ilmari Mannsåker [Tue, 24 Sep 2013 17:07:14 +0000]
Remove implemented FK introspection items from TODO
Dagfinn Ilmari Mannsåker [Tue, 24 Sep 2013 16:55:08 +0000]
Remove implemented items from TODO
Dagfinn Ilmari Mannsåker [Tue, 24 Sep 2013 16:46:46 +0000]
This branch deals with multiple schemas
Dagfinn Ilmari Mannsåker [Wed, 4 Sep 2013 11:02:59 +0000]
Document fully-qualified constraint/exclude
D. Ilmari Mannsåker [Mon, 16 Sep 2013 11:19:09 +0000]
Skip many_to_many bridges involving might_have relationships
If one or both of the relationsips is a one-to-one relatiohip,
the bridge should be one-to-many or one-to-one, respectively.
However, DBIx::Class doesn't support such bridges, so skip them
for now, keeping the option open to add support if/when DBIC does,
without having to worry about back-compat shenanigans.
This reverts commit
b0cdc8a5bc6db9206a53e52bd9c868ba8442ca2b
and fixes the crash differently.
Dagfinn Ilmari Mannsåker [Sun, 11 Aug 2013 12:09:05 +0000]
Release 0.07036_01
Dagfinn Ilmari Mannsåker [Mon, 29 Jul 2013 19:35:52 +0000]
Allow matching all the moniker parts in constraint/exclude
Dagfinn Ilmari Mannsåker [Wed, 24 Jul 2013 21:36:30 +0000]
Allow using all the moniker parts in hashref moniker_map
Dagfinn Ilmari Mannsåker [Sun, 21 Jul 2013 12:23:11 +0000]
Allow specifying the moniker part separator
Used between the parts specified by "moniker_parts", defaults to the
empty string.
Dagfinn Ilmari Mannsåker [Sun, 11 Aug 2013 11:00:51 +0000]
Allow specifying custom attributes for many_to_many bridges
Dagfinn Ilmari Mannsåker [Tue, 6 Aug 2013 21:57:04 +0000]
Fix many_to_many bridges involving might_have relationships
Dagfinn Ilmari Mannsåker [Sun, 11 Aug 2013 10:43:04 +0000]
Don't ship MYMETA.* files (RT#87713)
Dagfinn Ilmari Mannsåker [Tue, 6 Aug 2013 22:06:24 +0000]
Demote diag about skip reason to note
Dagfinn Ilmari Mannsåker [Tue, 6 Aug 2013 19:52:21 +0000]
Fix typos in POD and comments (RT#87644)
Dagfinn Ilmari Mannsåker [Sun, 21 Jul 2013 12:20:11 +0000]
Avoid conditional assignment in variable declarations
any() already returns a boolean, just assign it directly
D. Ilmari Mannsåker [Mon, 8 Jul 2013 12:25:18 +0000]
Release 0.07036
D. Ilmari Mannsåker [Mon, 8 Jul 2013 13:11:53 +0000]
Ignore dist directory
D. Ilmari Mannsåker [Mon, 8 Jul 2013 12:23:57 +0000]
Ignore Emacs droppings
D. Ilmari Mannsåker [Mon, 8 Jul 2013 13:19:27 +0000]
Fix ordering issues in Pg loader
- Order foreign keys by name
- Order enum values by explicit order column or OID if unavailable
D. Ilmari Mannsåker [Mon, 8 Jul 2013 12:10:30 +0000]
Fix tabs in Changes file
D. Ilmari Mannsåker [Mon, 8 Jul 2013 12:09:30 +0000]
Fix "table" parameter in col_accessor_map callback (RT#84050)
Keep the old, erroneous "table_name" for backward compatibility.
D. Ilmari Mannsåker [Mon, 8 Jul 2013 11:38:22 +0000]
Fix MySQL enums with empty strings and leading/trailing quotes (RT#86091)
Dagfinn Ilmari Mannsåker [Thu, 18 Apr 2013 07:52:15 +0000]
Fix stray comma in Pg on_delete/on_update => CASCADE (RT#84706)
John SJ Anderson [Tue, 26 Feb 2013 14:51:04 +0000]
Release 0.07035
John SJ Anderson [Tue, 22 Jan 2013 04:57:06 +0000]
Release 0.07034_02
John SJ Anderson [Tue, 22 Jan 2013 04:49:11 +0000]
Fix fixtures to work with older DBD::SQLite
John SJ Anderson [Thu, 17 Jan 2013 01:17:27 +0000]
Release 0.07034_01
John SJ Anderson [Wed, 16 Jan 2013 16:41:42 +0000]
Fix typo in t/46relationships_multi_m2m.t
s/twoes/twos/
Dagfinn Ilmari Mannsåker [Thu, 22 Nov 2012 19:01:49 +0000]
Remove implemented item from TODO
Dagfinn Ilmari Mannsåker [Sat, 10 Nov 2012 23:01:59 +0000]
pass link table details to rel_name_map for many_to_many bridges (RT#81091)
If two tables have multiple many-to-many link tables between them, the
rel_name_map coderef needs to know which link table it's naming the rel
for.
Peter Rabbitson [Thu, 15 Nov 2012 10:19:56 +0000]
Reorganize and freshen up deps
Rafael Kitover [Wed, 17 Oct 2012 18:49:35 +0000]
better schemas support for SQL Server > 2000
Use schema_name() instead of user_name() on > 2000 to detect the
current schema, and query [$db].sys.schemas instead of
[$db].dbo.sysusers for schema names on > 2000.
frew has reported that schema_name() has worked better for him for users
which aren't the owners of the schema.
Rafael Kitover [Tue, 16 Oct 2012 18:45:13 +0000]
introspect ON DELETE/UPDATE for SQL Anywhere
The default seems to be RESTRICT, but it's hard to tell, because the
actions are implemented as triggers and you have to query the catalog
triggers view to get at them. At least if you specify RESTRICT there is
no trigger generated.
SQL Anywhere does not support DEFERRABLE constraints. It has something
called CHECK ON COMMIT but that does not seem to have the same full
functionality, so for now we leave is_deferrable at 1.
Rafael Kitover [Tue, 16 Oct 2012 03:00:55 +0000]
Pg _table_fk_info to use catalog not info_schema
Rewrite Pg _table_fk_info query to use the catalog views rather than the
information_schema, as a user on IRC reported that the
information_schema query does not work for readonly Pg users, but the
catalog query does work.
Rafael Kitover [Tue, 2 Oct 2012 18:41:00 +0000]
update deps on ::Phrase and ::Tagger
Update the dep on Lingua::EN::Inflect::Phrase to 0.15 which is much
improved.
Update the dep on Lingua::EN::Tagger to the newest, 0.23 because 0.20
and earlier generated a warning which made Schema::Loader tests fail
(unescaped braces in regex) in perls version 5.17+.
Rafael Kitover [Mon, 10 Sep 2012 14:23:18 +0000]
add rel_type param for relationship_attrs coderef
Forgot to pass some sort of param for the rel type for the
relationship_attrs coderef, adding 'rel_type' with the value
'belongs_to', 'has_many' or 'might_have'.
Add tests to 45relationships.t and doc in ::Base POD.
Rafael Kitover [Sun, 9 Sep 2012 16:12:23 +0000]
release 0.07033
Rafael Kitover [Sun, 9 Sep 2012 16:09:28 +0000]
add a loud warning to Makefile.PL about rel attrs
Print a big boxed warning when running Makefile.PL (e.g. when installing
via CPAN) about the changes to belongs_to relationship attributes in the
last few revisions at the prompting of mst.
Rafael Kitover [Sun, 9 Sep 2012 15:09:19 +0000]
expand relationship_attrs POD
Explain the defaults for relationship attributes, how they are
overridden by the actual database values for foreign keys and can be
overridden by the user via this attribute.
Also explain how defaults are chosen for different databases for
belongs_to rels.
Rafael Kitover [Sun, 9 Sep 2012 13:18:00 +0000]
release 0.07032
Rafael Kitover [Sun, 9 Sep 2012 13:12:08 +0000]
detect inline deferrable FKs for SQLite
The previous attempt to detect DEFERRABLE on FKs only detected for
FOREIGN KEY clauses in DDL, not for inline constraints such as:
int foo references bar(id) deferrable
add code and tests to detect inline FKs as well.
Rafael Kitover [Sun, 9 Sep 2012 01:26:38 +0000]
support coderef for relationship_attrs
Add support for passing a coderef as relationship_attrs and describe
thorougly in the ::Base POD (as well as improve the existing POD for
it.)
This is the list of parameters:
* rel_name
* local_source
* remote_source
* local_table
* local_cols
* remote_table
* remote_cols
* attrs
The hash is passed as a list, not as a hashref.
The coderef must return a hashref of attributes or nothing.
This is thoroughly tested in t/45relationships.t.
I had to add a fallback => 1 to the DBObject.pm stringification
overload, so that eq would work, and this makes the stringification much
more functional.
Rafael Kitover [Thu, 6 Sep 2012 16:39:17 +0000]
author dep on POD test modules, check in 02pod.t
Use ::Optional::Dependencies for POD testing modules, so that they are
author deps and the minimum required version of Pod::Simple (3.22, which
checks that the correct =encoding is set) is also used.
Rafael Kitover [Thu, 6 Sep 2012 16:04:13 +0000]
change =encoding utf8 to =encoding UTF-8 in Loader
I didn't know why 02pod.t was erroneously passing for me, ilmari pointed
out that my Pod::Simple was out of date, and I needed at least 3.21.
Upgrading Pod::Simple caused 02pod.t to produce the fail when the
=encoding directive was missing.
I like using the UTF-8 encoding rather than the more lax utf8 encoding,
so change it now that I can properly test it out.
Rafael Kitover [Thu, 6 Sep 2012 15:10:13 +0000]
release 0.07031
Rafael Kitover [Thu, 6 Sep 2012 14:56:49 +0000]
fix 02pod.t fail for lack of =encoding (RT#79481)
Users report 02pod.t failing due to a UTF-8 character without an
=encoding utf8 statement (arcanez and Marcel Gruenauer.)
For some reason this test passes on my machine, even though I have the
latest Test::Pod.
Marcel Gruenauer sent me a patch to RT which adds the =encoding utf8
statement at the top of the POD, which I added.
I want to use =encoding UTF-8 instead, since that's more correct, but
since I can't test it will leave utf8.
Rafael Kitover [Thu, 6 Sep 2012 03:30:53 +0000]
release 0.07030
André Walker [Thu, 6 Sep 2012 02:43:07 +0000]
allow user to set qualify_objects to false
The qualify_objects attribute in the DBIx::Class::Schema::Loader::Base
was automatically set to true when there were multiple db_schema's, even
if the user explicitly set it to false. This changes that behaviour,
allowing more flexibility on prefixing the names.
Rafael Kitover [Wed, 5 Sep 2012 16:43:45 +0000]
release 0.07029
Rafael Kitover [Mon, 3 Sep 2012 19:36:09 +0000]
introspect ON DELETE and DEFERRABLE for Oracle
Oracle has no ON UPDATE rules, so change the default to NO ACTION so
that users have no surprises when deploying an Oracle schema to SQLite
etc.
Add support to the generic ::Loader::DBI::_table_fk_info for
introspecting ON DELETE/UPDATE rules and DEFERRABLE clauses, as much as
the DBD supports it.
For Oracle I had to get the DEFERRABLE value manually in an override, as
well as making sure the on_update was set, as the Oracle driver uses the
::Loader::DBI method.
Rafael Kitover [Mon, 3 Sep 2012 17:06:47 +0000]
introspect ON DELETE/UPDATE FK clauses for DB2
is_deferrable still defaults to 1 because DB2 does not have deferrable
FKs. At some point we will try to implement with_deferred_fk_checks for
DB2 in DBIC.
Rafael Kitover [Sun, 2 Sep 2012 21:29:01 +0000]
introspect ON/DEFERRABLE FK clauses for SQLite
The ON clauses are simple to get, pragma foreign_key_list returns them,
but for the DEFERRABLE clause we have to parse the table DDL from
sqlite_master, a bit hairy but should be correct.
Rafael Kitover [Thu, 30 Aug 2012 05:33:55 +0000]
release 0.07028
Rafael Kitover [Thu, 30 Aug 2012 05:24:50 +0000]
bump Lingua::EN::Tagger dep to 0.20
Lingua::EN::Tagger before 0.20 had some unescaped curly braces in
regexes, this produces a warning on perl 5.17+ which breaks our tests.
Rafael Kitover [Thu, 30 Aug 2012 05:20:53 +0000]
FK ON clause introspection for MSSQL
Augment the _table_fk_info code which uses information_schema to get the
delete_rule and update_rule, similarly to how it was done for
PostgreSQL. MSSQL does not have DEFERRABLE, but it has a way to disable
FK constraints on a table temporarily, which we will implement for
$storage->with_deferred_fk_checks for MSSQL in DBIC. For this reason,
is_deferrable still defaults to 1 for MSSQL.
Rafael Kitover [Wed, 29 Aug 2012 16:18:03 +0000]
minor optimization for Pg FK attrs, better test
Set the FK attributes in Pg _table_fk_info only once instead of once for
each column.
Also test DEFERRABLE being on instead of off, since it defaults to off.
Rafael Kitover [Sun, 26 Aug 2012 22:41:06 +0000]
release 0.07027
Rafael Kitover [Sun, 26 Aug 2012 22:35:23 +0000]
introspect ON DELETE/UPDATE and DEFERRABLE for pg
Apparently Pg has an information_schema, so I copied the _table_fk_info
from the MSSQL driver and modified it to introspect the ON and
DEFERRABLE clauses.
I will add this introspection for MSSQL shortly as well, after which I
will remove the duplication from these two drivers and add an
InformationSchema component.
Rafael Kitover [Sun, 26 Aug 2012 01:03:08 +0000]
release 0.07026
Rafael Kitover [Tue, 21 Aug 2012 23:23:15 +0000]
introspect ON DELETE/UPDATE clauses for MySQL FKs
The default for these has been CASCADE for a while now, the idea was
that this is the most useful default for deployed schemas and it would
be replaced with the actual introspected value when this capability
would be added.
A user wrote in to RT that this capability was missing for MySQL so I
decided to start on adding it, with MySQL first.
This means that for MySQL the default for on_delete/on_update is now
RESTRICT rather than CASCADE, and this will probably soon be true for
other backends that support these clauses.
Also there are some whitespace changes in this commit due to some
cleanup autocommands I put into my .vimrc, read it with git diff -w.
Rafael Kitover [Thu, 14 Jun 2012 17:01:47 +0000]
update rbuels' email address in CONTRIBUTORS
Rafael Kitover [Fri, 8 Jun 2012 23:15:14 +0000]
release 0.07025
SineSwiper [Tue, 5 Jun 2012 01:27:13 +0000]
support MSSQL 2000 again, optimization for MSSQL
multischema support broke compatibility with SQL Server 2000 in 0.07011,
because system tables were used to find identity columns, and system
tables changed between 2000 and 2005.
We now check the SQL Server version and use a different query for 2000
and later versions.
Also optimize columns_info_for to use one query for the whole table,
instead of doing two separate queries for each column.
Rafael Kitover [Tue, 8 May 2012 15:36:15 +0000]
release 0.07024
Rafael Kitover [Tue, 8 May 2012 15:30:45 +0000]
work around broken kseq in Pg fk info (RT#77062)
The keyseqs from $dbh->foreign_key_info from DBD::Pg were erroneously
high, and since they are used as an array index, they were causing the
fk_info to return undefs and break everything.
Add a grep defined, to the column arrays in fk_info which fixes
everything.
Rafael Kitover [Sat, 5 May 2012 11:53:29 +0000]
release 0.07023
SineSwiper [Fri, 4 May 2012 21:44:15 +0000]
fix base ::DBI loader to properly order FK columns
Rafael Kitover [Sun, 8 Apr 2012 12:44:15 +0000]
bump up Class::Inspector dep for blead (RT#74236)
Rafael Kitover [Sun, 8 Apr 2012 12:24:14 +0000]
release 0.07022
Paul C. Mantz [Tue, 24 Jan 2012 22:53:02 +0000]
separate queries for default on ASE (RT#74170)
Some Sybase ASE servers apparently cannot LEFT JOIN to the syscomments
table to get the default_value, so do the query separately.
Also combine the data_type/len/prec. and is_identity queries.
Rafael Kitover [Sat, 7 Apr 2012 18:22:29 +0000]
set correct size for n(var)?char columns for ASE
Based on @@ncharsize.
Rafael Kitover [Sat, 7 Apr 2012 17:47:19 +0000]
make common tests use fewer active statements
Newer versions of the Sybase ASE developer's edition have a limit of 25
user connections and do not allow setting it higher, this did not
support the common tests.
Change the ->first calls on ResultSets to ->single to not keep active
statements around.
The common tests now run against the latest version of Sybase ASE
developer's edition.
Rafael Kitover [Fri, 6 Apr 2012 16:08:39 +0000]
support Informix common tests over shared mem
Support the default Informix connections over shared memory rather than
TCP for running the common tests, including the extra tests.
Shared memory connections have the limitation that a process may only
open one connection to the DB server at a time.
Also fix the t/lib/dbixcsl_common_tests.pm to work with only one
database connection at a time.