# -*- coding: utf-8 -*-
# :Project:   pglast — DO NOT EDIT: type stubs automatically extracted from primnodes.h @ 18-latest-0-g6ced8d4
# :Author:    Lele Gaifax <lele@metapensiero.it>
# :License:   GNU General Public License version 3 or later
# :Copyright: © 2017-2026 Lele Gaifax
#

from enum import IntEnum


class BoolExprType(IntEnum):
    AND_EXPR = ...
    OR_EXPR = ...
    NOT_EXPR = ...


class BoolTestType(IntEnum):
    IS_TRUE = ...
    IS_NOT_TRUE = ...
    IS_FALSE = ...
    IS_NOT_FALSE = ...
    IS_UNKNOWN = ...
    IS_NOT_UNKNOWN = ...


class CoercionContext(IntEnum):
    COERCION_IMPLICIT = ...
    COERCION_ASSIGNMENT = ...
    COERCION_PLPGSQL = ...
    COERCION_EXPLICIT = ...


class CoercionForm(IntEnum):
    COERCE_EXPLICIT_CALL = ...
    COERCE_EXPLICIT_CAST = ...
    COERCE_IMPLICIT_CAST = ...
    COERCE_SQL_SYNTAX = ...


class JsonBehaviorType(IntEnum):
    JSON_BEHAVIOR_NULL = ...
    JSON_BEHAVIOR_ERROR = ...
    JSON_BEHAVIOR_EMPTY = ...
    JSON_BEHAVIOR_TRUE = ...
    JSON_BEHAVIOR_FALSE = ...
    JSON_BEHAVIOR_UNKNOWN = ...
    JSON_BEHAVIOR_EMPTY_ARRAY = ...
    JSON_BEHAVIOR_EMPTY_OBJECT = ...
    JSON_BEHAVIOR_DEFAULT = ...


class JsonConstructorType(IntEnum):
    JSCTOR_JSON_OBJECT = ...
    JSCTOR_JSON_ARRAY = ...
    JSCTOR_JSON_OBJECTAGG = ...
    JSCTOR_JSON_ARRAYAGG = ...
    JSCTOR_JSON_PARSE = ...
    JSCTOR_JSON_SCALAR = ...
    JSCTOR_JSON_SERIALIZE = ...


class JsonEncoding(IntEnum):
    JS_ENC_DEFAULT = ...
    JS_ENC_UTF8 = ...
    JS_ENC_UTF16 = ...
    JS_ENC_UTF32 = ...


class JsonExprOp(IntEnum):
    JSON_EXISTS_OP = ...
    JSON_QUERY_OP = ...
    JSON_VALUE_OP = ...
    JSON_TABLE_OP = ...


class JsonFormatType(IntEnum):
    JS_FORMAT_DEFAULT = ...
    JS_FORMAT_JSON = ...
    JS_FORMAT_JSONB = ...


class JsonValueType(IntEnum):
    JS_TYPE_ANY = ...
    JS_TYPE_OBJECT = ...
    JS_TYPE_ARRAY = ...
    JS_TYPE_SCALAR = ...


class JsonWrapper(IntEnum):
    JSW_UNSPEC = ...
    JSW_NONE = ...
    JSW_CONDITIONAL = ...
    JSW_UNCONDITIONAL = ...


class MergeMatchKind(IntEnum):
    MERGE_WHEN_MATCHED = ...
    MERGE_WHEN_NOT_MATCHED_BY_SOURCE = ...
    MERGE_WHEN_NOT_MATCHED_BY_TARGET = ...


class MinMaxOp(IntEnum):
    IS_GREATEST = ...
    IS_LEAST = ...


class NullTestType(IntEnum):
    IS_NULL = ...
    IS_NOT_NULL = ...


class OnCommitAction(IntEnum):
    ONCOMMIT_NOOP = ...
    ONCOMMIT_PRESERVE_ROWS = ...
    ONCOMMIT_DELETE_ROWS = ...
    ONCOMMIT_DROP = ...


class OverridingKind(IntEnum):
    OVERRIDING_NOT_SET = ...
    OVERRIDING_USER_VALUE = ...
    OVERRIDING_SYSTEM_VALUE = ...


class ParamKind(IntEnum):
    PARAM_EXTERN = ...
    PARAM_EXEC = ...
    PARAM_SUBLINK = ...
    PARAM_MULTIEXPR = ...


class SQLValueFunctionOp(IntEnum):
    SVFOP_CURRENT_DATE = ...
    SVFOP_CURRENT_TIME = ...
    SVFOP_CURRENT_TIME_N = ...
    SVFOP_CURRENT_TIMESTAMP = ...
    SVFOP_CURRENT_TIMESTAMP_N = ...
    SVFOP_LOCALTIME = ...
    SVFOP_LOCALTIME_N = ...
    SVFOP_LOCALTIMESTAMP = ...
    SVFOP_LOCALTIMESTAMP_N = ...
    SVFOP_CURRENT_ROLE = ...
    SVFOP_CURRENT_USER = ...
    SVFOP_USER = ...
    SVFOP_SESSION_USER = ...
    SVFOP_CURRENT_CATALOG = ...
    SVFOP_CURRENT_SCHEMA = ...


class SubLinkType(IntEnum):
    EXISTS_SUBLINK = ...
    ALL_SUBLINK = ...
    ANY_SUBLINK = ...
    ROWCOMPARE_SUBLINK = ...
    EXPR_SUBLINK = ...
    MULTIEXPR_SUBLINK = ...
    ARRAY_SUBLINK = ...
    CTE_SUBLINK = ...


class TableFuncType(IntEnum):
    TFT_XMLTABLE = ...
    TFT_JSON_TABLE = ...


class VarReturningType(IntEnum):
    VAR_RETURNING_DEFAULT = ...
    VAR_RETURNING_OLD = ...
    VAR_RETURNING_NEW = ...


class XmlExprOp(IntEnum):
    IS_XMLCONCAT = ...
    IS_XMLELEMENT = ...
    IS_XMLFOREST = ...
    IS_XMLPARSE = ...
    IS_XMLPI = ...
    IS_XMLROOT = ...
    IS_XMLSERIALIZE = ...
    IS_DOCUMENT = ...


class XmlOptionType(IntEnum):
    XMLOPTION_DOCUMENT = ...
    XMLOPTION_CONTENT = ...
