[Jifty-commit] r2717 -
jifty/branches/virtual-models/lib/Jifty/Handle
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Mon Jan 29 06:08:34 EST 2007
Author: audreyt
Date: Mon Jan 29 06:07:21 2007
New Revision: 2717
Modified:
jifty/branches/virtual-models/lib/Jifty/Handle/SVK.pm
Log:
* Sideband UUID generation.
Modified: jifty/branches/virtual-models/lib/Jifty/Handle/SVK.pm
==============================================================================
--- jifty/branches/virtual-models/lib/Jifty/Handle/SVK.pm (original)
+++ jifty/branches/virtual-models/lib/Jifty/Handle/SVK.pm Mon Jan 29 06:07:21 2007
@@ -2,6 +2,7 @@
use strict;
package Jifty::Handle::SVK;
+use Jifty::Util;
use base 'Jifty::Handle';
=head1 NAME
@@ -24,4 +25,69 @@
return $self;
}
+sub connect {
+ my $self = shift;
+ my $rv = $self->SUPER::connect(@_);
+
+ # Here we do it in SQL land to avoid circularity.
+ local $SIG{__WARN__} = sub { 1 };
+ defined $self->dbh->do(qq[
+ CREATE TABLE _jifty_uuids (
+ uuid char(36),
+ row_table varchar(255),
+ row_id integer
+ )
+ ], { RaiseError => 0, PrintError => 0, AutoCommit => 1 } ) or return $rv;
+
+ $self->dbh->do(qq[ CREATE UNIQUE INDEX JiftyUUID ON _jifty_uuids (uuid, row_table, row_id) ]);
+ $self->dbh->do(qq[ CREATE UNIQUE INDEX JiftyUUID_Row ON _jifty_uuids (row_table, row_id) ]);
+ $self->dbh->do(qq[ CREATE UNIQUE INDEX JiftyUUID_UUID ON _jifty_uuids (uuid) ]);
+
+ return $rv;
+}
+
+sub create {
+ my $self = shift;
+ my $table = shift;
+ my $rv = $self->SUPER::create($table, @_);
+
+ if ($rv) {
+ # Generate a UUID on the sideband: $table - $rv - UUID.
+ my $uuid = Jifty::Util->generate_uuid;
+ $self->dbh->do(qq[ INSERT INTO _jifty_uuids VALUES (?, ?, ?) ], $uuid, $table, $rv);
+ }
+
+ return $rv;
+}
+
+sub delete {
+ my $self = shift;
+ my $rv = $self->SUPER::delete(@_);
+ return $rv;
+}
+
+sub update_record_value {
+ my $self = shift;
+ my $rv = $self->SUPER::update_record_value(@_);
+ return $rv;
+}
+
+sub begin_transaction {
+ my $self = shift;
+ my $rv = $self->SUPER::begin_transaction(@_);
+ return $rv;
+}
+
+sub commit {
+ my $self = shift;
+ my $rv = $self->SUPER::commit(@_);
+ return $rv;
+}
+
+sub rollback {
+ my $self = shift;
+ my $rv = $self->SUPER::rollback(@_);
+ return $rv;
+}
+
1;
More information about the Jifty-commit
mailing list