Het blijkt dat er sprake is van een punt dat ergens op grensvlak zweeft tussen “documentation bug”, “bug” en “feature”. Er kunnen meerdere rijen komen uit de for json auto
, namelijk één per 1.000 rijen en dan nog afhankelijk van aantal randvoorwaarden. Dit is niet beschreven en niet instelbaar.
Nieuw: for json output per <GETAL> rows
Een aanpassing wordt verwerkt in de Invantive SQL-grammatica bij de for json
clause. Voortaan kan er naast de root node, wel/niet opnemen null waarden en wel/niet opnemen JSON array-buitenlaag ook opgegeven worden hoeveel rijen per regel terug moeten komen via:
, output per <GETAL> rows
Indien niet opgegeven, dan wordt de eerder gebruikte standaardwaarde van 1.000 rijen gebruikt.
De eerste regel zal - tenzij onderdrukt - het array-karakter [
bevatten, de laatste regel eindigt met ]
.
Een voorbeeld van een Invantive SQL-query die de getallen tot/met 100 per drie gegroepeerd teruggeeft is:
select rge.value
from range@datadictionary(100) rge
for json auto
, output per 3 rows
Waarom losse rijen met JSON?
Het gebruik van de for json
-clause in Invantive SQL heeft een grote vlucht genomen. Inmiddels worden soms honderden gigabytes aan data per dag verwerkt hiermee. Echter, deze verwerking is sterk batchmatig. Dit leidt tot een grote belasting van de apparatuur. Door meer mogelijkheden te bieden voor het opknippen van de JSON-berichten wordt het eenvoudiger om tussenresultaten alvast op te sturen naar de ontvanger. Hierdoor daalt het maximale geheugenbeslag en kunnen ook resultaten van meer dan 2 GB verwerkt worden.
In de toekomst is het streven om ook teksten te kunnen toevoegen aan de HTTP stream van Invantive Cloud als het totale volume meer dan 2 GB is.
Toepassing: alles in één rij
Om alle data in één rij te plaatsen gebruik je een bijzonder hoge waarde voor het getal.