mirror of
https://github.com/asadbek064/hyparquet.git
synced 2026-01-11 21:26:38 +00:00
Handle conversion of decimal byte array
This commit is contained in:
parent
69d2e725dd
commit
7f63a92679
@ -186,8 +186,7 @@ function convert(data, schemaElement) {
|
||||
if (typeof data[0] === 'number') {
|
||||
return data.map(v => v * scaleFactor)
|
||||
} else {
|
||||
// TODO: parse byte string
|
||||
throw new Error('parquet decimal byte string not supported')
|
||||
return data.map(v => parseDecimal(v) * scaleFactor)
|
||||
}
|
||||
}
|
||||
if (ctype === 'DATE') {
|
||||
@ -207,3 +206,18 @@ function convert(data, schemaElement) {
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse decimal from byte array.
|
||||
*
|
||||
* @param {Uint8Array} bytes
|
||||
* @returns {number}
|
||||
*/
|
||||
function parseDecimal(bytes) {
|
||||
// TODO: handle signed
|
||||
let value = 0
|
||||
for (const byte of bytes) {
|
||||
value = value << 8 | byte
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user