[Mondrian] RE: SURFBOARD question: Validation of target database

Julian Hyde jhyde at pentaho.com
Fri May 30 12:20:41 EDT 2008


Mat, see comments inline.
 
Cc mondrian developers. I'd like other people to extend the schema
validation framework. The more validation we can get up front (as opposed to
at run time as at present), the faster people can build mondrian
applications.
 
I know there's already a lot of validation code built into the workbench. I
don't know how it's structured. Can someone who knows that code comment on
whether it could be moved into core mondrian?
 
Julian



  _____  

From: Mat Lowery [mailto:mlowery at pentaho.com] 
Sent: Friday, May 30, 2008 7:59 AM
To: Julian Hyde
Subject: Validation of target database


 [bug] describes a feature that validates a database schema against a
Mondrian schema file.  Before I dive into writing code, I wanted to check
with you to see if:



*	Can't this code live in Mondrian?  This code seems independent of
any UI tool.  

It's worth considering. But if the code is independent of mondrian also (I
don't know whether this is the case) then it might be better being
standalone code in surfboard. 

*	Is there existing validation code (primary keys, etc) that I can
use?  

Not much at present. I added a connection parameter 'Ignore=true' in change
11058. The idea is for mondrian to generate warnings while loading the
schema, but still carry on loading the schema. I added the method
'RolapSchema.error(String,XmlLocation)' for this purpose.

*	Would pointing a Mondrian schema against a database and firing it up
be a sufficient test?  I mean, does Mondrian do any checks as part of firing
up?  

The default mode is for mondrian to do minimal checks, and to abort if it
hits a fatal error. We still want to preserve that behavior, so mondrian
starts up fast in production environments. But now I've added the new API,
you can start adding validation checks.
 
You can add validation code to RolapSchema (or indeed to RolapCube) gated on
the condition
 
"true".equals(
            internalConnection.getProperty(
                RolapConnectionProperties.Ignore.name()))
 
 
I am refactoring the code to separate logical and physical schemas. Try not
to make major changes to RolapSchema and RolapCube in particular. Additions
are OK. Reformatting code is definitely a no-no. 
 
Julian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20080530/683d39e0/attachment.html 


More information about the Mondrian mailing list