Alzabo
view release on metacpan or search on metacpan
INCOMPATIBILITIES
- See the note above about the changes required to support
multi-column foreign keys.
- Because of the aforementioned changes to the caching architecture,
caching just does not work the way it used to.
1. By default, there is no caching at all.
2. To get the old behavior, which defaulted to an in-process memory
cache with no inter-process syncing (meaning deletes are tracked but
there is no such thing as expiration), you can do this in your code:
use Alzabo::ObjectCache( store => 'Alzabo::ObjectCache::MemoryStore',
sync => 'Alzabo::ObjectCache::NullSync' );
or just:
use Alzabo::ObjectCache; # the above modules are the defaults
3. To get the behavior of the old Alzabo::ObjectCacheIPC module, do:
use Alzabo::ObjectCache( store => 'Alzabo::ObjectCache::MemoryStore',
sync => 'Alzabo::ObjectCache::IPCSync' );
However, the new DBMSync module will probably scale better, and
performance should be about the same for smaller applications. To
use it, do:
use Alzabo::ObjectCache( store => 'Alzabo::ObjectCache::MemoryStore',
sync => 'Alzabo::ObjectCache::DBMSync' );
4. If you run without any caching at all then the
Alzabo::Runtime::Row class's behavior has changed somewhat. In
particular, selects or updates against a deleted object will always
throw an Alzabo::Exception::NoSuchRow exception. Before, the
behavior wasn't very well defined.
Please read the section on clearing the cache in the
Alzabo::ObjectCache module, as this is an important concept. By
default, the caching and syncing modules will just grow unchecked.
You need to clear at the appropriate points (usually your
application's entry points) in order to keep them under control.
---------------------------------------------------------------------------
0.20 Jan 9, 2001
- Preliminary Postgres support. There is no support yet for
constraints or foreign keys when reverse engineering or making SQL.
There is also no support for large objects (I'm hoping that 7.1 will
be released soon so I won't have to think about this). Otherwise,
the support is about at the same level as MySQL support, though less
mature.
- Added Alzabo::MethodMaker module. This can be used to auto-generate
useful methods for your schema/table/row objects based on the
properties of your objects themselves.
- Reworking/expanding/clarifying/editing of the docs.
- Add order_by and limit options whenever creating a cursor.
- Method documentation POD from the Alzabo::* modules is merged into
the relevant Alzabo::Create::* and Alzabo::Runtime::* modules during
install. This should make it easier to find what you need since the
average user will only need to look at a few modules in
Alzabo::Runtime::*.
- Reworked exceptions so they are all now
Alzabo::Exception::Something.
- Added default as a column attribute (thus there are now
Alzabo::Column->default and Alzabo::Create::Column->set_default
methods).
- Added length & precision attributes for columns. Both are set
through the Alzabo::Create::Column->set_length method.
- This release includes a script in eg/ called convert.pl to convert
older schemas.
- Alzabo::Schema->tables & Alzabo::Table->columns now take an optional
list of tables/columns as an argument and return a list of matching
objects.
- Added Alzabo::Column->has_attribute method.
- The data browser has actually lost some functionality (the
filtering). Making this more powerful is a fairly low priority at
the moment.
- Fix bugs where extra params passed to Alzabo::Runtime::Table->insert
were not making it to the Alzabo::Runtime::Row->new method.
- Fix for Alzabo::Runtime::Table->set_prefetch method.
- Fixed bug in handling of deleted object in Alzabo::ObjectCacheIPC
(they were never reported as deleted).
- Fix bug that caused schema to get bigger every time it was saved.
- Finally switched to regular hashes for objects.
- Added Alzabo::SQLMaker classes to handle generating SQL in a
cross-platform compatible way.
DEPRECATIONS:
- Parameters for Alzabo::Create::Column->new: 'null' parameter is now
'nullable'. The use of the parameter 'null' is deprecated.
- Alzabo::Column->null & Alzabo::Column->set_null methods are now
Alzabo::Column->nullable & Alzabo::Column->set_nullable. The old
methods are deprecated.
- Alzabo::Create::ForeignKey->new no longer requires table_from &
table_to params (it took me this long to realize I can get that from
the column passed in. doh!)
( run in 2.147 seconds using v1.01-cache-2.11-cpan-0d23b851a93 )