@@ -5166,11 +5166,17 @@ public function __construct(string $driver)
5166
5166
5167
5167
private function convertRecordValue ($ conversion , $ value )
5168
5168
{
5169
- switch ($ conversion ) {
5169
+ $ args = explode ('| ' , $ conversion );
5170
+ $ type = array_shift ($ args );
5171
+ switch ($ type ) {
5170
5172
case 'boolean ' :
5171
5173
return $ value ? true : false ;
5172
5174
case 'integer ' :
5173
5175
return (int ) $ value ;
5176
+ case 'float ' :
5177
+ return (float ) $ value ;
5178
+ case 'decimal ' :
5179
+ return number_format ($ value , $ args [0 ], '. ' , '' );
5174
5180
}
5175
5181
return $ value ;
5176
5182
}
@@ -5183,6 +5189,12 @@ private function getRecordValueConversion(ReflectedColumn $column): string
5183
5189
if (in_array ($ this ->driver , ['sqlsrv ' , 'sqlite ' ]) && in_array ($ column ->getType (), ['integer ' , 'bigint ' ])) {
5184
5190
return 'integer ' ;
5185
5191
}
5192
+ if (in_array ($ this ->driver , ['sqlite ' , 'pgsql ' ]) && in_array ($ column ->getType (), ['float ' , 'double ' ])) {
5193
+ return 'float ' ;
5194
+ }
5195
+ if (in_array ($ this ->driver , ['sqlite ' ]) && in_array ($ column ->getType (), ['decimal ' ])) {
5196
+ return 'decimal| ' . $ column ->getScale ();
5197
+ }
5186
5198
return 'none ' ;
5187
5199
}
5188
5200
@@ -5656,7 +5668,7 @@ private function getColumnAutoIncrement(ReflectedColumn $column, bool $update):
5656
5668
return $ column ->getPk () ? ' AUTO_INCREMENT ' : '' ;
5657
5669
case 'pgsql ' :
5658
5670
case 'sqlsrv ' :
5659
- return '' ;
5671
+ return $ column -> getPk () ? ' IDENTITY(1,1) ' : '' ;
5660
5672
case 'sqlite ' :
5661
5673
return $ column ->getPk () ? ' AUTOINCREMENT ' : '' ;
5662
5674
}
@@ -6024,7 +6036,7 @@ public function removeColumn(string $tableName, string $columnName)
6024
6036
private function query (string $ sql , array $ arguments ): bool
6025
6037
{
6026
6038
$ stmt = $ this ->pdo ->prepare ($ sql );
6027
- //echo "- $sql -- " . json_encode($arguments) . "\n";
6039
+ // echo "- $sql -- " . json_encode($arguments) . "\n";
6028
6040
return $ stmt ->execute ($ arguments );
6029
6041
}
6030
6042
}
@@ -6377,19 +6389,26 @@ public function __construct(string $driver)
6377
6389
private $ fromJdbc = [
6378
6390
'mysql ' => [
6379
6391
'clob ' => 'longtext ' ,
6380
- 'boolean ' => 'tinyint ' ,
6392
+ 'boolean ' => 'tinyint(1) ' ,
6381
6393
'blob ' => 'longblob ' ,
6382
6394
'timestamp ' => 'datetime ' ,
6383
6395
],
6384
6396
'pgsql ' => [
6385
6397
'clob ' => 'text ' ,
6386
6398
'blob ' => 'bytea ' ,
6399
+ 'float ' => 'real ' ,
6400
+ 'double ' => 'double precision ' ,
6401
+ 'varbinary ' => 'bytea ' ,
6387
6402
],
6388
6403
'sqlsrv ' => [
6389
6404
'boolean ' => 'bit ' ,
6390
6405
'varchar ' => 'nvarchar ' ,
6391
6406
'clob ' => 'ntext ' ,
6392
6407
'blob ' => 'image ' ,
6408
+ 'time ' => 'time(0) ' ,
6409
+ 'timestamp ' => 'datetime2(0) ' ,
6410
+ 'double ' => 'float ' ,
6411
+ 'float ' => 'real ' ,
6393
6412
],
6394
6413
];
6395
6414
0 commit comments