@@ -14,9 +14,20 @@ Type::addType('bool[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\BooleanArray");
1414Type::addType('smallint[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\SmallIntArray");
1515Type::addType('integer[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\IntegerArray");
1616Type::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+
1721Type::addType('text[]', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\TextArray");
1822Type::addType('jsonb', "MartinGeorgiev\\Doctrine\\DBAL\\Types\\Jsonb");
1923Type::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```
0 commit comments