[ 
https://issues.apache.org/jira/browse/CALCITE-1227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15305078#comment-15305078
 ] 

Julian Hyde commented on CALCITE-1227:
--------------------------------------

Looks pretty good. Can you open a formal pull request? 

I think there's a bit too much copy-pasted code. E.g. 
CsvStreamScannableTable.getRowType does the same as the base method 
CsvTable.getRowType. Can you make a pass and remove any code that can be 
removed.

Please rename CSVStreamReader to CsvStreamReader, to match our naming 
convention.

Regarding cancel. I wonder whether the reader could block waiting for data with 
a timeout of say 1 second, check to see whether the query has been canceled, 
then try to read again, in a loop.



> Add streaming CSV table
> -----------------------
>
>                 Key: CALCITE-1227
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1227
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> Add a variant of CsvTable that can be streamed. It would serve as an example 
> of how to write stream adapters.
> It would be like the CSV adapter, but watches a file and reports records 
> added to the end of the file (like the tail command). 
> You’d have to change {{CsvTable}} to implement {{StreamableTable}}, and 
> implement the {{Table stream()}} method to return a variant of the table that 
> is in “follow” mode.
> It would probably be implemented by a variant of CsvEnumerator, but it is 
> getting its input in bursts, as the file is appended to.
> You would still be able to use this adapter to read historical data from the 
> CSV file. Appending records to the file would make a nice demo.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to