public function getColumns($includeVirtual = false)
{
// returns all columns
if ($includeVirtual) {
return $this->columns;
}
$names = array_fill_keys($this->columnNames, 1);
return array_intersect_key($this->columns, $names);
}