@@ -6389,6 +6389,13 @@ func (p *Parser) parseShow() ast.Statement {
63896389 case token .SETTINGS :
63906390 show .ShowType = ast .ShowSettings
63916391 p .nextToken ()
6392+ case token .FULL :
6393+ // SHOW FULL COLUMNS/FIELDS FROM table - treat as ShowColumns
6394+ p .nextToken ()
6395+ if p .currentIs (token .COLUMNS ) || (p .currentIs (token .IDENT ) && strings .ToUpper (p .current .Value ) == "FIELDS" ) {
6396+ p .nextToken ()
6397+ }
6398+ show .ShowType = ast .ShowColumns
63926399 default :
63936400 // Handle SHOW PROCESSLIST, SHOW DICTIONARIES, SHOW FUNCTIONS, etc.
63946401 if p .currentIs (token .IDENT ) {
@@ -6402,9 +6409,18 @@ func (p *Parser) parseShow() ast.Statement {
64026409 show .ShowType = ast .ShowFunctions
64036410 case "SETTING" :
64046411 show .ShowType = ast .ShowSetting
6405- case "INDEXES" , "INDICES" , "KEYS" :
6406- // SHOW INDEXES/INDICES/KEYS FROM table - treat as ShowColumns
6412+ case "INDEXES" , "INDICES" , "KEYS" , "FIELDS" :
6413+ // SHOW INDEXES/INDICES/KEYS/FIELDS FROM table - treat as ShowColumns
64076414 show .ShowType = ast .ShowColumns
6415+ case "FULL" :
6416+ // SHOW FULL COLUMNS/FIELDS FROM table - treat as ShowColumns
6417+ p .nextToken ()
6418+ if p .currentIs (token .COLUMNS ) || (p .currentIs (token .IDENT ) && strings .ToUpper (p .current .Value ) == "FIELDS" ) {
6419+ p .nextToken ()
6420+ }
6421+ show .ShowType = ast .ShowColumns
6422+ // Don't consume another token, fall through to FROM parsing
6423+ goto parseFrom
64086424 case "EXTENDED" :
64096425 // SHOW EXTENDED INDEX FROM table - treat as ShowColumns
64106426 p .nextToken ()
0 commit comments