[Mondrian] SqlTupleReader.readTuples generates huge IN listcausing java.sql.SQLException

Robin Tharappel rtharappel at prospricing.com
Tue Jul 10 18:03:29 EDT 2007


(Sorry if this gets posted twice I had the wrong e-mail registered)

We tried setting the maxConstraints = 100 however the same error
occurred. It looks like this issue is caused in part by the large volume
dimension at the parent level (200,000). 

There appears to be some code that results in the in clause not to be
created (from Mondrian 2.2.2 source for class SqlConstraintUtil):

            ColumnConstraint[] cc = getColumnConstraints(c);

            if (!strict && cc.length >=
MondrianProperties.instance().MaxConstraints.get()){
                // Simply get them all, do not create where-clause.
                // Below are two alternative approaches (and code). They
                // both have problems.

            } else {
                String cond = RolapStar.Column.createInExpr(q, cc,
level.isNumeric());
                sqlQuery.addWhere(cond);
            }
            if (level.isUnique()) {
                break; // no further qualification needed
            }
In our case the number of ColumnConstraints (200,000) exceeds the max
constraint property (100), however the strict variable is always true.
Under what circumstances would this be false? We also tried Mondrian
2.3.2 but received the same error. 

Thanks for your help, 

Robin


The information contained in this email may be confidential and/or legally privileged. It has been sent for the sole use of the intended recipient(s). If the reader of this message is not an intended recipient, you are hereby notified that any unauthorized review, use, disclosure, dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited. If you have received this communication in error, please contact the sender by reply email and destroy all copies of the original message. Thank you





More information about the Mondrian mailing list