IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2903


Ignore:
Timestamp:
Jan 4, 2005, 5:45:52 PM (22 years ago)
Author:
jhoblitt
Message:

move from DBI->prepare to DBI->prepare_cached
cleanup _get_storage_volume

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server/lib/Nebulous/Server.pm

    r2902 r2903  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: Server.pm,v 1.5 2005-01-05 03:19:12 jhoblitt Exp $
     3# $Id: Server.pm,v 1.6 2005-01-05 03:45:52 jhoblitt Exp $
    44
    55package PS::IPP::IData::Server;
     
    113113        {
    114114            # create storage_object
    115             my $query = $db->prepare( $sql->new_object );
     115            my $query = $db->prepare_cached( $sql->new_object );
    116116            $query->execute( $key, $class, $comment );
    117117        }
     
    119119        {
    120120            # create instance with no URI
    121             my $query = $db->prepare( $sql->new_object_instance );
     121            my $query = $db->prepare_cached( $sql->new_object_instance );
    122122            $query->execute;
    123123        }
     
    125125        {
    126126            # get instance ID
    127             my $query = $db->prepare( $sql->last_insert_id );
     127            my $query = $db->prepare_cached( $sql->last_insert_id );
    128128            $query->execute;
    129129            ( $ins_id ) = $query->fetchrow_array;
     
    152152    eval {
    153153        {
    154             my $query = $db->prepare( $sql->update_instance_uri );
     154            my $query = $db->prepare_cached( $sql->update_instance_uri );
    155155            $query->execute( $uri, $ins_id );
    156156        }
     
    190190    eval {
    191191        {
    192             my $query = $db->prepare( $sql->get_object_instances );
     192            my $query = $db->prepare_cached( $sql->get_object_instances );
    193193            my $rows = $query->execute( $key );
    194194
     
    202202
    203203        {
    204             my $query = $db->prepare( $sql->new_instance );
     204            my $query = $db->prepare_cached( $sql->new_instance );
    205205            $query->execute( $so_id );
    206206        }
    207207
    208208        {
    209             my $query = $db->prepare( $sql->last_insert_id );
     209            my $query = $db->prepare_cached( $sql->last_insert_id );
    210210            $query->execute();
    211211
     
    217217            $log->debug( "generated uri $uri");
    218218
    219             my $query = $db->prepare( $sql->update_instance_uri );
     219            my $query = $db->prepare_cached( $sql->update_instance_uri );
    220220            $query->execute( $uri, $ins_id );
    221221        }
     
    266266    eval {
    267267        # this will set update locks
    268         my $query = $db->prepare( $sql->get_object_locks );
     268        my $query = $db->prepare_cached( $sql->get_object_locks );
    269269        my $rows = $query->execute( $key );
    270270        unless ( $rows == 1 ) {
     
    301301
    302302        eval {
    303             my $query = $db->prepare( $sql->set_write_lock );
     303            my $query = $db->prepare_cached( $sql->set_write_lock );
    304304            my $rows = $query->execute( $key );
    305305       
     
    331331
    332332        eval {
    333             my $query = $db->prepare( $sql->increment_read_lock );
     333            my $query = $db->prepare_cached( $sql->increment_read_lock );
    334334            my $rows = $query->execute( $key );
    335335       
     
    378378    eval {
    379379        # this will set update locks
    380         my $query = $db->prepare( $sql->get_object_locks );
     380        my $query = $db->prepare_cached( $sql->get_object_locks );
    381381        my $rows = $query->execute( $key );
    382382        unless ( $rows == 1 ) {
     
    411411
    412412        eval {
    413             my $query = $db->prepare( $sql->delete_write_lock );
     413            my $query = $db->prepare_cached( $sql->delete_write_lock );
    414414            my $rows = $query->execute( $key );
    415415       
     
    449449
    450450        eval {
    451             my $query = $db->prepare( $sql->decrement_read_lock );
     451            my $query = $db->prepare_cached( $sql->decrement_read_lock );
    452452            my $rows = $query->execute( $key );
    453453       
     
    495495
    496496    eval {
    497         $query = $db->prepare( $sql->get_object_instances );
     497        $query = $db->prepare_cached( $sql->get_object_instances );
    498498        $query->execute( $key );
    499499    };
     
    530530        # get so_id
    531531        {
    532             my $query = $db->prepare( $sql->get_object_from_uri );
     532            my $query = $db->prepare_cached( $sql->get_object_from_uri );
    533533            my $rows = $query->execute( $uri );
    534534
     
    541541
    542542        {
    543             my $query = $db->prepare( $sql->get_instance_count );
     543            my $query = $db->prepare_cached( $sql->get_instance_count );
    544544            $query->execute( $so_id );
    545545
     
    549549        # remove instance
    550550        {
    551             my $query = $db->prepare( $sql->delete_instance );
     551            my $query = $db->prepare_cached( $sql->delete_instance );
    552552            my $rows = $query->execute( $uri );
    553553           
     
    562562        if ( $instances == 1 ) {
    563563            # we just removed the last instance
    564             my $query = $db->prepare( $sql->delete_object );
     564            my $query = $db->prepare_cached( $sql->delete_object );
    565565            my $rows = $query->execute( $so_id );
    566566
     
    596596    my $stat;
    597597    eval {
    598         my $query = $db->prepare( $sql->get_object );
     598        my $query = $db->prepare_cached( $sql->get_object );
    599599        my $rows = $query->execute( $key );
    600600
     
    625625
    626626    my $volume;
    627     {
     627    eval {
     628        # TODO cache this?
    628629        my $query;
    629         eval {
    630             # TODO cache this?
    631             my $rows;
    632             if ( $name ) {
    633                 $query = $db->prepare( $sql->get_storage_volume_byname );
    634                 $rows = $query->execute( $name );
    635             } else {
    636                 $query = $db->prepare( $sql->get_storage_volume );
    637                 $rows = $query->execute;
    638             }
    639 
    640             # there has to be atleast one storage volume
    641             unless ( $rows > 0 ) {
    642                 $db->rollback;
    643 
    644                 $log->logdie( "affected row count is $rows instead of 1" );
    645             } else {
    646                 $db->commit;
    647             }
    648         };
     630        my $rows;
     631        if ( $name ) {
     632            $query = $db->prepare_cached( $sql->get_storage_volume_byname );
     633            $rows = $query->execute( $name );
     634        } else {
     635            $query = $db->prepare_cached( $sql->get_storage_volume );
     636            $rows = $query->execute;
     637        }
     638
     639        # there has to be atleast one storage volume
     640        unless ( $rows > 0 ) {
     641            $log->logdie( "affected row count is $rows instead of 1" );
     642        }
     643
     644        $volume = $query->fetchrow_hashref->{ 'uri' };
     645
     646        $query->finish;
     647        $db->commit;
     648    };
     649    if ( $@ ) {
     650        $query->finish;
     651        $db->rollback;
    649652        $log->logdie( "database error: $@" ) if $@;
    650 
    651         $volume = $query->fetchrow_hashref->{ 'uri' };
    652653    }
    653654
  • trunk/Nebulous/lib/Nebulous/Server.pm

    r2902 r2903  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: Server.pm,v 1.5 2005-01-05 03:19:12 jhoblitt Exp $
     3# $Id: Server.pm,v 1.6 2005-01-05 03:45:52 jhoblitt Exp $
    44
    55package PS::IPP::IData::Server;
     
    113113        {
    114114            # create storage_object
    115             my $query = $db->prepare( $sql->new_object );
     115            my $query = $db->prepare_cached( $sql->new_object );
    116116            $query->execute( $key, $class, $comment );
    117117        }
     
    119119        {
    120120            # create instance with no URI
    121             my $query = $db->prepare( $sql->new_object_instance );
     121            my $query = $db->prepare_cached( $sql->new_object_instance );
    122122            $query->execute;
    123123        }
     
    125125        {
    126126            # get instance ID
    127             my $query = $db->prepare( $sql->last_insert_id );
     127            my $query = $db->prepare_cached( $sql->last_insert_id );
    128128            $query->execute;
    129129            ( $ins_id ) = $query->fetchrow_array;
     
    152152    eval {
    153153        {
    154             my $query = $db->prepare( $sql->update_instance_uri );
     154            my $query = $db->prepare_cached( $sql->update_instance_uri );
    155155            $query->execute( $uri, $ins_id );
    156156        }
     
    190190    eval {
    191191        {
    192             my $query = $db->prepare( $sql->get_object_instances );
     192            my $query = $db->prepare_cached( $sql->get_object_instances );
    193193            my $rows = $query->execute( $key );
    194194
     
    202202
    203203        {
    204             my $query = $db->prepare( $sql->new_instance );
     204            my $query = $db->prepare_cached( $sql->new_instance );
    205205            $query->execute( $so_id );
    206206        }
    207207
    208208        {
    209             my $query = $db->prepare( $sql->last_insert_id );
     209            my $query = $db->prepare_cached( $sql->last_insert_id );
    210210            $query->execute();
    211211
     
    217217            $log->debug( "generated uri $uri");
    218218
    219             my $query = $db->prepare( $sql->update_instance_uri );
     219            my $query = $db->prepare_cached( $sql->update_instance_uri );
    220220            $query->execute( $uri, $ins_id );
    221221        }
     
    266266    eval {
    267267        # this will set update locks
    268         my $query = $db->prepare( $sql->get_object_locks );
     268        my $query = $db->prepare_cached( $sql->get_object_locks );
    269269        my $rows = $query->execute( $key );
    270270        unless ( $rows == 1 ) {
     
    301301
    302302        eval {
    303             my $query = $db->prepare( $sql->set_write_lock );
     303            my $query = $db->prepare_cached( $sql->set_write_lock );
    304304            my $rows = $query->execute( $key );
    305305       
     
    331331
    332332        eval {
    333             my $query = $db->prepare( $sql->increment_read_lock );
     333            my $query = $db->prepare_cached( $sql->increment_read_lock );
    334334            my $rows = $query->execute( $key );
    335335       
     
    378378    eval {
    379379        # this will set update locks
    380         my $query = $db->prepare( $sql->get_object_locks );
     380        my $query = $db->prepare_cached( $sql->get_object_locks );
    381381        my $rows = $query->execute( $key );
    382382        unless ( $rows == 1 ) {
     
    411411
    412412        eval {
    413             my $query = $db->prepare( $sql->delete_write_lock );
     413            my $query = $db->prepare_cached( $sql->delete_write_lock );
    414414            my $rows = $query->execute( $key );
    415415       
     
    449449
    450450        eval {
    451             my $query = $db->prepare( $sql->decrement_read_lock );
     451            my $query = $db->prepare_cached( $sql->decrement_read_lock );
    452452            my $rows = $query->execute( $key );
    453453       
     
    495495
    496496    eval {
    497         $query = $db->prepare( $sql->get_object_instances );
     497        $query = $db->prepare_cached( $sql->get_object_instances );
    498498        $query->execute( $key );
    499499    };
     
    530530        # get so_id
    531531        {
    532             my $query = $db->prepare( $sql->get_object_from_uri );
     532            my $query = $db->prepare_cached( $sql->get_object_from_uri );
    533533            my $rows = $query->execute( $uri );
    534534
     
    541541
    542542        {
    543             my $query = $db->prepare( $sql->get_instance_count );
     543            my $query = $db->prepare_cached( $sql->get_instance_count );
    544544            $query->execute( $so_id );
    545545
     
    549549        # remove instance
    550550        {
    551             my $query = $db->prepare( $sql->delete_instance );
     551            my $query = $db->prepare_cached( $sql->delete_instance );
    552552            my $rows = $query->execute( $uri );
    553553           
     
    562562        if ( $instances == 1 ) {
    563563            # we just removed the last instance
    564             my $query = $db->prepare( $sql->delete_object );
     564            my $query = $db->prepare_cached( $sql->delete_object );
    565565            my $rows = $query->execute( $so_id );
    566566
     
    596596    my $stat;
    597597    eval {
    598         my $query = $db->prepare( $sql->get_object );
     598        my $query = $db->prepare_cached( $sql->get_object );
    599599        my $rows = $query->execute( $key );
    600600
     
    625625
    626626    my $volume;
    627     {
     627    eval {
     628        # TODO cache this?
    628629        my $query;
    629         eval {
    630             # TODO cache this?
    631             my $rows;
    632             if ( $name ) {
    633                 $query = $db->prepare( $sql->get_storage_volume_byname );
    634                 $rows = $query->execute( $name );
    635             } else {
    636                 $query = $db->prepare( $sql->get_storage_volume );
    637                 $rows = $query->execute;
    638             }
    639 
    640             # there has to be atleast one storage volume
    641             unless ( $rows > 0 ) {
    642                 $db->rollback;
    643 
    644                 $log->logdie( "affected row count is $rows instead of 1" );
    645             } else {
    646                 $db->commit;
    647             }
    648         };
     630        my $rows;
     631        if ( $name ) {
     632            $query = $db->prepare_cached( $sql->get_storage_volume_byname );
     633            $rows = $query->execute( $name );
     634        } else {
     635            $query = $db->prepare_cached( $sql->get_storage_volume );
     636            $rows = $query->execute;
     637        }
     638
     639        # there has to be atleast one storage volume
     640        unless ( $rows > 0 ) {
     641            $log->logdie( "affected row count is $rows instead of 1" );
     642        }
     643
     644        $volume = $query->fetchrow_hashref->{ 'uri' };
     645
     646        $query->finish;
     647        $db->commit;
     648    };
     649    if ( $@ ) {
     650        $query->finish;
     651        $db->rollback;
    649652        $log->logdie( "database error: $@" ) if $@;
    650 
    651         $volume = $query->fetchrow_hashref->{ 'uri' };
    652653    }
    653654
Note: See TracChangeset for help on using the changeset viewer.