/*
* Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florent Guillaume
*/
package org.eclipse.ecr.core.storage.sql;
/**
* Abstract representation of the database-level column types.
*/
public enum ColumnSpec {
// ----- schema-based columns -----
STRING(), // may be VARCHAR or CLOB depending on length
BOOLEAN(), //
LONG(), //
DOUBLE(), //
TIMESTAMP(), //
BLOBID(), // attached files
// ----- system columns -----
NODEID, // node id primary generated key
NODEIDFK, // fk to main node id, not nullable (frag id)
NODEIDFKNP, // fk to main node id, not nullable, not primary
NODEIDFKMUL, // fk to main node id, not nullable, non-unique
NODEIDFKNULL, // fk to main node id, nullable
NODEIDPK, // node id primary key, but not a fk (locks)
NODEVAL, // same type as node id, not a fk (versionable, cluster...)
NODEARRAY, // array of node if supported
SYSNAME, // system names (type names etc)
SYSNAMEARRAY, // system names array (mixins), string if not suppported
TINYINT, // cluster inval kind
INTEGER, // complex prop order, ordered doc
FTINDEXED, // summary ft column being indexed
FTSTORED, // individual ft column
CLUSTERNODE, // cluster node id
CLUSTERFRAGS; // list of fragments impacted, for clustering
}