-
primes()– يعيد جدولًا لا نهائيًا بعمودprimeواحد (UInt64) يحتوي على أعداد أولية مرتبة ترتيبًا تصاعديًا، بدءًا من 2. استخدمLIMIT(واختياريًاOFFSET) لتقييد عدد الصفوف. -
primes(N)– يعيد جدولًا بعمودprimeواحد (UInt64) يحتوي على أولNعددًا أوليًا، بدءًا من 2. -
primes(N, M)– يعيد جدولًا بعمودprimeواحد (UInt64) يحتوي علىMعددًا أوليًا، بدءًا من العدد الأولي ذي الفهرسN(بفهرسة تبدأ من 0). -
primes(N, M, S)– يعيد جدولًا بعمودprimeواحد (UInt64) يحتوي علىMعددًا أوليًا، بدءًا من العدد الأولي ذي الفهرسN(بفهرسة تبدأ من 0)، وبخطوةSوفق فهرس العدد الأولي. تتوافق الأعداد الأولية المعادة مع الفهارسN, N + S, N + 2S, ..., N + (M - 1)S. يجب أن تكونS>= 1.
system.primes.
الاستعلامات التالية متكافئة:
أمثلة
p >= 10^15 بحيث يكون باقي قسمة p على 65537 مساويًا لـ 1.
ملاحظات
- أسرع الصيغ هي استعلامات النطاق البسيطة واستعلامات ترشيح النقاط التي تستخدم قيمة
stepالافتراضية (1)، على سبيل المثال،primes(N)أوprimes() LIMIT N. تستخدم هذه الصيغ مولّدًا محسّنًا للأعداد الأولية لحساب أعداد أولية كبيرة جدًا بكفاءة. - بالنسبة إلى المصادر غير المحدودة (
primes()/system.primes)، يمكن تطبيق مرشّحات قيم بسيطة مثلprime BETWEEN ...أوprime IN (...)أوprime = ...أثناء التوليد لتقييد نطاقات القيم التي يجري البحث ضمنها. على سبيل المثال، يُنفَّذ الاستعلام التالي بشكل شبه فوري:
- لا ينطبق تحسين نطاق القيم هذا على دوال الجداول المقيّدة (
primes(N),primes(offset, count[, step])) معWHERE، لأن هذه الصيغ تحدد جدولًا محدودًا وفق ترتيب الأعداد الأولية، ويجب تقييم عامل التصفية بعد إنشاء ذلك الجدول للحفاظ على الدلالات. - قد يكون استخدام
offsetغير صفري و/أوstepأكبر من 1 (primes(offset, count)/primes(offset, count, step)) أبطأ، لأنه قد يلزم داخليًا توليد أعداد أولية إضافية وتخطيها. إذا لم تكن بحاجة إلىoffsetأوstep، فتجاهلهما.