@@ -45,61 +45,121 @@ private static function getStatementsWithParameters(): iterable
4545 'SELECT {?} ' ,
4646 ];
4747
48+ yield [
49+ 'SELECT $1 ' ,
50+ 'SELECT {$1} ' ,
51+ ];
52+
4853 yield [
4954 'SELECT * FROM Foo WHERE bar IN (?, ?, ?) ' ,
5055 'SELECT * FROM Foo WHERE bar IN ({?}, {?}, {?}) ' ,
5156 ];
5257
58+ yield [
59+ 'SELECT * FROM Foo WHERE bar IN ($1, $2, $1) ' ,
60+ 'SELECT * FROM Foo WHERE bar IN ({$1}, {$2}, {$1}) ' ,
61+ ];
62+
5363 yield [
5464 'SELECT ? FROM ? ' ,
5565 'SELECT {?} FROM {?} ' ,
5666 ];
5767
68+ yield [
69+ 'SELECT $1 FROM $2 ' ,
70+ 'SELECT {$1} FROM {$2} ' ,
71+ ];
72+
5873 yield [
5974 'SELECT "?" FROM foo WHERE bar = ? ' ,
6075 'SELECT "?" FROM foo WHERE bar = {?} ' ,
6176 ];
6277
78+ yield [
79+ 'SELECT "$1" FROM foo WHERE bar = $1 ' ,
80+ 'SELECT "$1" FROM foo WHERE bar = {$1} ' ,
81+ ];
82+
6383 yield [
6484 "SELECT '?' FROM foo WHERE bar = ? " ,
6585 "SELECT '?' FROM foo WHERE bar = {?} " ,
6686 ];
6787
88+ yield [
89+ "SELECT '$1' FROM foo WHERE bar = $1 " ,
90+ "SELECT '$1' FROM foo WHERE bar = { \$1} " ,
91+ ];
92+
6893 yield [
6994 'SELECT `?` FROM foo WHERE bar = ? ' ,
7095 'SELECT `?` FROM foo WHERE bar = {?} ' ,
7196 ];
7297
98+ yield [
99+ 'SELECT `$1` FROM foo WHERE bar = $1 ' ,
100+ 'SELECT `$1` FROM foo WHERE bar = {$1} ' ,
101+ ];
102+
73103 yield [
74104 'SELECT [?] FROM foo WHERE bar = ? ' ,
75105 'SELECT [?] FROM foo WHERE bar = {?} ' ,
76106 ];
77107
108+ yield [
109+ 'SELECT [$1] FROM foo WHERE bar = $1 ' ,
110+ 'SELECT [$1] FROM foo WHERE bar = {$1} ' ,
111+ ];
112+
78113 yield [
79114 'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[?]) ' ,
80115 'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[{?}]) ' ,
81116 ];
82117
118+ yield [
119+ 'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[$1]) ' ,
120+ 'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[{$1}]) ' ,
121+ ];
122+
83123 yield [
84124 "SELECT 'Doctrine\DBAL?' FROM foo WHERE bar = ? " ,
85125 "SELECT 'Doctrine\DBAL?' FROM foo WHERE bar = {?} " ,
86126 ];
87127
128+ yield [
129+ "SELECT 'Doctrine\DBAL$1' FROM foo WHERE bar = $1 " ,
130+ "SELECT 'Doctrine\DBAL$1' FROM foo WHERE bar = { \$1} " ,
131+ ];
132+
88133 yield [
89134 'SELECT "Doctrine\DBAL?" FROM foo WHERE bar = ? ' ,
90135 'SELECT "Doctrine\DBAL?" FROM foo WHERE bar = {?} ' ,
91136 ];
92137
138+ yield [
139+ 'SELECT "Doctrine\DBAL$1" FROM foo WHERE bar = $1 ' ,
140+ 'SELECT "Doctrine\DBAL$1" FROM foo WHERE bar = {$1} ' ,
141+ ];
142+
93143 yield [
94144 'SELECT `Doctrine\DBAL?` FROM foo WHERE bar = ? ' ,
95145 'SELECT `Doctrine\DBAL?` FROM foo WHERE bar = {?} ' ,
96146 ];
97147
148+ yield [
149+ 'SELECT `Doctrine\DBAL$1` FROM foo WHERE bar = $1 ' ,
150+ 'SELECT `Doctrine\DBAL$1` FROM foo WHERE bar = {$1} ' ,
151+ ];
152+
98153 yield [
99154 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = ? ' ,
100155 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = {?} ' ,
101156 ];
102157
158+ yield [
159+ 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = $1 ' ,
160+ 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = {$1} ' ,
161+ ];
162+
103163 yield [
104164 'SELECT :foo FROM :bar ' ,
105165 'SELECT {:foo} FROM {:bar} ' ,
@@ -293,6 +353,31 @@ private static function getStatementsWithParameters(): iterable
293353,
294354 ];
295355
356+ yield 'Postgres placeholders inside comments ' => [
357+ <<<'SQL'
358+ /*
359+ * test placeholder $1
360+ */
361+ SELECT dummy as "dummy$1"
362+ FROM DUAL
363+ WHERE '$1' = '$1'
364+ -- AND dummy <> $1
365+ AND dummy = $1
366+ SQL
367+ ,
368+ <<<'SQL'
369+ /*
370+ * test placeholder $1
371+ */
372+ SELECT dummy as "dummy$1"
373+ FROM DUAL
374+ WHERE '$1' = '$1'
375+ -- AND dummy <> $1
376+ AND dummy = {$1}
377+ SQL
378+ ,
379+ ];
380+
296381 yield 'Escaped question ' => [
297382 <<<'SQL'
298383SELECT '{"a":null}'::jsonb ?? :key
0 commit comments