This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new 5208929da0f [report] add weekly report 2026-07-06 (#3979)
5208929da0f is described below
commit 5208929da0f783a441ad5f5624b01396d7a5a627
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Mon Jul 13 11:43:51 2026 +0800
[report] add weekly report 2026-07-06 (#3979)
---
.../community-report-next/CommunityReportNext.scss | 101 ++++-
.../community-report-next/CommunityReportNext.tsx | 93 ++++-
src/pages/community-report/_reports/2026-07-06.mdx | 425 +++++++++++++++++++++
3 files changed, 583 insertions(+), 36 deletions(-)
diff --git a/src/components/community-report-next/CommunityReportNext.scss
b/src/components/community-report-next/CommunityReportNext.scss
index 9c818deabf0..4e39eea51a4 100644
--- a/src/components/community-report-next/CommunityReportNext.scss
+++ b/src/components/community-report-next/CommunityReportNext.scss
@@ -192,44 +192,105 @@
margin-top: 12px;
}
-.community-report__select-wrap::after {
- // Custom chevron (native arrow is hidden via appearance:none).
+.community-report__select-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+ min-height: 44px;
+ padding: 10px 38px 10px 14px;
+ cursor: pointer;
+ font-family: var(--font-family-base);
+ font-size: 14px;
+ line-height: 1.35;
+ color: var(--cr-ink);
+ text-align: left;
+ background: #fff;
+ border: 1px solid #dfe5f0;
+ border-radius: 8px;
+ transition: border-color 0.18s ease, box-shadow 0.18s ease, background
0.18s ease;
+}
+
+.community-report__select-button::after {
content: '';
position: absolute;
right: 14px;
top: 50%;
width: 10px;
height: 10px;
- transform: translateY(-60%) rotate(45deg);
- border-right: 2px solid var(--cr-muted);
- border-bottom: 2px solid var(--cr-muted);
+ transform: translateY(-62%) rotate(45deg);
+ border-right: 2px solid #4c576c;
+ border-bottom: 2px solid #4c576c;
pointer-events: none;
+ transition: transform 0.18s ease, border-color 0.18s ease;
+}
+
+.community-report__select-button:hover,
+.community-report__select-button--open {
+ border-color: var(--cr-green);
+}
+
+.community-report__select-button:focus-visible {
+ outline: none;
+ border-color: var(--cr-green);
+ box-shadow: 0 0 0 3px rgba(6, 128, 95, 0.14);
+}
+
+.community-report__select-button--open {
+ box-shadow: 0 2px 8px 0 rgba(49, 77, 136, 0.16);
+}
+
+.community-report__select-button--open::after {
+ transform: translateY(-38%) rotate(225deg);
+ border-color: var(--cr-green);
+}
+
+.community-report__select-button--placeholder {
+ color: #8592a6;
}
-.community-report__select {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+.community-report__select-menu {
+ position: absolute;
+ z-index: 30;
+ top: calc(100% + 6px);
+ left: 0;
width: 100%;
+ max-height: 260px;
+ overflow-y: auto;
+ padding: 6px 0;
+ background: #fff;
+ border: 1px solid #dfe5f0;
+ border-radius: 8px;
+ box-shadow: 0 2px 8px 0 rgba(49, 77, 136, 0.16);
+}
+
+.community-report__select-option {
+ display: block;
+ width: 100%;
+ min-height: 36px;
+ padding: 8px 14px;
cursor: pointer;
- padding: 11px 36px 11px 14px;
font-family: var(--font-family-base);
font-size: 14px;
+ line-height: 1.4;
color: var(--cr-ink);
- background: #fff;
- border: 1px solid var(--cr-line);
- border-radius: 10px;
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
+ text-align: left;
+ background: transparent;
+ border: 0;
+ transition: background 0.16s ease, color 0.16s ease;
}
-.community-report__select:hover {
- border-color: rgba(6, 128, 95, 0.4);
+.community-report__select-option:hover,
+.community-report__select-option:focus-visible {
+ outline: none;
+ background: #f7fafc;
}
-.community-report__select:focus-visible {
- outline: none;
- border-color: var(--cr-green);
- box-shadow: 0 0 0 3px rgba(6, 128, 95, 0.15);
+.community-report__select-option--selected {
+ color: var(--cr-green);
+ font-weight: 500;
+ background: transparent;
}
/* ---------------- Content ---------------- */
diff --git a/src/components/community-report-next/CommunityReportNext.tsx
b/src/components/community-report-next/CommunityReportNext.tsx
index b1baa5aa6c5..4667554ca6f 100644
--- a/src/components/community-report-next/CommunityReportNext.tsx
+++ b/src/components/community-report-next/CommunityReportNext.tsx
@@ -1,4 +1,4 @@
-import React, { JSX, useEffect, useState } from 'react';
+import React, { JSX, useEffect, useRef, useState } from 'react';
import { LayoutNext } from '../home-next/LayoutNext';
import './CommunityReportNext.scss';
import './WeeklyReport.scss';
@@ -111,6 +111,8 @@ export default function CommunityReportNext({ reports }:
CommunityReportNextProp
const latest = reports[0];
const historical = reports.slice(1);
const [selectedId, setSelectedId] = useState<string>(latest?.id ?? '');
+ const [isPastMenuOpen, setIsPastMenuOpen] = useState(false);
+ const pastMenuRef = useRef<HTMLDivElement>(null);
// Allow deep-linking to a specific report via URL hash, e.g.
// /community-report#2026-06-22. Read on mount (client-only; window is
@@ -122,8 +124,35 @@ export default function CommunityReportNext({ reports }:
CommunityReportNextProp
}
}, [reports]);
+ useEffect(() => {
+ if (!isPastMenuOpen) {
+ return;
+ }
+
+ const closeOnOutsideClick = (event: MouseEvent) => {
+ if (!pastMenuRef.current?.contains(event.target as Node)) {
+ setIsPastMenuOpen(false);
+ }
+ };
+
+ const closeOnEscape = (event: KeyboardEvent) => {
+ if (event.key === 'Escape') {
+ setIsPastMenuOpen(false);
+ }
+ };
+
+ document.addEventListener('mousedown', closeOnOutsideClick);
+ document.addEventListener('keydown', closeOnEscape);
+
+ return () => {
+ document.removeEventListener('mousedown', closeOnOutsideClick);
+ document.removeEventListener('keydown', closeOnEscape);
+ };
+ }, [isPastMenuOpen]);
+
const select = (id: string) => {
setSelectedId(id);
+ setIsPastMenuOpen(false);
if (typeof window !== 'undefined') {
window.history.replaceState(null, '', `#${id}`);
}
@@ -131,6 +160,7 @@ export default function CommunityReportNext({ reports }:
CommunityReportNextProp
const selected = reports.find(r => r.id === selectedId) ?? latest;
const isHistoricalSelected = historical.some(r => r.id === selectedId);
+ const selectedHistoricalLabel = isHistoricalSelected ? selected?.label :
'Past reports...';
const SelectedReport = selected?.Component;
return (
@@ -159,22 +189,53 @@ export default function CommunityReportNext({ reports }:
CommunityReportNextProp
)}
{historical.length > 0 && (
- <div className="community-report__select-wrap">
- <select
- className="community-report__select"
- aria-label="Browse past weekly reports"
- value={isHistoricalSelected ?
selectedId : ''}
- onChange={e => select(e.target.value)}
+ <div className="community-report__select-wrap"
ref={pastMenuRef}>
+ <button
+ type="button"
+ className={
+ 'community-report__select-button' +
+ (isPastMenuOpen ? '
community-report__select-button--open' : '') +
+ (!isHistoricalSelected ? '
community-report__select-button--placeholder' : '')
+ }
+ aria-haspopup="listbox"
+ aria-expanded={isPastMenuOpen}
+
aria-controls="community-report-past-menu"
+ onClick={() => setIsPastMenuOpen(open
=> !open)}
+ onKeyDown={event => {
+ if (event.key === 'ArrowDown') {
+ event.preventDefault();
+ setIsPastMenuOpen(true);
+ }
+ }}
>
- <option value="" disabled>
- Past reports…
- </option>
- {historical.map(r => (
- <option key={r.id} value={r.id}>
- {r.label}
- </option>
- ))}
- </select>
+ <span>{selectedHistoricalLabel}</span>
+ </button>
+ {isPastMenuOpen && (
+ <div
+ id="community-report-past-menu"
+
className="community-report__select-menu"
+ role="listbox"
+ aria-label="Browse past weekly
reports"
+ >
+ {historical.map(r => (
+ <button
+ key={r.id}
+ type="button"
+ role="option"
+ aria-selected={selectedId
=== r.id}
+ className={
+
'community-report__select-option' +
+ (selectedId === r.id
+ ? '
community-report__select-option--selected'
+ : '')
+ }
+ onClick={() =>
select(r.id)}
+ >
+ {r.label}
+ </button>
+ ))}
+ </div>
+ )}
</div>
)}
</div>
diff --git a/src/pages/community-report/_reports/2026-07-06.mdx
b/src/pages/community-report/_reports/2026-07-06.mdx
new file mode 100644
index 00000000000..556bd40c5b9
--- /dev/null
+++ b/src/pages/community-report/_reports/2026-07-06.mdx
@@ -0,0 +1,425 @@
+{/* Auto-generated by community-radar `report export-mdx` — do not edit by
hand.
+ `report` is English-only structured data laid out by doris-website. */}
+
+export const label = "Jul 6 – Jul 12, 2026";
+export const week = "Week 28, 2026";
+export const stats = [
+ {
+ "num": "89",
+ "label": "Merged PRs"
+ },
+ {
+ "num": "22",
+ "label": "New issues"
+ },
+ {
+ "num": "45",
+ "label": "Contributors"
+ }
+];
+
+export const report = {
+ "summary": {
+ "lead": "Doris maintained a high-velocity week with 89 merged PRs across
six capability lines and 45 contributors driving the kernel-engineering and
real-time data warehouse tracks. The convergence across cloud-native
decoupling, lakehouse format coverage, and query optimizer work signals Doris
is accelerating from point capability building toward an end-to-end real-time
analytics platform. With newer threads in agent observability and security &
governance also picking up, the proje [...]
+ "highlights": [
+ {
+ "title": "Incremental computation: row binlog, Table Stream, and MTMV
unification",
+ "narrative": "This week fills in key pieces of the incremental
pipeline: Table Stream gains snapshot reads, MTMV partition lineage is
deduplicated to cut FE cost, and MySQL ADD/DROP columns now flow through
streaming jobs. Together with the row-binlog tracking, signal Doris is
converging stream and batch increments onto one engine layer.",
+ "prs": [
+ {
+ "num": 65265,
+ "title": "[Tracking][Binlog] Binlog feature umbrella — all
sub-issues tracked here",
+ "url": "https://github.com/apache/doris/issues/65265"
+ },
+ {
+ "num": 65418,
+ "title": "[Feature] Track incremental computation with row binlog,
Table Stream, and MTMV",
+ "url": "https://github.com/apache/doris/issues/65418"
+ },
+ {
+ "num": 64776,
+ "title": " [feat](dynamic table) support table stream part 4:
support snapshot read",
+ "url": "https://github.com/apache/doris/pull/64776"
+ },
+ {
+ "num": 63899,
+ "title": "[improvement](mtmv) Optimize MTMV partition lineage
check",
+ "url": "https://github.com/apache/doris/pull/63899"
+ },
+ {
+ "num": 65325,
+ "title": "[improve](streaming-job) Support MySQL ADD DROP schema
changes",
+ "url": "https://github.com/apache/doris/pull/65325"
+ }
+ ]
+ },
+ {
+ "title": "Cloud / decoupled storage tier: file cache, metadata cache,
time travel",
+ "narrative": "Cloud mode adds Time Travel for point-in-time audit
queries, while external-table file caches now persist table/partition context
and footer metadata lands on disk with runtime capacity adjustment. Adaptive
random-bucket routing trims load writer pressure, rounding out the decoupled
storage stack.",
+ "prs": [
+ {
+ "num": 65422,
+ "title": "[Feature] Time Travel: SELECT ... FOR TIME AS OF
'<timestamp>' in cloud/decoupled mode",
+ "url": "https://github.com/apache/doris/issues/65422"
+ },
+ {
+ "num": 61518,
+ "title": "[feature](filecache) persist table/partition context for
cache meta for external table",
+ "url": "https://github.com/apache/doris/pull/61518"
+ },
+ {
+ "num": 63376,
+ "title": "[improvement](be) Add disk cache for external file
metadata",
+ "url": "https://github.com/apache/doris/pull/63376"
+ },
+ {
+ "num": 65477,
+ "title": "[improvement](be) Support dynamic file cache capacity",
+ "url": "https://github.com/apache/doris/pull/65477"
+ },
+ {
+ "num": 62661,
+ "title": "[feature](load) introduce adaptive random bucket load
routing",
+ "url": "https://github.com/apache/doris/pull/62661"
+ },
+ {
+ "num": 65431,
+ "title": "[Feat](TimeTravel) Time Travel for Cloud / Decoupled
Mode",
+ "url": "https://github.com/apache/doris/pull/65431"
+ }
+ ]
+ },
+ {
+ "title": "Lakehouse format coverage: Iceberg + Paimon write/read
integration",
+ "narrative": "Lakehouse integration deepens on both sides: Iceberg
REST Catalog gains OIDC session credentials and nested-column DDL, while Paimon
JNI reads wire up IOManager and JNI write support lands. The FE metadata cache
refactor sets up future formats, and ANN pre-filtering sharpens vector search
selectivity.",
+ "prs": [
+ {
+ "num": 63068,
+ "title": "[feature](fe) Support OIDC session credentials for
Iceberg REST catalog",
+ "url": "https://github.com/apache/doris/pull/63068"
+ },
+ {
+ "num": 65332,
+ "title": "[improvement](paimon) Support IOManager for JNI reads",
+ "url": "https://github.com/apache/doris/pull/65332"
+ },
+ {
+ "num": 65329,
+ "title": "[feature](iceberg) Support nested column schema change",
+ "url": "https://github.com/apache/doris/pull/65329"
+ },
+ {
+ "num": 65381,
+ "title": "[feature](paimon) Paimon JNI write support",
+ "url": "https://github.com/apache/doris/pull/65381"
+ },
+ {
+ "num": 65126,
+ "title": "[refactor](fe) Refactor external metadata cache with
MetaCacheEntry",
+ "url": "https://github.com/apache/doris/pull/65126"
+ },
+ {
+ "num": 64377,
+ "title": "[feature](ann-index) Pre-filter column predicates into
ANN TopN searc…",
+ "url": "https://github.com/apache/doris/pull/64377"
+ }
+ ]
+ },
+ {
+ "title": "Query optimizer: DPHyper stats, unique propagation, eager
agg, hash join, lazy materialization",
+ "narrative": "The optimizer focuses on cost and propagation signals:
DPhyper refreshes statistics after join enumeration, LogicalJoin now unions
multi-column unique sets, and distinct aggregation folds into eager agg driven
by stats. Hash-join probes avoid copying in the all-match path, and multi-stage
predicate lazy materialization sets up future auto-tuning for lighter
materialization.",
+ "prs": [
+ {
+ "num": 64559,
+ "title": "[opt](dphyper)optimize dphyper's statistics calculation",
+ "url": "https://github.com/apache/doris/pull/64559"
+ },
+ {
+ "num": 62980,
+ "title": "[improvement](nereids) Enhance LogicalJoin.computeUnique
with unique-set union propagation",
+ "url": "https://github.com/apache/doris/pull/62980"
+ },
+ {
+ "num": 65099,
+ "title": "[improvement](eager-agg) Push down distinct aggregation
using statistics",
+ "url": "https://github.com/apache/doris/pull/65099"
+ },
+ {
+ "num": 65300,
+ "title": "[improvement](be) Optimize hash join probe side output",
+ "url": "https://github.com/apache/doris/pull/65300"
+ },
+ {
+ "num": 64891,
+ "title": "[enhancement](Multi-stage lm) Multi-Stage Predicate Lazy
Materialization",
+ "url": "https://github.com/apache/doris/pull/64891"
+ }
+ ]
+ },
+ {
+ "title": "Full-text & ANN indexing: Japanese analyzer, SNII format,
ANN pre-filter",
+ "narrative": "Indexing expands for multilingual and hybrid search: the
inverted index adds Kuromoji-based Japanese tokenization, SNII lands as a
parallel storage path, and ANN TopN pushes pre-filterable column predicates
before the vector scan. REGEXP_EXTRACT_ALL_ARRAY rounds out the text-processing
toolkit.",
+ "prs": [
+ {
+ "num": 61156,
+ "title": "[Feature](func) Support REGEXP_EXTRACT_ALL_ARRAY",
+ "url": "https://github.com/apache/doris/pull/61156"
+ },
+ {
+ "num": 64667,
+ "title": "[feature](inverted-index) Add Japanese (Kuromoji)
morphological analyzer",
+ "url": "https://github.com/apache/doris/pull/64667"
+ },
+ {
+ "num": 64909,
+ "title": "[feature](be) Add SNII inverted index storage format",
+ "url": "https://github.com/apache/doris/pull/64909"
+ },
+ {
+ "num": 65482,
+ "title": "[feature](query-cache) Support incremental merge for
stale query cache entries",
+ "url": "https://github.com/apache/doris/pull/65482"
+ }
+ ]
+ }
+ ],
+ "numbers": {
+ "mergedPrs": 89,
+ "newIssues": 22,
+ "contributors": 45
+ }
+ },
+ "repos": [
+ {
+ "repo": "apache/doris",
+ "scenarios": [
+ {
+ "name": "Multi-modal Lakehouse",
+ "mergedNarrative": "Lakehouse work this week deepened Doris's read
paths across Iceberg, Paimon, ORC and external catalogs. Deletion vectors were
rewritten as Roaring bitmaps for leaner caching, Iceberg struct-evolution cast
nullability and Paimon JNI predicate fallbacks were corrected, the format-v2
pipeline gained an ORC reader, and catalog quirks like MaxCompute
partition-by-name and",
+ "merged": [
+ {
+ "num": 64937,
+ "title": "[fix](fe) Parse MaxCompute partition specs by name",
+ "url": "https://github.com/apache/doris/pull/64937"
+ },
+ {
+ "num": 65083,
+ "title": "[fix](maxcompute)Fix MaxCompute IN predicate pushdown
polarity.",
+ "url": "https://github.com/apache/doris/pull/65083"
+ },
+ {
+ "num": 65085,
+ "title": "[fix](orc)fix hive-orc reader read columns base in
column index by default rather than column name.",
+ "url": "https://github.com/apache/doris/pull/65085"
+ },
+ {
+ "num": 65094,
+ "title": "[fix](fe) Preserve external table column name case",
+ "url": "https://github.com/apache/doris/pull/65094"
+ },
+ {
+ "num": 65165,
+ "title": "[fix](glue) cache credentials provider in
ConfigurationAWSCredentialsProvider",
+ "url": "https://github.com/apache/doris/pull/65165"
+ }
+ ],
+ "inProgressNarrative": "Multi-modal lakehouse work sharpens
correctness on external sources: Iceberg REST catalog re-auth on 401 instead of
wedging, position-deletes system table support, static-partition overwrite with
empty source, Iceberg written bounds aligned with Spark, and ignoring stale
external partitions during pruning. Complementary changes add a lance-c
third-party dependency, reuse the Paimon JNI",
+ "inProgress": []
+ },
+ {
+ "name": "Real-time Data Warehouse",
+ "mergedNarrative": "Real-time warehouse work converged on ingestion,
optimizer and scanner this week. Stream load gained forward group commit and
CDC stream-TVF delete-sign support, PostgreSQL change detection switched to
Relation events, and TopN plus FileScannerV2 received opt-in cache-write
controls. The optimizer side closed correctness holes in
PushDownAggThroughJoinOnPkFk, eager aggregation over empty relations",
+ "merged": [
+ {
+ "num": 65369,
+ "title": "[improvement](be) Optimize Parquet predicate filtering
in format v2",
+ "url": "https://github.com/apache/doris/pull/65369"
+ },
+ {
+ "num": 63594,
+ "title": "[fix](group commit) support forward group commit
stream load",
+ "url": "https://github.com/apache/doris/pull/63594"
+ },
+ {
+ "num": 64820,
+ "title": "(fix)(eager-agg) null-to-non-null safety check and
remove redundant normalize calls in eager aggregation",
+ "url": "https://github.com/apache/doris/pull/64820"
+ },
+ {
+ "num": 64850,
+ "title": "[improvement](streaming-job) Detect PostgreSQL schema
changes from Relation events",
+ "url": "https://github.com/apache/doris/pull/64850"
+ },
+ {
+ "num": 64898,
+ "title": "[fix](fe) Prevent pushing other join conditions to
right child of null-aware anti join",
+ "url": "https://github.com/apache/doris/pull/64898"
+ }
+ ],
+ "inProgressNarrative": "Real-time data warehouse work keeps refining
the planner, ingest path, and scanner efficiency. Planner fixes stabilize now()
within one execution, remove FD-redundant GROUP BY keys via ANY_VALUE, tighten
anti-join null-reject inference, scale broadcast cost by backend count, and
disable top-N lazy materialization on non-light-schema-change tables. Ingest
and execution add SHOW",
+ "inProgress": []
+ },
+ {
+ "name": "Compute-Storage Separation & Cloud-Native",
+ "mergedNarrative": "Toward a cleaner compute-storage split and
cloud-native posture, this week's work advanced along four lines: rendezvous
(HRW) hashing replaced modulo placement so colocate tables ride out
compute-group scale events with far less cold-cache jitter; the fe-filesystem
SPI gained an HTTP module and capability groundwork for future consumers;
operations were tightened",
+ "merged": [
+ {
+ "num": 64564,
+ "title": "[chore](tde) Add scoped KMS credentials to regression
clusters",
+ "url": "https://github.com/apache/doris/pull/64564"
+ },
+ {
+ "num": 64638,
+ "title": "[improvement](cloud) Use rendezvous hashing for
colocate tablet placement",
+ "url": "https://github.com/apache/doris/pull/64638"
+ },
+ {
+ "num": 64853,
+ "title": "[feature](fs-spi) add HTTP filesystem module,
capability framework and URI validation",
+ "url": "https://github.com/apache/doris/pull/64853"
+ }
+ ],
+ "inProgressNarrative": "Compute-storage separation and cloud-native
work targets multi-tenant efficiency, observability, and recycler reliability:
tenant-level Colocation reduces replica redundancy and removes bucket-count
limits, while a Resource Group affinity extension framework for FE query, load,
and repair scheduling ships as no-op by default so vendors can plug in custom
policies. Cloud-mode fixes land",
+ "inProgress": [
+ {
+ "num": 64167,
+ "title": "[feat](colocate) support tenant-level colocation",
+ "url": "https://github.com/apache/doris/pull/64167"
+ },
+ {
+ "num": 65173,
+ "title": "[feature](fe) Add resource group affinity extension
framework",
+ "url": "https://github.com/apache/doris/pull/65173"
+ }
+ ]
+ },
+ {
+ "name": "Agent Observability",
+ "mergedNarrative": "To keep Doris observable under heavy cloud load,
the community closed two observability gaps this week. The Cloud P0
index-change wait was lengthened and hardened with a FINISHED-only check to
eliminate flake, while BE metrics gained dedicated remote-byte counters for
inverted-index and segment-footer file cache, letting operators distinguish
cold cache",
+ "merged": [
+ {
+ "num": 65197,
+ "title": "[fix](regression) stabilize index change wait",
+ "url": "https://github.com/apache/doris/pull/65197"
+ },
+ {
+ "num": 65398,
+ "title": "[improve](metrics) Export file cache remote index byte
metrics",
+ "url": "https://github.com/apache/doris/pull/65398"
+ }
+ ],
+ "inProgressNarrative": "Agent observability work focuses on
hardening index and streaming load paths: blocking legacy V1 inverted index
creation to keep small-file merging effective, aligning JSON Stream Load
boolean scalar casts with INSERT INTO, and unifying json_extract_no_quotes as
an alias of json_extract_string so FE binding and rewrite behavior stay
consistent. New this",
+ "inProgress": [
+ {
+ "num": 64522,
+ "title": "[fix](fe) block inverted index V1 creation in FE ",
+ "url": "https://github.com/apache/doris/pull/64522"
+ },
+ {
+ "num": 64773,
+ "title": "[fix](load) Align JSON stream load scalar casts",
+ "url": "https://github.com/apache/doris/pull/64773"
+ },
+ {
+ "num": 65380,
+ "title": "[fix](fe) Treat json_extract_no_quotes as
json_extract_string alias",
+ "url": "https://github.com/apache/doris/pull/65380",
+ "isNew": true
+ }
+ ]
+ },
+ {
+ "name": "Security & Governance",
+ "mergedNarrative": "On the security and governance front, this week
delivered a key consistency hardening: when HTTPS is enabled cluster-wide,
FE-to-FE traffic also switches to HTTPS automatically, eliminating the residual
plaintext channel that previously undermined hardened or zero-trust deployments
of Doris.",
+ "merged": [
+ {
+ "num": 60921,
+ "title": "[Enhancement] (FE) Convert intra FE-to-FE calls to
HTTPS when enabled",
+ "url": "https://github.com/apache/doris/pull/60921"
+ }
+ ],
+ "inProgressNarrative": "Security and governance work tightens
authorization and dependency hygiene: a new SHOW GRANTS FOR ROLE command for
role-level audits, output-buffer bounds checks in the Snappy decompressor,
normalized internal FE HTTP URLs under enable_https, and a consolidated CVE
patch covering Netty DNS resolver cache poisoning and Go-side vulnerabilities,
reducing Doris's attack",
+ "inProgress": [
+ {
+ "num": 62995,
+ "title": "[feature](nereids) support show grants for role xxx
command to display grants by role",
+ "url": "https://github.com/apache/doris/pull/62995"
+ },
+ {
+ "num": 63910,
+ "title": "check output buffer bounds in SnappyBlockDecompressor",
+ "url": "https://github.com/apache/doris/pull/63910"
+ },
+ {
+ "num": 64697,
+ "title": "[Improve](Audit) Auditlog on FE with https enabled",
+ "url": "https://github.com/apache/doris/pull/64697"
+ },
+ {
+ "num": 65212,
+ "title": "[fix](https) normalize internal FE HTTP URLs",
+ "url": "https://github.com/apache/doris/pull/65212"
+ }
+ ]
+ },
+ {
+ "name": "Kernel & Engineering",
+ "mergedNarrative": "Kernel engineering concentrated on stability and
developer efficiency: a long-standing ASAN-only BE crash on the throw path was
finally rooted out via `__asan_handle_no_return`, print-stack and scan-executor
lifetimes were hardened, and latent type and overflow hazards were closed
across schema, transaction, ORC and analytic paths. Alongside that,
fast-fe-ut.sh, stronger Codex review",
+ "merged": [
+ {
+ "num": 63188,
+ "title": "[fix](build) Update pytest dependency pins for
security advisories",
+ "url": "https://github.com/apache/doris/pull/63188"
+ },
+ {
+ "num": 64093,
+ "title": "[Enhancement](BE) Make print stack API more stable",
+ "url": "https://github.com/apache/doris/pull/64093"
+ },
+ {
+ "num": 64670,
+ "title": "[fix](show frontends) show effective HTTP/HTTPS port",
+ "url": "https://github.com/apache/doris/pull/64670"
+ },
+ {
+ "num": 64732,
+ "title": "[chore](broker)(sdk) Remove apache_hdfs_broker daemon
module and in-tree SDKs",
+ "url": "https://github.com/apache/doris/pull/64732"
+ },
+ {
+ "num": 64789,
+ "title": "[fix](regression) Adjust large TTL cache regression
case",
+ "url": "https://github.com/apache/doris/pull/64789"
+ }
+ ],
+ "inProgressNarrative": "Kernel and engineering work continues
hardening storage, load, and execution layers: MoW delete bitmap races with
segcompaction, Nereids constant folding aligned with BE behavior, Arrow and
Parquet dictionary decoder bounds, empty-input split semantics, stale output
capacity in Lz4BlockDecompressor, and tighter MOW/MV delete-bitmap queue
observability. New this week extend coverage to",
+ "inProgress": []
+ }
+ ],
+ "demand": [
+ {
+ "name": "Real-time Data Warehouse",
+ "narrative": "For real-time data warehousing, the community is
building an end-to-end incremental computation stack: row binlogs capture
durable row-level changes with before images and LSN/TSO, Table Stream exposes
those changes as a queryable stream, and MTMVs consume the stream for
continuously refreshed materialized views. Together they turn Doris into a true
streaming warehouse where analytics stay fresh without full refreshes.",
+ "refs": [
+ {
+ "num": 65418,
+ "title": "[Feature] Track incremental computation with row
binlog, Table Stream, and MTMV",
+ "url": "https://github.com/apache/doris/issues/65418"
+ }
+ ]
+ },
+ {
+ "name": "Compute-Storage Separation & Cloud-Native",
+ "narrative": "For real-time data warehousing, the community is
building an end-to-end incremental computation stack: row binlogs capture
durable row-level changes with before images and LSN/TSO, Table Stream exposes
those changes as a queryable stream, and MTMVs consume the stream for
continuously refreshed materialized views. Together they turn Doris into a true
streaming warehouse where analytics stay fresh without full refreshes.",
+ "refs": [
+ {
+ "num": 65422,
+ "title": "[Feature] Time Travel: SELECT ... FOR TIME AS OF
'<timestamp>' in cloud/decoupled mode",
+ "url": "https://github.com/apache/doris/issues/65422"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+};
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]