mysticfall / pivot4j

Pivot4J provides a common API for OLAP servers which can be used to build an analytical service frontend with pivot style GUI.
Other
128 stars 99 forks source link

Same name dimension properties #188

Closed mkvoyager closed 9 years ago

mkvoyager commented 9 years ago

Hi Xavier! I'm doing some tests on properties and I found out this: In the schema:

schema

MDX:

SELECT {[Measures].[Store Sqft], [Measures].[Grocery Sqft]} ON COLUMNS,
Hierarchize(Union(Union(Union(Union({[Store].[All Stores]}, [Store].[All Stores].Children),
[Store].[Canada].Children), [Store].[Canada].[BC].Children), [Store].[Canada].
[BC].[Vancouver].Children)) ON ROWS FROM [Store]

RESULT: pivot

But if properties have different name in the schema it's all ok. In JPivot if you have dimension properties with same names it shows you them in a one only column. Another thing to say it's that I haven't java exception this time.

Can you try my mdx please?

mysticfall commented 9 years ago

It turns out Property.getUniqueName() does not return unique name for the property instance as it supposed to be, so I had to apply a workaround to avoid such a problem as above described.

It should be fixed in the latest build, so let me know if it does not works:

Thanks for reporting this problem.

mkvoyager commented 9 years ago

Thanks a lot Xavier! I'm going to do some tests in the weekend and i will let you know. Bye!

mkvoyager commented 9 years ago

Hi! I did some tests and measures columns are in the right position but I still have duplicated columns. immagine

I updated all pivot4j-core src and all pivot4j-analytics src Did I miss something?

mysticfall commented 9 years ago

It seems the problem is more complex than I initially thought it was. In this case (when the 'show parent' option is not selected), we cannot just merge those description columns, because they represent different properties even though they share the same name.

But I agree that the current way of rendering is plainly wrong, so I came up with a new rule to render member properties:

issue-188

I'm not sure if it's what you wanted, but I suppose it's at least more logically correct than the way it is.

Please let me know if you have questions or suggestions regarding this change.

mkvoyager commented 9 years ago

Hi Xavier, thanks a lot for the fix! I agree that your last fix is more correct. do you mean that it's impossible to have the same jpivot behaviour or do you mean that it's really complex? I'm wondering why jpivot treats same name properties as same properties since you think it's not logically correct. I will do other tests and i will let you know the results. Thanks again!

mysticfall commented 9 years ago

Hi, sorry for the late response again.

To return to the subject, it's little bit of both, actually.

First of all, I'm not sure if we can safely assume that properties with the same name defined in different levels are actually identical to each other. Maybe it's because I'm not very knowledgeable in Mondrian or OLAP, but I find it odd that we have to define each properties separately under respective levels in Mondrian schema, if in fact they are all identical.

And the relevant part in the codebase is notoriously difficult to change for now (that's why I made this issue: #88), so I'm a bit hesitant currently to modify it further without being certain that the current behavior is indeed wrong.

If you could give me more information about the correct behavior in handling properties with an identical name, I'll try to revisit this issue when I'll be able to work on this project again.

Thanks!