Skip to content

Commit e09db0f

Browse files
docs: update documentation for the support of some new types and functions (#356)
1 parent 9959476 commit e09db0f

File tree

5 files changed

+221
-27
lines changed

5 files changed

+221
-27
lines changed

docs/AVAILABLE-FUNCTIONS-AND-OPERATORS.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
| array_to_string | ARRAY_TO_STRING | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ArrayToString` |
4646
| cardinality | ARRAY_CARDINALITY | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Cardinality` |
4747
| cast | CAST | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Cast` |
48+
| date_add | DATE_ADD | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateAdd` |
49+
| date_bin | DATE_BIN | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateBin` |
50+
| date_subtract | DATE_SUBTRACT | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateSubtract` |
4851
| daterange | DATERANGE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Daterange` |
4952
| extract | DATE_EXTRACT | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateExtract` |
5053
| greatest | GREATEST | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Greatest` |
@@ -75,19 +78,24 @@
7578
| jsonb_insert | JSONB_INSERT | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbInsert` |
7679
| jsonb_object_agg | JSONB_OBJECT_AGG | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbObjectAgg` |
7780
| jsonb_object_keys | JSONB_OBJECT_KEYS |`MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbObjectKeys` |
81+
| jsonb_path_exists | JSONB_PATH_EXISTS | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathExists` |
82+
| jsonb_path_match | JSONB_PATH_MATCH | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathMatch` |
83+
| jsonb_path_query | JSONB_PATH_QUERY | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQuery` |
84+
| jsonb_path_query_array | JSONB_PATH_QUERY_ARRAY | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryArray` |
85+
| jsonb_path_query_first | JSONB_PATH_QUERY_FIRST | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryFirst` |
7886
| jsonb_pretty | JSONB_PRETTY | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPretty` |
7987
| jsonb_set | JSONB_SET | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSet` |
8088
| jsonb_set_lax | JSONB_SET_LAX | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSetLax` |
8189
| jsonb_strip_nulls | JSONB_STRIP_NULLS | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbStripNulls` |
8290
| least | LEAST | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Least` |
8391
| numrange | NUMRANGE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Numrange` |
8492
| overlaps | DATE_OVERLAPS | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateOverlaps` |
85-
| regexp_like (with flags) | FLAGGED_REGEXP_LIKE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpLike` |
86-
| regexp_like (with no flags) | REGEXP_LIKE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpLike` |
87-
| regexp_match (with flags) | FLAGGED_REGEXP_MATCH | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpMatch` |
88-
| regexp_match (with no flags) | REGEXP_MATCH | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpMatch` |
89-
| regexp_replace (with flags) | FLAGGED_REGEXP_REPLACE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpReplace` |
90-
| regexp_replace (with no flags) | REGEXP_REPLACE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpReplace` |
93+
| regexp_count | REGEXP_COUNT | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpCount` |
94+
| regexp_instr | REGEXP_INSTR | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpInstr` |
95+
| regexp_like | REGEXP_LIKE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpLike` |
96+
| regexp_match | REGEXP_MATCH | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpMatch` |
97+
| regexp_replace | REGEXP_REPLACE | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpReplace` |
98+
| regexp_substr | REGEXP_SUBSTR | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpSubstr` |
9199
| row | ROW | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Row` |
92100
| row_to_json | ROW_TO_JSON | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RowToJson` |
93101
| split_part | SPLIT_PART | `MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\SplitPart` |

docs/INTEGRATING-WITH-DOCTRINE.md

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,20 @@ Type::addType('bool[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\BooleanArray");
1414
Type::addType('smallint[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\SmallIntArray");
1515
Type::addType('integer[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\IntegerArray");
1616
Type::addType('bigint[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\BigIntArray");
17+
18+
Type::addType('double precision[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\DoublePrecisionArray");
19+
Type::addType('real[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\RealArray");
20+
1721
Type::addType('text[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\TextArray");
1822
Type::addType('jsonb', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\Jsonb");
1923
Type::addType('jsonb[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\JsonbArray");
24+
25+
Type::addType('cidr', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\Cidr");
26+
Type::addType('cidr[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\CidrArray");
27+
Type::addType('inet', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\Inet");
28+
Type::addType('inet[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\InetArray");
29+
Type::addType('macaddr', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\Macaddr");
30+
Type::addType('macaddr[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\MacaddrArray");
2031
```
2132

2233

@@ -90,7 +101,6 @@ $configuration->addCustomStringFunction('JSON_VALUE', MartinGeorgiev\Doctrine\OR
90101
$configuration->addCustomStringFunction('TO_JSON', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\ToJson::class);
91102
$configuration->addCustomStringFunction('ROW_TO_JSON', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RowToJson::class);
92103

93-
94104
# jsonb specific functions
95105
$configuration->addCustomStringFunction('JSONB_ARRAY_ELEMENTS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbArrayElements::class);
96106
$configuration->addCustomStringFunction('JSONB_ARRAY_ELEMENTS_TEXT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbArrayElementsText::class);
@@ -101,6 +111,11 @@ $configuration->addCustomStringFunction('JSONB_EACH_TEXT', MartinGeorgiev\Doctri
101111
$configuration->addCustomStringFunction('JSONB_EXISTS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbExists::class);
102112
$configuration->addCustomStringFunction('JSONB_INSERT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbInsert::class);
103113
$configuration->addCustomStringFunction('JSONB_OBJECT_KEYS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbObjectKeys::class);
114+
$configuration->addCustomStringFunction('JSONB_PATH_EXISTS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathExists::class);
115+
$configuration->addCustomStringFunction('JSONB_PATH_MATCH', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathMatch::class);
116+
$configuration->addCustomStringFunction('JSONB_PATH_QUERY', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQuery::class);
117+
$configuration->addCustomStringFunction('JSONB_PATH_QUERY_ARRAY', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryArray::class);
118+
$configuration->addCustomStringFunction('JSONB_PATH_QUERY_FIRST', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryFirst::class);
104119
$configuration->addCustomStringFunction('JSONB_PRETTY', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPretty::class);
105120
$configuration->addCustomStringFunction('JSONB_SET', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSet::class);
106121
$configuration->addCustomStringFunction('JSONB_SET_LAX', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSetLax::class);
@@ -113,8 +128,11 @@ $configuration->addCustomStringFunction('TO_TSVECTOR', MartinGeorgiev\Doctrine\O
113128
$configuration->addCustomStringFunction('TSMATCH', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Tsmatch::class);
114129

115130
# date specific functions
116-
$configuration->addCustomStringFunction('DATE_OVERLAPS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateOverlaps::class);
131+
$configuration->addCustomStringFunction('DATE_ADD', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateAdd::class);
132+
$configuration->addCustomStringFunction('DATE_BIN', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateBin::class);
117133
$configuration->addCustomStringFunction('DATE_EXTRACT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateExtract::class);
134+
$configuration->addCustomStringFunction('DATE_OVERLAPS', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateOverlaps::class);
135+
$configuration->addCustomStringFunction('DATE_SUBTRACT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateSubtract::class);
118136

119137
# range functions
120138
$configuration->addCustomStringFunction('DATERANGE', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Daterange::class);
@@ -134,12 +152,12 @@ $configuration->addCustomStringFunction('REGEXP', MartinGeorgiev\Doctrine\ORM\Qu
134152
$configuration->addCustomStringFunction('IREGEXP', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\IRegexp::class);
135153
$configuration->addCustomStringFunction('NOT_REGEXP', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\NotRegexp::class);
136154
$configuration->addCustomStringFunction('NOT_IREGEXP', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\NotIRegexp::class);
137-
$configuration->addCustomStringFunction('FLAGGED_REGEXP_LIKE', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpLike::class);
138155
$configuration->addCustomStringFunction('REGEXP_LIKE', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpLike::class);
139-
$configuration->addCustomStringFunction('FLAGGED_REGEXP_MATCH', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpMatch::class);
156+
$configuration->addCustomStringFunction('REGEXP_COUNT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpCount::class);
157+
$configuration->addCustomStringFunction('REGEXP_INSTR', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpInstr::class);
158+
$configuration->addCustomStringFunction('REGEXP_SUBSTR', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpSubstr::class);
140159
$configuration->addCustomStringFunction('REGEXP_MATCH', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpMatch::class);
141160
$configuration->addCustomStringFunction('STRCONCAT', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\StrConcat::class);
142-
$configuration->addCustomStringFunction('FLAGGED_REGEXP_REPLACE', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpReplace::class);
143161
$configuration->addCustomStringFunction('REGEXP_REPLACE', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpReplace::class);
144162
$configuration->addCustomStringFunction('ROW', MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Row::class);
145163

@@ -159,15 +177,33 @@ $em = EntityManager::create($dbParams, $configuration);
159177

160178
```php
161179
$platform = $em->getConnection()->getDatabasePlatform();
180+
162181
$platform->registerDoctrineTypeMapping('bool[]','bool[]');
163182
$platform->registerDoctrineTypeMapping('_bool','bool[]');
183+
$platform->registerDoctrineTypeMapping('smallint[]','smallint[]');
184+
$platform->registerDoctrineTypeMapping('_int2','smallint[]');
164185
$platform->registerDoctrineTypeMapping('integer[]','integer[]');
165186
$platform->registerDoctrineTypeMapping('_int4','integer[]');
166187
$platform->registerDoctrineTypeMapping('bigint[]','bigint[]');
167188
$platform->registerDoctrineTypeMapping('_int8','bigint[]');
189+
190+
$platform->registerDoctrineTypeMapping('double precision[]','double precision[]');
191+
$platform->registerDoctrineTypeMapping('_float8','double precision[]');
192+
$platform->registerDoctrineTypeMapping('real[]','real[]');
193+
$platform->registerDoctrineTypeMapping('_float4','real[]');
194+
168195
$platform->registerDoctrineTypeMapping('text[]','text[]');
169196
$platform->registerDoctrineTypeMapping('_text','text[]');
170197
$platform->registerDoctrineTypeMapping('jsonb','jsonb');
198+
$platform->registerDoctrineTypeMapping('jsonb[]','jsonb[]');
199+
$platform->registerDoctrineTypeMapping('_jsonb','jsonb[]');
200+
201+
$platform->registerDoctrineTypeMapping('cidr[]','cidr[]');
202+
$platform->registerDoctrineTypeMapping('_cidr','cidr[]');
203+
$platform->registerDoctrineTypeMapping('inet[]','inet[]');
204+
$platform->registerDoctrineTypeMapping('_inet','inet[]');
205+
$platform->registerDoctrineTypeMapping('macaddr[]','macaddr[]');
206+
$platform->registerDoctrineTypeMapping('_macaddr','macaddr[]');
171207
...
172208

173209
```

docs/INTEGRATING-WITH-LARAVEL.md

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,33 @@ return [
1919
'type_mappings' => [
2020
'_bool' => 'bool[]',
2121
'bool[]' => 'bool[]',
22-
'_int2' => 'smallint[]',
2322
'smallint[]' => 'smallint[]',
24-
'_int4' => 'integer[]',
23+
'_int2' => 'smallint[]',
2524
'integer[]' => 'integer[]',
26-
'_int8' => 'bigint',
25+
'_int4' => 'integer[]',
2726
'bigint[]' => 'bigint[]',
27+
'_int8' => 'bigint',
28+
29+
'double precision[]' => 'double precision[]',
30+
'_float8' => 'double precision[]',
31+
'real[]' => 'real[]',
32+
'_float4' => 'real',
33+
2834
'_text' => 'text[]',
2935
'text[]' => 'text[]',
3036
'jsonb' => 'jsonb',
3137
'_jsonb' => 'jsonb[]',
3238
'jsonb[]' => 'jsonb[]',
39+
40+
'cidr' => 'cidr',
41+
'cidr[]' => 'cidr[]',
42+
'_cidr' => 'cidr[]',
43+
'inet' => 'inet',
44+
'inet[]' => 'inet[]',
45+
'_inet' => 'inet[]',
46+
'macaddr' => 'macaddr',
47+
'macaddr[]' => 'macaddr[]',
48+
'_macaddr' => 'macaddr[]',
3349
],
3450
],
3551
],
@@ -50,9 +66,20 @@ return [
5066
'bigint[]' => MartinGeorgiev\Doctrine\DBAL\Types\BigIntArray::class,
5167
'integer[]' => MartinGeorgiev\Doctrine\DBAL\Types\IntegerArray::class,
5268
'smallint[]' => MartinGeorgiev\Doctrine\DBAL\Types\SmallIntArray::class,
69+
70+
'double precision[]' => MartinGeorgiev\Doctrine\DBAL\Types\DoublePrecisionArray::class,
71+
'real[]' => MartinGeorgiev\Doctrine\DBAL\Types\RealArray::class,
72+
5373
'text[]' => MartinGeorgiev\Doctrine\DBAL\Types\TextArray::class,
5474
'jsonb' => MartinGeorgiev\Doctrine\DBAL\Types\Jsonb::class,
5575
'jsonb[]' => MartinGeorgiev\Doctrine\DBAL\Types\JsonbArray::class,
76+
77+
'cnet' => MartinGeorgiev\Doctrine\DBAL\Types\Cnet::class,
78+
'cnet[]' => MartinGeorgiev\Doctrine\DBAL\Types\CnetArray::class,
79+
'inet' => MartinGeorgiev\Doctrine\DBAL\Types\Inet::class,
80+
'inet[]' => MartinGeorgiev\Doctrine\DBAL\Types\InetArray::class,
81+
'macaddr' => MartinGeorgiev\Doctrine\DBAL\Types\Macaddr::class,
82+
'macaddr[]' => MartinGeorgiev\Doctrine\DBAL\Types\MacaddrArray::class,
5683
],
5784
];
5885
```
@@ -135,6 +162,11 @@ return [
135162
'JSONB_EXISTS' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbExists::class,
136163
'JSONB_INSERT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbInsert::class,
137164
'JSONB_OBJECT_KEYS' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbObjectKeys::class,
165+
'JSONB_PATH_EXISTS' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathExists::class,
166+
'JSONB_PATH_MATCH' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathMatch::class,
167+
'JSONB_PATH_QUERY' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQuery::class,
168+
'JSONB_PATH_QUERY_ARRAY' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryArray::class,
169+
'JSONB_PATH_QUERY_FIRST' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPathQueryFirst::class,
138170
'JSONB_PRETTY' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbPretty::class,
139171
'JSONB_SET' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSet::class,
140172
'JSONB_SET_LAX' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbSetLax::class,
@@ -147,8 +179,11 @@ return [
147179
'TSMATCH' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Tsmatch::class,
148180

149181
# date specific functions
150-
'DATE_OVERLAPS' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateOverlaps::class,
182+
'DATE_ADD' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateAdd::class,
183+
'DATE_BIN' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateBin::class,
151184
'DATE_EXTRACT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateExtract::class,
185+
'DATE_OVERLAPS' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateOverlaps::class,
186+
'DATE_SUBTRACT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\DateSubtract::class,
152187

153188
# range functions
154189
'DATERANGE' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Daterange::class,
@@ -168,13 +203,13 @@ return [
168203
'IREGEXP' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\IRegexp::class,
169204
'NOT_REGEXP' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\NotRegexp::class,
170205
'NOT_IREGEXP' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\NotIRegexp::class,
171-
'FLAGGED_REGEXP_LIKE' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpLike::class,
206+
'REGEXP_COUNT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpCount::class,
207+
'REGEXP_INSTR' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpInstr::class,
172208
'REGEXP_LIKE' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpLike::class,
173-
'FLAGGED_REGEXP_MATCH' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpMatch::class,
174209
'REGEXP_MATCH' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpMatch::class,
175-
'STRCONCAT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\StrConcat::class, // the `||` operator
176-
'FLAGGED_REGEXP_REPLACE' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\FlaggedRegexpReplace::class,
177210
'REGEXP_REPLACE' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpReplace::class,
211+
'REGEXP_SUBSTR' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\RegexpSubstr::class,
212+
'STRCONCAT' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\StrConcat::class, // the `||` operator
178213
'ROW' => MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\Row::class,
179214

180215
# aggregation functions
@@ -233,6 +268,12 @@ class DoctrineEventSubscriber implements Subscriber
233268
if (!Type::hasType('smallint[]')) {
234269
Type::addType('smallint[]', \MartinGeorgiev\Doctrine\DBAL\Types\SmallIntArray::class);
235270
}
271+
if (!Type::hasType('double precision[]')) {
272+
Type::addType('double precision[]', \MartinGeorgiev\Doctrine\DBAL\Types\DoublePrecisionArray::class);
273+
}
274+
if (!Type::hasType('real[]')) {
275+
Type::addType('real[]', \MartinGeorgiev\Doctrine\DBAL\Types\RealArray::class);
276+
}
236277
if (!Type::hasType('text[]')) {
237278
Type::addType('text[]', \MartinGeorgiev\Doctrine\DBAL\Types\TextArray::class);
238279
}
@@ -242,6 +283,24 @@ class DoctrineEventSubscriber implements Subscriber
242283
if (!Type::hasType('jsonb[]')) {
243284
Type::addType('jsonb[]', \MartinGeorgiev\Doctrine\DBAL\Types\JsonbArray::class);
244285
}
286+
if (!Type::hasType('cidr')) {
287+
Type::addType('cidr', \MartinGeorgiev\Doctrine\DBAL\Types\Cidr::class);
288+
}
289+
if (!Type::hasType('cidr[]')) {
290+
Type::addType('cidr[]', \MartinGeorgiev\Doctrine\DBAL\Types\CidrArray::class);
291+
}
292+
if (!Type::hasType('inet')) {
293+
Type::addType('inet', \MartinGeorgiev\Doctrine\DBAL\Types\Inet::class);
294+
}
295+
if (!Type::hasType('inet[]')) {
296+
Type::addType('inet[]', \MartinGeorgiev\Doctrine\DBAL\Types\InetArray::class);
297+
}
298+
if (!Type::hasType('macaddr')) {
299+
Type::addType('macaddr', \MartinGeorgiev\Doctrine\DBAL\Types\Macaddr::class);
300+
}
301+
if (!Type::hasType('macaddr[]')) {
302+
Type::addType('macaddr[]', \MartinGeorgiev\Doctrine\DBAL\Types\MacaddrArray::class);
303+
}
245304
}
246305
}
247306
```

0 commit comments

Comments
 (0)