]> granicus.if.org Git - jq/commit
Revert "Add -I / --online-input for huge top-level arrays"
authorNicolas Williams <nico@cryptonector.com>
Wed, 4 Jun 2014 23:01:47 +0000 (18:01 -0500)
committerNicolas Williams <nico@cryptonector.com>
Wed, 4 Jun 2014 23:15:58 +0000 (18:15 -0500)
commitae625d0de74c2966e627e3d5e498ab72529c4251
treebf32f195548a0780df732d241fef81aabca97f58
parent5fb82d1018681f41230a3ff6dc412ddad511e821
Revert "Add -I / --online-input for huge top-level arrays"

This reverts commit 77936a594d797c480f26bfcef3636a74588a6918.

There are too many odd bugs in this mode, and it turns out to be a bad
idea anyways.  Instead, in the future a better option will be to pursue
alternative parsers, such as:

 - streaming parser that outputs only when a new leaf value is added or
   an array/object is opened/closed; options here include whether to
   include a path in each output;

 - parsers for binary JSON encodings (there's a variety of them).

Then one might run jq with a streaming parser and use `reduce` to
coalesce inputs from some depth down (instead of from one level down as
the reverted commit had intended).

Besides, a fully streaming parser is desirable in some cases, therefore
we should have such a thing as an option.

I've explored modifying the current parser to support a streaming
option, but it only makes the code very difficult to follow, which is
one reason that alternate parsers makes sense.  At any rate, this is all
for the future.  For now there's no streaming of individual texts, just
text sequences.
jv.h
jv_file.c
jv_parse.c
main.c