FunctionInfo - Тип функции
=======================================================================

.. currentmodule:: axioma.core.sql

.. class:: FunctionInfo()

	Возможные типы функций и их наборы

	.. class:: Type()

		Тип функции

		.. csv-table:: Возможные типы функций :data:`Type`:
			:header: "Тип", "Значение", "Описание"

			``Plain``, 0, "Скалярная функция, возвращающая результат, определяемый только своими параметрами"
			``Scalar``, 0, "Скалярная функция"
			``Aggregate``, 1, "Обобщающая функция, возвращающая результат для группы записей"
			``Context``, 2, "Контекстная функция, возвращающая результат для каждой записи, исходя из текущего контекста исполнения (диалект Аксиомы, тип аналогичен оконному типу в диалекте sqlite)"
			``Window``, 3, "Оконная функция, возвращающая результат для каждой записи, исходя тем не менее из значений группы записей (диалект sqlite, тип аналогичен контекстному типу в диалекте Аксиомы)"

	.. class:: TypeMask()

		Наборы типов функций. Наборы могут объединяться путём сложения.

		.. csv-table:: Возможные наборы типов :data:`TypeMask`:
			:header: "Тип", "Значение", "Описание"

			``PlainMask``, 1, "Набор, состоящий только из скалярных функций"
			``ScalarMask``, 1, "Набор, состоящий только из скалярных функций"
			``AggregateMask``, 2, "Набор, состоящий только из обобщающих (агрегатных) функций"
			``ContextMask``, 4, "Набор, состоящий только из контекстных функций"
			``WindowMask``, 8, "Набор, состоящий только из оконных функций"
			``NoneMask``, 0, "Пустой набор"
			``FullMask``, 15, "Набор, состоящий из всех типов функций"
			``AggOrScalarMask``, 3, "Набор, состоящий из обобщающих и скалярных функций"
			``ContextOrScalarMask``, 5, "Набор, состоящий из контекстных и скалярных функций"

