From b3a2a6be48700e26c2cbb607745ac99b688dac31 Mon Sep 17 00:00:00 2001 From: Nikhil Benesch Date: Wed, 29 May 2019 16:48:04 -0400 Subject: [PATCH] Support CREATE TABLE with no columns This is weird, but supported by PostgreSQL. --- src/sqlparser.rs | 2 +- tests/sqlparser_common.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/sqlparser.rs b/src/sqlparser.rs index 85121eef..ca1d5ba5 100644 --- a/src/sqlparser.rs +++ b/src/sqlparser.rs @@ -833,7 +833,7 @@ impl Parser { fn parse_columns(&mut self) -> Result<(Vec, Vec), ParserError> { let mut columns = vec![]; let mut constraints = vec![]; - if !self.consume_token(&Token::LParen) { + if !self.consume_token(&Token::LParen) || self.consume_token(&Token::RParen) { return Ok((columns, constraints)); } diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index ab5ce4d2..badce3d2 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -820,6 +820,12 @@ fn parse_create_external_table() { } } +#[test] +fn parse_create_table_empty() { + // Zero-column tables are weird, but supported by at least PostgreSQL. + let _ = verified_stmt("CREATE TABLE t ()"); +} + #[test] fn parse_alter_table_constraints() { check_one("CONSTRAINT address_pkey PRIMARY KEY (address_id)");