int is 4 bytes in mssql: https://learn.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql?view=sql-server-ver16
bigserial is 8 bytes: https://www.postgresql.org/docs/current/datatype-numeric.html
Expected: pgloader converts to serial (4 bytes).
Besides just more space this has implications for node applications using the pg library which returns strings instead of numbers because numbers in js can't represent full 64bit integers.
Location in the code:
|
(:source (:type "int" :auto-increment t) |
|
:target (:type "bigserial" :drop-default t)) |
(related: #1586. I only found this issue after applying the fix of #1586 on a fork)
intis 4 bytes in mssql: https://learn.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql?view=sql-server-ver16bigserialis 8 bytes: https://www.postgresql.org/docs/current/datatype-numeric.htmlExpected: pgloader converts to
serial(4 bytes).Besides just more space this has implications for node applications using the
pglibrary which returns strings instead ofnumbers because numbers in js can't represent full 64bit integers.Location in the code:
pgloader/src/sources/mssql/mssql-cast-rules.lisp
Lines 15 to 16 in 29afa9d
(related: #1586. I only found this issue after applying the fix of #1586 on a fork)