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.
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. |
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. |