hammant     01/11/15 22:36:59

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicCreateIndex.java
               apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql
                        BasicLXSQLCreateIndexHandler.java
               apps/db/src/java/org/apache/avalon/db/test Tester.java
  Log:
  More work in index
  
  Revision  Changes    Path
  1.6       +23 -13    
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java
  
  Index: BasicCreateIndex.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateIndex.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BasicCreateIndex.java     2001/11/15 12:16:54     1.5
  +++ BasicCreateIndex.java     2001/11/16 06:36:59     1.6
  @@ -16,37 +16,53 @@
   import org.apache.avalon.db.services.DatabasePersistor;
   import org.w3c.dom.Document;
   import org.w3c.dom.NodeList;
  +import org.w3c.dom.Node;
   
  +import java.util.Vector;
   
  +
   /**
    * Class BasicCreateIndex
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class BasicCreateIndex extends BasicCreateQueryable implements 
CreateIndex {
   
       private String mIndexName;
  -    private BasicSelect mBasicSelect;
  +    private String mTableName;
       private Document mLxsql;
   
  -    public BasicCreateIndex(String IndexName, Document lxsql) {
  -        mIndexName = IndexName;
  +    public BasicCreateIndex(String indexName, String tableName, Document 
lxsql) {
  +        mIndexName = indexName;
  +        mTableName = tableName;
           mLxsql = lxsql;
   
       }
   
       public void initialize() throws ActionException {
  +
           NodeList subRootNodes = mLxsql.getChildNodes();
           for (int i = 0; i < subRootNodes.getLength(); i++) {
  -            if (subRootNodes.item(i).getNodeName().equals("???")) {
  -                //TODO
  +            if (subRootNodes.item(i).getNodeName().equals("columns")) {
  +                processColumns(subRootNodes.item(i));
               }
           }
  -        mBasicSelect.initialize();
  +
       }
   
  +    private void processColumns(Node columnsNode) throws ActionException {
  +        NodeList subRootNodes = mLxsql.getChildNodes();
  +        Vector cols = new Vector();
  +        for (int i = 0; i < subRootNodes.getLength(); i++) {
  +            Node node = subRootNodes.item(i);
  +            if (node.getNodeName().equals("column")) {
  +                
cols.add(node.getAttributes().getNamedItem("name").getNodeName());
  +            }
  +        }
  +    }
  +
   
       protected void checkNodeType(String nodeName) throws ActionException {
           // TODO never called?
  @@ -70,18 +86,12 @@
           Index index = new BasicIndex(mIndexName, tableOrView);
           mDatabasePersistor.addQueryable(mIndexName, index);
   
  -        if (mBasicSelect != null) {
  -            mBasicSelect.execute();
  -        }
   
   
       }
   
       public void setDatabasePersistor(DatabasePersistor databasePersistor) {
           super.setDatabasePersistor(databasePersistor);
  -        if (mBasicSelect != null) {
  -            mBasicSelect.setDatabasePersistor(databasePersistor);
  -        }
       }
   
       public int getRecordCount() {
  
  
  
  1.3       +3 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateIndexHandler.java
  
  Index: BasicLXSQLCreateIndexHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateIndexHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BasicLXSQLCreateIndexHandler.java 2001/11/16 06:14:59     1.2
  +++ BasicLXSQLCreateIndexHandler.java 2001/11/16 06:36:59     1.3
  @@ -29,7 +29,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class BasicLXSQLCreateIndexHandler extends BasicLXSQLHandler {
   
  @@ -63,11 +63,12 @@
           Document doc = mParser.parseLXSQLString(cir.getSql());
           Element rootElement = doc.getDocumentElement();
           String indexName = rootElement.getAttribute("name");
  +        String tableName = rootElement.getAttribute("table");
   
           if (mDatabasePersistor.queryableExists(indexName)) {
               throw new ActionException("Table/View/Index exists already");
           } else {
  -            CreateIndex action = new BasicCreateIndex(indexName, doc);
  +            CreateIndex action = new BasicCreateIndex(indexName, tableName, 
doc);
   
               mParser.initializeAction(action);
               action.execute();
  
  
  
  1.20      +14 -0     
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/test/Tester.java
  
  Index: Tester.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/test/Tester.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Tester.java       2001/11/15 12:17:15     1.19
  +++ Tester.java       2001/11/16 06:36:59     1.20
  @@ -117,6 +117,20 @@
           st.execute(view);
           st.close();
   
  +        System.err.println("INDEX 1");
  +        st = mCon.createStatement();
  +        String index = "<create-index name=\"FlintstonesIdx\" 
table=\"Flintstones\">" +
  +                         "<columns>" +
  +                            "<column name=\"forename\"/>" +
  +                            "<column name=\"surname\"/>" +
  +                         "</columns>" +
  +                      "</create-index>";
  +
  +        st.execute(view);
  +        st.close();
  +
  +
  +
           System.err.println("DELETE 1");
           st = mCon.createStatement();
           String delt = "<delete-rows from=\"Flintstones\">" +
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to