# Polars 2.0 يجعل محرك البث افتراضيًا ويلغي ضمان ترتيب الصفوف دون رسالة خطأ

> **المغزى:** تغيير مقصود في التصميم قد يُنتج أرقامًا خاطئة بهدوء في أي pipeline يعتمد على ترتيب الصفوف، والفريق الذي يرقّي دون قراءة ملاحظات الإصدار قد يكتشفه من تقرير خاطئ لدى عميل.

- المصدر: المغزى (https://almaghza.com/a/2026-09-04-polars-2-streaming-row-order/)
- التاريخ: 22 ربيع الأول - 4 سبتمبر 2026 (2026-09-04)
- القسم: برمجيات
- الوسوم: Polars، Python، تحليل البيانات، تحسين الأداء

أصدرت مكتبة Polars لمعالجة البيانات، في 2 سبتمبر 2026، أول release candidate من الإصدار 2.0. ويتضمن الإصدار تغييرًا قد يكسر كودًا يعمل حاليًا دون أن يظهر أي خطأ: محرك البث (streaming engine) صار الافتراضي لكل استعلامات LazyFrame.

ومحرك البث يعالج البيانات على دفعات بدل تحميلها كاملة في الذاكرة، ما يوفر في استهلاك RAM ويرفع السرعة بفارق كبير. لكنه يعمل بالتوازي، ولذلك يتخلى عن ضمان واحد: ترتيب الصفوف.

وبحسب إعلان الإصدار، أُزيل ضمان الترتيب من عمليات join وgroup_by وunpivot. أي أن الترتيب الذي تعيده هذه العمليات لم يعد بالضرورة الترتيب الذي اعتاده المستخدمون.

وتكمن الخطورة في غياب أي رسالة خطأ. فالكود يعمل، والنتيجة تعود، لكن أي منطق يعتمد على موقع الصف، مثل أخذ أول صف في كل مجموعة، قد يُنتج نتيجة خاطئة دون أن يلاحظ أحد.

ويوفر الإصدار مخرجين: إضافة maintain_order=True إلى العملية المعنية، أو إعادة المحرك القديم للعملية كلها عبر set_engine_affinity في بداية الكود.

والتغيير ليس bug، بل قرار تصميم مكتوب في إعلان الإصدار نفسه. وبذلك يصبح الفرق بين فريق قرأ ملاحظات الإصدار وفريق رقّى المكتبة دون قراءتها أن الثاني قد يكتشف المشكلة من تقرير خاطئ وصل إلى عميل.

## المصادر

- [إعلان Polars 2.0 الرسمي](https://pola.rs/posts/announcing-polars-2/)
- [Hacker News](https://news.ycombinator.com/)
- [مستودع Polars على GitHub](https://github.com/pola-rs/polars)
