[
https://issues.apache.org/jira/browse/DRILL-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14990495#comment-14990495
]
ASF GitHub Bot commented on DRILL-2288:
---------------------------------------
Github user dsbos commented on a diff in the pull request:
https://github.com/apache/drill/pull/228#discussion_r43943789
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java
---
@@ -93,13 +93,15 @@ public void ensureAtLeastOneField(ComplexWriter writer)
{
if (!atLeastOneWrite) {
// if we had no columns, create one empty one so we can return some
data for count purposes.
SchemaPath sp = columns.get(0);
- PathSegment root = sp.getRootSegment();
+ PathSegment fieldPath = sp.getRootSegment();
BaseWriter.MapWriter fieldWriter = writer.rootAsMap();
- while (root.getChild() != null && !root.getChild().isArray()) {
- fieldWriter = fieldWriter.map(root.getNameSegment().getPath());
- root = root.getChild();
+ while (fieldPath.getChild() != null && !
fieldPath.getChild().isArray()) {
+ fieldWriter =
fieldWriter.map(fieldPath.getNameSegment().getPath());
+ fieldPath = fieldPath.getChild();
+ }
+ if (fieldWriter.isEmptyMap()) {
--- End diff --
> can we remove the ensureAtLeastOneField property
Oh, you mean the atLeastOneWrite property?
Yes, I think that will work. I'll test that..
> ScanBatch violates IterOutcome protocol for zero-row sources [was: missing
> JDBC metadata (schema) for 0-row results...]
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: DRILL-2288
> URL: https://issues.apache.org/jira/browse/DRILL-2288
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - Information Schema
> Reporter: Daniel Barclay (Drill)
> Assignee: Daniel Barclay (Drill)
> Fix For: 1.3.0
>
> Attachments: Drill2288NoResultSetMetadataWhenZeroRowsTest.java
>
>
> The ResultSetMetaData object from getMetadata() of a ResultSet is not set up
> (getColumnCount() returns zero, and trying to access any other metadata
> throws IndexOutOfBoundsException) for a result set with zero rows, at least
> for one from DatabaseMetaData.getColumns(...).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)