Member Junction
    Preparing search index...

    Variable MJQueryDiagnosticCodesConst

    MJQueryDiagnosticCodes: {
        ArithmeticInHole: "MJQ_ARITHMETIC_IN_HOLE";
        CompositionCycle: "MJQ_COMPOSITION_CYCLE";
        CompositionDuplicateArgument: "MJQ_COMPOSITION_DUPLICATE_ARGUMENT";
        CompositionImplicitArgument: "MJQ_COMPOSITION_IMPLICIT_ARGUMENT";
        CompositionMalformed: "MJQ_COMPOSITION_MALFORMED";
        CompositionMissingArgument: "MJQ_COMPOSITION_MISSING_ARGUMENT";
        CompositionNotFound: "MJQ_COMPOSITION_NOT_FOUND";
        CompositionNotReusable: "MJQ_COMPOSITION_NOT_REUSABLE";
        CompositionPartialPath: "MJQ_COMPOSITION_PARTIAL_PATH";
        CompositionPosition: "MJQ_COMPOSITION_POSITION";
        CompositionUnchecked: "MJQ_COMPOSITION_UNCHECKED";
        CompositionUnknownArgument: "MJQ_COMPOSITION_UNKNOWN_ARGUMENT";
        DefaultNotLiteral: "MJQ_DEFAULT_NOT_LITERAL";
        DocDuplicate: "MJQ_DOC_DUPLICATE";
        DocMissingName: "MJQ_DOC_MISSING_NAME";
        DocTrailingAmbiguous: "MJQ_DOC_TRAILING_AMBIGUOUS";
        DocUnknownParameter: "MJQ_DOC_UNKNOWN_PARAMETER";
        DocUnknownTag: "MJQ_DOC_UNKNOWN_TAG";
        ExpressionInComment: "MJQ_EXPRESSION_IN_COMMENT";
        FilterTypeMismatch: "MJQ_FILTER_TYPE_MISMATCH";
        ForIterable: "MJQ_FOR_ITERABLE";
        FunctionCall: "MJQ_FUNCTION_CALL";
        HoleNotAValue: "MJQ_HOLE_NOT_A_VALUE";
        InlineIf: "MJQ_INLINE_IF";
        LoopOutsideFor: "MJQ_LOOP_OUTSIDE_FOR";
        MemberAccess: "MJQ_MEMBER_ACCESS";
        ParameterTypeConflict: "MJQ_PARAMETER_TYPE_CONFLICT";
        Subscript: "MJQ_SUBSCRIPT";
        Syntax: "MJQ_SYNTAX";
        TagInQuotedIdentifier: "MJQ_TAG_IN_QUOTED_IDENTIFIER";
        TagInStringLiteral: "MJQ_TAG_IN_STRING_LITERAL";
        UnclosedBlock: "MJQ_UNCLOSED_BLOCK";
        UnclosedTag: "MJQ_UNCLOSED_TAG";
        UnexpectedTag: "MJQ_UNEXPECTED_TAG";
        UnfilteredUntyped: "MJQ_UNFILTERED_UNTYPED";
        UnfilteredValue: "MJQ_UNFILTERED_VALUE";
        UnknownContextToken: "MJQ_UNKNOWN_CONTEXT_TOKEN";
        UnknownFilter: "MJQ_UNKNOWN_FILTER";
        UnsupportedOperator: "MJQ_UNSUPPORTED_OPERATOR";
        UnsupportedTag: "MJQ_UNSUPPORTED_TAG";
    } = ...

    Every diagnostic code the MJ Query language reports, with the rule it stands for. Codes are stable: a code is never renamed or reused for another rule. guides/MJ_QUERY_LANGUAGE.md documents each one with an example and its fix.

    Type Declaration

    • ReadonlyArithmeticInHole: "MJQ_ARITHMETIC_IN_HOLE"

      An operator inside a {{ }} hole.

    • ReadonlyCompositionCycle: "MJQ_COMPOSITION_CYCLE"

      Compositions that lead back to a query already being composed.

    • ReadonlyCompositionDuplicateArgument: "MJQ_COMPOSITION_DUPLICATE_ARGUMENT"

      The same argument passed twice.

    • ReadonlyCompositionImplicitArgument: "MJQ_COMPOSITION_IMPLICIT_ARGUMENT"

      An unpassed parameter of the composed query has the same name as an outer parameter.

    • ReadonlyCompositionMalformed: "MJQ_COMPOSITION_MALFORMED"

      A {{query:"…"}} token whose path or argument list does not parse.

    • ReadonlyCompositionMissingArgument: "MJQ_COMPOSITION_MISSING_ARGUMENT"

      A required parameter of the composed query is not passed.

    • ReadonlyCompositionNotFound: "MJQ_COMPOSITION_NOT_FOUND"

      The composed query does not exist at that full path.

    • ReadonlyCompositionNotReusable: "MJQ_COMPOSITION_NOT_REUSABLE"

      The composed query is not marked Reusable.

    • ReadonlyCompositionPartialPath: "MJQ_COMPOSITION_PARTIAL_PATH"

      The path names the composed query by part of its category path (a whole-segment suffix of exactly one query's). It runs, with a warning; save refuses it.

    • ReadonlyCompositionPosition: "MJQ_COMPOSITION_POSITION"

      A composition outside a FROM / JOIN / comma table-source position.

    • ReadonlyCompositionUnchecked: "MJQ_COMPOSITION_UNCHECKED"

      No resolver was supplied, so the composed queries were not checked.

    • ReadonlyCompositionUnknownArgument: "MJQ_COMPOSITION_UNKNOWN_ARGUMENT"

      An argument name the composed query does not declare.

    • ReadonlyDefaultNotLiteral: "MJQ_DEFAULT_NOT_LITERAL"

      A default(…) whose argument is not a literal.

    • ReadonlyDocDuplicate: "MJQ_DOC_DUPLICATE"

      Two descriptions for the same parameter or field.

    • ReadonlyDocMissingName: "MJQ_DOC_MISSING_NAME"

      An @param or @field with no name.

    • ReadonlyDocTrailingAmbiguous: "MJQ_DOC_TRAILING_AMBIGUOUS"

      A --: comment that cannot be attached to exactly one select item.

    • ReadonlyDocUnknownParameter: "MJQ_DOC_UNKNOWN_PARAMETER"

      An @param naming something that is not a parameter of the query.

    • ReadonlyDocUnknownTag: "MJQ_DOC_UNKNOWN_TAG"

      An @tag in a {# #} doc comment other than @param and @field.

    • ReadonlyExpressionInComment: "MJQ_EXPRESSION_IN_COMMENT"

      Info: a template tag inside a SQL comment, which is inert (comments are removed before rendering).

    • ReadonlyFilterTypeMismatch: "MJQ_FILTER_TYPE_MISMATCH"

      A SQL filter that does not fit the parameter's declared type.

    • ReadonlyForIterable: "MJQ_FOR_ITERABLE"

      A {% for %} whose iterable is not an array parameter, or that has an unsupported shape.

    • ReadonlyFunctionCall: "MJQ_FUNCTION_CALL"

      A function or method call in an expression.

    • ReadonlyHoleNotAValue: "MJQ_HOLE_NOT_A_VALUE"

      A {{ }} hole that does not start from a parameter, a Context token or a loop value.

    • ReadonlyInlineIf: "MJQ_INLINE_IF"

      No longer reported: the inline a if b else c is part of the language. The code is kept so it is never reused for another rule.

    • ReadonlyLoopOutsideFor: "MJQ_LOOP_OUTSIDE_FOR"

      loop.<member> outside a {% for %} body, or an unknown loop member.

    • ReadonlyMemberAccess: "MJQ_MEMBER_ACCESS"

      Attribute access other than Context.<Token>, loop.<member> and <name>.length.

    • ReadonlyParameterTypeConflict: "MJQ_PARAMETER_TYPE_CONFLICT"

      Two uses of one parameter imply different types.

    • ReadonlySubscript: "MJQ_SUBSCRIPT"

      A subscript (x[0], x['k']) in an expression.

    • ReadonlySyntax: "MJQ_SYNTAX"

      A tag body that does not parse.

    • ReadonlyTagInQuotedIdentifier: "MJQ_TAG_IN_QUOTED_IDENTIFIER"

      A template tag inside a SQL quoted identifier.

    • ReadonlyTagInStringLiteral: "MJQ_TAG_IN_STRING_LITERAL"

      A template tag inside a SQL string literal.

    • ReadonlyUnclosedBlock: "MJQ_UNCLOSED_BLOCK"

      An {% if %} or {% for %} with no {% endif %} / {% endfor %}.

    • ReadonlyUnclosedTag: "MJQ_UNCLOSED_TAG"

      A {{, {% or {# with no closing }}, %} or #}.

    • ReadonlyUnexpectedTag: "MJQ_UNEXPECTED_TAG"

      An {% elif %}, {% else %}, {% endif %} or {% endfor %} with no block to belong to.

    • ReadonlyUnfilteredUntyped: "MJQ_UNFILTERED_UNTYPED"

      A value written without a filter whose type is not known.

    • ReadonlyUnfilteredValue: "MJQ_UNFILTERED_VALUE"

      A string, array or date value written into the SQL without an MJ SQL filter.

    • ReadonlyUnknownContextToken: "MJQ_UNKNOWN_CONTEXT_TOKEN"

      A Context.<Token> that is not one of the defined tokens.

    • ReadonlyUnknownFilter: "MJQ_UNKNOWN_FILTER"

      A filter that is not one of the MJ SQL filters or default.

    • ReadonlyUnsupportedOperator: "MJQ_UNSUPPORTED_OPERATOR"

      An operator outside the grammar (in, is, ~, **, //, list or object literals).

    • ReadonlyUnsupportedTag: "MJQ_UNSUPPORTED_TAG"

      A block tag outside the allow-list (macro, include, import, extends, block, call, filter, raw, …).