Hi Kylin developers

Want to get your attention of the recent redesign of TblColRef on master
branch.

As a prerequisite of snowflake support, I'm working on KYLIN-1971 recently.
The goal is to support a table appearing more than once in a model, e.g.
the COUNTRY lookup table may join the SALES fact table twice in a model,
once as the BUYER COUNTRY and a second time as the SELLER COUNTRY. Such use
case is not rare in real models.

In order to support such usage, a few redesign is made.

Firstly, an ALIAS is attached to every table in data model. So the COUNTRY
table can appear twice in the model, once as alias BUYER_COUNTRY and a
second time as SELLER_COUNTRY. In all places of model/cube definition,
ALIAS.COLUMN is used to refer to columns. If the alias is omitted, the
column will be searched in all tables, such that existing model/cube does
not have to change. The metadata is backward compatible.

Secondly, a new class TableRef is introduced and the existing TblColRef is
redesigned. A TableRef is a Table bound to a model using an ALIAS;
similarly a TblColRef is a Column bound to a model through a reference to
TableRef.

Lastly, all usages of TblColRef are revised according to above design. For
places where needs a model related column, please use TblColRef; for places
where needs a pure table column, please use ColumnDesc.

New code shall follow the design too.

Cheers
Yang

Reply via email to