You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/09 16:03:20 UTC

cvs commit: jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport CreateIndexRequest.java Request.java

hammant     01/11/09 07:03:20

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicCreateTable.java BasicCreateView.java
               apps/db/src/java/org/apache/avalon/db/basic/data
                        BasicIndex.java
               apps/db/src/java/org/apache/avalon/db/basic/parser
                        BasicLXSQLParser.java
               apps/db/src/java/org/apache/avalon/db/driver/lxsql
                        LXSQLParserHelper.java
               apps/db/src/java/org/apache/avalon/db/persistence/inmemory
                        NoPersistence.java
               apps/db/src/java/org/apache/avalon/db/persistence/store
                        StorePersistence.java
               apps/db/src/java/org/apache/avalon/db/services
                        DatabasePersistor.java
               apps/db/src/java/org/apache/avalon/db/transport Request.java
  Added:       apps/db/src/java/org/apache/avalon/db/actions
                        CreateIndex.java
               apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicCreateIndex.java
               apps/db/src/java/org/apache/avalon/db/transport
                        CreateIndexRequest.java
  Log:
  start of Index
  
  Revision  Changes    Path
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/CreateIndex.java
  
  Index: CreateIndex.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.actions;
  
  
  
  /**
   * Interface CreateView
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version * $Revision: 1.1 $
   */
  public interface CreateIndex extends Create {
  
  }
  
  
  
  1.4       +0 -8      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java
  
  Index: BasicCreateTable.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BasicCreateTable.java	2001/11/09 11:41:53	1.3
  +++ BasicCreateTable.java	2001/11/09 15:03:19	1.4
  @@ -37,14 +37,6 @@
       private int mRecordCount;
       private Element mLxsql;
   
  -    /**
  -     * Constructor BCELCreateTable
  -     *
  -     *
  -     * @param pendingClass
  -     * @param tableName
  -     *
  -     */
       public BasicCreateTable(String tableName, Element lxsql) {
           mTableName = tableName;
           mLxsql = lxsql;
  
  
  
  1.6       +1 -9      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateView.java
  
  Index: BasicCreateView.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateView.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BasicCreateView.java	2001/11/09 13:55:33	1.5
  +++ BasicCreateView.java	2001/11/09 15:03:19	1.6
  @@ -29,7 +29,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class BasicCreateView extends BasicCreateRowHolder implements CreateView {
   
  @@ -37,14 +37,6 @@
       private BasicSelect mBasicSelect;
       private Document mLxsql;
   
  -    /**
  -     * Constructor BCELCreateTable
  -     *
  -     *
  -     * @param pendingClass
  -     * @param tableName
  -     *
  -     */
       public BasicCreateView(String viewName, Document lxsql) {
           mViewName = viewName;
           mLxsql = lxsql;
  
  
  
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java
  
  Index: BasicCreateIndex.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.basic.actions;
  
  import org.apache.avalon.db.actions.CreateIndex;
  import org.apache.avalon.db.actions.ActionException;
  import org.apache.avalon.db.data.impl.AbstractRowHolder;
  import org.apache.avalon.db.data.Index;
  import org.apache.avalon.db.basic.data.BasicIndex;
  import org.apache.avalon.db.services.DatabasePersistor;
  import org.w3c.dom.Document;
  import org.w3c.dom.NodeList;
  
  
  /**
   * Class BasicCreateIndex
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class BasicCreateIndex extends BasicCreateRowHolder implements CreateIndex {
  
      private String mIndexName;
      private BasicSelect mBasicSelect;
      private Document mLxsql;
  
      public BasicCreateIndex(String IndexName, Document lxsql) {
          mIndexName = IndexName;
          mLxsql = lxsql;
  
          NodeList subRootNodes = mLxsql.getChildNodes();
          for (int i = 0; i < subRootNodes.getLength(); i++) {
              if (subRootNodes.item(i).getNodeName().equals("???")) {
                  //TODO
              }
          }
  
      }
  
  
  
      /**
       * Method execute
       *
       *
       */
      public void execute() throws ActionException {
  
          System.out.println("ci execute");
  
          NodeList subRootNodes = mLxsql.getChildNodes();
  
          AbstractRowHolder tableOrView = null; //TODO
  
          Index index = new BasicIndex(mIndexName, tableOrView);
          mDatabasePersistor.addIndex(mIndexName, index);
  
          if (mBasicSelect != null) {
              mBasicSelect.execute();
          }
  
  
      }
  
      public void setDatabasePersistor(DatabasePersistor databasePersistor) {
          super.setDatabasePersistor(databasePersistor);
          if (mBasicSelect != null) {
              mBasicSelect.setDatabasePersistor(databasePersistor);
          }
      }
  
      public int getRecordCount() {
          //return basicSelect.get..
          return 0; //TODO
      }
  }
  
  
  
  1.2       +3 -2      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicIndex.java
  
  Index: BasicIndex.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicIndex.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BasicIndex.java	2001/11/09 14:45:57	1.1
  +++ BasicIndex.java	2001/11/09 15:03:20	1.2
  @@ -9,15 +9,16 @@
   
   import org.apache.avalon.db.data.impl.AbstractNameable;
   import org.apache.avalon.db.data.impl.AbstractRowHolder;
  +import org.apache.avalon.db.data.Index;
   
   /**
    * Class BasicIndex
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class BasicIndex extends AbstractNameable {
  +public class BasicIndex extends AbstractNameable implements Index {
   
       private AbstractRowHolder mAbstractRowHolder;
   
  
  
  
  1.7       +26 -0     jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java
  
  Index: BasicLXSQLParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- BasicLXSQLParser.java	2001/11/09 13:55:33	1.6
  +++ BasicLXSQLParser.java	2001/11/09 15:03:20	1.7
  @@ -14,10 +14,12 @@
   import org.apache.avalon.db.actions.CreateTable;
   import org.apache.avalon.db.actions.Insert;
   import org.apache.avalon.db.actions.CreateView;
  +import org.apache.avalon.db.actions.CreateIndex;
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
   import org.apache.avalon.db.transport.InsertRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  +import org.apache.avalon.db.transport.CreateIndexRequest;
   import org.apache.avalon.db.data.Column;
   import org.apache.avalon.db.data.impl.DefaultColumn;
   import org.apache.avalon.db.bcel.actions.AbstractBCELAction;
  @@ -25,6 +27,7 @@
   import org.apache.avalon.db.basic.actions.BasicInsert;
   import org.apache.avalon.db.basic.actions.BasicSelect;
   import org.apache.avalon.db.basic.actions.BasicCreateView;
  +import org.apache.avalon.db.basic.actions.BasicCreateIndex;
   import org.apache.avalon.db.basic.data.BasicTable;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.ComponentException;
  @@ -132,6 +135,29 @@
           String viewName = rootElement.getAttribute("name");
   
           CreateView action = new BasicCreateView(viewName, doc);
  +        action.setDatabasePersistor(mDatabasePersistor);
  +        return action;
  +
  +    }
  +
  +
  +    /**
  +     * Method createCreateTableAction
  +     *
  +     *
  +     * @param request
  +     *
  +     * @return
  +     *
  +     */
  +    public CreateIndex createCreateIndexAction(CreateIndexRequest request) throws ActionException {
  +
  +        Document doc = parseLXSQLString(request.getSql());
  +
  +        Element rootElement = doc.getDocumentElement();
  +        String indexName = rootElement.getAttribute("name");
  +
  +        CreateIndex action = new BasicCreateIndex(indexName, doc);
           action.setDatabasePersistor(mDatabasePersistor);
           return action;
   
  
  
  
  1.4       +3 -0      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java
  
  Index: LXSQLParserHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/lxsql/LXSQLParserHelper.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LXSQLParserHelper.java	2001/11/09 13:55:33	1.3
  +++ LXSQLParserHelper.java	2001/11/09 15:03:20	1.4
  @@ -16,6 +16,7 @@
   import org.apache.avalon.db.transport.SelectRequest;
   import org.apache.avalon.db.transport.CreateTableRequest;
   import org.apache.avalon.db.transport.CreateViewRequest;
  +import org.apache.avalon.db.transport.CreateIndexRequest;
   
   import java.sql.SQLException;
   
  @@ -34,6 +35,8 @@
               request = new CreateTableRequest(sql);
           } else if (sql.startsWith("<create-view")) {
               request = new CreateViewRequest(sql);
  +        } else if (sql.startsWith("<create-index")) {
  +            request = new CreateIndexRequest(sql);
               //TODO
           } else {
               throw new SQLException("Unknown SQL instruction (first term)");
  
  
  
  1.5       +5 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/inmemory/NoPersistence.java
  
  Index: NoPersistence.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/inmemory/NoPersistence.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NoPersistence.java	2001/11/09 11:41:53	1.4
  +++ NoPersistence.java	2001/11/09 15:03:20	1.5
  @@ -14,6 +14,7 @@
   import org.apache.avalon.db.services.ActionCache;
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.View;
  +import org.apache.avalon.db.data.Index;
   import org.apache.avalon.framework.logger.AbstractLoggable;
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.context.Context;
  @@ -35,7 +36,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class NoPersistence extends AbstractLoggable
           implements DatabasePersistor, Block, Contextualizable, Composable, Configurable,
  @@ -126,4 +127,7 @@
           mAddressableObjects.put(viewName, view);
       }
   
  +    public void addIndex(String indexName, Index index) {
  +        mAddressableObjects.put(indexName, index);
  +    }
   }
  
  
  
  1.4       +3 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/store/StorePersistence.java
  
  Index: StorePersistence.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/persistence/store/StorePersistence.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StorePersistence.java	2001/11/09 11:41:53	1.3
  +++ StorePersistence.java	2001/11/09 15:03:20	1.4
  @@ -14,6 +14,7 @@
   import org.apache.avalon.db.services.ActionCache;
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.View;
  +import org.apache.avalon.db.data.Index;
   import org.apache.avalon.framework.logger.AbstractLoggable;
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.context.Context;
  @@ -33,7 +34,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class StorePersistence extends AbstractLoggable
           implements DatabasePersistor, Block, Contextualizable, Composable, Configurable,
  @@ -119,5 +120,6 @@
        */
       public void addTable(String tableName, Table table) {}
       public void addView(String viewName, View view) {}
  +    public void addIndex(String indexName, Index index) {}
   
   }
  
  
  
  1.4       +4 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabasePersistor.java
  
  Index: DatabasePersistor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/services/DatabasePersistor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DatabasePersistor.java	2001/11/09 11:41:53	1.3
  +++ DatabasePersistor.java	2001/11/09 15:03:20	1.4
  @@ -12,6 +12,7 @@
   
   import org.apache.avalon.db.data.Table;
   import org.apache.avalon.db.data.View;
  +import org.apache.avalon.db.data.Index;
   
   
   /**
  @@ -19,7 +20,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.3 $
  + * @version * $Revision: 1.4 $
    */
   public interface DatabasePersistor {
   
  @@ -56,5 +57,7 @@
       void addTable(String tableName, Table table);
   
       void addView(String viewName, View table);
  +
  +    void addIndex(String indexName, Index index);
   
   }
  
  
  
  1.8       +2 -1      jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Request.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Request.java	2001/11/09 13:55:34	1.7
  +++ Request.java	2001/11/09 15:03:20	1.8
  @@ -18,7 +18,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public abstract class Request implements Serializable {
   
  @@ -43,6 +43,7 @@
       public static final int ALTER = 128;
       public static final int GRANT = 129;
       public static final int CREATEVIEW = 130;
  +    public static final int CREATEINDEX = 131;
   
       private int mRequestCode;
   
  
  
  
  1.1                  jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/CreateIndexRequest.java
  
  Index: CreateIndexRequest.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.transport;
  
  /**
   * Class CreateIndexRequest
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class CreateIndexRequest extends WriteRequest {
  
      /**
       * Constructor CreateIndexRequest
       *
       *
       * @param sql
       *
       */
      public CreateIndexRequest(String sql) {
          super(CREATEINDEX, sql);
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>