[
https://issues.apache.org/jira/browse/METAMODEL-173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14698397#comment-14698397
]
ASF GitHub Bot commented on METAMODEL-173:
------------------------------------------
GitHub user kaspersorensen opened a pull request:
https://github.com/apache/metamodel/pull/40
CSV writing using Resource.write() and Resource.append()
Fixes METAMODEL-173
See also previous PR #36 which had a different approach. This approach is
in my opinion better since it tries to improve the way the CsvUpdateCallback
remembers the output stream (in form of a Writer) and reuses it for each line
it writes.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/kaspersorensen/metamodel METAMODEL-173
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/metamodel/pull/40.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #40
----
commit 7d21fba0a5579c96a0ab1feb5818621cfa299e9a
Author: Kasper Sørensen <[email protected]>
Date: 2015-08-15T18:27:24Z
METAMODEL-173: Added Resource.append() and Resource.write() methods
implemented an abstract Resource class for reuse of common functionality
commit d1966b3756b92e3eed5943a2d1e76b949928daeb
Author: Kasper Sørensen <[email protected]>
Date: 2015-08-15T18:40:00Z
METAMODEL-173: Changed CsvUpdateCallback to use Resource.write()
or Resource.append() when necesary.
----
> Effecient CSV writing/appending for non-file resources
> ------------------------------------------------------
>
> Key: METAMODEL-173
> URL: https://issues.apache.org/jira/browse/METAMODEL-173
> Project: Apache MetaModel
> Issue Type: Bug
> Reporter: Kasper Sørensen
>
> See https://github.com/apache/metamodel/pull/36
> In CsvUpdateCallback line 91-100 we have a file-specific optimization that
> keeps open an output stream and appends to that stream for the duration of
> many CSV insert operations. On other Resource implementations we use the
> .append call. But the .append call can be pretty expensive, so it is very
> ineffecient and sometimes may even provoke application errors.
> Instead we should add to the Resource interface a write() and an append()
> method that returns OutputStream. With those methods it becomes possible to
> allow the application more managed control over what is being written.
> Although I prefer the functional style of the current write(Action) and
> append(Action) methods, it seems that in practice we also need the more
> OO-oriented way for writing to Resources.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)