The class CL-PEREC:PERSISTENT-CLASS is an instance of COMPUTED-CLASS:COMPUTED-CLASS

Persistent class is a class meta instance for classes. Standard defclass forms may be used to define persistent classes. A persistent class will have persistent slots unless marked with :persistent #f. A persistent slot should have type specification to be efficient both in storage and speed. The special type unbound must be used to mark slots which might be unbound.

Direct super classes

Direct sub classes

Class precedence list

Direct slots

Name Type Readers Writers
CL-PEREC::ABSTRACT BOOLEAN (ABSTRACT-P) ((SETF ABSTRACT-P))
An abstract persistent class cannot be instantiated but still can be used in associations and may have slots. Calling make-instance on an abstract persistent class will signal an error. On the other hand abstract classes might not have a primary table and thus handling the instances may require simpler or less SQL statements.
CL-PEREC::SEPARATE-PRIMARY-TABLE BOOLEAN (SEPARATE-PRIMARY-TABLE-P) ((SETF SEPARATE-PRIMARY-TABLE-P))
True if the slots of the abstract class must be stored in the non-abstract subclasses of it. This also means that the class will not have a primary table but a view instead.
CL-PEREC::STANDARD-DIRECT-SLOTS LIST (STANDARD-DIRECT-SLOTS-OF) ((SETF STANDARD-DIRECT-SLOTS-OF))
All computed slots that needs the direct slots should use this slot so that invalidation will work.
CL-PEREC::STANDARD-EFFECTIVE-SLOTS LIST (STANDARD-EFFECTIVE-SLOTS-OF) ((SETF STANDARD-EFFECTIVE-SLOTS-OF))
All computed slots that needs the effective slots should use this slot so that invalidation will work.
CL-PEREC::PERSISTENT-DIRECT-SLOTS LIST (PERSISTENT-DIRECT-SLOTS-OF) ((SETF PERSISTENT-DIRECT-SLOTS-OF))
The list of direct slots which are defined to be persistent in this class.
CL-PEREC::PERSISTENT-EFFECTIVE-SLOTS LIST (PERSISTENT-EFFECTIVE-SLOTS-OF) ((SETF PERSISTENT-EFFECTIVE-SLOTS-OF))
The list of effective slots which are turned out to be persistent in this class.
CL-PEREC::EFFECTIVE-SLOTS-WITH-UNDERLYING-SLOT-ACCESS LIST (EFFECTIVE-SLOTS-WITH-UNDERLYING-SLOT-ACCESS-OF) ((SETF EFFECTIVE-SLOTS-WITH-UNDERLYING-SLOT-ACCESS-OF))
A list of slots that support the underlying-slot-value protocol.
CL-PEREC::PERSISTENT-DIRECT-SUPER-CLASSES LIST (PERSISTENT-DIRECT-SUPER-CLASSES-OF) ((SETF PERSISTENT-DIRECT-SUPER-CLASSES-OF))
The list of persistent direct sub classes.
CL-PEREC::PERSISTENT-CLASS-PRECEDENCE-LIST LIST (PERSISTENT-CLASS-PRECEDENCE-LIST-OF) ((SETF PERSISTENT-CLASS-PRECEDENCE-LIST-OF))
Similar to class-precedence-list but includes only persistent classes.
CL-PEREC::PERSISTENT-EFFECTIVE-SUPER-CLASSES LIST (PERSISTENT-EFFECTIVE-SUPER-CLASSES-OF) ((SETF PERSISTENT-EFFECTIVE-SUPER-CLASSES-OF))
The list of effective persistent super classes in class precedence order.
CL-PEREC::PERSISTENT-DIRECT-SUB-CLASSES LIST (PERSISTENT-DIRECT-SUB-CLASSES-OF) ((SETF PERSISTENT-DIRECT-SUB-CLASSES-OF))
The list of persistent direct sub classes.
CL-PEREC::PERSISTENT-EFFECTIVE-SUB-CLASSES LIST (PERSISTENT-EFFECTIVE-SUB-CLASSES-OF) ((SETF PERSISTENT-EFFECTIVE-SUB-CLASSES-OF))
The list of persistent effective sub classes in no particular order.
CL-PEREC::PRIMARY-TABLE (OR NULL TABLE) (PRIMARY-TABLE-OF) ((SETF PRIMARY-TABLE-OF))
The table which holds the oid and the data of the direct slots of this class. If the class is abstract and does not have any persistent direct slots then it will not have a primary table. A primary table if exists contains exactly one record per instance of its persistent class.
CL-PEREC::PRIMARY-TABLES LIST (PRIMARY-TABLES-OF) ((SETF PRIMARY-TABLES-OF))
The smallest set of tables which hold all instances of this class by having exactly one record per instance. This list may contain functional nodes such as union, append according to the required SQL operation. For classes which have a primary table this list contains only that table while for other classes the list will contain some of the primary tables of the sub persistent classes.
CL-PEREC::PRIMARY-VIEW (OR NULL VIEW) (PRIMARY-VIEW-OF) ((SETF PRIMARY-VIEW-OF))
When a class does not have a primary table then it is required to have a primary view which can be used to select data as if it were a primary table.
CL-PEREC::PRIMARY-RELATION (OR TABLE VIEW) (PRIMARY-RELATION-OF) ((SETF PRIMARY-RELATION-OF))
The primary relation from which instances of this class can be selected or nil.
CL-PEREC::DATA-TABLES LIST (DATA-TABLES-OF) ((SETF DATA-TABLES-OF))
All the tables which hold direct data of an instance of this class. This list contains the primary tables of the super persistent classes.
CL-PEREC::DATA-VIEW (OR NULL VIEW) (DATA-VIEW-OF) ((SETF DATA-VIEW-OF))
This is a view which joins all data tables for this class, nil if the view would be the same as the primary table.
CL-PEREC::DATA-RELATION (OR TABLE VIEW) (DATA-RELATION-OF) ((SETF DATA-RELATION-OF))
Either a view or a table which can be used to query for data slots.
CL-PEREC::PREFETCHED-SLOTS LIST (PREFETCHED-SLOTS-OF) ((SETF PREFETCHED-SLOTS-OF))
The list of effective slots which will be loaded from and stored to the database at once when loading an instance of this class. Moreover when a persistent instance is revived its prefetched slots will be loaded.
CL-PEREC::NON-PREFETCHED-SLOTS LIST (NON-PREFETCHED-SLOTS-OF) ((SETF NON-PREFETCHED-SLOTS-OF))
The list of effective slots which will be loaded and stored lazily and separately from other slots.
CL-PEREC::DEPENDS-ON LIST (DEPENDS-ON-OF) ((SETF DEPENDS-ON-OF))
The list of persistent classes which must be looked at by this class when computing RDBMS meta data. This used to generate columns into other classes' primary tables.
CL-PEREC::DEPENDS-ON-ME LIST (DEPENDS-ON-ME-OF) ((SETF DEPENDS-ON-ME-OF))
The list of persistent classes which must look at this class when computing RDBMS meta data.

Effective slots

Name Type Readers Writers
CL-PEREC::ENSURE-EXPORTED T NIL NIL
A persistent class, a persistent association and the related tables must be exported before use. This will automatically happen not later than making, reviving, querying or using by any means the first instance of it.
SB-PCL::%TYPE T NIL NIL
SB-PCL::SOURCE T NIL NIL
SB-PCL::PLIST T NIL NIL
SB-PCL::NAME T NIL NIL
SB-PCL::CLASS-EQ-SPECIALIZER T NIL NIL
SB-PCL::DIRECT-SUPERCLASSES T NIL NIL
SB-PCL::DIRECT-SUBCLASSES T NIL NIL
SB-PCL::DIRECT-METHODS T NIL NIL
SB-PCL::%DOCUMENTATION T NIL NIL
SB-PCL::SAFE-P T NIL NIL
SB-PCL::FINALIZED-P T NIL NIL
SB-PCL::%CLASS-PRECEDENCE-LIST T NIL NIL
SB-PCL::CPL-AVAILABLE-P T NIL NIL
SB-PCL::CAN-PRECEDE-LIST T NIL NIL
SB-PCL::INCOMPATIBLE-SUPERCLASS-LIST T NIL NIL
SB-PCL::WRAPPER T NIL NIL
SB-PCL::PROTOTYPE T NIL NIL
SB-PCL::DIRECT-SLOTS T NIL NIL
SB-PCL::SLOTS T NIL NIL
CL-PEREC::ABSTRACT BOOLEAN NIL NIL
An abstract persistent class cannot be instantiated but still can be used in associations and may have slots. Calling make-instance on an abstract persistent class will signal an error. On the other hand abstract classes might not have a primary table and thus handling the instances may require simpler or less SQL statements.
CL-PEREC::SEPARATE-PRIMARY-TABLE BOOLEAN NIL NIL
True if the slots of the abstract class must be stored in the non-abstract subclasses of it. This also means that the class will not have a primary table but a view instead.
CL-PEREC::STANDARD-DIRECT-SLOTS LIST NIL NIL
All computed slots that needs the direct slots should use this slot so that invalidation will work.
CL-PEREC::STANDARD-EFFECTIVE-SLOTS LIST NIL NIL
All computed slots that needs the effective slots should use this slot so that invalidation will work.
CL-PEREC::PERSISTENT-DIRECT-SLOTS LIST NIL NIL
The list of direct slots which are defined to be persistent in this class.
CL-PEREC::PERSISTENT-EFFECTIVE-SLOTS LIST NIL NIL
The list of effective slots which are turned out to be persistent in this class.
CL-PEREC::EFFECTIVE-SLOTS-WITH-UNDERLYING-SLOT-ACCESS LIST NIL NIL
A list of slots that support the underlying-slot-value protocol.
CL-PEREC::PERSISTENT-DIRECT-SUPER-CLASSES LIST NIL NIL
The list of persistent direct sub classes.
CL-PEREC::PERSISTENT-CLASS-PRECEDENCE-LIST LIST NIL NIL
Similar to class-precedence-list but includes only persistent classes.
CL-PEREC::PERSISTENT-EFFECTIVE-SUPER-CLASSES LIST NIL NIL
The list of effective persistent super classes in class precedence order.
CL-PEREC::PERSISTENT-DIRECT-SUB-CLASSES LIST NIL NIL
The list of persistent direct sub classes.
CL-PEREC::PERSISTENT-EFFECTIVE-SUB-CLASSES LIST NIL NIL
The list of persistent effective sub classes in no particular order.
CL-PEREC::PRIMARY-TABLE (OR NULL TABLE) NIL NIL
The table which holds the oid and the data of the direct slots of this class. If the class is abstract and does not have any persistent direct slots then it will not have a primary table. A primary table if exists contains exactly one record per instance of its persistent class.
CL-PEREC::PRIMARY-TABLES LIST NIL NIL
The smallest set of tables which hold all instances of this class by having exactly one record per instance. This list may contain functional nodes such as union, append according to the required SQL operation. For classes which have a primary table this list contains only that table while for other classes the list will contain some of the primary tables of the sub persistent classes.
CL-PEREC::PRIMARY-VIEW (OR NULL VIEW) NIL NIL
When a class does not have a primary table then it is required to have a primary view which can be used to select data as if it were a primary table.
CL-PEREC::PRIMARY-RELATION (OR TABLE VIEW) NIL NIL
The primary relation from which instances of this class can be selected or nil.
CL-PEREC::DATA-TABLES LIST NIL NIL
All the tables which hold direct data of an instance of this class. This list contains the primary tables of the super persistent classes.
CL-PEREC::DATA-VIEW (OR NULL VIEW) NIL NIL
This is a view which joins all data tables for this class, nil if the view would be the same as the primary table.
CL-PEREC::DATA-RELATION (OR TABLE VIEW) NIL NIL
Either a view or a table which can be used to query for data slots.
CL-PEREC::PREFETCHED-SLOTS LIST NIL NIL
The list of effective slots which will be loaded from and stored to the database at once when loading an instance of this class. Moreover when a persistent instance is revived its prefetched slots will be loaded.
CL-PEREC::NON-PREFETCHED-SLOTS LIST NIL NIL
The list of effective slots which will be loaded and stored lazily and separately from other slots.
CL-PEREC::DEPENDS-ON LIST NIL NIL
The list of persistent classes which must be looked at by this class when computing RDBMS meta data. This used to generate columns into other classes' primary tables.
CL-PEREC::DEPENDS-ON-ME LIST NIL NIL
The list of persistent classes which must look at this class when computing RDBMS meta data.