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

ASF GitHub Bot commented on DRILL-2288:
---------------------------------------

Github user hnfgns commented on a diff in the pull request:

    https://github.com/apache/drill/pull/245#discussion_r44199009
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/validate/IteratorValidatorBatchIterator.java
 ---
    @@ -33,36 +33,113 @@
     import org.apache.drill.exec.util.BatchPrinter;
     import org.apache.drill.exec.vector.VectorValidator;
     
    +import static org.apache.drill.exec.record.RecordBatch.IterOutcome.*;
    +
    +
     public class IteratorValidatorBatchIterator implements 
CloseableRecordBatch {
    -  static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(IteratorValidatorBatchIterator.class);
    +  private static final org.slf4j.Logger logger =
    +      
org.slf4j.LoggerFactory.getLogger(IteratorValidatorBatchIterator.class);
     
       static final boolean VALIDATE_VECTORS = false;
     
    -  private IterOutcome state = IterOutcome.NOT_YET;
    +  /** For logging/debuggability only. */
    +  private static volatile int instanceCount;
    +
    +  /** For logging/debuggability only. */
    +  private final int instNum;
    +  {
    +    instNum = ++instanceCount;
    +  }
    +
    +  /**
    +   * The upstream batch, calls to which and return values from which are
    +   * checked by this validator.
    +   */
       private final RecordBatch incoming;
    -  private boolean first = true;
    +
    +  /** Incoming batch's type (simple class name); for logging/debuggability
    +   *  only. */
    +  private final String batchTypeName;
    +
    +  /** Exception state of incoming batch; last value thrown by its next()
    +   *  method. */
    +  private Throwable exceptionState = null;
    +
    +  /** Main state of incoming batch; last value returned by its next() 
method. */
    +  private IterOutcome batchState = null;
    +
    +  /** Last schema retrieved after OK_NEW_SCHEMA or OK from next().  Null 
if none
    +   *  yet. Currently for logging/debuggability only. */
    +  private BatchSchema lastSchema = null;
    +
    +  /** Last schema retrieved after OK_NEW_SCHEMA from next().  Null if none 
yet.
    +   *  Currently for logging/debuggability only. */
    --- End diff --
    
    pretty good doc here :100: 


> 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.4.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)

Reply via email to