2 namespace TYPO3\CMS\Dbal\Database\Specifics;
32 self::CAST_FIND_IN_SET =>
true
69 if ($maxLength === -1) {
86 return '(' . $maxLength .
')';
98 if (!$fieldDefinition[
'has_default']) {
100 }
elseif ($fieldDefinition[
'type'] ===
'SERIAL' && substr($fieldDefinition[
'default_value'], 0, 7) ===
'nextval') {
102 }
elseif ($fieldDefinition[
'type'] ===
'varchar') {
107 $returnValue = str_replace(
"\\'",
"'", preg_replace(
'/\'(.*)\'(::(?:character\svarying|varchar|character|char|text)(?:\(\d+\))?)?\z/',
'\\1', $fieldDefinition[
'default_value']));
109 }
elseif (substr($fieldDefinition[
'type'], 0, 3) ===
'int') {
110 $returnValue = (int)preg_replace(
'/^\(?(\-?\d+)\)?$/',
'\\1', $fieldDefinition[
'default_value']);
112 $returnValue = $fieldDefinition[
'default_value'];
130 if (isset($fieldDefinition[
'primary_key']) && (
bool)$fieldDefinition[
'primary_key']) {
131 $returnValue =
'PRI';
132 }
elseif (isset($fieldDefinition[
'unique']) && (
bool)$fieldDefinition[
'unique']) {
133 $returnValue =
'UNI';
150 if ($fieldDefinition[
'type'] ===
'SERIAL' || substr($fieldDefinition[
'default_value'], 0, 7) ===
'nextval') {
151 return 'auto_increment';
167 public function transformQueryParts(&$select_fields, &$from_table, &$where_clause, &$groupBy =
'', &$orderBy =
'', &$limit =
'')
170 if (preg_match_all(
'/count\(([^)]*)\)/i', $select_fields, $matches)) {
173 foreach ($matches[1] as $matchedField) {
174 $field = $matchedField;
176 $index = array_search($field, $groupByFields,
true);
177 if ($index !==
false) {
182 $index = array_search($field, $orderByFields,
true);
183 if ($index !==
false) {
184 unset($orderByFields[$index]);
187 $orderBy = implode(
', ', $orderByFields);