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]>