| Summary: | Joint Data Set Column Names | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Scott Rosenbaum <scottr> |
| Component: | BIRT | Assignee: | Xiaoxiao Wu <xwu> |
| Status: | VERIFIED FIXED | QA Contact: | Tianli Zhang <tzhang> |
| Severity: | normal | ||
| Priority: | P3 | CC: | lzhu, wenfeng.fwd, whe, xxue |
| Version: | unspecified | Keywords: | plan |
| Target Milestone: | 2.5.1 RC2 | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | Non-Auto | ||
|
Description
Scott Rosenbaum
We will look into the problem. Meanwhile please use column alias as a workaround. No worries working around. It is really just a convenience thing. If the column name is unique, you want to keep it as short as possible. The longer column names can be come a real hassle. In particular, if you use column name only, then you have flexibility in the data-binding. The same table could work with different joint data sets, as long as they use the same aliases in their core queries. If the orig_table_name is built into the column name then this won't work. sr +1 to use the original col name by default, only if there is conflict, the join data set will add the dataset prefix for the 2nd duplicated column name. As per our discussion all the joint data set enhancement will be moved to future for further consideration. We can consider automatically create alias with simplified column names so that user can directly use those alias instead of column names. (In reply to comment #5) > We can consider automatically create alias with simplified column names so that > user can directly use those alias instead of column names. Is it possible to use the original column name by default. Keep a hash map for the joint data set column names, check for duplication when adding columns to the join data set. Add dataset prefix if there is a duplicate. (In reply to comment #6) > (In reply to comment #5) > > We can consider automatically create alias with simplified column names so that > > user can directly use those alias instead of column names. > > Is it possible to use the original column name by default. Keep a hash map for > the joint data set column names, check for duplication when adding columns to > the join data set. Add dataset prefix if there is a duplicate. > This is the exactly algorithm we used to create alias of the joint data set column. I am reluctant to directly change the joint data set column name algorithm in 2.5.1 as the algorithm is introduce long time ago (even before we have column bindnig). As in early stage of BIRT we used not to save the joint data set column information in report design, those report design will directly depend on the legacy data set column generation algorithm during execution. I am worry about the potential backward compatibility issue. Meanwhile, by introduce alias to the joint data set column maybe a safe and effective solution. Alias is used exactly as column names. And in BIRT UI during all the automatically generated javascript would take alias of a column for priority. Considering the backward compatibility, in order to make the column name reference simplified, now we implicitly populate all the columns’ aliases instead of their names for a Joint Data Set. If a column of the source data set already has an alias, we’ll use it for the Joint data set directly. If it is a duplicate, then we’ll use its data set name as the prefix of the alias, which ensures the alias is unique. If a column of the source data set is not specified alias, we’ll use the simple column name as the alias. Similarly if it is a duplicate, we’ll use its data set name as the prefix. So this bug has been fixed. Now we use alias of source data set for joint data set directly. If the column from source data set hasn't alias, we use its original name. For both alias and original name, if it is unique we will not use dataset name as prefix. Verified in 2.5.1 v20090824-0630 build. |