IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 4, 2005, 4:35:45 PM (21 years ago)
Author:
jhoblitt
Message:

split storage_object table into storage_object & storage_object_attr

File:
1 edited

Legend:

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

    r4933 r5478  
    11# Copyright (c) 2004  Joshua Hoblitt
    22#
    3 # $Id: SQL.pm,v 1.9 2005-08-31 21:00:12 jhoblitt Exp $
     3# $Id: SQL.pm,v 1.10 2005-11-05 02:35:45 jhoblitt Exp $
    44
    55package Nebulous::Server::SQL;
     
    2424    new_object          => qq{
    2525        INSERT INTO storage_object
    26         (so_id, ext_id, class_id, comment, read_lock, write_lock)
    27         VALUES (NULL, ?, ?, ?, 0, NULL)
     26        (so_id, ext_id)
     27        VALUES (?, ?)
     28    },
     29    new_object_attr  => qq{
     30        INSERT INTO storage_object_attr
     31        (so_id, class_id, comment, read_lock, write_lock)
     32        VALUES (?, ?, ?, 0, NULL)
    2833    },
    2934    delete_object       => qq{
     
    4045    },
    4146    get_object          => qq{
    42         SELECT so_id, ext_id, class_id, comment, read_lock, write_lock, epoch, mtime
     47        SELECT storage_object.so_id,
     48            ext_id, class_id, comment, read_lock, write_lock, epoch, mtime
    4349        FROM storage_object
     50        LEFT JOIN storage_object_attr
     51        USING (so_id)
    4452        WHERE ext_id = ?
    4553    },
    4654    get_object_locks    => qq{
    47         SELECT so_id, read_lock, write_lock
     55        SELECT storage_object.so_id,
     56            read_lock, write_lock
    4857        FROM storage_object
     58        LEFT JOIN storage_object_attr
     59        USING (so_id)
    4960        WHERE ext_id = ?
    5061        FOR UPDATE
    5162    },
    5263    set_write_lock      => qq{
    53         UPDATE storage_object
     64        UPDATE storage_object_attr
     65        LEFT JOIN storage_object
     66        USING(so_id)
    5467        SET write_lock = 'write'
    55         WHERE ext_id = ?
     68        WHERE storage_object.ext_id = ?
    5669    },
    5770    delete_write_lock   => qq{
    58         UPDATE storage_object
     71        UPDATE storage_object_attr
     72        LEFT JOIN storage_object
     73        USING(so_id)
    5974        SET write_lock = NULL
    6075        WHERE ext_id = ?
    6176    },
    6277    increment_read_lock => qq{
    63         UPDATE storage_object
    64         SET read_lock = read_lock+1
     78        UPDATE storage_object_attr
     79        LEFT JOIN storage_object
     80        USING(so_id)
     81        SET read_lock = read_lock + 1
    6582        WHERE ext_id = ?
    6683    },
    6784    decrement_read_lock => qq{
    68         UPDATE storage_object
    69         SET read_lock = read_lock-1
     85        UPDATE storage_object_attr
     86        LEFT JOIN storage_object
     87        USING(so_id)
     88        SET read_lock = read_lock - 1
    7089        WHERE ext_id = ?
    7190    },
     
    85104    },
    86105    get_object_instances        => qq{
    87         SELECT storage_object.so_id, uri, assigned_location
     106        SELECT storage_object.so_id,
     107            uri, assigned_location
    88108        FROM storage_object
    89109        LEFT JOIN instance
    90110        USING (so_id)
    91         WHERE storage_object.ext_id = ?
     111        WHERE ext_id = ?
    92112    },
    93113    get_storage_volume_byname   => qq{
     
    143163
    144164__DATA__
     165DROP TABLE IF EXISTS storage_object;
    145166CREATE TABLE storage_object (
    146167    so_id BIGINT NOT NULL AUTO_INCREMENT,
    147168    ext_id VARCHAR(255) BINARY NOT NULL UNIQUE,
     169    PRIMARY KEY(so_id),
     170    KEY(ext_id(64))
     171) ENGINE=innodb;
     172
     173DROP TABLE IF EXISTS storage_object_attr ;
     174CREATE TABLE storage_object_attr (
     175    so_id BIGINT NOT NULL AUTO_INCREMENT,
    148176    class_id TINYINT NOT NULL,
    149177    comment VARCHAR(255),
     
    153181    mtime TIMESTAMP,
    154182    PRIMARY KEY(so_id),
    155     KEY(ext_id(64)),
    156183    KEY(class_id)
    157184) ENGINE=innodb;
Note: See TracChangeset for help on using the changeset viewer.