ozeigermann 2003/11/25 05:32:34
Added: proposals/stores/org/apache/slide/store/impl/rdbms
SybaseRDBMSAdapter.java SybaseSchema.sql
Log:
Added (trivial) Sybase "port"
Revision Changes Path
1.1
jakarta-slide/proposals/stores/org/apache/slide/store/impl/rdbms/SybaseRDBMSAdapter.java
Index: SybaseRDBMSAdapter.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-slide/proposals/stores/org/apache/slide/store/impl/rdbms/SybaseRDBMSAdapter.java,v
1.1 2003/11/25 13:32:34 ozeigermann Exp $
* $Revision: 1.1 $
* $Date: 2003/11/25 13:32:34 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Slide", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* [Additional notices, if required by prior licensing conditions]
*
*/
package org.apache.slide.store.impl.rdbms;
import org.apache.slide.common.*;
import org.apache.slide.util.logger.Logger;
/**
* Adapter for Sybase. Actually does not change a thing from StandardRDBMSAdapter.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Oliver Zeigermann</a>
* @version $Revision: 1.1 $
*/
public class SybaseRDBMSAdapter extends StandardRDBMSAdapter {
protected static final String LOG_CHANNEL = SybaseRDBMSAdapter.class.getName();
public SybaseRDBMSAdapter(Service service, Logger logger) {
super(service, logger);
}
}
1.1
jakarta-slide/proposals/stores/org/apache/slide/store/impl/rdbms/SybaseSchema.sql
Index: SybaseSchema.sql
===================================================================
/**********************************************************************/
/****** DROP SLIDE TABLES ******/
/**********************************************************************/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'OBJECT')
DROP TABLE OBJECT
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'CHILDREN')
DROP TABLE CHILDREN
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'LINKS')
DROP TABLE LINKS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'LOCKS')
DROP TABLE LOCKS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'VERSION_CONTENT')
DROP TABLE VERSION_CONTENT
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'PROPERTIES')
DROP TABLE PROPERTIES
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'PERMISSIONS')
DROP TABLE PERMISSIONS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'VERSION_PREDS')
DROP TABLE VERSION_PREDS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'VERSION_LABELS')
DROP TABLE VERSION_LABELS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'VERSION_HISTORY')
DROP TABLE VERSION_HISTORY
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'VERSION')
DROP TABLE VERSION
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'BRANCH')
DROP TABLE BRANCH
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'LABEL')
DROP TABLE LABEL
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE name = 'URI')
DROP TABLE URI
GO
/**********************************************************************/
/****** DROP EXISTING USER DEFINED DATA TYPES ******/
/**********************************************************************/
sp_droptype id_type
GO
sp_droptype uri_str_type
GO
sp_droptype revision_no_type
GO
sp_droptype hash_type
GO
sp_droptype literal_str_type
GO
sp_droptype value_str_type
GO
/**********************************************************************/
/****** ADD USER DEFINED DATA TYPES ******/
/**********************************************************************/
sp_addtype id_type, "numeric(18,0)"
GO
sp_addtype uri_str_type, "varchar(255)"
GO
sp_addtype revision_no_type, "varchar(20)"
GO
sp_addtype hash_type, "numeric(18,0)"
GO
sp_addtype value_str_type, "varchar(255)"
GO
/**********************************************************************/
/****** CREATE SLIDE TABLES ******/
/**********************************************************************/
CREATE TABLE dbo.URI (
URI_ID id_type IDENTITY UNIQUE NOT NULL,
URI_STRING uri_str_type UNIQUE NOT NULL,
-- UNIQUE NONCLUSTERED (URI_ID)
)
GO
CREATE INDEX XUID
ON URI(URI_ID)
GO
CREATE INDEX XUSTRING
ON URI(URI_STRING)
GO
CREATE TABLE dbo.OBJECT (
URI_ID id_type PRIMARY KEY,
CLASS_NAME varchar(255) NOT NULL,
CONSTRAINT FK_OBJECT_URI_ID
FOREIGN KEY (URI_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.CHILDREN (
URI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
CHILD_URI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
--UNIQUE CLUSTERED (URI_ID, CHILD_URI_ID)
)
GO
CREATE INDEX XCHILDREN1
ON CHILDREN(URI_ID)
GO
CREATE INDEX XCHILDREN2
ON CHILDREN(CHILD_URI_ID)
GO
CREATE TABLE dbo.LINKS (
URI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
LINK_TO_ID id_type NOT NULL
REFERENCES URI (URI_ID),
--UNIQUE CLUSTERED (URI_ID, LINK_TO_ID)
)
GO
CREATE INDEX XURI_ID
ON LINKS(URI_ID)
GO
CREATE INDEX XLINK_TO_ID
ON LINKS(LINK_TO_ID)
GO
CREATE TABLE dbo.LOCKS (
LOCK_ID id_type PRIMARY KEY,
OBJECT_ID id_type NOT NULL
REFERENCES URI (URI_ID),
SUBJECT_ID id_type NOT NULL
REFERENCES URI (URI_ID),
TYPE_ID id_type NOT NULL
REFERENCES URI (URI_ID),
EXPIRATION_DATE numeric(14, 0) NOT NULL,
IS_INHERITABLE bit NOT NULL,
IS_EXCLUSIVE bit NOT NULL,
CONSTRAINT FK_LOCKS_LOCK_ID
FOREIGN KEY (LOCK_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.BRANCH (
BRANCH_ID id_type IDENTITY UNIQUE NOT NULL,
BRANCH_STRING varchar(255) UNIQUE NOT NULL
)
GO
CREATE TABLE dbo.LABEL (
LABEL_ID id_type IDENTITY UNIQUE NOT NULL,
LABEL_STRING varchar(255) NOT NULL
)
GO
CREATE TABLE dbo.VERSION (
URI_ID id_type PRIMARY KEY,
IS_VERSIONED bit NOT NULL,
CONSTRAINT FK_VERSION_URI_ID
FOREIGN KEY (URI_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.VERSION_HISTORY (
VERSION_ID id_type IDENTITY UNIQUE NOT NULL,
URI_ID id_type NOT NULL
REFERENCES VERSION (URI_ID),
BRANCH_ID id_type NOT NULL
REFERENCES BRANCH (BRANCH_ID),
REVISION_NO VARCHAR(20) NOT NULL,
--UNIQUE CLUSTERED (URI_ID, BRANCH_ID, REVISION_NO)
)
GO
CREATE INDEX XVERSION_HISTORY1
ON VERSION_HISTORY(URI_ID, BRANCH_ID, REVISION_NO)
GO
CREATE TABLE dbo.VERSION_PREDS (
VERSION_ID id_type NOT NULL
REFERENCES VERSION_HISTORY (VERSION_ID),
PREDECESSOR_ID id_type NOT NULL
REFERENCES VERSION_HISTORY (VERSION_ID),
UNIQUE CLUSTERED (VERSION_ID, PREDECESSOR_ID)
)
GO
CREATE INDEX XVERSION_PREDS1
ON VERSION_PREDS(VERSION_ID, PREDECESSOR_ID)
GO
CREATE TABLE dbo.VERSION_LABELS (
VERSION_ID id_type NOT NULL
REFERENCES VERSION_HISTORY (VERSION_ID),
LABEL_ID id_type NOT NULL
REFERENCES LABEL (LABEL_ID),
UNIQUE CLUSTERED (VERSION_ID, LABEL_ID)
)
GO
CREATE TABLE dbo.VERSION_CONTENT (
VERSION_ID id_type PRIMARY KEY,
CONTENT image NOT NULL,
CONSTRAINT FK_VC_VERSION_ID
FOREIGN KEY (VERSION_ID)
REFERENCES VERSION_HISTORY (VERSION_ID),
)
GO
CREATE TABLE dbo.PROPERTIES (
VERSION_ID id_type NOT NULL
REFERENCES VERSION_HISTORY (VERSION_ID),
PROPERTY_NAMESPACE varchar(50) NOT NULL,
PROPERTY_NAME varchar(50) NOT NULL,
PROPERTY_VALUE varchar(255) NOT NULL,
PROPERTY_TYPE varchar(50) NOT NULL,
IS_PROTECTED bit NOT NULL,
UNIQUE CLUSTERED (VERSION_ID, PROPERTY_NAMESPACE, PROPERTY_NAME)
)
GO
CREATE TABLE dbo.PERMISSIONS (
OBJECT_ID id_type NOT NULL
REFERENCES URI (URI_ID),
SUBJECT_ID id_type NOT NULL
REFERENCES URI (URI_ID),
ACTION_ID id_type NOT NULL
REFERENCES URI (URI_ID),
VERSION_NO VARCHAR(20) NULL,
IS_INHERITABLE bit NOT NULL,
IS_NEGATIVE bit NOT NULL,
-- Both order and sequence would be more suitable, but can not be used
SUCCESSION int NOT NULL,
UNIQUE CLUSTERED (OBJECT_ID, SUBJECT_ID, ACTION_ID),
UNIQUE (OBJECT_ID, SUCCESSION)
)
GO
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]