protected function realJoin(
        /*# string */ $joinType,
        $secondTable,
        $onClause = '',
        /*# bool */ $rawMode = false
    ) {
        $alias = 0; // no alias
        list($secondTable, $alias) = $this->fixJoinTable($secondTable);

        if ($rawMode || '' === $onClause || $this->isRaw($onClause, false)) {
            $rawMode = true;
        } else {
            $onClause = $this->fixOnClause($onClause);
        }
        $clause = &$this->getClause('JOIN');
        $clause[] = [$rawMode, $joinType, $secondTable, $alias, $onClause];
        return $this;
    }