@@ -113,15 +113,19 @@ fn parse_insert_default_values() {
113
113
114
114
match insert_with_default_values {
115
115
Statement :: Insert {
116
+ after_columns,
116
117
columns,
117
118
on,
119
+ partitioned,
118
120
returning,
119
121
source,
120
122
table_name,
121
123
..
122
124
} => {
123
125
assert_eq ! ( columns, vec![ ] ) ;
126
+ assert_eq ! ( after_columns, vec![ ] ) ;
124
127
assert_eq ! ( on, None ) ;
128
+ assert_eq ! ( partitioned, None ) ;
125
129
assert_eq ! ( returning, None ) ;
126
130
assert_eq ! ( source, None ) ;
127
131
assert_eq ! ( table_name, ObjectName ( vec![ "test_table" . into( ) ] ) ) ;
@@ -134,15 +138,19 @@ fn parse_insert_default_values() {
134
138
135
139
match insert_with_default_values_and_returning {
136
140
Statement :: Insert {
141
+ after_columns,
137
142
columns,
138
143
on,
144
+ partitioned,
139
145
returning,
140
146
source,
141
147
table_name,
142
148
..
143
149
} => {
150
+ assert_eq ! ( after_columns, vec![ ] ) ;
144
151
assert_eq ! ( columns, vec![ ] ) ;
145
152
assert_eq ! ( on, None ) ;
153
+ assert_eq ! ( partitioned, None ) ;
146
154
assert ! ( returning. is_some( ) ) ;
147
155
assert_eq ! ( source, None ) ;
148
156
assert_eq ! ( table_name, ObjectName ( vec![ "test_table" . into( ) ] ) ) ;
@@ -155,21 +163,53 @@ fn parse_insert_default_values() {
155
163
156
164
match insert_with_default_values_and_on_conflict {
157
165
Statement :: Insert {
166
+ after_columns,
158
167
columns,
159
168
on,
169
+ partitioned,
160
170
returning,
161
171
source,
162
172
table_name,
163
173
..
164
174
} => {
175
+ assert_eq ! ( after_columns, vec![ ] ) ;
165
176
assert_eq ! ( columns, vec![ ] ) ;
166
177
assert ! ( on. is_some( ) ) ;
178
+ assert_eq ! ( partitioned, None ) ;
167
179
assert_eq ! ( returning, None ) ;
168
180
assert_eq ! ( source, None ) ;
169
181
assert_eq ! ( table_name, ObjectName ( vec![ "test_table" . into( ) ] ) ) ;
170
182
}
171
183
_ => unreachable ! ( ) ,
172
184
}
185
+
186
+ let insert_with_columns_and_default_values = "INSERT INTO test_table (test_col) DEFAULT VALUES" ;
187
+ assert_eq ! (
188
+ ParserError :: ParserError (
189
+ "Expected SELECT, VALUES, or a subquery in the query body, found: DEFAULT" . to_string( )
190
+ ) ,
191
+ parse_sql_statements( insert_with_columns_and_default_values) . unwrap_err( )
192
+ ) ;
193
+
194
+ let insert_with_default_values_and_hive_after_columns =
195
+ "INSERT INTO test_table DEFAULT VALUES (some_column)" ;
196
+ assert_eq ! (
197
+ ParserError :: ParserError ( "Expected end of statement, found: (" . to_string( ) ) ,
198
+ parse_sql_statements( insert_with_default_values_and_hive_after_columns) . unwrap_err( )
199
+ ) ;
200
+
201
+ let insert_with_default_values_and_hive_partition =
202
+ "INSERT INTO test_table DEFAULT VALUES PARTITION (some_column)" ;
203
+ assert_eq ! (
204
+ ParserError :: ParserError ( "Expected end of statement, found: PARTITION" . to_string( ) ) ,
205
+ parse_sql_statements( insert_with_default_values_and_hive_partition) . unwrap_err( )
206
+ ) ;
207
+
208
+ let insert_with_default_values_and_values_list = "INSERT INTO test_table DEFAULT VALUES (1)" ;
209
+ assert_eq ! (
210
+ ParserError :: ParserError ( "Expected end of statement, found: (" . to_string( ) ) ,
211
+ parse_sql_statements( insert_with_default_values_and_values_list) . unwrap_err( )
212
+ ) ;
173
213
}
174
214
175
215
#[ test]
0 commit comments