Complex classes like OraclePlatform often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use OraclePlatform, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
32 | class OraclePlatform extends AbstractPlatform |
||
33 | { |
||
34 | /** |
||
35 | * Assertion for Oracle identifiers. |
||
36 | * |
||
37 | * @link http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements008.htm |
||
38 | * |
||
39 | * @throws DBALException |
||
40 | */ |
||
41 | public static function assertValidIdentifier(string $identifier) : void |
||
42 | 2403 | { |
|
43 | if (! preg_match('(^(([a-zA-Z]{1}[a-zA-Z0-9_$#]{0,})|("[^"]+"))$)', $identifier)) { |
||
44 | 2403 | throw new DBALException('Invalid Oracle identifier.'); |
|
45 | 2360 | } |
|
46 | } |
||
47 | 2393 | ||
48 | /** |
||
49 | * {@inheritDoc} |
||
50 | */ |
||
51 | public function getSubstringExpression(string $string, string $start, ?string $length = null) : string |
||
52 | { |
||
53 | if ($length === null) { |
||
54 | return sprintf('SUBSTR(%s, %s)', $string, $start); |
||
55 | } |
||
56 | |||
57 | return sprintf('SUBSTR(%s, %s, %s)', $string, $start, $length); |
||
58 | } |
||
59 | |||
60 | /** |
||
61 | * {@inheritDoc} |
||
62 | */ |
||
63 | public function getNowExpression(string $type = 'timestamp') : string |
||
64 | { |
||
65 | switch ($type) { |
||
66 | case 'date': |
||
67 | case 'time': |
||
68 | case 'timestamp': |
||
69 | default: |
||
70 | return 'TO_CHAR(CURRENT_TIMESTAMP, \'YYYY-MM-DD HH24:MI:SS\')'; |
||
71 | } |
||
72 | } |
||
73 | |||
74 | /** |
||
75 | * {@inheritDoc} |
||
76 | */ |
||
77 | public function getLocateExpression(string $string, string $substring, ?string $start = null) : string |
||
78 | 2 | { |
|
79 | if ($start === null) { |
||
80 | 2 | return sprintf('INSTR(%s, %s)', $string, $substring); |
|
81 | 2 | } |
|
82 | |||
83 | return sprintf('INSTR(%s, %s, %s)', $string, $substring, $start); |
||
84 | 2 | } |
|
85 | |||
86 | /** |
||
87 | * {@inheritdoc} |
||
88 | */ |
||
89 | protected function getDateArithmeticIntervalExpression(string $date, string $operator, string $interval, string $unit) : string |
||
90 | { |
||
91 | switch ($unit) { |
||
92 | case DateIntervalUnit::MONTH: |
||
93 | case DateIntervalUnit::QUARTER: |
||
94 | case DateIntervalUnit::YEAR: |
||
95 | switch ($unit) { |
||
96 | case DateIntervalUnit::QUARTER: |
||
97 | $interval = $this->multiplyInterval($interval, 3); |
||
98 | break; |
||
99 | |||
100 | 2 | case DateIntervalUnit::YEAR: |
|
101 | $interval = $this->multiplyInterval($interval, 12); |
||
102 | 2 | break; |
|
103 | } |
||
104 | |||
105 | return 'ADD_MONTHS(' . $date . ', ' . $operator . $interval . ')'; |
||
106 | 2 | ||
107 | default: |
||
108 | 2 | $calculationClause = ''; |
|
109 | 2 | ||
110 | switch ($unit) { |
||
111 | case DateIntervalUnit::SECOND: |
||
112 | 2 | $calculationClause = '/24/60/60'; |
|
113 | 2 | break; |
|
114 | |||
115 | case DateIntervalUnit::MINUTE: |
||
116 | 2 | $calculationClause = '/24/60'; |
|
117 | break; |
||
118 | |||
119 | 2 | case DateIntervalUnit::HOUR: |
|
120 | $calculationClause = '/24'; |
||
121 | 2 | break; |
|
122 | |||
123 | 2 | case DateIntervalUnit::WEEK: |
|
124 | 2 | $calculationClause = '*7'; |
|
125 | break; |
||
126 | } |
||
127 | 2 | ||
128 | 2 | return '(' . $date . $operator . $interval . $calculationClause . ')'; |
|
129 | } |
||
130 | } |
||
131 | 2 | ||
132 | 2 | /** |
|
133 | * {@inheritDoc} |
||
134 | */ |
||
135 | 2 | public function getDateDiffExpression(string $date1, string $date2) : string |
|
136 | 2 | { |
|
137 | return sprintf('TRUNC(%s) - TRUNC(%s)', $date1, $date2); |
||
138 | } |
||
139 | 2 | ||
140 | /** |
||
141 | * {@inheritDoc} |
||
142 | */ |
||
143 | public function getBitAndComparisonExpression(string $value1, string $value2) : string |
||
144 | { |
||
145 | return 'BITAND(' . $value1 . ', ' . $value2 . ')'; |
||
146 | 6 | } |
|
147 | |||
148 | 6 | /** |
|
149 | * {@inheritDoc} |
||
150 | */ |
||
151 | public function getCurrentDatabaseExpression() : string |
||
152 | { |
||
153 | return "SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')"; |
||
154 | 856 | } |
|
155 | |||
156 | 856 | /** |
|
157 | * {@inheritDoc} |
||
158 | */ |
||
159 | public function getBitOrComparisonExpression(string $value1, string $value2) : string |
||
160 | { |
||
161 | return '(' . $value1 . '-' . |
||
162 | 829 | $this->getBitAndComparisonExpression($value1, $value2) |
|
163 | . '+' . $value2 . ')'; |
||
164 | 829 | } |
|
165 | 829 | ||
166 | 829 | /** |
|
167 | * {@inheritDoc} |
||
168 | * |
||
169 | * Need to specifiy minvalue, since start with is hidden in the system and MINVALUE <= START WITH. |
||
170 | * Therefore we can use MINVALUE to be able to get a hint what START WITH was for later introspection |
||
171 | * in {@see listSequences()} |
||
172 | */ |
||
173 | public function getCreateSequenceSQL(Sequence $sequence) : string |
||
174 | { |
||
175 | return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) . |
||
176 | 2035 | ' START WITH ' . $sequence->getInitialValue() . |
|
177 | ' MINVALUE ' . $sequence->getInitialValue() . |
||
178 | 2035 | ' INCREMENT BY ' . $sequence->getAllocationSize() . |
|
179 | 2035 | $this->getSequenceCacheSQL($sequence); |
|
180 | 2035 | } |
|
181 | 2035 | ||
182 | 2035 | /** |
|
183 | * {@inheritDoc} |
||
184 | */ |
||
185 | public function getAlterSequenceSQL(Sequence $sequence) : string |
||
186 | { |
||
187 | return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) . |
||
188 | ' INCREMENT BY ' . $sequence->getAllocationSize() |
||
189 | . $this->getSequenceCacheSQL($sequence); |
||
190 | } |
||
191 | |||
192 | /** |
||
193 | * Cache definition for sequences |
||
194 | */ |
||
195 | private function getSequenceCacheSQL(Sequence $sequence) : string |
||
196 | { |
||
197 | if ($sequence->getCache() === 0) { |
||
198 | return ' NOCACHE'; |
||
199 | } |
||
200 | 2035 | ||
201 | if ($sequence->getCache() === 1) { |
||
202 | 2035 | return ' NOCACHE'; |
|
203 | 1752 | } |
|
204 | |||
205 | if ($sequence->getCache() > 1) { |
||
206 | 2033 | return ' CACHE ' . $sequence->getCache(); |
|
207 | 1777 | } |
|
208 | |||
209 | return ''; |
||
210 | 2031 | } |
|
211 | 1727 | ||
212 | /** |
||
213 | * {@inheritDoc} |
||
214 | 2029 | */ |
|
215 | public function getSequenceNextValSQL(string $sequenceName) : string |
||
216 | { |
||
217 | return 'SELECT ' . $sequenceName . '.nextval FROM DUAL'; |
||
218 | } |
||
219 | |||
220 | 1 | /** |
|
221 | * {@inheritDoc} |
||
222 | 1 | */ |
|
223 | public function getSetTransactionIsolationSQL(int $level) : string |
||
224 | { |
||
225 | return 'SET TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level); |
||
226 | } |
||
227 | |||
228 | 2327 | /** |
|
229 | * {@inheritDoc} |
||
230 | 2327 | */ |
|
231 | protected function _getTransactionIsolationLevelSQL(int $level) : string |
||
232 | { |
||
233 | switch ($level) { |
||
234 | case TransactionIsolationLevel::READ_UNCOMMITTED: |
||
235 | return 'READ UNCOMMITTED'; |
||
236 | 2327 | case TransactionIsolationLevel::READ_COMMITTED: |
|
237 | return 'READ COMMITTED'; |
||
238 | 2 | case TransactionIsolationLevel::REPEATABLE_READ: |
|
239 | 2325 | case TransactionIsolationLevel::SERIALIZABLE: |
|
240 | 2327 | return 'SERIALIZABLE'; |
|
241 | 2325 | default: |
|
242 | 2327 | return parent::_getTransactionIsolationLevelSQL($level); |
|
243 | 2325 | } |
|
244 | 2325 | } |
|
245 | 2327 | ||
246 | /** |
||
247 | * {@inheritDoc} |
||
248 | */ |
||
249 | public function getBooleanTypeDeclarationSQL(array $columnDef) : string |
||
250 | { |
||
251 | return 'NUMBER(1)'; |
||
252 | } |
||
253 | |||
254 | 833 | /** |
|
255 | * {@inheritDoc} |
||
256 | 833 | */ |
|
257 | public function getIntegerTypeDeclarationSQL(array $columnDef) : string |
||
258 | { |
||
259 | return 'NUMBER(10)'; |
||
260 | } |
||
261 | |||
262 | 2554 | /** |
|
263 | * {@inheritDoc} |
||
264 | 2554 | */ |
|
265 | public function getBigIntTypeDeclarationSQL(array $columnDef) : string |
||
266 | { |
||
267 | return 'NUMBER(20)'; |
||
268 | } |
||
269 | |||
270 | 29 | /** |
|
271 | * {@inheritDoc} |
||
272 | 29 | */ |
|
273 | public function getSmallIntTypeDeclarationSQL(array $columnDef) : string |
||
274 | { |
||
275 | return 'NUMBER(5)'; |
||
276 | } |
||
277 | |||
278 | 2 | /** |
|
279 | * {@inheritDoc} |
||
280 | 2 | */ |
|
281 | public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration) : string |
||
282 | { |
||
283 | return 'TIMESTAMP(0)'; |
||
284 | } |
||
285 | |||
286 | 47 | /** |
|
287 | * {@inheritDoc} |
||
288 | 47 | */ |
|
289 | public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration) : string |
||
290 | { |
||
291 | return 'TIMESTAMP(0) WITH TIME ZONE'; |
||
292 | } |
||
293 | |||
294 | 31 | /** |
|
295 | * {@inheritDoc} |
||
296 | 31 | */ |
|
297 | public function getDateTypeDeclarationSQL(array $fieldDeclaration) : string |
||
298 | { |
||
299 | return 'DATE'; |
||
300 | } |
||
301 | |||
302 | 39 | /** |
|
303 | * {@inheritDoc} |
||
304 | 39 | */ |
|
305 | public function getTimeTypeDeclarationSQL(array $fieldDeclaration) : string |
||
306 | { |
||
307 | return 'DATE'; |
||
308 | } |
||
309 | |||
310 | 35 | /** |
|
311 | * {@inheritDoc} |
||
312 | 35 | */ |
|
313 | protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef) : string |
||
314 | { |
||
315 | return ''; |
||
316 | } |
||
317 | |||
318 | /** |
||
319 | * {@inheritDoc} |
||
320 | */ |
||
321 | protected function getVarcharTypeDeclarationSQLSnippet(?int $length) : string |
||
322 | { |
||
323 | if ($length === null) { |
||
324 | throw ColumnLengthRequired::new($this, 'VARCHAR2'); |
||
325 | } |
||
326 | 2426 | ||
327 | return sprintf('VARCHAR2(%d)', $length); |
||
328 | 2426 | } |
|
329 | 2426 | ||
330 | /** |
||
331 | * {@inheritDoc} |
||
332 | */ |
||
333 | protected function getBinaryTypeDeclarationSQLSnippet(?int $length) : string |
||
334 | { |
||
335 | 1905 | if ($length === null) { |
|
336 | throw ColumnLengthRequired::new($this, 'RAW'); |
||
337 | 1905 | } |
|
338 | |||
339 | return sprintf('RAW(%d)', $length); |
||
340 | } |
||
341 | |||
342 | /** |
||
343 | 1909 | * {@inheritDoc} |
|
344 | */ |
||
345 | 1909 | protected function getVarbinaryTypeDeclarationSQLSnippet(?int $length) : string |
|
346 | { |
||
347 | return $this->getBinaryTypeDeclarationSQLSnippet($length); |
||
348 | } |
||
349 | |||
350 | /** |
||
351 | 734 | * {@inheritDoc} |
|
352 | */ |
||
353 | 734 | public function getClobTypeDeclarationSQL(array $field) : string |
|
354 | { |
||
355 | return 'CLOB'; |
||
356 | } |
||
357 | |||
358 | /** |
||
359 | 4 | * {@inheritDoc} |
|
360 | */ |
||
361 | 4 | public function getListDatabasesSQL() : string |
|
362 | { |
||
363 | return 'SELECT username FROM all_users'; |
||
364 | } |
||
365 | |||
366 | /** |
||
367 | 1486 | * {@inheritDoc} |
|
368 | */ |
||
369 | 1486 | public function getListSequencesSQL(string $database) : string |
|
370 | 1486 | { |
|
371 | return 'SELECT SEQUENCE_NAME, MIN_VALUE, INCREMENT_BY FROM SYS.ALL_SEQUENCES WHERE SEQUENCE_OWNER = ' |
||
372 | . $this->quoteStringLiteral( |
||
373 | 1486 | $this->normalizeIdentifier($database)->getName() |
|
374 | ); |
||
375 | } |
||
376 | |||
377 | /** |
||
378 | * {@inheritDoc} |
||
379 | 2277 | */ |
|
380 | protected function _getCreateTableSQL(string $tableName, array $columns, array $options = []) : array |
||
381 | 2277 | { |
|
382 | 2277 | $indexes = $options['indexes'] ?? []; |
|
383 | 2277 | $options['indexes'] = []; |
|
384 | $sql = parent::_getCreateTableSQL($tableName, $columns, $options); |
||
385 | 2277 | ||
386 | 2277 | foreach ($columns as $column) { |
|
387 | if (isset($column['sequence'])) { |
||
388 | $sql[] = $this->getCreateSequenceSQL($column['sequence']); |
||
389 | } |
||
390 | 2277 | ||
391 | 2277 | if (empty($column['autoincrement'])) { |
|
392 | 1323 | continue; |
|
393 | } |
||
394 | |||
395 | 2023 | $sql = array_merge($sql, $this->getCreateAutoincrementSql($column['name'], $tableName)); |
|
396 | } |
||
397 | |||
398 | 2277 | if (isset($indexes) && ! empty($indexes)) { |
|
399 | 1034 | foreach ($indexes as $index) { |
|
400 | 1034 | $sql[] = $this->getCreateIndexSQL($index, $tableName); |
|
401 | } |
||
402 | } |
||
403 | |||
404 | 2277 | return $sql; |
|
405 | } |
||
406 | |||
407 | /** |
||
408 | * {@inheritDoc} |
||
409 | * |
||
410 | * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaOracleReader.html |
||
411 | */ |
||
412 | 1544 | public function getListTableIndexesSQL(string $table, ?string $currentDatabase = null) : string |
|
445 | |||
446 | /** |
||
447 | * {@inheritDoc} |
||
448 | */ |
||
449 | 128 | public function getListTablesSQL() : string |
|
453 | |||
454 | /** |
||
455 | * {@inheritDoc} |
||
456 | */ |
||
457 | 2 | public function getListViewsSQL(string $database) : string |
|
461 | |||
462 | /** |
||
463 | * {@inheritDoc} |
||
464 | */ |
||
465 | 2 | public function getCreateViewSQL(string $name, string $sql) : string |
|
469 | |||
470 | /** |
||
471 | * {@inheritDoc} |
||
472 | */ |
||
473 | 2 | public function getDropViewSQL(string $name) : string |
|
477 | |||
478 | /** |
||
479 | * @return array<int, string> |
||
|
|||
480 | */ |
||
481 | public function getCreateAutoincrementSql(string $name, string $table, int $start = 1) : array |
||
482 | { |
||
483 | $tableIdentifier = $this->normalizeIdentifier($table); |
||
484 | $quotedTableName = $tableIdentifier->getQuotedName($this); |
||
485 | 2023 | $unquotedTableName = $tableIdentifier->getName(); |
|
486 | |||
487 | 2023 | $nameIdentifier = $this->normalizeIdentifier($name); |
|
488 | 2023 | $quotedName = $nameIdentifier->getQuotedName($this); |
|
489 | 2023 | $unquotedName = $nameIdentifier->getName(); |
|
490 | |||
491 | 2023 | $sql = []; |
|
492 | 2023 | ||
493 | 2023 | $autoincrementIdentifierName = $this->getAutoincrementIdentifierName($tableIdentifier); |
|
494 | |||
495 | 2023 | $idx = new Index($autoincrementIdentifierName, [$quotedName], true, true); |
|
496 | |||
497 | 2023 | $sql[] = 'DECLARE |
|
498 | constraints_Count NUMBER; |
||
499 | 2023 | BEGIN |
|
500 | SELECT COUNT(CONSTRAINT_NAME) INTO constraints_Count FROM USER_CONSTRAINTS WHERE TABLE_NAME = \'' . $unquotedTableName . '\' AND CONSTRAINT_TYPE = \'P\'; |
||
501 | 2023 | IF constraints_Count = 0 OR constraints_Count = \'\' THEN |
|
502 | EXECUTE IMMEDIATE \'' . $this->getCreateConstraintSQL($idx, $quotedTableName) . '\'; |
||
503 | END IF; |
||
504 | 2023 | END;'; |
|
505 | |||
506 | 2023 | $sequenceName = $this->getIdentitySequenceName( |
|
507 | $tableIdentifier->isQuoted() ? $quotedTableName : $unquotedTableName, |
||
508 | $nameIdentifier->isQuoted() ? $quotedName : $unquotedName |
||
537 | |||
538 | /** |
||
539 | 2023 | * Returns the SQL statements to drop the autoincrement for the given table name. |
|
540 | * |
||
541 | * @param string $table The table name to drop the autoincrement for. |
||
542 | * |
||
543 | * @return string[] |
||
544 | */ |
||
545 | public function getDropAutoincrementSql(string $table) : array |
||
560 | 1909 | ||
561 | 1909 | /** |
|
562 | * Normalizes the given identifier. |
||
563 | * |
||
564 | * Uppercases the given identifier if it is not quoted by intention |
||
565 | * to reflect Oracle's internal auto uppercasing strategy of unquoted identifiers. |
||
566 | * |
||
567 | * @param string $name The identifier to normalize. |
||
568 | * |
||
569 | * @return Identifier The normalized identifier. |
||
570 | */ |
||
571 | private function normalizeIdentifier(string $name) : Identifier |
||
577 | 2301 | ||
578 | /** |
||
579 | 2301 | * Returns the autoincrement primary key identifier name for the given table identifier. |
|
580 | * |
||
581 | * Quotes the autoincrement primary key identifier name |
||
582 | * if the given table name is quoted by intention. |
||
583 | * |
||
584 | * @param Identifier $table The table identifier to return the autoincrement primary key identifier name for. |
||
585 | */ |
||
586 | private function getAutoincrementIdentifierName(Identifier $table) : string |
||
594 | 2249 | ||
595 | /** |
||
596 | 2249 | * {@inheritDoc} |
|
597 | 1656 | */ |
|
598 | 2249 | public function getListTableForeignKeysSQL(string $table, ?string $database = null) : string |
|
626 | |||
627 | /** |
||
628 | * {@inheritDoc} |
||
629 | 1513 | */ |
|
630 | public function getListTableConstraintsSQL(string $table) : string |
||
637 | |||
638 | 1402 | /** |
|
639 | 1402 | * {@inheritDoc} |
|
640 | */ |
||
641 | 1402 | public function getListTableColumnsSQL(string $table, ?string $database = null) : string |
|
681 | 1666 | ||
682 | 1666 | /** |
|
683 | 1666 | * {@inheritDoc} |
|
684 | 1666 | */ |
|
685 | public function getDropSequenceSQL($sequence) : string |
||
693 | 1909 | ||
694 | /** |
||
695 | * {@inheritDoc} |
||
696 | */ |
||
697 | 1909 | public function getDropForeignKeySQL($foreignKey, $table) : string |
|
712 | |||
713 | 231 | /** |
|
714 | 231 | * {@inheritdoc} |
|
715 | */ |
||
716 | 231 | public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey) : string |
|
726 | 2269 | ||
727 | 2210 | /** |
|
728 | * {@inheritdoc} |
||
729 | */ |
||
730 | 2269 | public function getForeignKeyReferentialActionSQL(string $action) : string |
|
750 | |||
751 | /** |
||
752 | * {@inheritDoc} |
||
753 | 1152 | */ |
|
754 | public function getDropDatabaseSQL(string $database) : string |
||
758 | |||
759 | /** |
||
760 | 2306 | * {@inheritDoc} |
|
761 | */ |
||
762 | 2306 | public function getAlterTableSQL(TableDiff $diff) : array |
|
889 | 2016 | ||
890 | /** |
||
891 | * {@inheritdoc} |
||
892 | */ |
||
893 | 2016 | public function getColumnDeclarationSQL(string $name, array $field) : string |
|
918 | 2291 | ||
919 | 2291 | /** |
|
920 | * {@inheritdoc} |
||
921 | */ |
||
922 | 2293 | protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName) : array |
|
931 | 279 | ||
932 | 279 | /** |
|
933 | * {@inheritDoc} |
||
934 | */ |
||
935 | 364 | public function prefersSequences() : bool |
|
939 | |||
940 | /** |
||
941 | * {@inheritdoc} |
||
942 | */ |
||
943 | public function usesSequenceEmulatedIdentityColumns() : bool |
||
947 | |||
948 | /** |
||
949 | 1828 | * {@inheritdoc} |
|
950 | */ |
||
951 | 1828 | public function getIdentitySequenceName(string $tableName, string $columnName) : string |
|
966 | |||
967 | /** |
||
968 | 2251 | * {@inheritDoc} |
|
969 | */ |
||
970 | 2251 | public function supportsCommentOnStatement() : bool |
|
974 | |||
975 | /** |
||
976 | 2279 | * {@inheritDoc} |
|
977 | */ |
||
978 | 2279 | public function getName() : string |
|
982 | |||
983 | /** |
||
984 | 1457 | * {@inheritDoc} |
|
985 | */ |
||
986 | 1457 | protected function doModifyLimitQuery(string $query, ?int $limit, int $offset) : string |
|
1016 | 2068 | ||
1017 | /** |
||
1018 | * {@inheritDoc} |
||
1019 | * |
||
1020 | 2126 | * Oracle returns all column names in SQL result sets in uppercase. |
|
1021 | */ |
||
1022 | public function getSQLResultCasing(string $column) : string |
||
1026 | |||
1027 | /** |
||
1028 | * {@inheritDoc} |
||
1029 | */ |
||
1030 | public function getCreateTemporaryTableSnippetSQL() : string |
||
1034 | |||
1035 | /** |
||
1036 | * {@inheritDoc} |
||
1037 | */ |
||
1038 | public function getDateTimeTzFormatString() : string |
||
1042 | |||
1043 | /** |
||
1044 | 2 | * {@inheritDoc} |
|
1045 | */ |
||
1046 | 2 | public function getDateFormatString() : string |
|
1050 | |||
1051 | /** |
||
1052 | 2 | * {@inheritDoc} |
|
1053 | */ |
||
1054 | 2 | public function getTimeFormatString() : string |
|
1058 | |||
1059 | /** |
||
1060 | 2 | * {@inheritDoc} |
|
1061 | */ |
||
1062 | 2 | public function fixSchemaElementName(string $schemaElementName) : string |
|
1071 | |||
1072 | /** |
||
1073 | * {@inheritDoc} |
||
1074 | */ |
||
1075 | public function getMaxIdentifierLength() : int |
||
1079 | |||
1080 | /** |
||
1081 | 26 | * {@inheritDoc} |
|
1082 | */ |
||
1083 | 26 | public function supportsSequences() : bool |
|
1087 | |||
1088 | /** |
||
1089 | 10 | * {@inheritDoc} |
|
1090 | */ |
||
1091 | 10 | public function supportsForeignKeyOnUpdate() : bool |
|
1095 | |||
1096 | /** |
||
1097 | * {@inheritDoc} |
||
1098 | */ |
||
1099 | public function supportsReleaseSavepoints() : bool |
||
1103 | |||
1104 | /** |
||
1105 | 2 | * {@inheritDoc} |
|
1106 | */ |
||
1107 | 2 | public function getTruncateTableSQL(string $tableName, bool $cascade = false) : string |
|
1113 | 495 | ||
1114 | /** |
||
1115 | 495 | * {@inheritDoc} |
|
1116 | */ |
||
1117 | 495 | public function getDummySelectSQL(string $expression = '1') : string |
|
1121 | |||
1122 | /** |
||
1123 | 22 | * {@inheritDoc} |
|
1124 | */ |
||
1125 | 22 | protected function initializeDoctrineTypeMappings() : void |
|
1153 | |||
1154 | /** |
||
1155 | * {@inheritDoc} |
||
1156 | */ |
||
1157 | public function releaseSavePoint(string $savepoint) : string |
||
1161 | |||
1162 | /** |
||
1163 | * {@inheritDoc} |
||
1164 | */ |
||
1165 | protected function getReservedKeywordsClass() : string |
||
1169 | |||
1170 | /** |
||
1171 | * {@inheritDoc} |
||
1172 | */ |
||
1173 | 2098 | public function getBlobTypeDeclarationSQL(array $field) : string |
|
1177 | |||
1178 | public function getListTableCommentsSQL(string $table, ?string $database = null) : string |
||
1198 | } |
||
1199 |
This check marks PHPDoc comments that could not be parsed by our parser. To see which comment annotations we can parse, please refer to our documentation on supported doc-types.