From a6a9c858404a95cad6d2d3895971053535cb1c83 Mon Sep 17 00:00:00 2001 From: Julian Hyde Date: Sat, 21 Oct 2006 00:35:30 +0000 Subject: [PATCH] Add items from 2006/10/20 progress meeting to spec. git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@14 c6a108a4-781c-0410-a6c6-c2d559e19af0 --- doc/olap4j_fs.html | 52 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/doc/olap4j_fs.html b/doc/olap4j_fs.html index 1698fff..f3e7f48 100644 --- a/doc/olap4j_fs.html +++ b/doc/olap4j_fs.html @@ -78,7 +78,7 @@

olap4j Functional Specification

-

Author(s): Julian Hyde
+

Author(s): Julian Hyde, Barry Klawans
Version: 0.6-dev (draft)
Revision: $Id: $ (log)
@@ -3161,6 +3161,54 @@

D.1. To be specified

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

[API for cancelling statements.]

+

[2006/10/20#1. Specification should include compliance levels, like the SQL +specification does. In particular, we will allow providers to comply with a +limited subset of MDX.]

+

[2006/10/20#2. Metadata objects need to be compared using equals, not +identity. (Michael had war-stories of an OLAP API where members from a result +set were not equal to members obtained by browsing the schema.)]

+

[2006/10/20#3. Need to allow clients to access the members on a ResultAxis +via a list (for convenience) and via an iterator. Iterators need to be +restartable, but not bidirectional. Need to know the size of the axes, even if +using the iterator interface.]

+

[2006/10/20#4. Cells - random access (not the 'etchasketch' model used by +JOLAP). Access via ordinal, not via a coordinates. Since access to cells is +random access, it makes it hard for a low-memory provider to access cells +without many round-trips. We agreed that the provider should try to recognize +the pattern. John drew the analogy of a modern file system, implementing a +serial access interface (streams) on top of random-access primitives. Michael +suggested that we implement a method to get a cell range - the hypercube of +cells between coordinates minX and maxX, and minY and maxY - but we deferred +that to a future release.]

+

[2006/10/20#5. Available locales in cubes and schemas. Use case: suppose one +cube is available in English and French, and in French and Spanish, and both are +shown in same portal. Clients typically say that seeing reports in a mixture of +languages is confusing; the portal would figure out the best common language, in +this case French. Add methods to Schema and Cube.]

+

[2006/10/20#6. We discussed session support. It is necessary for write-back. +JDBC's 'stateful session' is difficult to implement over a stateless protocol +like HTTP. Michael suggested adding 'session name' as a parameter to 'execute' +methods. Julian disagreed. No conclusion reached.]

+

[2006/10/20#7. We discussed the goals and intended audience of olap4j. The +audience spans from a beginner's audience (only 2 hours experience with the API) +who don't want to write a lot of code, to writers of clients (2 yrs experience +with the API) who want performance and don't care how much code they need to +write. Distributed clients (e.g. olap4j provider for XMLA) have bandwidth +constraints. Mobile clients also have memory constraints.

+

ADOMD addressed beginners audience well, but used a lot of memory. Challenge +is to support an object model (hence easy programming model) without increasing +memory. No specific change to the specification, but decided to add memory +efficiency as a design goal.]

+

[2006/10/20#8. Need to make shared dimensions accessible from schema.]

+

[2006/10/20#9. Need to support drill-through. Method which returns a result +set. (Mondrian exposes the SQL statement used to form the result set, and +exposes the mapping from columns to members/levels, but we will not include this +in the olap4j interface.)]

+

[2006/10/20#10. John proposed adding OlapException. These would extend +SQLException, and have a 'Object getContext()' method which would return the +context (member or cell) where the error occurred. New methods would have +'throws OlapException', and existing methods (e.g. Statement.close()) can (at +provider's choice) throw either OlapException or SQLException.]

D.2. Design notes

@@ -3172,7 +3220,7 @@

D.2. Design notes

Appendix E. References

1. XMLA: XML for -Analysis Specification, version 1.1

+Analysis Specification, version 1.1.