public function fields($table, $with_field_names_as_keys = false)
	{
		static $cache = array();

		if (isset($cache[$table]))
		{
			return $cache[$table];
		}

		// *Careful* by default it's stored as array( 'field_name' => true, ... )
		$tmp = $this->_fields($table);
		$cache[$table] = array_combine($tmp, array_fill(0, count($tmp), true));

		if ($with_field_names_as_keys)
		{
			return $cache[$table];
		}
		else
		{
			return array_keys($cache[$table]);
		}
	}