csun5285 opened a new pull request, #68609:
URL: https://github.com/apache/doris/pull/68609

   ### What problem does this PR solve?
   
   Issue Number: None
   
   Related PR: #68608, #62854
   
   Problem Summary:
   
   The first piece split out of #68608, which writes segments straight from
   IColumn and removes OlapBlockDataConvertor. It changes no behavior: it pins 
the
   page bytes the later pieces must keep, and removes code they would otherwise
   carry along. Each commit message has the details.
   
   1. Remove dead storage write-path code: `get_zone_map_value()` in
      column_predicate.h, `WindowFunnelState::NativeType`, the never-used
      `ColumnWriter::_null_bitmap`, the unreachable `append_nulls()` of the 
struct
      and map column writers (they now return NotSupported, as the variant 
writers
      already do), and an unused OlapBlockDataConvertor include in schema 
change.
   2. Drop the OFFSET_ONLY guard for CHAR columns in StringFileColumnIterator.
      #62854 rejected an OFFSET_ONLY access path on a CHAR column because the
      lengths read without the chars would be the zero-padded ones. A CHAR page 
is
      rewritten without its padding by its strip pre-decoder before the iterator
      reads any offset, so the lengths are the logical ones, and the FE never 
plans
      this access path for CHAR anyway.
   3. Pin the on-disk pages of every page encoding with golden files.
      PageFormatTest appends deterministic rows block by block to a
      ScalarColumnWriter, the way a segment writer does, with small page 
budgets,
      for every registered (storage type, page encoding) pair: 86 cases, DICT 
once
      per dictionary page format and AGG_STATE once per serialized shape. The
      pages PageIO writes are kept as they are on disk, one golden file per
      encoding plus layout.txt, which lists every page, so a failure names the 
page
      that changed. Each column is also read back through ColumnReader and must
      hold the rows written. FOR is left out: nothing has written FOR pages 
since
      bitmap indexes were removed, FrameOfReferencePageDecoder cannot read the
      values back, and a frame that keeps its original values carries bytes
      ForEncoder never initializes.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test: Unit Test
       - PageFormatTest (new) passes against its goldens, also when run after
         BitmapValueTest, which leaves bitmap configs changed (46 tests).
       - SegmentFlusherFormatTest and SegmentFlusherTransformFormatTest (strict
         golden comparison), ColumnReaderTest and CharTypePaddingTest pass
         (80 tests).
   - Behavior changed: No
   - Does this need documentation: No
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to