表和源声明的继承

tablesource 声明中使用继承,可以更好地组织具有相似设置或结构的表,并减少配置体积。父表和子表、父 source 和子 source 都可以使用继承。

父表或 source 不需要任何特殊配置。

在子表或子 source 声明中,指定表名或 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