private function queryAddPropertySelect(\Smalldb\Flupdo\FlupdoBuilder $query, string $table_alias, string $property_name, array $property, string $property_prefix = '')
	{
		$table_q = $query->quoteIdent($table_alias);
		$p_q = $query->quoteIdent($property_name);
		$pa_q = $query->quoteIdent($property_prefix.$property_name);
		if (!empty($property['components'])) {
			foreach ($property['components'] as $component => $column) {
				if (!isset($this->properties[$column])) {
					// make sure the components are selected, but only if they are not standalone properties
					$column_q = $query->quoteIdent($column);
					$alias_q = $property_prefix !== '' ? $query->quoteIdent($property_prefix.$column) : $column_q;
					$query->select("$table_q.$column_q AS $alias_q");
				}
			}
		} else if ((!empty($property['is_calculated']) || !empty($property['calculated'])) && isset($property['sql_select'])) {
			// FIXME: Provide a symbol for the current table alias - this will not work when importing properties.
			$query->select("({$property['sql_select']}) AS $pa_q");
		} else {
			$query->select("$table_q.$p_q AS $pa_q");
		}
	}