[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.9.4-23-g1b80376

Jesse Vincent jesse at bestpractical.com
Wed Sep 29 17:15:12 EDT 2010


The branch, 3.9-trunk has been updated
       via  1b803767a6b33966e3fb655b1a08d8e4d94574ef (commit)
       via  51bb4ff70812d0abd552e08d243637825d7cc7b2 (commit)
       via  ef7abd4bf5cefea8164f8c7269f62e1cd5827095 (commit)
       via  20f5cfdffee1f277bddc20b309a42afbcccce412 (commit)
       via  d87536cc7c1c8e777ceb19ad56e12617c3e42531 (commit)
       via  c0490c370830c4e37ac22a199b5251494344df26 (commit)
       via  a55d8be7e0f9a5ab1aab096e8cfd3bd65262ab43 (commit)
       via  59439d6f97c7ac2f14959054abe265fc58041ff1 (commit)
       via  cdd6ea6c1d4e7137949f572a4042e9f61e08a620 (commit)
      from  e38987ef64bd86242146f6f90adff98eeaa39d12 (commit)

Summary of changes:
 README                                 |    4 +-
 etc/acl.Informix                       |    6 -
 etc/acl.Sybase                         |   10 -
 etc/drop.Informix                      |   19 --
 etc/schema.Informix                    |  362 ---------------------------
 etc/schema.Oracle                      |   19 ++-
 etc/schema.Pg                          |   13 +
 etc/schema.SQLite                      |   19 ++-
 etc/schema.Sybase                      |  402 ------------------------------
 etc/{schema.mysql-4.1 => schema.mysql} |   24 ++-
 etc/schema.mysql-4.0                   |  420 --------------------------------
 etc/upgrade/3.9.5/schema.Oracle        |   20 ++
 etc/upgrade/3.9.5/schema.Pg            |   20 ++
 etc/upgrade/3.9.5/schema.SQLite        |   19 ++
 etc/upgrade/3.9.5/schema.mysql         |   20 ++
 lib/RT/ACE.pm                          |   46 ++--
 lib/RT/Attributes_Overlay.pm           |    4 +-
 lib/RT/CustomFieldValue.pm             |   23 ++
 lib/RT/CustomFieldValue_Overlay.pm     |   50 +----
 lib/RT/Group.pm                        |   44 ++++
 lib/RT/GroupMember.pm                  |   44 ++++
 lib/RT/Principal_Overlay.pm            |   50 ++---
 share/html/Admin/Elements/SelectRights |   11 +-
 23 files changed, 305 insertions(+), 1344 deletions(-)
 delete mode 100755 etc/acl.Informix
 delete mode 100644 etc/acl.Sybase
 delete mode 100755 etc/drop.Informix
 delete mode 100755 etc/schema.Informix
 delete mode 100644 etc/schema.Sybase
 rename etc/{schema.mysql-4.1 => schema.mysql} (95%)
 delete mode 100755 etc/schema.mysql-4.0
 create mode 100644 etc/upgrade/3.9.5/schema.Oracle
 create mode 100644 etc/upgrade/3.9.5/schema.Pg
 create mode 100644 etc/upgrade/3.9.5/schema.SQLite
 create mode 100644 etc/upgrade/3.9.5/schema.mysql

- Log -----------------------------------------------------------------
commit cdd6ea6c1d4e7137949f572a4042e9f61e08a620
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 15:42:01 2010 -0400

    Replaced a bunch of UNIVERSAL::can calls with eval {} which reads
    cleaner and benchmarks much faster.

diff --git a/lib/RT/Attributes_Overlay.pm b/lib/RT/Attributes_Overlay.pm
index 70224ac..dea0071 100644
--- a/lib/RT/Attributes_Overlay.pm
+++ b/lib/RT/Attributes_Overlay.pm
@@ -200,8 +200,8 @@ Limit the Attributes to rights for the object $object. It needs to be an RT::Rec
 sub LimitToObject {
     my $self = shift;
     my $obj = shift;
-    unless (defined($obj) && ref($obj) && UNIVERSAL::can($obj, 'id') && $obj->id) {
-    return undef;
+    unless (eval { $obj->id} ){
+        return undef;
     }
     $self->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => ref($obj), ENTRYAGGREGATOR => 'OR');
     $self->Limit(FIELD => 'ObjectId', OPERATOR=> '=', VALUE => $obj->id, ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0);
diff --git a/lib/RT/Principal_Overlay.pm b/lib/RT/Principal_Overlay.pm
index 15ce22f..afdf91a 100755
--- a/lib/RT/Principal_Overlay.pm
+++ b/lib/RT/Principal_Overlay.pm
@@ -279,10 +279,7 @@ sub HasRight {
         return (undef);
     }
 
-    if (   defined( $args{'Object'} )
-        && UNIVERSAL::can( $args{'Object'}, 'id' )
-        && $args{'Object'}->id ) {
-
+    if (  eval { $args{'Object'}->id} ) {
         push @{ $args{'EquivObjects'} }, $args{'Object'};
     }
     else {
@@ -391,7 +388,7 @@ sub _HasGroupRight
         my $type = ref( $obj ) || $obj;
         my $clause = "ACL.ObjectType = '$type'";
 
-        if ( ref($obj) && UNIVERSAL::can($obj, 'id') && $obj->id ) {
+        if ( defined eval { $obj->id }) { # it might be 0
             $clause .= " AND ACL.ObjectId = ". $obj->id;
         }
 
@@ -449,7 +446,7 @@ sub _HasRoleRight
     foreach my $obj ( @{ $args{'EquivObjects'} } ) {
         my $type = ref($obj)? ref($obj): $obj;
         my $id;
-        $id = $obj->id if ref($obj) && UNIVERSAL::can($obj, 'id') && $obj->id;
+        $id = eval {$obj->id};
 
         my $clause = "Groups.Domain = '$type-Role'";
         # XXX: Groups.Instance is VARCHAR in DB, we should quote value
@@ -513,7 +510,7 @@ sub RolesWithRight {
     foreach my $obj ( @{ $args{'EquivObjects'} } ) {
         my $type = ref($obj)? ref($obj): $obj;
         my $id;
-        $id = $obj->id if ref($obj) && UNIVERSAL::can($obj, 'id') && $obj->id;
+        $id = eval {$obj->id};
 
         my $object_clause = "ObjectType = '$type'";
         $object_clause   .= " AND ObjectId = $id" if $id;
diff --git a/share/html/Admin/Elements/SelectRights b/share/html/Admin/Elements/SelectRights
index c5fe015..592dd61 100755
--- a/share/html/Admin/Elements/SelectRights
+++ b/share/html/Admin/Elements/SelectRights
@@ -103,13 +103,12 @@ while ( my $ace = $ACLObj->Next ) {
     $ACLObj->LimitToPrincipal( Id => $PrincipalId);
     $ACLObj->OrderBy(FIELD=>'RightName'); 
 
-    if (ref($Object) && UNIVERSAL::can($Object, 'AvailableRights')) { 
+    eval {
         %Rights = %{$Object->AvailableRights};
-    } 
-
-        else {
-                %Rights = ( loc('System Error') => loc("No rights found") );
-        }
+    };
+    if ($@) {
+        %Rights = ( loc('System Error') => loc("No rights found") );
+    }
         
     $ACLDesc = "$PrincipalId-".ref($Object)."-".$Object->Id;
 </%INIT>

commit 59439d6f97c7ac2f14959054abe265fc58041ff1
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 15:43:05 2010 -0400

    perltidy

diff --git a/lib/RT/Principal_Overlay.pm b/lib/RT/Principal_Overlay.pm
index afdf91a..59c8d14 100755
--- a/lib/RT/Principal_Overlay.pm
+++ b/lib/RT/Principal_Overlay.pm
@@ -244,15 +244,14 @@ Returns undef if no ACE was found.
 sub HasRight {
 
     my $self = shift;
-    my %args = (
-        Right        => undef,
-        Object       => undef,
-        EquivObjects => undef,
-        @_,
-    );
+    my %args = ( Right        => undef,
+                 Object       => undef,
+                 EquivObjects => undef,
+                 @_,
+               );
 
     # RT's SystemUser always has all rights
-    if ($self->id == RT->SystemUser->id) {
+    if ( $self->id == RT->SystemUser->id ) {
         return 1;
     }
 
@@ -272,27 +271,23 @@ sub HasRight {
         if $args{'EquivObjects'};
 
     if ( $self->__Value('Disabled') ) {
-        $RT::Logger->debug( "Disabled User #"
-              . $self->id
-              . " failed access check for "
-              . $args{'Right'} );
+        $RT::Logger->debug("Disabled User #" . $self->id." failed access check for " . $args{'Right'} );
         return (undef);
     }
 
     if (  eval { $args{'Object'}->id} ) {
         push @{ $args{'EquivObjects'} }, $args{'Object'};
-    }
-    else {
+    } else {
         $RT::Logger->crit("HasRight called with no valid object");
         return (undef);
     }
 
-
-    unshift @{ $args{'EquivObjects'} }, $args{'Object'}->ACLEquivalenceObjects;
+    unshift @{ $args{'EquivObjects'} },
+        $args{'Object'}->ACLEquivalenceObjects;
 
     unshift @{ $args{'EquivObjects'} }, $RT::System
         unless $self->can('_IsOverrideGlobalACL')
-               && $self->_IsOverrideGlobalACL( $args{'Object'} );
+            && $self->_IsOverrideGlobalACL( $args{'Object'} );
 
     # If we've cached a win or loss for this lookup say so
 
@@ -316,10 +311,9 @@ sub HasRight {
         return $cached_answer > 0 if defined $cached_answer;
     }
 
+    my ( $hitcount, $via_obj ) = $self->_HasRight(%args);
 
-    my ($hitcount, $via_obj) = $self->_HasRight( %args );
-
-    $_ACL_CACHE->set( $full_hashkey => $hitcount? 1: -1 );
+    $_ACL_CACHE->set( $full_hashkey => $hitcount ? 1 : -1 );
     $_ACL_CACHE->set( "$self_id;:;$args{'Right'};:;$via_obj" => 1 )
         if $via_obj && $hitcount;
 

commit a55d8be7e0f9a5ab1aab096e8cfd3bd65262ab43
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 15:43:18 2010 -0400

    remove a temp variable

diff --git a/lib/RT/Principal_Overlay.pm b/lib/RT/Principal_Overlay.pm
index 59c8d14..295f491 100755
--- a/lib/RT/Principal_Overlay.pm
+++ b/lib/RT/Principal_Overlay.pm
@@ -260,12 +260,11 @@ sub HasRight {
         return (undef);
     }
 
-    my $canonic_name = RT::ACE->CanonicalizeRightName( $args{'Right'} );
-    unless ( $canonic_name ) {
-        $RT::Logger->error("Invalid right. Couldn't canonicalize right '$args{'Right'}'");
+    $args{'Right'} = RT::ACE->CanonicalizeRightName( $args{'Right'} );
+    unless ($args{'Right'}) {
+        $RT::Logger->error( "Invalid right. Couldn't canonicalize right '$args{'Right'}'");
         return undef;
     }
-    $args{'Right'} = $canonic_name;
 
     $args{'EquivObjects'} = [ @{ $args{'EquivObjects'} } ]
         if $args{'EquivObjects'};

commit c0490c370830c4e37ac22a199b5251494344df26
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 16:23:31 2010 -0400

    Category is now a first-class column on customfieldvalues rather than an
    attribute

diff --git a/etc/schema.Oracle b/etc/schema.Oracle
index c67a890..6bca62e 100755
--- a/etc/schema.Oracle
+++ b/etc/schema.Oracle
@@ -361,6 +361,7 @@ CREATE TABLE CustomFieldValues (
 	Name		VARCHAR2(200),
 	Description	VARCHAR2(255),
 	SortOrder	NUMBER(11,0) DEFAULT 0 NOT NULL,
+    Category    VARCHAR2(255),
 	Creator		NUMBER(11,0) DEFAULT 0 NOT NULL,
 	Created		DATE,
 	LastUpdatedBy	NUMBER(11,0) DEFAULT 0 NOT NULL,
diff --git a/etc/schema.Pg b/etc/schema.Pg
index 6b897cc..7e183cd 100755
--- a/etc/schema.Pg
+++ b/etc/schema.Pg
@@ -579,6 +579,7 @@ CREATE TABLE CustomFieldValues (
   Name varchar(200) NULL  ,
   Description varchar(255) NULL  ,
   SortOrder integer NOT NULL DEFAULT 0  ,
+  Category varchar(255) NULL  ,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created TIMESTAMP NULL  ,
diff --git a/etc/schema.SQLite b/etc/schema.SQLite
index 2da3bda..48674cc 100755
--- a/etc/schema.SQLite
+++ b/etc/schema.SQLite
@@ -399,6 +399,7 @@ CREATE TABLE CustomFieldValues (
   Name varchar(200) NULL  ,
   Description varchar(255) NULL  ,
   SortOrder integer NOT NULL DEFAULT 0  ,
+  Category varchar(255) NULL  ,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
diff --git a/etc/schema.mysql-4.0 b/etc/schema.mysql-4.0
index c736af4..718f287 100755
--- a/etc/schema.mysql-4.0
+++ b/etc/schema.mysql-4.0
@@ -319,6 +319,7 @@ CREATE TABLE ObjectCustomFieldValues (
   LargeContent LONGTEXT NULL,		    # New -- to hold 255+ strings
   ContentType varchar(80) NULL,		    # New -- only text/* gets searched
   ContentEncoding varchar(80) NULL  ,	    # New -- for binary Content
+  Category VARCHAR(255) NULL,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
diff --git a/etc/schema.mysql-4.1 b/etc/schema.mysql-4.1
index 4f09e08..ccf6c88 100755
--- a/etc/schema.mysql-4.1
+++ b/etc/schema.mysql-4.1
@@ -377,6 +377,7 @@ CREATE TABLE CustomFieldValues (
   Name varchar(200) NULL  ,
   Description varchar(255) NULL  ,
   SortOrder integer NOT NULL DEFAULT 0  ,
+  Category VARCHAR(255) NULL,
 
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
diff --git a/etc/upgrade/3.9.5/schema.Oracle b/etc/upgrade/3.9.5/schema.Oracle
new file mode 100644
index 0000000..2c6ebde
--- /dev/null
+++ b/etc/upgrade/3.9.5/schema.Oracle
@@ -0,0 +1,7 @@
+alter Table CustomFieldValues ADD Category varchar2(255);
+
+UPDATE CustomFieldValues SET Category = (SELECT Content FROM Attributes WHERE
+Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
+AND CustomFieldValues.id = Attributes.ObjectId);
+
+DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
diff --git a/etc/upgrade/3.9.5/schema.Pg b/etc/upgrade/3.9.5/schema.Pg
new file mode 100644
index 0000000..b33aee9
--- /dev/null
+++ b/etc/upgrade/3.9.5/schema.Pg
@@ -0,0 +1,7 @@
+alter Table CustomFieldValues ADD Column Category varchar(255);
+
+UPDATE CustomFieldValues SET Category = (SELECT Content FROM Attributes WHERE
+Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
+AND CustomFieldValues.id = Attributes.ObjectId);
+
+DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
diff --git a/etc/upgrade/3.9.5/schema.SQLite b/etc/upgrade/3.9.5/schema.SQLite
new file mode 100644
index 0000000..65f2bf5
--- /dev/null
+++ b/etc/upgrade/3.9.5/schema.SQLite
@@ -0,0 +1,6 @@
+ALTER TABLE CustomFieldValues ADD Column (Category varchar(255));
+UPDATE CustomFieldValues SET Category = (SELECT Content FROM Attributes WHERE
+Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
+AND CustomFieldValues.id = Attributes.ObjectId);
+
+DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
diff --git a/etc/upgrade/3.9.5/schema.mysql b/etc/upgrade/3.9.5/schema.mysql
new file mode 100644
index 0000000..324cd74
--- /dev/null
+++ b/etc/upgrade/3.9.5/schema.mysql
@@ -0,0 +1,7 @@
+alter Table CustomFieldValues ADD Column (Category varchar(255));
+
+UPDATE CustomFieldValues SET Category = (SELECT Content FROM Attributes WHERE
+Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
+AND CustomFieldValues.id = Attributes.ObjectId);
+
+DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
diff --git a/lib/RT/CustomFieldValue.pm b/lib/RT/CustomFieldValue.pm
index 6a09c26..503e2d2 100755
--- a/lib/RT/CustomFieldValue.pm
+++ b/lib/RT/CustomFieldValue.pm
@@ -89,6 +89,7 @@ Create takes a hash of values and creates a row in the database:
 
   int(11) 'CustomField'.
   varchar(200) 'Name'.
+  varchar(255) 'Category'.
   varchar(255) 'Description'.
   int(11) 'SortOrder'.
 
@@ -103,12 +104,14 @@ sub Create {
                 CustomField => '',
                 Name => '',
                 Description => '',
+                Category => '',
                 SortOrder => '0',
 
 		  @_);
     $self->SUPER::Create(
                          CustomField => $args{'CustomField'},
                          Name => $args{'Name'},
+                         Category => $args{'Category'},
                          Description => $args{'Description'},
                          SortOrder => $args{'SortOrder'},
 );
@@ -176,6 +179,26 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
+
+=head2 Category
+
+Returns the current value of Category.
+(In the database, Category is stored as varchar(255).)
+
+
+
+=head2 SetCategory VALUE
+
+
+Set Category to VALUE.
+Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
+(In the database, Category will be stored as a varchar(255).)
+
+
+=cut
+
+
+
 =head2 Description
 
 Returns the current value of Description. 
@@ -258,6 +281,8 @@ sub _CoreAccessible {
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => ''},
         Name => 
 		{read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
+        Category =>
+		{read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         Description => 
 		{read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         SortOrder => 
diff --git a/lib/RT/CustomFieldValue_Overlay.pm b/lib/RT/CustomFieldValue_Overlay.pm
index c4e51cb..ca327e8 100644
--- a/lib/RT/CustomFieldValue_Overlay.pm
+++ b/lib/RT/CustomFieldValue_Overlay.pm
@@ -85,59 +85,11 @@ sub Create {
 
     my ($id, $msg) = $self->SUPER::Create(
         CustomField => $cf_id,
-        map { $_ => $args{$_} } qw(Name Description SortOrder)
+        map { $_ => $args{$_} } qw(Name Description SortOrder Category)
     );
-    return ($id, $msg) unless $id;
-
-    if ( defined $args{'Category'} && length $args{'Category'} ) {
-        # $self would be loaded at this stage
-        my ($status, $msg) = $self->SetCategory( $args{'Category'} );
-        unless ( $status ) {
-            $RT::Logger->error("Couldn't set category: $msg");
-        }
-    }
-
     return ($id, $msg);
 }
 
-=head2 Category
-
-Returns the Category assigned to this Value
-Returns udef if there is no Category
-
-=cut
-
-sub Category {
-    my $self = shift;
-    my $attr = $self->FirstAttribute('Category') or return undef;
-    return $attr->Content;
-}
-
-=head2 SetCategory Category
-
-Takes a string Category and stores it as an attribute of this CustomFieldValue
-
-=cut
-
-sub SetCategory {
-    my $self = shift;
-    my $category = shift;
-    if ( defined $category && length $category ) {
-        return $self->SetAttribute(
-            Name    => 'Category',
-            Content => $category,
-        );
-    }
-    else {
-        my ($status, $msg) = $self->DeleteAttribute( 'Category' );
-        unless ( $status ) {
-            $RT::Logger->warning("Couldn't delete atribute: $msg");
-        }
-        # return true even if there was no category
-        return (1, $self->loc('Category unset'));
-    }
-}
-
 sub ValidateName {
     return defined $_[1] && length $_[1];
 };

commit d87536cc7c1c8e777ceb19ad56e12617c3e42531
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 16:29:33 2010 -0400

    Update minimum database requirements to something a bit more modern and
    realistic

diff --git a/README b/README
index f443caa..fe96fc0 100644
--- a/README
+++ b/README
@@ -25,8 +25,8 @@ o   Perl 5.8.3 or later (http://www.perl.org).
 
 o   A supported SQL database
 
-        Currently supported:  Mysql 4.0.13 or later with InnoDB support.
-                              Postgres 7.2 or later.
+        Currently supported:  Mysql 4.1 or later with InnoDB support.
+                              Postgres 8.1 or later.
                               Oracle 9iR2 or later.
                               SQLite 3.0. (Not recommended for production)
 

commit 20f5cfdffee1f277bddc20b309a42afbcccce412
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 16:30:26 2010 -0400

    Sybase and Informix ports were never completed. Remove derelict files.

diff --git a/etc/acl.Informix b/etc/acl.Informix
deleted file mode 100755
index eff232f..0000000
--- a/etc/acl.Informix
+++ /dev/null
@@ -1,6 +0,0 @@
-
-sub acl {
-    return ("GRANT RESOURCE TO ". RT->Config->Get('DatabaseUser') .";");
-}
-
-1;
diff --git a/etc/acl.Sybase b/etc/acl.Sybase
deleted file mode 100644
index 7583c02..0000000
--- a/etc/acl.Sybase
+++ /dev/null
@@ -1,10 +0,0 @@
-
-sub acl {
-    my $db_name = RT->Config->Get('DatabaseName');
-    my $db_user = RT->Config->Get('DatabaseUser');
-    my $db_pass = RT->Config->Get('DatabasePassword');
-
-    return ("SP_ADDLOGIN $db_user, $db_pass, $db_name");
-}
-
-1;
diff --git a/etc/drop.Informix b/etc/drop.Informix
deleted file mode 100755
index ce7cc01..0000000
--- a/etc/drop.Informix
+++ /dev/null
@@ -1,19 +0,0 @@
-DROP TABLE ACL;
-DROP TABLE ATTACHMENTS;
-DROP TABLE CACHEDGROUPMEMBERS;
-DROP TABLE CUSTOMFIELDS;
-DROP TABLE CUSTOMFIELDVALUES;
-DROP TABLE GROUPMEMBERS;
-DROP TABLE GROUPS;
-DROP TABLE LINKS;
-DROP TABLE PRINCIPALS;
-DROP TABLE QUEUES;
-DROP TABLE SCRIPACTIONS;
-DROP TABLE SCRIPCONDITIONS;
-DROP TABLE SCRIPS;
-DROP TABLE SESSIONS;
-DROP TABLE TEMPLATES;
-DROP TABLE TICKETCUSTOMFIELDVALUES;
-DROP TABLE TICKETS;
-DROP TABLE TRANSACTIONS;
-DROP TABLE USERS;
diff --git a/etc/schema.Informix b/etc/schema.Informix
deleted file mode 100755
index 810c4bc..0000000
--- a/etc/schema.Informix
+++ /dev/null
@@ -1,362 +0,0 @@
--- This schema was adopted from the oracle schema by
--- Andre Koppel. 
--- Version 0.2 Date 2003.10.21
--- The work is still in progress
-
-CREATE TABLE Attachments (
-  	id 		SERIAL,
-  	TransactionId	INTEGER NOT NULL,
-	Parent 		INTEGER DEFAULT 0 NOT NULL, 
-  	MessageId 	VARCHAR(160),
-  	Subject 	VARCHAR(255),
-  	Filename 	VARCHAR(255),
-  	ContentType 	VARCHAR(80),
-  	ContentEncoding VARCHAR(80),
-  	Content 	BYTE,
-  	Headers 	BYTE,
-	Creator 	INTEGER DEFAULT 0 NOT NULL,
-  	Created 	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-); 
-CREATE INDEX Attachments1 ON Attachments (Parent);
-CREATE INDEX Attachments2 ON Attachments (TransactionId);
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
-
-
-CREATE TABLE Queues (
-	id 			SERIAL,
-	Name 			VARCHAR(200) DEFAULT '' NOT NULL,
-	Description 		VARCHAR(255) DEFAULT NULL,
-	CorrespondAddress 	VARCHAR(120) DEFAULT NULL,
-	CommentAddress 		VARCHAR(120) DEFAULT NULL,
-	InitialPriority 	INTEGER DEFAULT 0 NOT NULL,
-	FinalPriority 		INTEGER DEFAULT 0 NOT NULL,
-	DefaultDueIn 		INTEGER DEFAULT 0 NOT NULL,
-	Creator 		INTEGER DEFAULT 0 NOT NULL,
-	Created 		DATETIME YEAR TO SECOND,
-	LastUpdatedBy 		INTEGER DEFAULT 0 NOT NULL,
-	LastUpdated		DATETIME YEAR TO SECOND,
-	Disabled 		INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Queues1 ON Queues (Name);
-CREATE INDEX Queues2 ON Queues (Disabled);
-
-
-CREATE TABLE Links (
-  	id 		SERIAL,
-	Base 		VARCHAR(240) DEFAULT NULL,
-	Target 		VARCHAR(240) DEFAULT NULL,
-  	Type 		VARCHAR(20) DEFAULT '' NOT NULL,
-	LocalTarget	INTEGER DEFAULT 0 NOT NULL,
-	LocalBase	INTEGER DEFAULT 0 NOT NULL,
-	LastUpdatedBy 	INTEGER DEFAULT 0 NOT NULL,
-  	LastUpdated 	DATETIME YEAR TO SECOND,
-	Creator 	INTEGER DEFAULT 0 NOT NULL,
-  	Created 	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
--- CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
-CREATE INDEX Links2 ON Links (Base, Type);
-CREATE INDEX Links3 ON Links (Target, Type);
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
-
-CREATE TABLE Principals (
-	id		SERIAL,
-	PrincipalType	VARCHAR(16) DEFAULT '' NOT NULL,
-	ObjectId	INTEGER DEFAULT 0,
-	Disabled	INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-
-CREATE TABLE Groups (
-	id 		SERIAL,
-	Name 		VARCHAR(200) DEFAULT NULL,
-	Description 	VARCHAR(255) DEFAULT NULL,
-	Domain		VARCHAR(64) DEFAULT '',
-	Type		VARCHAR(64) DEFAULT '',
-	Instance	INTEGER DEFAULT 0 NOT NULL,
---	Instance	VARCHAR(64) DEFAULT '' NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE INDEX Groups1 ON Groups (Domain, Instance, Type, id);
-CREATE INDEX Groups2 ON Groups (Type, Instance, Domain);
-
-
-CREATE TABLE ScripConditions (
- 	id			SERIAL,
-	Name 			VARCHAR(200),
-	Description 		VARCHAR(255),
-	ExecModule		VARCHAR(60),
-	Argument		VARCHAR(255),
-	ApplicableTransTypes	VARCHAR(60),
-  	Creator 		INTEGER DEFAULT 0 NOT NULL,
-  	Created 		DATETIME YEAR TO SECOND,
-  	LastUpdatedBy 		INTEGER DEFAULT 0 NOT NULL,
-  	LastUpdated		DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
-
-CREATE TABLE Transactions (
-  	id 			SERIAL,
-  	ObjectType 		VARCHAR(255),
-  	ObjectId 		INTEGER DEFAULT 0 NOT NULL,
-  	TimeTaken 		INTEGER DEFAULT 0 NOT NULL,
-  	Type 			VARCHAR(20),
-  	Field 			VARCHAR(40),
-  	OldValue 		VARCHAR(255),
-  	NewValue 		VARCHAR(255),
-  	ReferenceType 		VARCHAR(255),
-	OldReference		INTEGER DEFAULT 0,
-	NewReference		INTEGER DEFAULT 0,
-  	Data 			VARCHAR(255),
-  	Creator 		INTEGER DEFAULT 0 NOT NULL,
-  	Created 		DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-
-CREATE TABLE Scrips (
-  	id 		SERIAL,	
-	Description	VARCHAR(255) DEFAULT '',
-	ScripCondition 	INTEGER DEFAULT 0 NOT NULL,
-	ScripAction	INTEGER DEFAULT 0 NOT NULL,
-	ConditionRules	BYTE,
-	ActionRules	BYTE,
-	CustomIsApplicableCode	BYTE,
-	CustomPrepareCode	BYTE,
-	CustomCommitCode	BYTE,
-	Stage		VARCHAR(32),
-	Queue		INTEGER DEFAULT 0 NOT NULL,
-	Template	INTEGER DEFAULT 0 NOT NULL,
-  	Creator 	INTEGER DEFAULT 0 NOT NULL,
-  	Created 	DATETIME YEAR TO SECOND,
-  	LastUpdatedBy 	INTEGER DEFAULT 0 NOT NULL,
-  	LastUpdated 	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
-
-CREATE TABLE ACL (
-	id 		SERIAL,
-	PrincipalType 	VARCHAR(25) NOT NULL,
-	PrincipalId 	INTEGER NOT NULL,
-	RightName	VARCHAR(25) NOT NULL,
-	ObjectType	VARCHAR(25) NOT NULL,
-	ObjectId	INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE INDEX ACL1 ON ACL(RightName, ObjectType, ObjectId, PrincipalType, PrincipalId);
-
-
-CREATE TABLE GroupMembers (
-	id 		SERIAL,
-	GroupId 	INTEGER DEFAULT 0 NOT NULL,
-	MemberId 	INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, MemberId);
-
-
-CREATE TABLE CachedGroupMembers (
-	id		SERIAL,
-	GroupId		INTEGER DEFAULT 0,
-	MemberId	INTEGER DEFAULT 0,
-	Via		INTEGER DEFAULT 0,
-	ImmediateParentId	INTEGER DEFAULT 0,
-	Disabled	INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE INDEX DisGrouMem ON CachedGroupMembers (GroupId, MemberId, Disabled);
-CREATE INDEX GrouMem ON CachedGroupMembers (GroupId, MemberId);
-
-
-CREATE TABLE Users (
-  	id 			SERIAL,
-  	Name 			VARCHAR(200) NOT NULL,
-  	Password 		VARCHAR(40),
-  	Comments 		BYTE,
-  	Signature 		BYTE,
-  	EmailAddress 		VARCHAR(120),
-  	FreeFormContactInfo 	BYTE,
-	Organization		VARCHAR(200),
-  	RealName 		VARCHAR(120),
-  	NickName 		VARCHAR(16),
-  	Lang 			VARCHAR(16),
-	EmailEncoding		VARCHAR(16),
-	WebEncoding		VARCHAR(16),
-	ExternalContactInfoId	VARCHAR(100),
-	ContactInfoSystem	VARCHAR(30),
-	ExternalAuthId 		VARCHAR(100),
-	AuthSystem		VARCHAR(30),
-	Gecos			VARCHAR(16),
-  	HomePhone 		VARCHAR(30),
-  	WorkPhone 		VARCHAR(30),
-  	MobilePhone 		VARCHAR(30),
-  	PagerPhone 		VARCHAR(30),
-  	Address1	 	VARCHAR(200),
-  	Address2 		VARCHAR(200),
-  	City 			VARCHAR(100),
-  	State 			VARCHAR(100),
-  	Zip 			VARCHAR(16),
-  	Country 		VARCHAR(50),
-	Timezone		VARCHAR(50),
-	PGPKey			BYTE,
-  	Creator 		INTEGER DEFAULT 0 NOT NULL,
-  	Created 		DATETIME YEAR TO SECOND,
-  	LastUpdatedBy 		INTEGER DEFAULT 0 NOT NULL,
-  	LastUpdated 		DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
--- CREATE UNIQUE INDEX Users1 ON Users (Name);
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-CREATE TABLE Tickets (
-  	id			SERIAL,
-  	EffectiveId		INTEGER DEFAULT 0 NOT NULL,
-  	Queue 			INTEGER DEFAULT 0 NOT NULL,
-  	Type 			VARCHAR(16), 		
-  	IssueStatement 		INTEGER DEFAULT 0 NOT NULL,
-  	Resolution 		INTEGER DEFAULT 0 NOT NULL,
-  	Owner 			INTEGER DEFAULT 0 NOT NULL,
-  	Subject			VARCHAR(200) DEFAULT '[no subject]', 
-  	InitialPriority 	INTEGER DEFAULT 0 NOT NULL,
-  	FinalPriority 		INTEGER DEFAULT 0 NOT NULL,
-  	Priority 		INTEGER DEFAULT 0 NOT NULL,
-	TimeEstimated		INTEGER DEFAULT 0 NOT NULL,
-  	TimeWorked 		INTEGER DEFAULT 0 NOT NULL,
-  	Status 			VARCHAR(10), 		
-	TimeLeft 		INTEGER DEFAULT 0 NOT NULL,
-  	Told 			DATETIME YEAR TO SECOND,
-	Starts			DATETIME YEAR TO SECOND,
-	Started			DATETIME YEAR TO SECOND,
-  	Due 			DATETIME YEAR TO SECOND,
-	Resolved		DATETIME YEAR TO SECOND,
-  	LastUpdatedBy 		INTEGER DEFAULT 0 NOT NULL,
-  	LastUpdated 		DATETIME YEAR TO SECOND,
-	Creator 		INTEGER DEFAULT 0 NOT NULL,
-  	Created 		DATETIME YEAR TO SECOND,
-  	Disabled 		INTEGER DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-CREATE INDEX Tickets1 ON Tickets (Queue, Status);
-CREATE INDEX Tickets2 ON Tickets (Owner);
-CREATE INDEX Tickets3 ON Tickets (EffectiveId);
-CREATE INDEX Tickets4 ON Tickets (id, Status);
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId);
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type);
-
-
-CREATE TABLE ScripActions (
-  id		SERIAL,
-  Name		VARCHAR(200),
-  Description	VARCHAR(255),
-  ExecModule	VARCHAR(60),
-  Argument	VARCHAR(255),
-  Creator	INTEGER DEFAULT 0 NOT NULL,
-  Created	DATETIME YEAR TO SECOND,
-  LastUpdatedBy	INTEGER DEFAULT 0 NOT NULL,
-  LastUpdated	DATETIME YEAR TO SECOND,
-  PRIMARY KEY (id)
-);
-
-
-CREATE TABLE Templates (
-  	id 		SERIAL,
-	Queue 		INTEGER DEFAULT 0 NOT NULL,
-	Name		VARCHAR(200) NOT NULL,
-	Description	VARCHAR(255),
-	Type		VARCHAR(16),
-  	Language 	VARCHAR(16), 
-  	TranslationOf 	INTEGER DEFAULT 0 NOT NULL,
-  	Content 	BYTE,
-  	LastUpdated 	DATETIME YEAR TO SECOND,
-  	LastUpdatedBy 	INTEGER DEFAULT 0 NOT NULL,
-  	Creator 	INTEGER DEFAULT 0 NOT NULL,
-  	Created 	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
-
-CREATE TABLE TicketCustomFieldValues (
-	id		SERIAL,
-	Ticket		INTEGER NOT NULL,
-	CustomField	INTEGER NOT NULL,
-	Content		VARCHAR(255),
-	Creator		INTEGER DEFAULT 0 NOT NULL,
-	Created		DATETIME YEAR TO SECOND,
-	LastUpdatedBy	INTEGER DEFAULT 0 NOT NULL,
-	LastUpdated	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
-CREATE INDEX TicketCustomFieldValues1 ON TicketCustomFieldValues (CustomField,Ticket,Content); 
-CREATE INDEX TicketCustomFieldValues2 ON TicketCustomFieldValues (CustomField,Ticket); 
-
-CREATE TABLE CustomFields (
-	id		SERIAL,
-	Name		VARCHAR(200),
-	Type		VARCHAR(200),
-	MaxValues	INTEGER DEFAULT 0 NOT NULL,
-	Pattern		VARCHAR(255),
-	LookupType	VARCHAR(255),
-	Description	VARCHAR(255),
-	SortOrder	INTEGER DEFAULT 0 NOT NULL,
-	Creator		INTEGER DEFAULT 0 NOT NULL,
-	Created		DATETIME YEAR TO SECOND,
-	LastUpdatedBy	INTEGER DEFAULT 0 NOT NULL,
-	LastUpdated	DATETIME YEAR TO SECOND,
-	Disabled	SMALLINT DEFAULT 0 NOT NULL,
-        PRIMARY KEY (id)
-);
-
-
-CREATE TABLE CustomFieldValues (
-	id		SERIAL,
-	CustomField	INTEGER NOT NULL,
-	Name		VARCHAR(200),
-	Description	VARCHAR(255),
-	SortOrder	INTEGER DEFAULT 0 NOT NULL,
-	Creator		INTEGER DEFAULT 0 NOT NULL,
-	Created		DATETIME YEAR TO SECOND,
-	LastUpdatedBy	INTEGER DEFAULT 0 NOT NULL,
-	LastUpdated	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-CREATE TABLE Attributes (
-  	id 		SERIAL,
-	Name 			VARCHAR(255) DEFAULT '' NOT NULL,
-	Description 		VARCHAR(255) DEFAULT NULL,
-  	Content 	BYTE,
-	ContentType	VARCHAR(16),
-	ObjectType	VARCHAR(25) NOT NULL,
-	ObjectId	INTEGER DEFAULT 0 NOT NULL,
-	Creator 	INTEGER DEFAULT 0 NOT NULL,
-  	Created 	DATETIME YEAR TO SECOND,
-	LastUpdatedBy	INTEGER DEFAULT 0 NOT NULL,
-	LastUpdated	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-); 
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-
-CREATE TABLE sessions (
-	id		VARCHAR(32) NOT NULL,
-	a_session	BYTE,
-	LastUpdated	DATETIME YEAR TO SECOND,
-        PRIMARY KEY (id)
-);
-
diff --git a/etc/schema.Sybase b/etc/schema.Sybase
deleted file mode 100644
index bee1f56..0000000
--- a/etc/schema.Sybase
+++ /dev/null
@@ -1,402 +0,0 @@
-
-CREATE TABLE rt3.Attachments (
-  id numeric(38,0) identity,
-  TransactionId integer NOT NULL  ,
-  Parent integer NOT NULL   ,
-  MessageId varchar(160) NULL  ,
-  Subject varchar(255) NULL  ,
-  Filename varchar(255) NULL  ,
-  ContentType varchar(80) NULL  ,
-  ContentEncoding varchar(80) NULL  ,
-  Content TEXT NULL  ,
-  Headers TEXT NULL  ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Attachments1 ON Attachments (Parent) ;
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
-
-CREATE TABLE rt3.Queues (
-  id numeric(38,0) identity,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  CorrespondAddress varchar(120) NULL  ,
-  CommentAddress varchar(120) NULL  ,
-  InitialPriority integer NOT NULL   ,
-  FinalPriority integer NOT NULL   ,
-  DefaultDueIn integer NOT NULL   ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  Disabled numeric(1) NOT NULL  ,
-  PRIMARY KEY (id)
-) ;
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-CREATE INDEX Queues2 ON Queues (Disabled) ;
-
-
-
-CREATE TABLE rt3.Links (
-  id numeric(38,0) identity,
-  Base varchar(240) NULL  ,
-  Target varchar(240) NULL  ,
-  Type varchar(20) NOT NULL  ,
-  LocalTarget integer NOT NULL   ,
-  LocalBase integer NOT NULL   ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
-CREATE INDEX Links2 ON Links (Base,  Type) ;
-CREATE INDEX Links3 ON Links (Target,  Type) ;
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
-
-
-CREATE TABLE rt3.Principals (
-      id numeric(38,0) identity,
-        PrincipalType VARCHAR(16) not null,
-        ObjectId integer,         Disabled numeric(1) NOT NULL  ,
-        PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-
-
-CREATE TABLE rt3.Groups (
-  id numeric(38,0) identity,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  Domain varchar(64),
-  Type varchar(64),
-  Instance integer,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups  (Type, Instance, Domain);   
-
-
-
-CREATE TABLE rt3.ScripConditions (
-  id numeric(38,0) identity,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  ApplicableTransTypes varchar(60) NULL  ,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-
-CREATE TABLE rt3.Transactions (
-  id numeric(38,0) identity,
-  EffectiveTicket integer NOT NULL   ,
-  Ticket integer NOT NULL   ,
-  TimeTaken integer NOT NULL   ,
-  Type varchar(20) NULL  ,
-  Field varchar(40) NULL  ,
-  OldValue varchar(255) NULL  ,
-  NewValue varchar(255) NULL  ,
-  Data varchar(255) NULL  ,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-CREATE INDEX Transactions1 ON Transactions (Ticket);
-CREATE INDEX Transactions2 ON Transactions (EffectiveTicket);
-
-
-
-CREATE TABLE rt3.Scrips (
-  id numeric(38,0) identity,
-  Description varchar(255),
-  ScripCondition integer NOT NULL   ,
-  ScripAction integer NOT NULL   ,
-  ConditionRules text NULL  ,
-  ActionRules text NULL  ,
-  CustomIsApplicableCode text NULL  ,
-  CustomPrepareCode text NULL  ,
-  CustomCommitCode text NULL  ,
-  Stage varchar(32) NULL  ,
-  Queue integer NOT NULL   ,
-  Template integer NOT NULL   ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-
-CREATE TABLE rt3.ACL (
-  id numeric(38,0) identity,
-  PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor" 
-
-  PrincipalId integer NOT NULL  , #Foreign key to principals
-  RightName varchar(25) NOT NULL  ,
-  ObjectType varchar(25) NOT NULL  ,
-  ObjectId integer NOT NULL ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX  ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-
-
-CREATE TABLE rt3.GroupMembers (
-  id numeric(38,0) identity,
-  GroupId integer NOT NULL ,
-  MemberId integer NOT NULL ,  #Foreign key to Principals
-  PRIMARY KEY (id)
-) ;
-CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
-
-
-
-
-CREATE TABLE rt3.CachedGroupMembers (
-  id numeric(38,0) identity,
-        GroupId int, # foreign key to Principals
-        MemberId int, # foreign key to Principals
-        Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
-        ImmediateParentId int, #foreign key to prinicpals.         
-                               # this points to the group that the member is
-                               # a member of, for ease of deletes.
-        Disabled numeric(1) NOT NULL  , # if this cached group member is a member of this group by way of a disabled
-                                           # group or this group is disabled, this will be set to 1
-                                           # this allows us to not find members of disabled subgroups when listing off
-                                           # group members recursively.
-                                           # Also, this allows us to have the ACL system elide members of disabled groups
-        PRIMARY KEY (id)
-) ;
-
-CREATE INDEX DisGrouMem  on CachedGroupMembers (GroupId,MemberId,Disabled);
-CREATE INDEX GrouMem  on CachedGroupMembers (GroupId,MemberId);
-
-
-
-CREATE TABLE rt3.Users (
-  id numeric(38,0) identity,
-  Name varchar(200) NOT NULL  ,
-  Password varchar(40) NULL  ,
-  Comments text NULL  ,
-  Signature text NULL  ,
-  EmailAddress varchar(120) NULL  ,
-  FreeformContactInfo text NULL  ,
-  Organization varchar(200) NULL  ,
-  RealName varchar(120) NULL  ,
-  NickName varchar(16) NULL  ,
-  Lang varchar(16) NULL  ,
-  EmailEncoding varchar(16) NULL  ,
-  WebEncoding varchar(16) NULL  ,
-  ExternalContactInfoId varchar(100) NULL  ,
-  ContactInfoSystem varchar(30) NULL  ,
-  ExternalAuthId varchar(100) NULL  ,
-  AuthSystem varchar(30) NULL  ,
-  Gecos varchar(16) NULL  ,
-  HomePhone varchar(30) NULL  ,
-  WorkPhone varchar(30) NULL  ,
-  MobilePhone varchar(30) NULL  ,
-  PagerPhone varchar(30) NULL  ,
-  Address1 varchar(200) NULL  ,
-  Address2 varchar(200) NULL  ,
-  City varchar(100) NULL  ,
-  State varchar(100) NULL  ,
-  Zip varchar(16) NULL  ,
-  Country varchar(50) NULL  ,
-  Timezone varchar(50) NULL  ,
-  PGPKey text NULL,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-
-
-CREATE TABLE rt3.Tickets (
-  id numeric(38,0) identity,
-  EffectiveId integer NOT NULL   ,
-  Queue integer NOT NULL   ,
-  Type varchar(16) NULL  ,
-  IssueStatement integer NOT NULL   ,
-  Resolution integer NOT NULL   ,
-  Owner integer NOT NULL   ,
-  Subject varchar(200) NULL,
-  InitialPriority integer NOT NULL   ,
-  FinalPriority integer NOT NULL   ,
-  Priority integer NOT NULL   ,
-  TimeEstimated integer NOT NULL   ,
-  TimeWorked integer NOT NULL   ,
-  Status varchar(10) NULL  ,
-  TimeLeft integer NOT NULL   ,
-  Told DATETIME NULL  ,
-  Starts DATETIME NULL  ,
-  Started DATETIME NULL  ,
-  Due DATETIME NULL  ,
-  Resolved DATETIME NULL  ,
-
-
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  Disabled numeric(1) NOT NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
-CREATE INDEX Tickets4 ON Tickets (id, Status) ;
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
-
-
-
-CREATE TABLE rt3.ScripActions (
-  id numeric(38,0) identity,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-
-
-CREATE TABLE rt3.Templates (
-  id numeric(38,0) identity,
-  Queue integer NOT NULL  ,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  Type varchar(16) NULL  ,
-  Language varchar(16) NULL  ,
-  TranslationOf integer NOT NULL   ,
-  Content text NULL  ,
-  LastUpdated DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-
-
-CREATE TABLE rt3.TicketCustomFieldValues (
-  id numeric(38,0) identity,
-  Ticket int NOT NULL  ,
-  CustomField int NOT NULL  ,
-  Content varchar(255) NULL  ,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX TicketCustomFieldValues1 ON TicketCustomFieldValues (CustomField,Ticket,Content); 
-CREATE INDEX TicketCustomFieldValues2 ON TicketCustomFieldValues (CustomField,Ticket); 
-
-
-
-CREATE TABLE rt3.CustomFields (
-  id numeric(38,0) identity,
-  Name varchar(200) NULL  ,
-  Type varchar(200) NULL  ,
-  Queue integer NOT NULL  ,
-  Description varchar(255) NULL  ,
-  SortOrder integer NOT NULL   ,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  Disabled numeric(1) NOT NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX CustomFields1 on CustomFields (Disabled, Queue);
-
-
-
-
-CREATE TABLE rt3.CustomFieldValues (
-  id numeric(38,0) identity,
-  CustomField int NOT NULL  ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  SortOrder integer NOT NULL   ,
-
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
- 
-
-
-
-CREATE TABLE rt3.Attributes (
-  id numeric(38,0) identity,
-  Name varchar(255) NULL  ,
-  Description varchar(255) NULL  ,
-  Content text,
-  ContentType varchar(16),
-  ObjectType varchar(64),
-  ObjectId integer, # foreign key to anything
-  Creator integer NOT NULL   ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL   ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-
-
-# sessions is used by Apache::Session to keep sessions in the database.
-# We should have a reaper script somewhere.
-
-CREATE TABLE rt3.sessions (
-    id char(32) NOT NULL,
-    a_session TEXT,
-    LastUpdated DATETIME,
-    PRIMARY KEY (id)
-);
-

commit ef7abd4bf5cefea8164f8c7269f62e1cd5827095
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 16:31:42 2010 -0400

    We no longer support mysql 4.0. so no longer ship a schema for it

diff --git a/etc/schema.mysql-4.1 b/etc/schema.mysql
similarity index 98%
rename from etc/schema.mysql-4.1
rename to etc/schema.mysql
index ccf6c88..5071fb5 100755
--- a/etc/schema.mysql-4.1
+++ b/etc/schema.mysql
@@ -83,7 +83,7 @@ CREATE TABLE Groups (
 ) TYPE=InnoDB CHARACTER SET utf8;
 
 CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups (Type, Instance);   
+CREATE INDEX Groups2 On Groups (Type, Instance);
 
 
 
@@ -178,7 +178,7 @@ create table CachedGroupMembers (
         GroupId int, # foreign key to Principals
         MemberId int, # foreign key to Principals
         Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
-        ImmediateParentId int, #foreign key to prinicpals.         
+        ImmediateParentId int, #foreign key to prinicpals.
                                # this points to the group that the member is
                                # a member of, for ease of deletes.
         Disabled int2 NOT NULL DEFAULT 0 , # if this cached group member is a member of this group by way of a disabled
@@ -330,8 +330,8 @@ CREATE TABLE ObjectCustomFieldValues (
   PRIMARY KEY (id)
 ) TYPE=InnoDB CHARACTER SET utf8;
 
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content); 
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
+CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content);
+CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
 
 
 
@@ -387,7 +387,7 @@ CREATE TABLE CustomFieldValues (
 ) TYPE=InnoDB CHARACTER SET utf8;
 
 CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
- 
+
 
 
 
@@ -420,4 +420,3 @@ CREATE TABLE sessions (
     LastUpdated TIMESTAMP,
     PRIMARY KEY (id)
 );
-
diff --git a/etc/schema.mysql-4.0 b/etc/schema.mysql-4.0
deleted file mode 100755
index 718f287..0000000
--- a/etc/schema.mysql-4.0
+++ /dev/null
@@ -1,421 +0,0 @@
-
-CREATE TABLE Attachments (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  TransactionId integer NOT NULL  ,
-  Parent integer NOT NULL DEFAULT 0  ,
-  MessageId varchar(160) NULL  ,
-  Subject varchar(255) NULL  ,
-  Filename varchar(255) NULL  ,
-  ContentType varchar(80) NULL  ,
-  ContentEncoding varchar(80) NULL  ,
-  Content LONGTEXT NULL  ,
-  Headers LONGTEXT NULL  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
-
-CREATE TABLE Queues (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  CorrespondAddress varchar(120) NULL  ,
-  CommentAddress varchar(120) NULL  ,
-  InitialPriority integer NOT NULL DEFAULT 0  ,
-  FinalPriority integer NOT NULL DEFAULT 0  ,
-  DefaultDueIn integer NOT NULL DEFAULT 0  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  Disabled int2 NOT NULL DEFAULT 0 ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-CREATE INDEX Queues2 ON Queues (Disabled) ;
-
-
-
-CREATE TABLE Links (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Base varchar(240) NULL  ,
-  Target varchar(240) NULL  ,
-  Type varchar(20) NOT NULL  ,
-  LocalTarget integer NOT NULL DEFAULT 0  ,
-  LocalBase integer NOT NULL DEFAULT 0  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Links2 ON Links (Base,  Type) ;
-CREATE INDEX Links3 ON Links (Target,  Type) ;
-CREATE INDEX Links4 ON Links (Type,LocalBase);
-
-
-
-CREATE TABLE Principals (
-        id INTEGER  AUTO_INCREMENT not null,
-        PrincipalType VARCHAR(16) not null,
-        ObjectId integer, # foreign key to Users or Groups, depending
-        Disabled int2 NOT NULL DEFAULT 0 ,
-        PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-
-
-CREATE TABLE Groups (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  Domain varchar(64),
-  Type varchar(64),
-  Instance integer,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups (Type, Instance);   
-
-
-
-CREATE TABLE ScripConditions (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  ApplicableTransTypes varchar(60) NULL  ,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-CREATE TABLE Transactions (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  ObjectType varchar(64) NOT NULL,
-  ObjectId integer NOT NULL DEFAULT 0  ,
-  TimeTaken integer NOT NULL DEFAULT 0  ,
-  Type varchar(20) NULL  ,
-  Field varchar(40) NULL  ,
-  OldValue varchar(255) NULL  ,
-  NewValue varchar(255) NULL  ,
-  ReferenceType varchar(255) NULL,
-  OldReference integer NULL  ,
-  NewReference integer NULL  ,
-  Data varchar(255) NULL  ,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-
-
-CREATE TABLE Scrips (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Description varchar(255),
-  ScripCondition integer NOT NULL DEFAULT 0  ,
-  ScripAction integer NOT NULL DEFAULT 0  ,
-  ConditionRules text NULL  ,
-  ActionRules text NULL  ,
-  CustomIsApplicableCode text NULL  ,
-  CustomPrepareCode text NULL  ,
-  CustomCommitCode text NULL  ,
-  Stage varchar(32) NULL  ,
-  Queue integer NOT NULL DEFAULT 0  ,
-  Template integer NOT NULL DEFAULT 0  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-CREATE TABLE ACL (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor" 
-
-  PrincipalId integer NOT NULL  , #Foreign key to principals
-  RightName varchar(25) NOT NULL  ,
-  ObjectType varchar(25) NOT NULL  ,
-  ObjectId integer NOT NULL default 0,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX  ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-
-
-CREATE TABLE GroupMembers (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  GroupId integer NOT NULL DEFAULT 0,
-  MemberId integer NOT NULL DEFAULT 0,  #Foreign key to Principals
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
-
-
-
-
-create table CachedGroupMembers (
-        id int auto_increment,
-        GroupId int, # foreign key to Principals
-        MemberId int, # foreign key to Principals
-        Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
-        ImmediateParentId int, #foreign key to prinicpals.         
-                               # this points to the group that the member is
-                               # a member of, for ease of deletes.
-        Disabled int2 NOT NULL DEFAULT 0 , # if this cached group member is a member of this group by way of a disabled
-                                           # group or this group is disabled, this will be set to 1
-                                           # this allows us to not find members of disabled subgroups when listing off
-                                           # group members recursively.
-                                           # Also, this allows us to have the ACL system elide members of disabled groups
-        PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX DisGrouMem  on CachedGroupMembers (GroupId,MemberId,Disabled);
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
-
-
-CREATE TABLE Users (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NOT NULL  ,
-  Password varchar(40) NULL  ,
-  Comments blob NULL  ,
-  Signature blob NULL  ,
-  EmailAddress varchar(120) NULL  ,
-  FreeformContactInfo blob NULL  ,
-  Organization varchar(200) NULL  ,
-  RealName varchar(120) NULL  ,
-  NickName varchar(16) NULL  ,
-  Lang varchar(16) NULL  ,
-  EmailEncoding varchar(16) NULL  ,
-  WebEncoding varchar(16) NULL  ,
-  ExternalContactInfoId varchar(100) NULL  ,
-  ContactInfoSystem varchar(30) NULL  ,
-  ExternalAuthId varchar(100) NULL  ,
-  AuthSystem varchar(30) NULL  ,
-  Gecos varchar(16) NULL  ,
-  HomePhone varchar(30) NULL  ,
-  WorkPhone varchar(30) NULL  ,
-  MobilePhone varchar(30) NULL  ,
-  PagerPhone varchar(30) NULL  ,
-  Address1 varchar(200) NULL  ,
-  Address2 varchar(200) NULL  ,
-  City varchar(100) NULL  ,
-  State varchar(100) NULL  ,
-  Zip varchar(16) NULL  ,
-  Country varchar(50) NULL  ,
-  Timezone varchar(50) NULL  ,
-  PGPKey text NULL,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-
-
-CREATE TABLE Tickets (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  EffectiveId integer NOT NULL DEFAULT 0  ,
-  Queue integer NOT NULL DEFAULT 0  ,
-  Type varchar(16) NULL  ,
-  IssueStatement integer NOT NULL DEFAULT 0  ,
-  Resolution integer NOT NULL DEFAULT 0  ,
-  Owner integer NOT NULL DEFAULT 0  ,
-  Subject varchar(200) NULL DEFAULT '[no subject]' ,
-  InitialPriority integer NOT NULL DEFAULT 0  ,
-  FinalPriority integer NOT NULL DEFAULT 0  ,
-  Priority integer NOT NULL DEFAULT 0  ,
-  TimeEstimated integer NOT NULL DEFAULT 0  ,
-  TimeWorked integer NOT NULL DEFAULT 0  ,
-  Status varchar(10) NULL  ,
-  TimeLeft integer NOT NULL DEFAULT 0  ,
-  Told DATETIME NULL  ,
-  Starts DATETIME NULL  ,
-  Started DATETIME NULL  ,
-  Due DATETIME NULL  ,
-  Resolved DATETIME NULL  ,
-
-
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  Disabled int2 NOT NULL DEFAULT 0 ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
-
-
-
-CREATE TABLE ScripActions (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  ExecModule varchar(60) NULL  ,
-  Argument varchar(255) NULL  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-
-CREATE TABLE Templates (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Queue integer NOT NULL DEFAULT 0 ,
-  Name varchar(200) NOT NULL  ,
-  Description varchar(255) NULL  ,
-  Type varchar(16) NULL  ,
-  Language varchar(16) NULL  ,
-  TranslationOf integer NOT NULL DEFAULT 0  ,
-  Content blob NULL  ,
-  LastUpdated DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-
-CREATE TABLE ObjectCustomFieldValues (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  CustomField int NOT NULL  ,
-  ObjectType varchar(255) NOT NULL,	    # Final target of the Object
-  ObjectId int NOT NULL  ,		    # New -- Replaces Ticket
-  SortOrder integer NOT NULL DEFAULT 0  ,   # New -- ordering for multiple values
-
-  Content varchar(255) NULL  ,
-  LargeContent LONGTEXT NULL,		    # New -- to hold 255+ strings
-  ContentType varchar(80) NULL,		    # New -- only text/* gets searched
-  ContentEncoding varchar(80) NULL  ,	    # New -- for binary Content
-  Category VARCHAR(255) NULL,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  Disabled int2 NOT NULL DEFAULT 0 ,        # New -- whether the value was current
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content); 
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
-
-
-
-CREATE TABLE CustomFields (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(200) NULL  ,
-  Type varchar(200) NULL  ,	# Changed -- 'Single' and 'Multiple' is moved out
-  MaxValues integer,		# New -- was 'Single'(1) and 'Multiple'(0)
-  Pattern TEXT NULL  ,	# New -- Must validate against this
-  Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry
-  Description varchar(255) NULL  ,
-  SortOrder integer NOT NULL DEFAULT 0  ,
-  LookupType varchar(255) NOT NULL,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  Disabled int2 NOT NULL DEFAULT 0 ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-
-CREATE TABLE ObjectCustomFields (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  CustomField int NOT NULL  ,
-  ObjectId integer NOT NULL,
-  SortOrder integer NOT NULL DEFAULT 0  ,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-
-CREATE TABLE CustomFieldValues (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  CustomField int NOT NULL  ,
-  Name varchar(200) NULL  ,
-  Description varchar(255) NULL  ,
-  SortOrder integer NOT NULL DEFAULT 0  ,
-
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
- 
-
-
-
-CREATE TABLE Attributes (
-  id INTEGER NOT NULL  AUTO_INCREMENT,
-  Name varchar(255) NULL  ,
-  Description varchar(255) NULL  ,
-  Content text,
-  ContentType varchar(16),
-  ObjectType varchar(64),
-  ObjectId integer, # foreign key to anything
-  Creator integer NOT NULL DEFAULT 0  ,
-  Created DATETIME NULL  ,
-  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
-  LastUpdated DATETIME NULL  ,
-  PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-
-
-# sessions is used by Apache::Session to keep sessions in the database.
-# We should have a reaper script somewhere.
-
-CREATE TABLE sessions (
-    id char(32) NOT NULL,
-    a_session LONGTEXT,
-    LastUpdated TIMESTAMP,
-    PRIMARY KEY (id)
-);
-

commit 51bb4ff70812d0abd552e08d243637825d7cc7b2
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 16:41:44 2010 -0400

    rerun factory for Category

diff --git a/lib/RT/CustomFieldValue.pm b/lib/RT/CustomFieldValue.pm
index 503e2d2..0b0981d 100755
--- a/lib/RT/CustomFieldValue.pm
+++ b/lib/RT/CustomFieldValue.pm
@@ -89,9 +89,9 @@ Create takes a hash of values and creates a row in the database:
 
   int(11) 'CustomField'.
   varchar(200) 'Name'.
-  varchar(255) 'Category'.
   varchar(255) 'Description'.
   int(11) 'SortOrder'.
+  varchar(255) 'Category'.
 
 =cut
 
@@ -104,16 +104,16 @@ sub Create {
                 CustomField => '',
                 Name => '',
                 Description => '',
-                Category => '',
                 SortOrder => '0',
+                Category => '',
 
 		  @_);
     $self->SUPER::Create(
                          CustomField => $args{'CustomField'},
                          Name => $args{'Name'},
-                         Category => $args{'Category'},
                          Description => $args{'Description'},
                          SortOrder => $args{'SortOrder'},
+                         Category => $args{'Category'},
 );
 
 }
@@ -179,26 +179,6 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
-
-=head2 Category
-
-Returns the current value of Category.
-(In the database, Category is stored as varchar(255).)
-
-
-
-=head2 SetCategory VALUE
-
-
-Set Category to VALUE.
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, Category will be stored as a varchar(255).)
-
-
-=cut
-
-
-
 =head2 Description
 
 Returns the current value of Description. 
@@ -235,6 +215,24 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
+=head2 Category
+
+Returns the current value of Category.
+(In the database, Category is stored as varchar(255).)
+
+
+
+=head2 SetCategory VALUE
+
+
+Set Category to VALUE.
+Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
+(In the database, Category will be stored as a varchar(255).)
+
+
+=cut
+
+
 =head2 Creator
 
 Returns the current value of Creator. 
@@ -281,12 +279,12 @@ sub _CoreAccessible {
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => ''},
         Name => 
 		{read => 1, write => 1, sql_type => 12, length => 200,  is_blob => 0,  is_numeric => 0,  type => 'varchar(200)', default => ''},
-        Category =>
-		{read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         Description => 
 		{read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         SortOrder => 
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Category =>
+		{read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         Creator => 
 		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
         Created => 

commit 1b803767a6b33966e3fb655b1a08d8e4d94574ef
Author: Jesse Vincent <jesse at bestpractical.com>
Date:   Wed Sep 29 17:03:49 2010 -0400

    Add LastUpdated/LastUpdatedBy/Created/Creator to Groups/GroupMembers/ACL

diff --git a/etc/schema.Oracle b/etc/schema.Oracle
index 6bca62e..912a1c6 100755
--- a/etc/schema.Oracle
+++ b/etc/schema.Oracle
@@ -79,7 +79,11 @@ CREATE TABLE Groups (
 	Description 	VARCHAR2(255),
 	Domain		VARCHAR2(64),
 	Type		VARCHAR2(64),
-	Instance	NUMBER(11,0) DEFAULT 0 -- NOT NULL
+	Instance	NUMBER(11,0) DEFAULT 0, -- NOT NULL
+	Creator		NUMBER(11,0) DEFAULT 0 NOT NULL,
+	Created		DATE,
+	LastUpdatedBy	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	LastUpdated	DATE
 --	Instance	VARCHAR2(64)
 );
 CREATE INDEX Groups1 ON Groups (LOWER(Domain), Instance, LOWER(Type), id);
@@ -153,7 +157,11 @@ CREATE TABLE ACL (
 	PrincipalId 	NUMBER(11,0) NOT NULL,
 	RightName	VARCHAR2(25) NOT NULL,
 	ObjectType	VARCHAR2(25) NOT NULL,
-	ObjectId	NUMBER(11,0) DEFAULT 0 NOT NULL
+	ObjectId	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	Creator 	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	Created 	DATE,
+	LastUpdatedBy 	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	LastUpdated 	DATE
 );
 CREATE INDEX ACL1 ON ACL(RightName, ObjectType, ObjectId, PrincipalType, PrincipalId);
 
@@ -163,7 +171,11 @@ CREATE TABLE GroupMembers (
 	id 		NUMBER(11,0) 
 		CONSTRAINT GroupMembers_Key PRIMARY KEY,
 	GroupId 	NUMBER(11,0) DEFAULT 0 NOT NULL,
-	MemberId 	NUMBER(11,0) DEFAULT 0 NOT NULL
+	MemberId 	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	Creator		NUMBER(11,0) DEFAULT 0 NOT NULL,
+	Created		DATE,
+	LastUpdatedBy	NUMBER(11,0) DEFAULT 0 NOT NULL,
+	LastUpdated	DATE
 );
 CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, MemberId);
 
diff --git a/etc/schema.Pg b/etc/schema.Pg
index 7e183cd..fdd4e5d 100755
--- a/etc/schema.Pg
+++ b/etc/schema.Pg
@@ -135,6 +135,10 @@ CREATE TABLE Groups (
   Domain varchar(64),
   Type varchar(64),
   Instance integer,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created TIMESTAMP NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated TIMESTAMP NULL  ,
   PRIMARY KEY (id)
 
 );
@@ -254,6 +258,10 @@ CREATE TABLE ACL (
   RightName varchar(25) NOT NULL  ,
   ObjectType varchar(25) NOT NULL  ,
   ObjectId integer NOT NULL DEFAULT 0,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created TIMESTAMP NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated TIMESTAMP NULL  ,
   PRIMARY KEY (id)
 
 );
@@ -277,6 +285,10 @@ CREATE TABLE GroupMembers (
   id INTEGER DEFAULT nextval('groupmembers_id_seq'),
   GroupId integer NOT NULL DEFAULT 0,
   MemberId integer NOT NULL DEFAULT 0,  
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created TIMESTAMP NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated TIMESTAMP NULL  ,
   PRIMARY KEY (id)
 
 );
diff --git a/etc/schema.SQLite b/etc/schema.SQLite
index 48674cc..bd8f821 100755
--- a/etc/schema.SQLite
+++ b/etc/schema.SQLite
@@ -82,7 +82,11 @@ CREATE TABLE Groups (
   Description varchar(255) NULL  ,
   Domain varchar(64),
   Type varchar(64),
-  Instance integer
+  Instance integer,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
@@ -164,7 +168,11 @@ CREATE TABLE ACL (
   PrincipalId INTEGER,
   RightName varchar(25) NOT NULL  ,
   ObjectType varchar(25) NOT NULL  ,
-  ObjectId INTEGER default 0
+  ObjectId INTEGER default 0,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
@@ -176,7 +184,11 @@ CREATE TABLE ACL (
 CREATE TABLE GroupMembers (
   id INTEGER PRIMARY KEY  ,
   GroupId integer NULL,
-  MemberId integer NULL
+  MemberId integer NULL,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL
   
 ) ;
 
diff --git a/etc/schema.mysql b/etc/schema.mysql
index 5071fb5..b10975e 100755
--- a/etc/schema.mysql
+++ b/etc/schema.mysql
@@ -79,6 +79,10 @@ CREATE TABLE Groups (
   Domain varchar(64) CHARACTER SET ascii NULL,
   Type varchar(64) CHARACTER SET ascii NULL,
   Instance integer,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL  ,
   PRIMARY KEY (id)
 ) TYPE=InnoDB CHARACTER SET utf8;
 
@@ -155,6 +159,10 @@ CREATE TABLE ACL (
   RightName varchar(25) CHARACTER SET ascii NOT NULL,
   ObjectType varchar(25) CHARACTER SET ascii NOT NULL,
   ObjectId integer NOT NULL default 0,
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL  ,
   PRIMARY KEY (id)
 ) TYPE=InnoDB CHARACTER SET utf8;
 
@@ -166,6 +174,10 @@ CREATE TABLE GroupMembers (
   id INTEGER NOT NULL AUTO_INCREMENT,
   GroupId integer NOT NULL DEFAULT 0,
   MemberId integer NOT NULL DEFAULT 0,  #Foreign key to Principals
+  Creator integer NOT NULL DEFAULT 0  ,
+  Created DATETIME NULL  ,
+  LastUpdatedBy integer NOT NULL DEFAULT 0  ,
+  LastUpdated DATETIME NULL  ,
   PRIMARY KEY (id)
 ) TYPE=InnoDB CHARACTER SET utf8;
 CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
diff --git a/etc/upgrade/3.9.5/schema.Oracle b/etc/upgrade/3.9.5/schema.Oracle
index 2c6ebde..80881a3 100644
--- a/etc/upgrade/3.9.5/schema.Oracle
+++ b/etc/upgrade/3.9.5/schema.Oracle
@@ -5,3 +5,16 @@ Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
 AND CustomFieldValues.id = Attributes.ObjectId);
 
 DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
+
+ALTER TABLE Groups ADD COLUMN Creator NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE Groups ADD COLUMN Created DATE;
+ALTER TABLE Groups ADD COLUMN LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE Groups ADD COLUMN LastUpdated DATE;
+ALTER TABLE GroupMembers ADD COLUMN Creator NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE GroupMembers ADD COLUMN Created DATE;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdated DATE;
+ALTER TABLE ACL ADD COLUMN Creator NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE ACL ADD COLUMN Created DATE;
+ALTER TABLE ACL ADD COLUMN LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL;
+ALTER TABLE ACL ADD COLUMN LastUpdated DATE;
diff --git a/etc/upgrade/3.9.5/schema.Pg b/etc/upgrade/3.9.5/schema.Pg
index b33aee9..cea2c44 100644
--- a/etc/upgrade/3.9.5/schema.Pg
+++ b/etc/upgrade/3.9.5/schema.Pg
@@ -5,3 +5,16 @@ Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
 AND CustomFieldValues.id = Attributes.ObjectId);
 
 DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
+
+ALTER TABLE Groups ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN Created TIMESTAMP NULL;
+ALTER TABLE Groups ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN LastUpdated TIMESTAMP NULL;
+ALTER TABLE GroupMembers ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN Created TIMESTAMP NULL;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdated TIMESTAMP NULL;
+ALTER TABLE ACL ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN Created TIMESTAMP NULL;
+ALTER TABLE ACL ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN LastUpdated TIMESTAMP NULL;
diff --git a/etc/upgrade/3.9.5/schema.SQLite b/etc/upgrade/3.9.5/schema.SQLite
index 65f2bf5..5804d44 100644
--- a/etc/upgrade/3.9.5/schema.SQLite
+++ b/etc/upgrade/3.9.5/schema.SQLite
@@ -4,3 +4,16 @@ Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
 AND CustomFieldValues.id = Attributes.ObjectId);
 
 DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
+
+ALTER TABLE Groups ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN Created DATETIME NULL;
+ALTER TABLE Groups ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN LastUpdated DATETIME NULL;
+ALTER TABLE GroupMembers ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN Created DATETIME NULL;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdated DATETIME NULL;
+ALTER TABLE ACL ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN Created DATETIME NULL;
+ALTER TABLE ACL ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN LastUpdated DATETIME NULL;
diff --git a/etc/upgrade/3.9.5/schema.mysql b/etc/upgrade/3.9.5/schema.mysql
index 324cd74..4bd0907 100644
--- a/etc/upgrade/3.9.5/schema.mysql
+++ b/etc/upgrade/3.9.5/schema.mysql
@@ -1,7 +1,20 @@
-alter Table CustomFieldValues ADD Column (Category varchar(255));
+alter Table CustomFieldValues ADD Column Category varchar(255);
 
 UPDATE CustomFieldValues SET Category = (SELECT Content FROM Attributes WHERE
 Name = 'Category' AND  ObjectType = 'RT::CustomFieldValue'
 AND CustomFieldValues.id = Attributes.ObjectId);
 
 DELETE FROM Attributes WHERE Name = 'Category' AND ObjectType = 'RT::CustomFieldValue';
+
+ALTER TABLE Groups ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN Created DATETIME NULL;
+ALTER TABLE Groups ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE Groups ADD COLUMN LastUpdated DATETIME NULL;
+ALTER TABLE GroupMembers ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN Created DATETIME NULL;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE GroupMembers ADD COLUMN LastUpdated DATETIME NULL;
+ALTER TABLE ACL ADD COLUMN Creator integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN Created DATETIME NULL;
+ALTER TABLE ACL ADD COLUMN LastUpdatedBy integer NOT NULL DEFAULT 0;
+ALTER TABLE ACL ADD COLUMN LastUpdated DATETIME NULL;
diff --git a/lib/RT/ACE.pm b/lib/RT/ACE.pm
index 67ea6ee..3c9ef1a 100755
--- a/lib/RT/ACE.pm
+++ b/lib/RT/ACE.pm
@@ -91,8 +91,6 @@ Create takes a hash of values and creates a row in the database:
   varchar(25) 'RightName'.
   varchar(25) 'ObjectType'.
   int(11) 'ObjectId'.
-  int(11) 'DelegatedBy'.
-  int(11) 'DelegatedFrom'.
 
 =cut
 
@@ -107,8 +105,6 @@ sub Create {
                 RightName => '',
                 ObjectType => '',
                 ObjectId => '0',
-                DelegatedBy => '0',
-                DelegatedFrom => '0',
 
 		  @_);
     $self->SUPER::Create(
@@ -117,8 +113,6 @@ sub Create {
                          RightName => $args{'RightName'},
                          ObjectType => $args{'ObjectType'},
                          ObjectId => $args{'ObjectId'},
-                         DelegatedBy => $args{'DelegatedBy'},
-                         DelegatedFrom => $args{'DelegatedFrom'},
 );
 
 }
@@ -224,37 +218,37 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
-=head2 DelegatedBy
+=head2 Creator
 
-Returns the current value of DelegatedBy. 
-(In the database, DelegatedBy is stored as int(11).)
+Returns the current value of Creator.
+(In the database, Creator is stored as int(11).)
 
 
+=cut
 
-=head2 SetDelegatedBy VALUE
 
+=head2 Created
 
-Set DelegatedBy to VALUE. 
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, DelegatedBy will be stored as a int(11).)
+Returns the current value of Created.
+(In the database, Created is stored as datetime.)
 
 
 =cut
 
 
-=head2 DelegatedFrom
+=head2 LastUpdatedBy
 
-Returns the current value of DelegatedFrom. 
-(In the database, DelegatedFrom is stored as int(11).)
+Returns the current value of LastUpdatedBy.
+(In the database, LastUpdatedBy is stored as int(11).)
 
 
+=cut
 
-=head2 SetDelegatedFrom VALUE
 
+=head2 LastUpdated
 
-Set DelegatedFrom to VALUE. 
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, DelegatedFrom will be stored as a int(11).)
+Returns the current value of LastUpdated.
+(In the database, LastUpdated is stored as datetime.)
 
 
 =cut
@@ -276,10 +270,14 @@ sub _CoreAccessible {
 		{read => 1, write => 1, sql_type => 12, length => 25,  is_blob => 0,  is_numeric => 0,  type => 'varchar(25)', default => ''},
         ObjectId => 
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
-        DelegatedBy => 
-		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
-        DelegatedFrom => 
-		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Creator =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Created =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
+        LastUpdatedBy =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        LastUpdated =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
 
  }
 };
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index 59b59bb..7683a82 100755
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -218,6 +218,42 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
+=head2 Creator
+
+Returns the current value of Creator.
+(In the database, Creator is stored as int(11).)
+
+
+=cut
+
+
+=head2 Created
+
+Returns the current value of Created.
+(In the database, Created is stored as datetime.)
+
+
+=cut
+
+
+=head2 LastUpdatedBy
+
+Returns the current value of LastUpdatedBy.
+(In the database, LastUpdatedBy is stored as int(11).)
+
+
+=cut
+
+
+=head2 LastUpdated
+
+Returns the current value of LastUpdated.
+(In the database, LastUpdated is stored as datetime.)
+
+
+=cut
+
+
 
 sub _CoreAccessible {
     {
@@ -234,6 +270,14 @@ sub _CoreAccessible {
 		{read => 1, write => 1, sql_type => 12, length => 64,  is_blob => 0,  is_numeric => 0,  type => 'varchar(64)', default => ''},
         Instance => 
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => ''},
+        Creator =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Created =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
+        LastUpdatedBy =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        LastUpdated =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
 
  }
 };
diff --git a/lib/RT/GroupMember.pm b/lib/RT/GroupMember.pm
index c3ee346..29be564 100755
--- a/lib/RT/GroupMember.pm
+++ b/lib/RT/GroupMember.pm
@@ -155,6 +155,42 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 =cut
 
 
+=head2 Creator
+
+Returns the current value of Creator.
+(In the database, Creator is stored as int(11).)
+
+
+=cut
+
+
+=head2 Created
+
+Returns the current value of Created.
+(In the database, Created is stored as datetime.)
+
+
+=cut
+
+
+=head2 LastUpdatedBy
+
+Returns the current value of LastUpdatedBy.
+(In the database, LastUpdatedBy is stored as int(11).)
+
+
+=cut
+
+
+=head2 LastUpdated
+
+Returns the current value of LastUpdated.
+(In the database, LastUpdated is stored as datetime.)
+
+
+=cut
+
+
 
 sub _CoreAccessible {
     {
@@ -165,6 +201,14 @@ sub _CoreAccessible {
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
         MemberId => 
 		{read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Creator =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        Created =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
+        LastUpdatedBy =>
+		{read => 1, auto => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => '0'},
+        LastUpdated =>
+		{read => 1, auto => 1, sql_type => 11, length => 0,  is_blob => 0,  is_numeric => 0,  type => 'datetime', default => ''},
 
  }
 };

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


More information about the Rt-commit mailing list