Skip to content

Commit 005b31c

Browse files
sundy-lizhyass
andauthored
fix: insert long sql again (#16684)
* fix: insert long sql v21 * fix: insert long sql v21 * fix: insert long sql v21 --------- Co-authored-by: zhya <[email protected]>
1 parent 24861ac commit 005b31c

File tree

2 files changed

+52
-5
lines changed

2 files changed

+52
-5
lines changed

src/query/sql/src/planner/planner.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,27 @@ impl Planner {
176176
}
177177
};
178178

179-
let mut insert_values_stmt = false;
179+
let mut maybe_partial_insert = false;
180+
180181
if is_insert_or_replace_stmt && matches!(tokenizer.peek(), Some(Ok(_))) {
181182
if let Ok(PlanExtras {
182183
statement:
183184
Statement::Insert(InsertStmt {
184-
source: InsertSource::RawValues { .. },
185+
source: InsertSource::Select { .. },
185186
..
186187
}),
187188
..
188189
}) = &res
189190
{
190-
insert_values_stmt = true;
191+
maybe_partial_insert = true;
191192
}
192193
}
193194

194-
if insert_values_stmt || (res.is_err() && matches!(tokenizer.peek(), Some(Ok(_)))) {
195+
if (maybe_partial_insert || res.is_err()) && matches!(tokenizer.peek(), Some(Ok(_))) {
195196
// Remove the EOI.
196197
tokens.pop();
197198
// Tokenize more and try again.
198-
if !insert_values_stmt && tokens.len() < PROBE_INSERT_MAX_TOKENS {
199+
if !maybe_partial_insert && tokens.len() < PROBE_INSERT_MAX_TOKENS {
199200
let iter = (&mut tokenizer)
200201
.take(tokens.len() * 2)
201202
.take_while(|token| token.is_ok())

tests/sqllogictests/suites/base/03_common/03_0016_insert_into_values.test

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,52 @@ select * from ts1
6666
----
6767
2023-02-17 07:56:36.564000
6868

69+
statement ok
70+
create table my_table(column1 string, column2 string, column3 string);
71+
72+
statement ok
73+
INSERT INTO my_table (column1, column2, column3) VALUES
74+
('value1_1', 'value1_2', 'value1_3'),
75+
('value2_1', 'value2_2', 'value2_3'),
76+
('value3_1', 'value3_2', 'value3_3'),
77+
('value4_1', 'value4_2', 'value4_3'),
78+
('value5_1', 'value5_2', 'value5_3'),
79+
('value6_1', 'value6_2', 'value6_3'),
80+
('value7_1', 'value7_2', 'value7_3'),
81+
('value8_1', 'value8_2', 'value8_3'),
82+
('value9_1', 'value9_2', 'value9_3'),
83+
('value10_1', 'value10_2', 'value10_3'),
84+
('value11_1', 'value11_2', 'value11_3'),
85+
('value12_1', 'value12_2', 'value12_3'),
86+
('value13_1', 'value13_2', 'value13_3'),
87+
('value14_1', 'value14_2', 'value14_3'),
88+
('value15_1', 'value15_2', 'value15_3'),
89+
('value16_1', 'value16_2', 'value16_3'),
90+
('value17_1', 'value17_2', 'value17_3'),
91+
('value18_1', 'value18_2', 'value18_3'),
92+
('value19_1', 'value19_2', 'value19_3'),
93+
('value20_1', 'value20_2', 'value20_3'),
94+
('value21_1', 'value21_2', 'value21_3'),
95+
('value22_1', 'value22_2', 'value22_3'),
96+
('value23_1', 'value23_2', 'value23_3'),
97+
('value24_1', 'value24_2', 'value24_3'),
98+
('value25_1', 'value25_2', 'value25_3'),
99+
('value26_1', 'value26_2', 'value26_3'),
100+
('value27_1', 'value27_2', 'value27_3'),
101+
('value28_1', 'value28_2', 'value28_3'),
102+
('value29_1', 'value29_2', 'value29_3'),
103+
('value30_1', 'value30_2', 'value30_3'),
104+
('value31_1', 'value31_2', 'value31_3'),
105+
('value32_1', 'value32_2', 'value32_3');
106+
107+
query TTTI
108+
select max(column1), max(column2), max(column3), count() from my_table
109+
----
110+
value9_1 value9_2 value9_3 32
111+
112+
statement ok
113+
drop table my_table
114+
69115
statement ok
70116
drop table ts1
71117

0 commit comments

Comments
 (0)