diff --git a/doc/olap4j_fs.html b/doc/olap4j_fs.html index 84443f8..6fb20fe 100644 --- a/doc/olap4j_fs.html +++ b/doc/olap4j_fs.html @@ -83,7 +83,7 @@

olap4j Functional Specification

Version: 0.6-dev (draft)
Revision: $Id: $ (log)
-Last modified: October 14th, 2006.

+Last modified: October 17th, 2006.


Contents

@@ -102,6 +102,7 @@

Contents

  • Benefits of a standard Java API for OLAP
  • Architecture of olap4j
  • +
  • Compatibility
  • Components of the API
      @@ -321,7 +322,27 @@

      1.5. Architecture of olap4j

      The following diagram shows how olap4j fits into an enterprise architecture.

      -olap4j architecture

      +olap4j architecture + +

      1.6. Compatibility

      + +

      olap4j requires JDK 1.5 or higher, in particular because it uses the generics +and enum features introduced in JDK 1.5.0.

      + +

      JDK 1.4 compability will be available on demand, using the +Retroweaver utility. This will +consist of a retrowoven JAR file, olap4j-jdk1.4.jar and +retroweaver's runtime library retroweaver-rt-1.2.4.jar. (See +design note.)

      + +

      jdbc is consistent with JDBC version 3.0 (which was introduced in JDK 1.4 and +is also in JDK 1.5).

      + +

      JDBC version 4.0 is expected to be introduced in JDK 1.6.0. We expect JDBC +4.0 will add new methods to existing JDBC classes, and therefore compatibility +with JDBC 4.0 will require a new release of olap4j.

      + +

      2. Components of the API

      @@ -401,18 +422,23 @@

      2.2. Connections

      In the above examples, a statement was created from a string. As we shall see, a statement can also be created from an MDX parse tree.

      -

      Package name: org.olap4j

      +

      Package name: org.olap4j

      -

      2.2.1. OlapConnection

      +

      2.2.1. OlapConnection

      + +

      OlapConnection  (extends java.sql.Connection) is a connection to an OLAP data source.

      +

      2.2.2. Connection pooling

      +

      Look again at the code samples in the previous section. One would expect that it would be safe to downcast the result of a factory method to the desired result. For example, if you invoke an OlapConnection's createStatement() method, the result should be an OlapStatement.

      +

      But if you you are using a connection-pooling library (common examples of which include Jakarta Commons DBCP and @@ -421,7 +447,8 @@

      2.2.2. Connection pooling

      and this class will implement java.sql.Connection but not OlapConnection. To access methods of the OlapConnection, the client application must first strip away the wrapper object.

      -

      If you are using a connection-pooling library, olap4j provides a helper class to access the object underneath a wrapped + +

      If you are using a connection-pooling library, olap4j provides a helper class to access the object underneath a wrapped connection, statement, prepared statement or result set. For instance,

      DataSource dataSource; // a data source using a connection @@ -565,7 +592,7 @@

      2.4. MDX query model

          System.out.println("Execution failed: " + e);
      }
      -

      Package name: org.olap4j.mdx

      +

      Package name: org.olap4j.mdx

      Classes:

      2.6. Metadata

      -

      Package name: - -org.olap4j.metamodel

      + +

      Package name: org.olap4j.metadata

      +

      Metadata are the objects which describe the structure of an OLAP schema: cubes, dimensions, members, properties and so forth.

      olap4j exposes metadata in two very different ways:

      @@ -919,15 +946,17 @@

      2.6.3. Methods which return sc getSets -

      The rows returned in the result set returned from the metadata + +

      The rows returned in the result set returned from the metadata methods are structured according to the result set column layouts detailed in this section.

      -

      All columns noted in the following result sets are required, and + +

      All columns noted in the following result sets are required, and they must be returned in the order shown. However, additional columns (which -should be ignored by clients not expecting thxem) can be added at the end, and -some columns can contain null data for info -xxx -

      The following sections describe the columns in each rowset. Each +should be ignored by clients not expecting them) can be added at the end, and +some columns can contain null data for info that does not apply.

      + +

      The following sections describe the columns in each rowset. Each section includes a table that provides the following information for each column.

      @@ -2852,7 +2881,7 @@

      2.7. Transform

      FROM [Sales] -

      Package name: org.olap4j.transform

      +

      Package name: org.olap4j.transform

      Classes: TBD

      @@ -2863,7 +2892,7 @@

      2.8. Layout

      TableModel provides for SQL data.

      -

      Package name: org.olap4j.layout

      +

      Package name: org.olap4j.layout

      Classes: TBD

      @@ -2932,7 +2961,7 @@

      Appendix A. Opportunities for spec

      A.1. Date and Time types

      -

      Include support for Date and Time values. The package org.olap4j.mdx.type +

      Include support for Date and Time values. The package org.olap4j.type could have additional classes DateType and TimeType.

      (Richard Emberson, 2006/8/14)

      @@ -2964,18 +2993,25 @@

      Appendix C. Open issues

      These issues will be voted upon at the next meeting. If they are accepted, they will generally be put into the spec.

      -

      JDK version

      +

      (No issues are currently open.)

      -

      See forum thread: - -olap4j, JDK 1.5 and generics. I am proceeding on the assumption that we are -targeting JDK 1.5, and running retroweaver for backward compatibility for JDK -1.4.

      Appendix D. Miscellaneous

      +

      D.1. To be specified

      +

      [Discuss thread safety of connections, statements, result sets.]

      +

      [API for cancelling statements.]

      + +

      D.2. Design notes

      + +

      JDK. We are targeting JDK 1.5, and running retroweaver for +backward compatibility for JDK 1.4. See forum thread: + +olap4j, JDK 1.5 and generics.

      +

      Appendix E. References

      -

      1. XMLA: XML for + +

      1. XMLA: XML for Analysis Specification, version 1.1