Commits


ptaylor authored and Brian Hulette committed fc7a382da45
ARROW-2116: [JS] implement IPC writers https://issues.apache.org/jira/browse/ARROW-2116 https://issues.apache.org/jira/browse/ARROW-2115 This PR represents a first pass at implementing the IPC writers for binary stream and file formats in JS. I've also added scripts to do the `json-to-arrow`, `file-to-stream`, and `stream-to-file` steps of the integration tests. These scripts rely on a new feature in Node 10 (the next LTS version), so please update. My attempts to use a library to remain backwards-compatible with Node 9 were unsuccessful. I've only done the APIs to serialize a preexisting Table to stream or file formats so far. We will want to refactor this soon to support end-to-end streaming. Edit: Figured out why the integration tests weren't passing, fixed now :1st_place_medal: Author: ptaylor <paul.e.taylor@me.com> Author: Paul Taylor <paul.e.taylor@me.com> Author: lsb <leebutterman@gmail.com> Closes #2035 from trxcllnt/js-buffer-writer and squashes the following commits: 261a864a <ptaylor> Merge branch 'master' into js-buffer-writer 917c2fc8 <ptaylor> test the ES5/UMD bundle in the integration tests 7a346dca <ptaylor> add a handy script for printing the alignment of buffers in a table 4594fe3d <ptaylor> align to 8-byte boundaries only 1a9864cf <ptaylor> read message bodyLength from flatbuffer object e34afaa8 <ptaylor> export the RecordBatchSerializer b765b12a <ptaylor> speed up integration_test.py by only testing the JS source, not every compilation target 4ed6554e <ptaylor> Merge branch 'master' of https://github.com/apache/arrow into js-buffer-writer f497f7a2 <ptaylor> measure maxColumnWidths across all recordBatches when printing a table 14e6b387 <ptaylor> cleanup: remove dead code df43bc55 <ptaylor> make arrow2csv support streaming files from stdin, add rowsToString() method to RecordBatch 7924e677 <ptaylor> rename readNodeStream -> readStream, fromNodeStream -> fromReadableStream, add support for reading File format efc7225e <ptaylor> fix perf tests a06180b3 <ptaylor> don't run JS integration tests in src-only mode when --debug=true ed855723 <ptaylor> fix instanceof ArrayBuffer in jest/node 10 2df1a4ad <ptaylor> update google-closure-compiler, remove gcc-specific workarounds in the build a6a7ab92 <ptaylor> put test tables into hoisted functions so it's easier to set breakpoints a79334df <ptaylor> fix typo again after rebase 081fefc5 <ptaylor> remove bin from ts package.json ccaf489e <ptaylor> remove stream-to-iterator c0b88c25 <ptaylor> always write flatbuffer vectors 0be6de3f <ptaylor> use node v10.1.0 in travis d4b8637b <ptaylor> add license headers b52af25b <ptaylor> cleanup 31877321 <ptaylor> set bitmap alignment to 8 bytes if < 64 values af9f4a8c <ptaylor> run integration tests in node 10.1 de81ac1b <ptaylor> Update JSTester to be an Arrow producer now too 832cc301 <ptaylor> add more js integration scripts for creating/converting arrow formats 263d06d9 <ptaylor> clean up js integration script 78cba384 <ptaylor> arrow2csv: support reading arrow streams from stdin e75da134 <ptaylor> add support for reading streaming format via node streams 4e808513 <ptaylor> write correct recordBatch length 73a2fa9b <ptaylor> fix stream -> file, file -> stream, add tests 304e75d1 <ptaylor> fix magic string alignment in file reader, add file reader tests 402187e2 <ptaylor> add apache license headers db02c1c2 <ptaylor> Add an integration test for binary writer a242da8f <ptaylor> Add `Table.prototype.serialize` method to make ArrayBuffers from Tables da0f4571 <ptaylor> first pass at a working binary writer, only arrow stream format tested so far 508f4f8e <ptaylor> add getChildAt(n) methods to List and FixedSizeList Vectors to be more consistent with the other nested Vectors, make it easier to do the writer a9d773d8 <ptaylor> move ValidityView into its own module, like ChunkedView is 85eb7eee <ptaylor> fix erroneous footer length check in reader 4333e548 <ptaylor> FileBlock constructor should accept Long | number, have public number fields 7fff99ee <ptaylor> move IPC magic into its own module d98e1789 <ptaylor> add option to run gulp cmds with `-t src` to run jest against the `src` folder direct aaec76b3 <ptaylor> fix @std/esm options for node10 18b9dd2a <lsb> Fix a typo efb840f3 <Paul Taylor> fix typo ae1f4819 <Paul Taylor> align to 64-byte boundaries c8ba1fe4 <Paul Taylor> don't write an empty buffer for NullVectors 43c671f7 <Paul Taylor> add Binary writer 6522cb00 <Paul Taylor> fix Data generics for FixedSizeList ef1acc76 <Paul Taylor> read union buffers in the correct order dc92b839 <Paul Taylor> fix typo