البدء السريع
تشغّل الأمثلة الواردة في هذا الدليل
query() باستخدام تنسيق الإخراج CSV الافتراضي. وتُظهر التعليقات المضمّنة قيم النتائج المنطقية، بينما يطبع الإخراج الخام NULL بالشكل \N ويطبّق اقتباس CSV على قيم السلاسل النصية والتواريخ (مثل "Hello, world!").طرق التسجيل
المُزيِّن @func
__name__ الخاص بالدالة اسم دالة SQL.
create_function
drop_function
تؤدي محاولة تسجيل اسم مسجّل مسبقًا إلى ظهور خطأ — لا تُستبدل UDFs تلقائيًا. استدعِ
drop_function(name) أولًا لإعادة تسجيل الدالة، مثلًا عند إعادة تشغيل خلية في دفتر ملاحظات.نظام الأنواع
الأنواع المتاحة
chdb.sqltypes:
تحديد الأنواع
الاستدلال التلقائي للأنواع
arg_types أو return_type، يستنتج chDB الأنواع من تعليقات توضيحية للأنواع في بايثون:
إذا تم تحديد
arg_types صراحةً، فيجب أن يشمل جميع المعلمات — إذ لا يُدعم الجمع بين التحديد الصريح الجزئي والاستدلال الجزئي. ينطبق ذلك على كلٍّ من create_function ومزيّن @func: حدّد أنواع جميع المعلمات، أو احذفها بالكامل ودع chDB يستنتجها من التعليقات التوضيحية.return_type ولم يكن للدالة تعليق توضيحي للإرجاع، فسيفشل التسجيل. أما أنواع الوسائط فهي اختيارية — إذ تقبل المعلمة التي لا تحتوي على نوع صريح أو تعليق توضيحي أي نوع إدخال مدعوم ديناميكيًا.
التعامل مع NULL
on_null في السلوك عند كون أي وسيطة إدخال NULL.
يمكنك أيضًا استخدام enum:
chdb.NullHandling.SKIP / chdb.NullHandling.PASS.
مثال: default (تخطي)
مثال: تمرير NULL على أنه None
مثال: وسائط متعددة
معالجة الاستثناءات
on_error في السلوك عند قيام دالة بايثون بإطلاق استثناء.
يمكنك أيضًا استخدام enum:
chdb.ExceptionHandling.PROPAGATE / chdb.ExceptionHandling.IGNORE.
مثال: default (تمرير)
مثال: تجاهل الأخطاء
الجمع بين معالجة NULL والاستثناءات
on_null وon_error:
دعم DateTime والمنطقة الزمنية
أنواع Date
DateTime مع المناطق الزمنية
DateTime64 (دقة عالية)
DATETIME64 هي المقياس 6 (ميكروثانية):
- تتضمن قيم
DateTime/DateTime64المُدخلة معلومات المنطقة الزمنية من ClickHouse - تحتفظ كائنات
datetimeالناتجة بمعلومات المنطقة الزمنية - يُعالَج تحويل المنطقة الزمنية تلقائيًا