imay commented on issue #1561: Unify Field and ColumnSchema in Storage
URL: https://github.com/apache/incubator-doris/pull/1561#issuecomment-515987932
 
 
   > @imay Hi. Why introduce the new concept `ContiguousRow` and 
`RowCursorCell`? Are they necessary? I think we should keep core concepts as 
little as possible and ensure every core concept is clear and easy to 
understand.
   
   @kangkaisen 
   
   In origin code, for example in Memtable, we use `char*` to represent a row. 
I introduce `ContiguousRow` to represent `char* ` with a `Schema`. And I think 
this struct will replace `RowCursor` in some day. And we have many types of 
row, like `RowCursor`, `char*`, `RowBlockRow` which is used in storage V2. 
   
   And there are some operations on row like copy, compare with row. In origin 
code, there are many copies code for same operation. So I introduce `Row` and 
`Cell` concept to let us finish this operation for all types of row with one 
copy template row. 
   
   And what's more, in our origin code, many code should handle row format, 
like `ptr + 1` to get column pointer, `*ptr` to get if it is null. With `Cell` 
concept, we can encapsulate this logic in it. So If we want to change 
`RowCursor` format, we need to modify only a couple of files.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to