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]

Reply via email to