يسرد كل فهرس تخطٍّ افتراضي (ماذا لو) مُعرَّف في الجلسة الحالية. راجع CREATE HYPOTHETICAL INDEX وEXPLAIN WHATIF.
محتويات الجدول محصورة بنطاق الجلسة: لا يرى كل اتصال إلا فهارسه الافتراضية الخاصة به، ويكون الجدول فارغًا إذا لم يتم إنشاء أي فهارس في الجلسة الحالية.
يُحدَّد (database, table) الحاليان باستخدام معرّف UUID وقت تنفيذ الاستعلام، لذا فإنهما يعكسان RENAME TABLE، كما تُخفى تلقائيًا الإدخالات الخاصة بالجداول المحذوفة.
الأعمدة
database(String) — اسم قاعدة البياناتtable(String) — اسم الجدولname(String) — اسم الفهرسtype(String) — نوع الفهرس (minmax، set، bloom_filter، إلخ)type_full(String) — تعبير نوع الفهرس مع المعاملات، مثل bloom_filter(0.01)expression(String) — تعبير الفهرسgranularity(UInt64) — حبيبية الفهرس
مثال
CREATE HYPOTHETICAL INDEX i1 ON t (b) TYPE bloom_filter(0.01) GRANULARITY 1;
CREATE HYPOTHETICAL INDEX i2 ON t (b) TYPE bloom_filter(0.001) GRANULARITY 1;
SELECT database, table, name, type, type_full, expression, granularity
FROM system.hypothetical_indexes;┌─database─┬─table─┬─name─┬─type─────────┬─type_full───────────┬─expression─┬─granularity─┐
│ default │ t │ i1 │ bloom_filter │ bloom_filter(0.01) │ b │ 1 │
│ default │ t │ i2 │ bloom_filter │ bloom_filter(0.001) │ b │ 1 │
└──────────┴───────┴──────┴──────────────┴─────────────────────┴────────────┴─────────────┘type هو اسم النوع الأساسي، بينما يتضمن type_full المعاملات، بحيث يستطيع المستخدمون التمييز بين الأنواع المُعَلَّمة بمعاملات مثل bloom_filter(0.01) وbloom_filter(0.001).