Alzabo

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  important when the two tables are independent.  Previously it would
  have been a runtime error (attempting to call a method on an
  undefined value).

- Fix warning from Row->update.  Patch by Ilya Martynov.

- Alzabo::Runtime::PotentialRow's id_as_string method was misnamed id.
  The docs had it wrong for all classes.

- Catch where clauses that contain non-column/function objects as left
  hand side value (like if you accidentally pass in a table object).

- The Postgres TEXT column type is now considered a blob, not a
  character type column.

- There was a fatal error when creating an n-to-n relationship if only
  columns were given, without tables.  This was fixed with a patch
  from Dan Martinez.

- Explicitly check for errors after calling $dbh->func.

Changes  view on Meta::CPAN

- The Alzabo::Column->null and Alzabo::Create::Column->set_null
  methods (deprecated in 0.20) are gone.  Use ->nullable and
  ->set_nullable instead.

---------------------------------------------------------------------------

0.51 Aug 29, 2001

BUG FIXES:

- Accidentally broke foreign key display for schema creation interface
  in 0.50. -- In retrospect, the bug was fixing this.  Oh well, live
  and learn.

ENHANCEMENTS:

- Add ->handle method to Alzabo::Driver class, which lets you set and
  get the current database handle.  Suggested by Ilya Martynov.

---------------------------------------------------------------------------

Changes  view on Meta::CPAN

  but the set methods still use the old concepts).  I'll make sure
  that there is a time when using these methods issues a warning about
  their deprecation.

BUG FIXES:

- Fix pod merging, which broke a while back (this merges superclass
  documentation into subclasses for things like
  Alzabo::Runtime::Table).

- The code was accidentally serializing a DBI handle, which generates
  lots of useless warnings.  This wasn't affecting Alzabo's operations
  as it never attempted to use the thawed handle.

- Fix handling of ENUM and SET column types for MySQL.  These were not
  being allowed through properly.

- Attempting to insert a value into a column that was related to a
  non-primary key column were not allowed if the value being inserted
  did not match the related column in the other table, even when the
  columns were not dependent on each other.  Now this is only

Changes  view on Meta::CPAN


- The schema creator now requires HTTP::BrowserDetect.

- Fix what was arguably a bug in the caching/syncing code.
  Previously, one process could update a row and another process could
  then update that same row.  Now the second process will throw an
  exception.

BUG FIXES:

- Accidentally left debugging turned on in Alzabo::Exceptions.

- The schema creator did not allow you to remove a length or precision
  setting for a column once it had been made.

- Require a length for CHAR and VARCHAR columns with MySQL.

- Add error on setting precision for any column that doesn't allow
  them with MySQL.

- The interaction of caching rows and Alzabo::MethodMaker was not

Changes  view on Meta::CPAN


- Added Alzabo::DriverStatement and Alzabo::Driver::Exception to Alzabo::Driver

- improved data browser memory efficiency

- minor bug fixes (bad links) in data browser and schema maker

- minor buglet fix in Alzabo::Driver::MySQL

- big fix to how Alzabo::Runtime::Schema is saved from
  Alzabo::Create::Schema.  Previous implementation was accidentally
  saving both the runtime and create versions at once.  The new
  version fixes this.

LICENSE  view on Meta::CPAN

If any portion of this section is held invalid or unenforceable under any particular
circumstance, the balance of the section is intended to apply and the section as
a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other
property right claims or to contest validity of any such claims; this section has
the sole purpose of protecting the integrity of the free software distribution
system, which is implemented by public license practices. Many people have
made generous contributions to the wide range of software distributed through
that system in reliance on consistent application of that system; it is up to the
author/donor to decide if he or she is willing to distribute software through any
other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries
either by patents or by copyrighted interfaces, the original copyright holder who
places the Program under this License may add an explicit geographical
distribution limitation excluding those countries, so that distribution is permitted
only in or among countries not thus excluded. In such case, this License

lib/Alzabo/RDBMSRules/MySQL.pm  view on Meta::CPAN

    {
        Alzabo::Exception::RDBMSRules->throw( error => "Valid values for the length specification are 2 or 4." )
            if defined $column->length && ($column->length != 2 && $column->length != 4);
        return;
    }

    Alzabo::Exception::RDBMSRules->throw( error => $column->type . " columns cannot have a length or precision." )
        if defined $column->length || defined $column->precision;
}

# placeholder in case we decide to try to do something better later
sub validate_table_attribute { 1 }

sub validate_column_attribute
{
    my $self = shift;
    my %p = @_;

    my $column = $p{column};
    my $a = uc $p{attribute};
    $a =~ s/\A\s//;

lib/Alzabo/RDBMSRules/PostgreSQL.pm  view on Meta::CPAN

            unless $column->type =~ /\A(?:(?:VAR)?CHAR|CHARACTER|DECIMAL|FLOAT|NUMERIC|(?:VAR)?BIT|BIT VARYING)\z/i;
    }

    if ( defined $column->precision )
    {
        Alzabo::Exception::RDBMSRules->throw( error => "Precision is not supported except for decimal, float, and numeric columns" )
            unless $column->type =~ /\A(?:DECIMAL|FLOAT|NUMERIC)\z/i;
    }
}

# placeholder in case we decide to try to do something better later
sub validate_table_attribute { 1 }

sub validate_column_attribute
{
    my $self = shift;
    my %p = @_;

    my $column = $p{column};
    my $type = $column->type;
    my $a = uc $p{attribute};

lib/Alzabo/Runtime/Schema.pm  view on Meta::CPAN

L<C<set_user()>|Alzabo::Runtime::Schema/set_user ($user)> and
L<C<set_password()>|Alzabo::Runtime::Schema/set_password ($password)>
methods in the server startup file.  Then all the mod_perl children
will inherit the schema with the user and password already set.
Otherwise you will have to provide it for each request.

You may ask why you have to go to all this trouble to deal with the
user and password information.  The basic reason was that I did not
feel I could come up with a solution to this problem that was secure,
easy to configure and use, and cross-platform compatible.  Rather, I
think it is best to let each user decide on a security practice with
which they feel comfortable.

In addition, there are a number of modules aimed at helping store and
use this sort of information on CPAN, including C<DBIx::Connect> and
C<AppConfig>, among others.

=head1 AUTHOR

Dave Rolsky, <autarch@urth.org>



( run in 0.512 second using v1.01-cache-2.11-cpan-4505f990765 )