Parse a SQL CREATE statement
(&mut self)
| 2036 | |
| 2037 | /// Parse a SQL CREATE statement |
| 2038 | fn parse_create(&mut self) -> Result<Statement<Raw>, ParserStatementError> { |
| 2039 | if self.peek_keyword(DATABASE) { |
| 2040 | self.parse_create_database() |
| 2041 | .map_parser_err(StatementKind::CreateDatabase) |
| 2042 | } else if self.peek_keyword(SCHEMA) { |
| 2043 | self.parse_create_schema() |
| 2044 | .map_parser_err(StatementKind::CreateSchema) |
| 2045 | } else if self.peek_keyword(SINK) { |
| 2046 | self.parse_create_sink() |
| 2047 | .map_parser_err(StatementKind::CreateSink) |
| 2048 | } else if self.peek_keyword(TYPE) { |
| 2049 | self.parse_create_type() |
| 2050 | .map_parser_err(StatementKind::CreateType) |
| 2051 | } else if self.peek_keyword(ROLE) { |
| 2052 | self.parse_create_role() |
| 2053 | .map_parser_err(StatementKind::CreateRole) |
| 2054 | } else if self.peek_keyword(CLUSTER) { |
| 2055 | self.next_token(); |
| 2056 | if self.peek_keyword(REPLICA) { |
| 2057 | self.parse_create_cluster_replica() |
| 2058 | .map_parser_err(StatementKind::CreateClusterReplica) |
| 2059 | } else { |
| 2060 | self.parse_create_cluster() |
| 2061 | .map_parser_err(StatementKind::CreateCluster) |
| 2062 | } |
| 2063 | } else if self.peek_keyword(INDEX) || self.peek_keywords(&[DEFAULT, INDEX]) { |
| 2064 | self.parse_create_index() |
| 2065 | .map_parser_err(StatementKind::CreateIndex) |
| 2066 | } else if self.peek_keyword(SOURCE) { |
| 2067 | self.parse_create_source() |
| 2068 | .map_parser_err(StatementKind::CreateSource) |
| 2069 | } else if self.peek_keyword(SUBSOURCE) { |
| 2070 | self.parse_create_subsource() |
| 2071 | .map_parser_err(StatementKind::CreateSubsource) |
| 2072 | } else if self.peek_keyword(TABLE) |
| 2073 | || self.peek_keywords(&[TEMP, TABLE]) |
| 2074 | || self.peek_keywords(&[TEMPORARY, TABLE]) |
| 2075 | { |
| 2076 | if self.peek_keywords_lookahead(&[FROM, SOURCE]) |
| 2077 | || self.peek_keywords_lookahead(&[FROM, WEBHOOK]) |
| 2078 | { |
| 2079 | self.parse_create_table_from_source() |
| 2080 | .map_parser_err(StatementKind::CreateTableFromSource) |
| 2081 | } else { |
| 2082 | self.parse_create_table() |
| 2083 | .map_parser_err(StatementKind::CreateTable) |
| 2084 | } |
| 2085 | } else if self.peek_keyword(SECRET) { |
| 2086 | self.parse_create_secret() |
| 2087 | .map_parser_err(StatementKind::CreateSecret) |
| 2088 | } else if self.peek_keyword(CONNECTION) { |
| 2089 | self.parse_create_connection() |
| 2090 | .map_parser_err(StatementKind::CreateConnection) |
| 2091 | } else if self.peek_keywords(&[MATERIALIZED, VIEW]) |
| 2092 | || self.peek_keywords(&[OR, REPLACE, MATERIALIZED, VIEW]) |
| 2093 | || self.peek_keywords(&[REPLACEMENT, MATERIALIZED, VIEW]) |
| 2094 | || self.peek_keywords(&[OR, REPLACE, REPLACEMENT, MATERIALIZED, VIEW]) |
| 2095 | { |
no test coverage detected