Dialect - Интерфейс создания sql-запросов к таблицам
=======================================================

.. currentmodule:: axioma.core.sql

.. class:: Dialect()

	Интерфейс получения информации, создания sql-запросов и выражений.

	Типы идентификаторов

	.. csv-table:: Типы идентификаторов диалектов :data:`IdType`:
		:header: "Тип", "Значение", "Описание"

		``Mnemonic``, 0, "Строчный идентификатор для внутреннего использования"
		``Name``, 1, "Строчный идентификатор для использования, например, в графическом интерфейсе"
		``Enum``, 2, "Числовой идентификатор, использованный при создании диалекта"


Методы:

	.. method:: id(type)

		Получить идентификатор диалекта

		:param type: Интересующий тип идентификатора
		:type type: :class:`~axioma.core.sql.Dialect.IdType`
		:return: Идентификатор диалекта
		:rtype: :class:`~PyQt5.QtCore.QVariant`

	.. method:: constructQuery(query, tableContext)

		Создать sql-запрос с указанным набором таблиц

		:param query: Строка с запросом (используются правила MapInfo)
		:type query: :class:`str`
		:param tableContext: Контекст обращения к таблицам
		:type tableContext: :class:`~axioma.core.sql.TableContext`
		:return: Интерфейс sql-запроса
		:rtype: :class:`~axioma.core.sql.DialectQuery`

	.. method:: constructExpression(tableSchema)

		Создать sql-выражение, использующее указанную схему

		:param tableSchema: Описание колонок, используемых в выражении
		:type tableSchema: :class:`~axioma.core.dp.TableSchema`
		:return: Интерфейс sql-выражения
		:rtype: :class:`~axioma.core.sql.DialectExpression`

	.. method:: operatorSet()

		Получить набор операторов, доступных в sql-диалекте

		:return: Набор операторов
		:rtype: :class:`~axioma.core.sql.OperatorSet`

	.. method:: functionSet()

		Получить набор функций, доступных в sql-диалекте

		:return: Набор функций
		:rtype: :class:`~axioma.core.sql.FunctionSet`

.. function:: axiomaDialect()

	Возвращает диалект sql-запросов в формате Аксиомы

	:class:`~axioma.core.sql.Dialect`

.. function:: spatialiteDialect()

	Возвращает диалект sql-запросов в формате sqlite

	:class:`~axioma.core.sql.Dialect`

.. function:: defaultDialect()

	Возвращает диалект sql-запросов, используемый в системе по умолчанию

	:class:`~axioma.core.sql.Dialect`
