2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
22 // Declarations of structures which define the schema, including attributes
23 // and indexes, for the standard tables that are part of the MDS database.
29 #include <Security/cssmtype.h>
31 // Structure used to store information which is needed to create
32 // a relation with indexes.
35 CSSM_DB_RECORDTYPE relationId
;
36 const char *relationName
;
38 const CSSM_DB_SCHEMA_ATTRIBUTE_INFO
*attributes
;
40 const CSSM_DB_SCHEMA_INDEX_INFO
*indexes
;
43 // Macros used to simplify declarations of attributes and indexes.
45 #define SCHEMA_ATTRIBUTE(id, name, type) \
46 { id, #name, { 0, NULL }, CSSM_DB_ATTRIBUTE_FORMAT_ ## type }
48 #define UNIQUE_INDEX_ATTRIBUTE(attributeId) \
49 { attributeId, 0, CSSM_DB_INDEX_UNIQUE, CSSM_DB_INDEX_ON_ATTRIBUTE }
51 #define RELATION_INFO(relationId, attributes, indexes) \
54 sizeof(attributes) / sizeof(CSSM_DB_SCHEMA_ATTRIBUTE_INFO), \
56 sizeof(indexes) / sizeof(CSSM_DB_SCHEMA_INDEX_INFO), \
59 // Declarations of schema for MDS relations.
61 extern const RelationInfo kObjectRelation
;
62 extern const RelationInfo kCSSMRelation
;
63 extern const RelationInfo kKRMMRelation
;
64 extern const RelationInfo kCommonRelation
;
66 #endif // _MDSSCHEMA_H