@@ -45,61 +45,121 @@ private static function getStatementsWithParameters(): iterable
45
45
'SELECT {?} ' ,
46
46
];
47
47
48
+ yield [
49
+ 'SELECT $1 ' ,
50
+ 'SELECT {$1} ' ,
51
+ ];
52
+
48
53
yield [
49
54
'SELECT * FROM Foo WHERE bar IN (?, ?, ?) ' ,
50
55
'SELECT * FROM Foo WHERE bar IN ({?}, {?}, {?}) ' ,
51
56
];
52
57
58
+ yield [
59
+ 'SELECT * FROM Foo WHERE bar IN ($1, $2, $1) ' ,
60
+ 'SELECT * FROM Foo WHERE bar IN ({$1}, {$2}, {$1}) ' ,
61
+ ];
62
+
53
63
yield [
54
64
'SELECT ? FROM ? ' ,
55
65
'SELECT {?} FROM {?} ' ,
56
66
];
57
67
68
+ yield [
69
+ 'SELECT $1 FROM $2 ' ,
70
+ 'SELECT {$1} FROM {$2} ' ,
71
+ ];
72
+
58
73
yield [
59
74
'SELECT "?" FROM foo WHERE bar = ? ' ,
60
75
'SELECT "?" FROM foo WHERE bar = {?} ' ,
61
76
];
62
77
78
+ yield [
79
+ 'SELECT "$1" FROM foo WHERE bar = $1 ' ,
80
+ 'SELECT "$1" FROM foo WHERE bar = {$1} ' ,
81
+ ];
82
+
63
83
yield [
64
84
"SELECT '?' FROM foo WHERE bar = ? " ,
65
85
"SELECT '?' FROM foo WHERE bar = {?} " ,
66
86
];
67
87
88
+ yield [
89
+ "SELECT '$1' FROM foo WHERE bar = $1 " ,
90
+ "SELECT '$1' FROM foo WHERE bar = { \$1} " ,
91
+ ];
92
+
68
93
yield [
69
94
'SELECT `?` FROM foo WHERE bar = ? ' ,
70
95
'SELECT `?` FROM foo WHERE bar = {?} ' ,
71
96
];
72
97
98
+ yield [
99
+ 'SELECT `$1` FROM foo WHERE bar = $1 ' ,
100
+ 'SELECT `$1` FROM foo WHERE bar = {$1} ' ,
101
+ ];
102
+
73
103
yield [
74
104
'SELECT [?] FROM foo WHERE bar = ? ' ,
75
105
'SELECT [?] FROM foo WHERE bar = {?} ' ,
76
106
];
77
107
108
+ yield [
109
+ 'SELECT [$1] FROM foo WHERE bar = $1 ' ,
110
+ 'SELECT [$1] FROM foo WHERE bar = {$1} ' ,
111
+ ];
112
+
78
113
yield [
79
114
'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[?]) ' ,
80
115
'SELECT * FROM foo WHERE jsonb_exists_any(foo.bar, ARRAY[{?}]) ' ,
81
116
];
82
117
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
+
83
123
yield [
84
124
"SELECT 'Doctrine\DBAL?' FROM foo WHERE bar = ? " ,
85
125
"SELECT 'Doctrine\DBAL?' FROM foo WHERE bar = {?} " ,
86
126
];
87
127
128
+ yield [
129
+ "SELECT 'Doctrine\DBAL$1' FROM foo WHERE bar = $1 " ,
130
+ "SELECT 'Doctrine\DBAL$1' FROM foo WHERE bar = { \$1} " ,
131
+ ];
132
+
88
133
yield [
89
134
'SELECT "Doctrine\DBAL?" FROM foo WHERE bar = ? ' ,
90
135
'SELECT "Doctrine\DBAL?" FROM foo WHERE bar = {?} ' ,
91
136
];
92
137
138
+ yield [
139
+ 'SELECT "Doctrine\DBAL$1" FROM foo WHERE bar = $1 ' ,
140
+ 'SELECT "Doctrine\DBAL$1" FROM foo WHERE bar = {$1} ' ,
141
+ ];
142
+
93
143
yield [
94
144
'SELECT `Doctrine\DBAL?` FROM foo WHERE bar = ? ' ,
95
145
'SELECT `Doctrine\DBAL?` FROM foo WHERE bar = {?} ' ,
96
146
];
97
147
148
+ yield [
149
+ 'SELECT `Doctrine\DBAL$1` FROM foo WHERE bar = $1 ' ,
150
+ 'SELECT `Doctrine\DBAL$1` FROM foo WHERE bar = {$1} ' ,
151
+ ];
152
+
98
153
yield [
99
154
'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = ? ' ,
100
155
'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = {?} ' ,
101
156
];
102
157
158
+ yield [
159
+ 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = $1 ' ,
160
+ 'SELECT [Doctrine\DBAL?] FROM foo WHERE bar = {$1} ' ,
161
+ ];
162
+
103
163
yield [
104
164
'SELECT :foo FROM :bar ' ,
105
165
'SELECT {:foo} FROM {:bar} ' ,
@@ -293,6 +353,31 @@ private static function getStatementsWithParameters(): iterable
293
353
,
294
354
];
295
355
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
+
296
381
yield 'Escaped question ' => [
297
382
<<<'SQL'
298
383
SELECT '{"a":null}'::jsonb ?? :key
0 commit comments