Skip to content

Commit 3686b1b

Browse files
committed
Add support for contraints in table valued function definitions
1 parent 10e3231 commit 3686b1b

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/parser/mod.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -9849,13 +9849,7 @@ impl<'a> Parser<'a> {
98499849
}
98509850

98519851
fn parse_returns_table_column(&mut self) -> Result<ColumnDef, ParserError> {
9852-
let name = self.parse_identifier()?;
9853-
let data_type = self.parse_data_type()?;
9854-
Ok(ColumnDef {
9855-
name,
9856-
data_type,
9857-
options: Vec::new(), // No constraints expected here
9858-
})
9852+
Ok(self.parse_column_def()?)
98599853
}
98609854

98619855
fn parse_returns_table_columns(&mut self) -> Result<Vec<ColumnDef>, ParserError> {

tests/sqlparser_mssql.rs

+11
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,17 @@ fn parse_create_function() {
327327
&create_multi_statement_table_value_function_without_as,
328328
create_multi_statement_table_value_function,
329329
);
330+
331+
let create_multi_statement_table_value_function_with_constraints = "\
332+
CREATE FUNCTION some_multi_statement_tvf(@foo INT, @bar VARCHAR(256)) \
333+
RETURNS @t TABLE (col_1 INT NOT NULL) \
334+
AS \
335+
BEGIN \
336+
INSERT INTO @t SELECT 1; \
337+
RETURN @t; \
338+
END\
339+
";
340+
let _ = ms().verified_stmt(create_multi_statement_table_value_function_with_constraints);
330341
}
331342

332343
#[test]

0 commit comments

Comments
 (0)