-
Notifications
You must be signed in to change notification settings - Fork 105
-
So i had to use this snippet to fix some values.
Does anybody have a better implementation of this?
public function fixSignedNumbers(RowsDTO $event, array $values): array { /** @var \MySQLReplication\Event\RowEvent\ColumnDTO $column */ foreach ($event->getTableMap()->getColumnDTOCollection() as $column) { if( isset($values[ $column->getName() ]) && is_int($values[ $column->getName() ]) && ! $column->isUnsigned() ) { list($type) = explode("(", $column->getFieldDTO()->getColumnType()); switch ($type) { case 'int': if($values[ $column->getName() ] > 2147483647) { $values[ $column->getName() ] = $values[ $column->getName() ] - 2147483647 - 2147483647 - 2; } break; case 'mediumint': if($values[ $column->getName() ] > 8388607) { $values[ $column->getName() ] = $values[ $column->getName() ] - 8388607 - 8388607 - 2; } break; case 'smallint': if($values[ $column->getName() ] > 32767) { $values[ $column->getName() ] = $values[ $column->getName() ] - 32767 - 32767 - 2; } break; case 'tinyint': if($values[ $column->getName() ] > 127) { $values[ $column->getName() ] = $values[ $column->getName() ] - 127 - 127 - 2; } break; } } } return $values; }
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 1 comment
-
can you provider create table with insert on what data you need to fix signed ? 🤔
nvm I see #108
Beta Was this translation helpful? Give feedback.
All reactions
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment