{
    "query": "INSERT INTO table_name WITH cte (col1) AS ( INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3) ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3",
    "lexer": {
        "@type": "PhpMyAdmin\\SqlParser\\Lexer",
        "str": "INSERT INTO table_name WITH cte (col1) AS ( INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3) ) SELECT col1 FROM cte ON DUPLICATE KEY UPDATE col_name = 3",
        "len": 186,
        "last": 186,
        "list": {
            "@type": "PhpMyAdmin\\SqlParser\\TokensList",
            "tokens": [
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "INSERT",
                    "value": "INSERT",
                    "keyword": "INSERT",
                    "type": 1,
                    "flags": 35,
                    "position": 0
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 6
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "INTO",
                    "value": "INTO",
                    "keyword": "INTO",
                    "type": 1,
                    "flags": 3,
                    "position": 7
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 11
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "table_name",
                    "value": "table_name",
                    "keyword": "TABLE_NAME",
                    "type": 1,
                    "flags": 1,
                    "position": 12
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 22
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "WITH",
                    "value": "WITH",
                    "keyword": "WITH",
                    "type": 1,
                    "flags": 3,
                    "position": 23
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 27
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "cte",
                    "value": "cte",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 28
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 31
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "(",
                    "value": "(",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 32
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "col1",
                    "value": "col1",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 33
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ")",
                    "value": ")",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 37
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 38
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "AS",
                    "value": "AS",
                    "keyword": "AS",
                    "type": 1,
                    "flags": 3,
                    "position": 39
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 41
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "(",
                    "value": "(",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 42
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 43
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "INSERT",
                    "value": "INSERT",
                    "keyword": "INSERT",
                    "type": 1,
                    "flags": 35,
                    "position": 44
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 50
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "INTO",
                    "value": "INTO",
                    "keyword": "INTO",
                    "type": 1,
                    "flags": 3,
                    "position": 51
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 55
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "table_name",
                    "value": "table_name",
                    "keyword": "TABLE_NAME",
                    "type": 1,
                    "flags": 1,
                    "position": 56
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 66
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "(",
                    "value": "(",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 67
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "column1",
                    "value": "column1",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 68
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ",",
                    "value": ",",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 75
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 76
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "column2",
                    "value": "column2",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 77
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ",",
                    "value": ",",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 84
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 85
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "column3",
                    "value": "column3",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 86
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ")",
                    "value": ")",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 93
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 94
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "VALUES",
                    "value": "VALUES",
                    "keyword": "VALUES",
                    "type": 1,
                    "flags": 35,
                    "position": 95
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 101
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "(",
                    "value": "(",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 102
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "value1",
                    "value": "value1",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 103
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ",",
                    "value": ",",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 109
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 110
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "value2",
                    "value": "value2",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 111
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ",",
                    "value": ",",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 117
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 118
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "value3",
                    "value": "value3",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 119
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ")",
                    "value": ")",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 125
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 126
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": ")",
                    "value": ")",
                    "keyword": null,
                    "type": 2,
                    "flags": 16,
                    "position": 127
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 128
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "SELECT",
                    "value": "SELECT",
                    "keyword": "SELECT",
                    "type": 1,
                    "flags": 3,
                    "position": 129
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 135
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "col1",
                    "value": "col1",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 136
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 140
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "FROM",
                    "value": "FROM",
                    "keyword": "FROM",
                    "type": 1,
                    "flags": 3,
                    "position": 141
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 145
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "cte",
                    "value": "cte",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 146
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 149
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "ON",
                    "value": "ON",
                    "keyword": "ON",
                    "type": 1,
                    "flags": 3,
                    "position": 150
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 152
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "DUPLICATE",
                    "value": "DUPLICATE",
                    "keyword": "DUPLICATE",
                    "type": 1,
                    "flags": 1,
                    "position": 153
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 162
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "KEY",
                    "value": "KEY",
                    "keyword": "KEY",
                    "type": 1,
                    "flags": 19,
                    "position": 163
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 166
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "UPDATE",
                    "value": "UPDATE",
                    "keyword": "UPDATE",
                    "type": 1,
                    "flags": 3,
                    "position": 167
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 173
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "col_name",
                    "value": "col_name",
                    "keyword": null,
                    "type": 0,
                    "flags": 0,
                    "position": 174
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 182
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "=",
                    "value": "=",
                    "keyword": null,
                    "type": 2,
                    "flags": 2,
                    "position": 183
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": " ",
                    "value": " ",
                    "keyword": null,
                    "type": 3,
                    "flags": 0,
                    "position": 184
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": "3",
                    "value": 3,
                    "keyword": null,
                    "type": 6,
                    "flags": 0,
                    "position": 185
                },
                {
                    "@type": "PhpMyAdmin\\SqlParser\\Token",
                    "token": null,
                    "value": null,
                    "keyword": null,
                    "type": 9,
                    "flags": 0,
                    "position": null
                }
            ],
            "count": 70,
            "idx": 71
        },
        "delimiter": ";",
        "delimiterLen": 1,
        "strict": false,
        "errors": []
    },
    "parser": {
        "@type": "PhpMyAdmin\\SqlParser\\Parser",
        "list": {
            "@type": "@1"
        },
        "statements": [
            {
                "@type": "PhpMyAdmin\\SqlParser\\Statements\\InsertStatement",
                "into": {
                    "@type": "PhpMyAdmin\\SqlParser\\Components\\IntoKeyword",
                    "type": null,
                    "dest": {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
                        "database": null,
                        "table": "table_name",
                        "column": null,
                        "expr": "table_name",
                        "alias": null,
                        "function": null,
                        "subquery": null
                    },
                    "columns": null,
                    "values": null,
                    "fields_options": null,
                    "fields_keyword": null,
                    "lines_options": null
                },
                "values": null,
                "set": null,
                "select": null,
                "with": {
                    "@type": "PhpMyAdmin\\SqlParser\\Statements\\WithStatement",
                    "withers": {
                        "cte": {
                            "@type": "PhpMyAdmin\\SqlParser\\Components\\WithKeyword",
                            "name": "cte",
                            "columns": [
                                {
                                    "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj",
                                    "raw": [
                                        "col1"
                                    ],
                                    "values": [
                                        "col1"
                                    ]
                                }
                            ],
                            "statement": null
                        }
                    },
                    "cteStatementParser": null,
                    "options": {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
                        "options": []
                    },
                    "first": null,
                    "last": null
                },
                "onDuplicateSet": null,
                "options": {
                    "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
                    "options": []
                },
                "first": 0,
                "last": 15
            },
            {
                "@type": "PhpMyAdmin\\SqlParser\\Statements\\InsertStatement",
                "into": {
                    "@type": "PhpMyAdmin\\SqlParser\\Components\\IntoKeyword",
                    "type": null,
                    "dest": {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
                        "database": null,
                        "table": "table_name",
                        "column": null,
                        "expr": "table_name",
                        "alias": null,
                        "function": null,
                        "subquery": null
                    },
                    "columns": [
                        "column1",
                        "column2",
                        "column3"
                    ],
                    "values": null,
                    "fields_options": null,
                    "fields_keyword": null,
                    "lines_options": null
                },
                "values": [
                    {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\ArrayObj",
                        "raw": [
                            "value1",
                            "value2",
                            "value3"
                        ],
                        "values": [
                            "value1",
                            "value2",
                            "value3"
                        ]
                    }
                ],
                "set": null,
                "select": null,
                "with": null,
                "onDuplicateSet": null,
                "options": {
                    "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
                    "options": []
                },
                "first": 16,
                "last": 45
            },
            {
                "@type": "PhpMyAdmin\\SqlParser\\Statements\\SelectStatement",
                "expr": [
                    {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
                        "database": null,
                        "table": null,
                        "column": "col1",
                        "expr": "col1",
                        "alias": null,
                        "function": null,
                        "subquery": null
                    }
                ],
                "from": [
                    {
                        "@type": "PhpMyAdmin\\SqlParser\\Components\\Expression",
                        "database": null,
                        "table": "cte",
                        "column": null,
                        "expr": "cte",
                        "alias": null,
                        "function": null,
                        "subquery": null
                    }
                ],
                "index_hints": null,
                "partition": null,
                "where": null,
                "group": null,
                "group_options": null,
                "having": null,
                "order": null,
                "limit": null,
                "procedure": null,
                "into": null,
                "join": null,
                "union": [],
                "end_options": null,
                "options": {
                    "@type": "PhpMyAdmin\\SqlParser\\Components\\OptionsArray",
                    "options": []
                },
                "first": 46,
                "last": 55
            }
        ],
        "brackets": 1,
        "strict": false,
        "errors": []
    },
    "errors": {
        "lexer": [],
        "parser": [
            [
                "Subquery of the CTE was expected.",
                {
                    "@type": "@18"
                },
                0
            ],
            [
                "Unexpected end of the WITH CTE.",
                {
                    "@type": "@18"
                },
                0
            ],
            [
                "Unexpected token.",
                {
                    "@type": "@18"
                },
                0
            ],
            [
                "Unexpected token.",
                {
                    "@type": "@48"
                },
                0
            ],
            [
                "Unrecognized statement type.",
                {
                    "@type": "@58"
                },
                0
            ]
        ]
    }
}