public function addPart($name, $parts)
{
if (is_array($this->parts[$name]) && !is_array($parts)) {
$parts = [$parts];
}
if (in_array($name, ['select', 'set', 'order', 'group'])) {
$this->parts[$name] = array_merge($this->parts[$name], $parts);
} else {
if (is_array($this->parts[$name])) {
$this->parts[$name][] = $parts;
} else {
$this->parts[$name] = $parts;
}
}
return $this;
}