Наследование объявлений таблицы и источника

Наследование в объявлениях table и source помогает лучше организовать таблицы с похожими настройками или структурой и уменьшает размер конфигурации. Наследование можно использовать и в родительских, и в дочерних таблицах или источниках.

Для родительской таблицы или источника не требуется никакой специальной конфигурации.

В объявлении дочерней таблицы или источника укажите имя таблицы или источника, затем двоеточие (:) и имя родителя:

table parent {
path = /var/lib/manticore/parent
...
}
table child:parent {
path = /var/lib/manticore/child
...
}

Дочерний объект унаследует всю конфигурацию родителя. Любые настройки, объявленные в дочернем объекте, переопределят унаследованные значения. Имейте в виду, что для многозначных настроек указание одного значения в дочернем объекте очистит все унаследованные значения. Например, если у родителя есть несколько объявлений sql_query_pre, а у дочернего объекта есть одно объявление sql_query_pre, все унаследованные объявления sql_query_pre будут удалены. Чтобы переопределить только часть унаследованных значений родителя, явно объявите их в дочернем объекте. Это также подходит, если вам не нужно значение из родителя. Например, если значение sql_query_pre от родителя не требуется, объявите директиву с пустым значением в дочернем объекте, например sql_query_pre=.

Обратите внимание, что существующие значения многозначной настройки не будут скопированы, если дочерний объект объявляет для этой настройки одно значение.

Такое поведение наследования относится не только к параметрам таблицы, но и к полям и атрибутам. Например, если у родителя есть два целочисленных атрибута, а дочернему объекту нужен новый целочисленный атрибут, объявления целочисленных атрибутов из родителя нужно скопировать в конфигурацию дочернего объекта.

Last modified: June 29, 2026