Class ImmutableScan

All Implemented Interfaces:
Attributes

@Private public final class ImmutableScan extends Scan
Immutable version of Scan
  • Field Details

  • Constructor Details

    • ImmutableScan

      public ImmutableScan(Scan scan)
      Create Immutable instance of Scan from given Scan object
      Parameters:
      scan - Copy all values from Scan
  • Method Details

    • addFamily

      public Scan addFamily(byte[] family)
      Description copied from class: Scan
      Get all columns from the specified family.

      Overrides previous calls to addColumn for this family.

      Overrides:
      addFamily in class Scan
      Parameters:
      family - family name
    • addColumn

      public Scan addColumn(byte[] family, byte[] qualifier)
      Description copied from class: Scan
      Get the column from the specified family with the specified qualifier.

      Overrides previous calls to addFamily for this family.

      Overrides:
      addColumn in class Scan
      Parameters:
      family - family name
      qualifier - column qualifier
    • setTimeRange

      public Scan setTimeRange(long minStamp, long maxStamp)
      Description copied from class: Scan
      Get versions of columns only within the specified timestamp range, [minStamp, maxStamp). Note, default maximum versions to return is 1. If your time range spans more than one version and you want all versions returned, up the number of versions beyond the default.
      Overrides:
      setTimeRange in class Scan
      Parameters:
      minStamp - minimum timestamp value, inclusive
      maxStamp - maximum timestamp value, exclusive
      See Also:
    • setTimestamp

      public Scan setTimestamp(long timestamp)
      Description copied from class: Scan
      Get versions of columns with the specified timestamp. Note, default maximum versions to return is 1. If your time range spans more than one version and you want all versions returned, up the number of versions beyond the defaut.
      Overrides:
      setTimestamp in class Scan
      Parameters:
      timestamp - version timestamp
      See Also:
    • setColumnFamilyTimeRange

      public Scan setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)
      Description copied from class: Query
      Get versions of columns only within the specified timestamp range, [minStamp, maxStamp) on a per CF bases. Note, default maximum versions to return is 1. If your time range spans more than one version and you want all versions returned, up the number of versions beyond the default. Column Family time ranges take precedence over the global time range.
      Overrides:
      setColumnFamilyTimeRange in class Scan
      Parameters:
      cf - the column family for which you want to restrict
      minStamp - minimum timestamp value, inclusive
      maxStamp - maximum timestamp value, exclusive
    • withStartRow

      public Scan withStartRow(byte[] startRow)
      Description copied from class: Scan
      Set the start row of the scan.

      If the specified row does not exist, the Scanner will start from the next closest row after the specified row.

      Note: Do NOT use this in combination with Scan.setRowPrefixFilter(byte[]) or Scan.setStartStopRowForPrefixScan(byte[]). Doing so will make the scan result unexpected or even undefined.

      Overrides:
      withStartRow in class Scan
      Parameters:
      startRow - row to start scanner at or after
    • withStartRow

      public Scan withStartRow(byte[] startRow, boolean inclusive)
      Description copied from class: Scan
      Set the start row of the scan.

      If the specified row does not exist, or the inclusive is false, the Scanner will start from the next closest row after the specified row.

      Note: Do NOT use this in combination with Scan.setRowPrefixFilter(byte[]) or Scan.setStartStopRowForPrefixScan(byte[]). Doing so will make the scan result unexpected or even undefined.

      Overrides:
      withStartRow in class Scan
      Parameters:
      startRow - row to start scanner at or after
      inclusive - whether we should include the start row when scan
    • withStopRow

      public Scan withStopRow(byte[] stopRow)
      Description copied from class: Scan
      Set the stop row of the scan.

      The scan will include rows that are lexicographically less than the provided stopRow.

      Note: Do NOT use this in combination with Scan.setRowPrefixFilter(byte[]) or Scan.setStartStopRowForPrefixScan(byte[]). Doing so will make the scan result unexpected or even undefined.

      Overrides:
      withStopRow in class Scan
      Parameters:
      stopRow - row to end at (exclusive)
    • withStopRow

      public Scan withStopRow(byte[] stopRow, boolean inclusive)
      Description copied from class: Scan
      Set the stop row of the scan.

      The scan will include rows that are lexicographically less than (or equal to if inclusive is true) the provided stopRow.

      Note: Do NOT use this in combination with Scan.setRowPrefixFilter(byte[]) or Scan.setStartStopRowForPrefixScan(byte[]). Doing so will make the scan result unexpected or even undefined.

      Overrides:
      withStopRow in class Scan
      Parameters:
      stopRow - row to end at
      inclusive - whether we should include the stop row when scan
    • setStartStopRowForPrefixScan

      public Scan setStartStopRowForPrefixScan(byte[] rowPrefix)
      Description copied from class: Scan

      Set a filter (using stopRow and startRow) so the result set only contains rows where the rowKey starts with the specified prefix.

      This is a utility method that converts the desired rowPrefix into the appropriate values for the startRow and stopRow to achieve the desired result.

      This can safely be used in combination with setFilter.

      This CANNOT be used in combination with withStartRow and/or withStopRow. Such a combination will yield unexpected and even undefined results.

      Overrides:
      setStartStopRowForPrefixScan in class Scan
      Parameters:
      rowPrefix - the prefix all rows must start with. (Set null to remove the filter.)
    • readAllVersions

      Description copied from class: Scan
      Get all available versions.
      Overrides:
      readAllVersions in class Scan
    • readVersions

      public Scan readVersions(int versions)
      Description copied from class: Scan
      Get up to the specified number of versions of each column.
      Overrides:
      readVersions in class Scan
      Parameters:
      versions - specified number of versions for each column
    • setBatch

      public Scan setBatch(int batch)
      Description copied from class: Scan
      Set the maximum number of cells to return for each call to next(). Callers should be aware that this is not equivalent to calling Scan.setAllowPartialResults(boolean). If you don't allow partial results, the number of cells in each Result must equal to your batch setting unless it is the last Result for current row. So this method is helpful in paging queries. If you just want to prevent OOM at client, use setAllowPartialResults(true) is better.
      Overrides:
      setBatch in class Scan
      Parameters:
      batch - the maximum number of values
      See Also:
    • setMaxResultsPerColumnFamily

      public Scan setMaxResultsPerColumnFamily(int limit)
      Description copied from class: Scan
      Set the maximum number of values to return per row per Column Family
      Overrides:
      setMaxResultsPerColumnFamily in class Scan
      Parameters:
      limit - the maximum number of values returned / row / CF
    • setRowOffsetPerColumnFamily

      public Scan setRowOffsetPerColumnFamily(int offset)
      Description copied from class: Scan
      Set offset for the row per Column Family.
      Overrides:
      setRowOffsetPerColumnFamily in class Scan
      Parameters:
      offset - is the number of kvs that will be skipped.
    • setCaching

      public Scan setCaching(int caching)
      Description copied from class: Scan
      Set the number of rows for caching that will be passed to scanners. If not set, the Configuration setting HConstants.HBASE_CLIENT_SCANNER_CACHING will apply. Higher caching values will enable faster scanners but will use more memory.
      Overrides:
      setCaching in class Scan
      Parameters:
      caching - the number of rows for caching
    • setMaxResultSize

      public Scan setMaxResultSize(long maxResultSize)
      Description copied from class: Scan
      Set the maximum result size. The default is -1; this means that no specific maximum result size will be set for this scan, and the global configured value will be used instead. (Defaults to unlimited).
      Overrides:
      setMaxResultSize in class Scan
      Parameters:
      maxResultSize - The maximum result size in bytes.
    • setFilter

      public Scan setFilter(Filter filter)
      Description copied from class: Query
      Apply the specified server-side filter when performing the Query. Only Filter.filterCell(org.apache.hadoop.hbase.Cell) is called AFTER all tests for ttl, column match, deletes and column family's max versions have been run.
      Overrides:
      setFilter in class Scan
      Parameters:
      filter - filter to run on the server
      Returns:
      this for invocation chaining
    • setFamilyMap

      public Scan setFamilyMap(Map<byte[],NavigableSet<byte[]>> familyMap)
      Description copied from class: Scan
      Setting the familyMap
      Overrides:
      setFamilyMap in class Scan
      Parameters:
      familyMap - map of family to qualifier
    • setCacheBlocks

      public Scan setCacheBlocks(boolean cacheBlocks)
      Description copied from class: Scan
      Set whether blocks should be cached for this Scan.

      This is true by default. When true, default settings of the table and family are used (this will never override caching blocks if the block cache is disabled for that family or entirely).

      Overrides:
      setCacheBlocks in class Scan
      Parameters:
      cacheBlocks - if false, default settings are overridden and blocks will not be cached
    • setReversed

      public Scan setReversed(boolean reversed)
      Description copied from class: Scan
      Set whether this scan is a reversed one

      This is false by default which means forward(normal) scan.

      Overrides:
      setReversed in class Scan
      Parameters:
      reversed - if true, scan will be backward order
    • setAllowPartialResults

      public Scan setAllowPartialResults(boolean allowPartialResults)
      Description copied from class: Scan
      Setting whether the caller wants to see the partial results when server returns less-than-expected cells. It is helpful while scanning a huge row to prevent OOM at client. By default this value is false and the complete results will be assembled client side before being delivered to the caller.
      Overrides:
      setAllowPartialResults in class Scan
      See Also:
    • setLoadColumnFamiliesOnDemand

      public Scan setLoadColumnFamiliesOnDemand(boolean value)
      Description copied from class: Query
      Set the value indicating whether loading CFs on demand should be allowed (cluster default is false). On-demand CF loading doesn't load column families until necessary, e.g. if you filter on one column, the other column family data will be loaded only for the rows that are included in result, not all rows like in normal case. With column-specific filters, like SingleColumnValueFilter w/filterIfMissing == true, this can deliver huge perf gains when there's a cf with lots of data; however, it can also lead to some inconsistent results, as follows: - if someone does a concurrent update to both column families in question you may get a row that never existed, e.g. for { rowKey = 5, { cat_videos => 1 }, { video => "my cat" } } someone puts rowKey 5 with { cat_videos => 0 }, { video => "my dog" }, concurrent scan filtering on "cat_videos == 1" can get { rowKey = 5, { cat_videos => 1 }, { video => "my dog" } }. - if there's a concurrent split and you have more than 2 column families, some rows may be missing some column families.
      Overrides:
      setLoadColumnFamiliesOnDemand in class Scan
    • setRaw

      public Scan setRaw(boolean raw)
      Description copied from class: Scan
      Enable/disable "raw" mode for this scan. If "raw" is enabled the scan will return all delete marker and deleted rows that have not been collected, yet. This is mostly useful for Scan on column families that have KEEP_DELETED_ROWS enabled. It is an error to specify any column when "raw" is set.
      Overrides:
      setRaw in class Scan
      Parameters:
      raw - True/False to enable/disable "raw" mode.
    • setAttribute

      public Scan setAttribute(String name, byte[] value)
      Description copied from interface: Attributes
      Sets an attribute. In case value = null attribute is removed from the attributes map. Attribute names starting with _ indicate system attributes.
      Specified by:
      setAttribute in interface Attributes
      Overrides:
      setAttribute in class Scan
      Parameters:
      name - attribute name
      value - attribute value
    • setId

      public Scan setId(String id)
      Description copied from class: OperationWithAttributes
      This method allows you to set an identifier on an operation. The original motivation for this was to allow the identifier to be used in slow query logging, but this could obviously be useful in other places. One use of this could be to put a class.method identifier in here to see where the slow query is coming from. id to set for the scan
      Overrides:
      setId in class Scan
    • setAuthorizations

      public Scan setAuthorizations(Authorizations authorizations)
      Description copied from class: Query
      Sets the authorizations to be used by this Query
      Overrides:
      setAuthorizations in class Scan
    • setACL

      public Scan setACL(Map<String,Permission> perms)
      Description copied from class: Query
      Set the ACL for the operation.
      Overrides:
      setACL in class Scan
      Parameters:
      perms - A map of permissions for a user or users
    • setACL

      public Scan setACL(String user, Permission perms)
      Description copied from class: Query
      Set the ACL for the operation.
      Overrides:
      setACL in class Scan
      Parameters:
      user - User short name
      perms - Permissions for the user
    • setConsistency

      public Scan setConsistency(Consistency consistency)
      Description copied from class: Query
      Sets the consistency level for this operation
      Overrides:
      setConsistency in class Scan
      Parameters:
      consistency - the consistency level
    • setReplicaId

      public Scan setReplicaId(int id)
      Description copied from class: Query
      Specify region replica id where Query will fetch data from. Use this together with Query.setConsistency(Consistency) passing Consistency.TIMELINE to read data from a specific replicaId.
      Expert: This is an advanced API exposed. Only use it if you know what you are doing
      Overrides:
      setReplicaId in class Scan
    • setIsolationLevel

      Description copied from class: Query
      Set the isolation level for this query. If the isolation level is set to READ_UNCOMMITTED, then this query will return data from committed and uncommitted transactions. If the isolation level is set to READ_COMMITTED, then this query will return data from committed transactions only. If a isolation level is not explicitly set on a Query, then it is assumed to be READ_COMMITTED.
      Overrides:
      setIsolationLevel in class Scan
      Parameters:
      level - IsolationLevel for this query
    • setPriority

      public Scan setPriority(int priority)
      Overrides:
      setPriority in class Scan
    • setScanMetricsEnabled

      public Scan setScanMetricsEnabled(boolean enabled)
      Description copied from class: Scan
      Enable collection of ScanMetrics. For advanced users.
      Overrides:
      setScanMetricsEnabled in class Scan
      Parameters:
      enabled - Set to true to enable accumulating scan metrics
    • setAsyncPrefetch

      @Deprecated public Scan setAsyncPrefetch(boolean asyncPrefetch)
      Deprecated.
      Overrides:
      setAsyncPrefetch in class Scan
    • setLimit

      public Scan setLimit(int limit)
      Description copied from class: Scan
      Set the limit of rows for this scan. We will terminate the scan if the number of returned rows reaches this value.

      This condition will be tested at last, after all other conditions such as stopRow, filter, etc.

      Overrides:
      setLimit in class Scan
      Parameters:
      limit - the limit of rows for this scan
    • setOneRowLimit

      public Scan setOneRowLimit()
      Description copied from class: Scan
      Call this when you only want to get one row. It will set limit to 1, and also set readType to Scan.ReadType.PREAD.
      Overrides:
      setOneRowLimit in class Scan
    • setReadType

      public Scan setReadType(Scan.ReadType readType)
      Description copied from class: Scan
      Set the read type for this scan.

      Notice that we may choose to use pread even if you specific Scan.ReadType.STREAM here. For example, we will always use pread if this is a get scan.

      Overrides:
      setReadType in class Scan
    • setMvccReadPoint

      Scan setMvccReadPoint(long mvccReadPoint)
      Description copied from class: Scan
      Set the mvcc read point used to open a scanner.
      Overrides:
      setMvccReadPoint in class Scan
    • resetMvccReadPoint

      Description copied from class: Scan
      Set the mvcc read point to -1 which means do not use it.
      Overrides:
      resetMvccReadPoint in class Scan
    • setNeedCursorResult

      public Scan setNeedCursorResult(boolean needCursorResult)
      Description copied from class: Scan
      When the server is slow or we scan a table with many deleted data or we use a sparse filter, the server will response heartbeat to prevent timeout. However the scanner will return a Result only when client can do it. So if there are many heartbeats, the blocking time on ResultScanner#next() may be very long, which is not friendly to online services. Set this to true then you can get a special Result whose #isCursor() returns true and is not contains any real data. It only tells you where the server has scanned. You can call next to continue scanning or open a new scanner with this row key as start row whenever you want. Users can get a cursor when and only when there is a response from the server but we can not return a Result to users, for example, this response is a heartbeat or there are partial cells but users do not allow partial result. Now the cursor is in row level which means the special Result will only contains a row key. Result.isCursor() Result.getCursor() Cursor
      Overrides:
      setNeedCursorResult in class Scan
    • getMaxResultSize

      public long getMaxResultSize()
      Description copied from class: Scan
      Returns the maximum result size in bytes. See Scan.setMaxResultSize(long)
      Overrides:
      getMaxResultSize in class Scan
    • getFamilyMap

      public Map<byte[],NavigableSet<byte[]>> getFamilyMap()
      Description copied from class: Scan
      Getting the familyMap
      Overrides:
      getFamilyMap in class Scan
    • numFamilies

      public int numFamilies()
      Description copied from class: Scan
      Returns the number of families in familyMap
      Overrides:
      numFamilies in class Scan
    • hasFamilies

      public boolean hasFamilies()
      Description copied from class: Scan
      Returns true if familyMap is non empty, false otherwise
      Overrides:
      hasFamilies in class Scan
    • getFamilies

      public byte[][] getFamilies()
      Description copied from class: Scan
      Returns the keys of the familyMap
      Overrides:
      getFamilies in class Scan
    • getStartRow

      public byte[] getStartRow()
      Description copied from class: Scan
      Returns the startrow
      Overrides:
      getStartRow in class Scan
    • includeStartRow

      public boolean includeStartRow()
      Description copied from class: Scan
      Returns if we should include start row when scan
      Overrides:
      includeStartRow in class Scan
    • getStopRow

      public byte[] getStopRow()
      Description copied from class: Scan
      Returns the stoprow
      Overrides:
      getStopRow in class Scan
    • includeStopRow

      public boolean includeStopRow()
      Description copied from class: Scan
      Returns if we should include stop row when scan
      Overrides:
      includeStopRow in class Scan
    • getMaxVersions

      public int getMaxVersions()
      Description copied from class: Scan
      Returns the max number of versions to fetch
      Overrides:
      getMaxVersions in class Scan
    • getBatch

      public int getBatch()
      Description copied from class: Scan
      Returns maximum number of values to return for a single call to next()
      Overrides:
      getBatch in class Scan
    • getMaxResultsPerColumnFamily

      Description copied from class: Scan
      Returns maximum number of values to return per row per CF
      Overrides:
      getMaxResultsPerColumnFamily in class Scan
    • getRowOffsetPerColumnFamily

      Description copied from class: Scan
      Method for retrieving the scan's offset per row per column family (#kvs to be skipped)
      Overrides:
      getRowOffsetPerColumnFamily in class Scan
      Returns:
      row offset
    • getCaching

      public int getCaching()
      Description copied from class: Scan
      Returns caching the number of rows fetched when calling next on a scanner
      Overrides:
      getCaching in class Scan
    • getTimeRange

      Description copied from class: Scan
      Returns TimeRange
      Overrides:
      getTimeRange in class Scan
    • getFilter

      public Filter getFilter()
      Description copied from class: Scan
      Returns RowFilter
      Overrides:
      getFilter in class Scan
    • hasFilter

      public boolean hasFilter()
      Description copied from class: Scan
      Returns true is a filter has been specified, false if not
      Overrides:
      hasFilter in class Scan
    • getCacheBlocks

      public boolean getCacheBlocks()
      Description copied from class: Scan
      Get whether blocks should be cached for this Scan.
      Overrides:
      getCacheBlocks in class Scan
      Returns:
      true if default caching should be used, false if blocks should not be cached
    • isReversed

      public boolean isReversed()
      Description copied from class: Scan
      Get whether this scan is a reversed one.
      Overrides:
      isReversed in class Scan
      Returns:
      true if backward scan, false if forward(default) scan
    • getAllowPartialResults

      public boolean getAllowPartialResults()
      Description copied from class: Scan
      Returns true when the constructor of this scan understands that the results they will see may only represent a partial portion of a row. The entire row would be retrieved by subsequent calls to ResultScanner.next()
      Overrides:
      getAllowPartialResults in class Scan
    • getACL

      public byte[] getACL()
      Description copied from class: Query
      Returns The serialized ACL for this operation, or null if none
      Overrides:
      getACL in class Query
    • getFingerprint

      Description copied from class: Scan
      Compile the table and column family (i.e. schema) information into a String. Useful for parsing and aggregation by debugging, logging, and administration tools.
      Overrides:
      getFingerprint in class Scan
      Returns:
      a map containing fingerprint information (i.e. column families)
    • toMap

      public Map<String,Object> toMap(int maxCols)
      Description copied from class: Scan
      Compile the details beyond the scope of getFingerprint (row, columns, timestamps, etc.) into a Map along with the fingerprinted information. Useful for debugging, logging, and administration tools.
      Overrides:
      toMap in class Scan
      Parameters:
      maxCols - a limit on the number of columns output prior to truncation
      Returns:
      a map containing parameters of a query (i.e. rows, columns...)
    • isRaw

      public boolean isRaw()
      Description copied from class: Scan
      Returns True if this Scan is in "raw" mode.
      Overrides:
      isRaw in class Scan
    • isScanMetricsEnabled

      public boolean isScanMetricsEnabled()
      Description copied from class: Scan
      Returns True if collection of scan metrics is enabled. For advanced users.
      Overrides:
      isScanMetricsEnabled in class Scan
    • isAsyncPrefetch

      Overrides:
      isAsyncPrefetch in class Scan
    • getLimit

      public int getLimit()
      Description copied from class: Scan
      Returns the limit of rows for this scan
      Overrides:
      getLimit in class Scan
    • getReadType

      Description copied from class: Scan
      Returns the read type for this scan
      Overrides:
      getReadType in class Scan
    • getMvccReadPoint

      Description copied from class: Scan
      Get the mvcc read point used to open a scanner.
      Overrides:
      getMvccReadPoint in class Scan
    • isNeedCursorResult

      public boolean isNeedCursorResult()
      Overrides:
      isNeedCursorResult in class Scan
    • getAttribute

      public byte[] getAttribute(String name)
      Description copied from interface: Attributes
      Gets an attribute
      Specified by:
      getAttribute in interface Attributes
      Overrides:
      getAttribute in class OperationWithAttributes
      Parameters:
      name - attribute name
      Returns:
      attribute value if attribute is set, null otherwise
    • getConsistency

      Description copied from class: Query
      Returns the consistency level for this operation
      Overrides:
      getConsistency in class Query
      Returns:
      the consistency level
    • getAttributeSize

      public long getAttributeSize()
      Overrides:
      getAttributeSize in class OperationWithAttributes
    • getAttributesMap

      public Map<String,byte[]> getAttributesMap()
      Description copied from interface: Attributes
      Gets all attributes
      Specified by:
      getAttributesMap in interface Attributes
      Overrides:
      getAttributesMap in class OperationWithAttributes
      Returns:
      unmodifiable map of all attributes
    • getLoadColumnFamiliesOnDemandValue

      Description copied from class: Query
      Get the raw loadColumnFamiliesOnDemand setting; if it's not set, can be null.
      Overrides:
      getLoadColumnFamiliesOnDemandValue in class Query
    • getPriority

      public int getPriority()
      Overrides:
      getPriority in class OperationWithAttributes
    • getColumnFamilyTimeRange

      Description copied from class: Query
      Returns A map of column families to time ranges
      Overrides:
      getColumnFamilyTimeRange in class Query
    • getReplicaId

      public int getReplicaId()
      Description copied from class: Query
      Returns region replica id where Query will fetch data from.
      Overrides:
      getReplicaId in class Query
      Returns:
      region replica id or -1 if not set.
    • doLoadColumnFamiliesOnDemand

      public boolean doLoadColumnFamiliesOnDemand()
      Description copied from class: Query
      Get the logical value indicating whether on-demand CF loading should be allowed.
      Overrides:
      doLoadColumnFamiliesOnDemand in class Query
    • getId

      public String getId()
      Description copied from class: OperationWithAttributes
      This method allows you to retrieve the identifier for the operation if one was set.
      Overrides:
      getId in class OperationWithAttributes
      Returns:
      the id or null if not set
    • isGetScan

      public boolean isGetScan()
      Overrides:
      isGetScan in class Scan
    • getIsolationLevel

      Description copied from class: Query
      Returns The isolation level of this query. If no isolation level was set for this query object, then it returns READ_COMMITTED.
      Overrides:
      getIsolationLevel in class Query
    • getAuthorizations

      Description copied from class: Query
      Returns The authorizations this Query is associated with. n
      Overrides:
      getAuthorizations in class Query
      Throws:
      DeserializationException
    • toString

      public String toString(int maxCols)
      Description copied from class: Operation
      Produces a string representation of this Operation. It defaults to a JSON representation, but falls back to a string representation of the fingerprint and details in the case of a JSON encoding failure.
      Overrides:
      toString in class Operation
      Parameters:
      maxCols - a limit on the number of columns output in the summary prior to truncation
      Returns:
      a JSON-parseable String
    • toString

      public String toString()
      Description copied from class: Operation
      Produces a string representation of this Operation. It defaults to a JSON representation, but falls back to a string representation of the fingerprint and details in the case of a JSON encoding failure.
      Overrides:
      toString in class Operation
    • toMap

      public Map<String,Object> toMap()
      Description copied from class: Operation
      Produces a Map containing a full summary of a query.
      Overrides:
      toMap in class Operation
      Returns:
      a map containing parameters of a query (i.e. rows, columns...)
    • toJSON

      public String toJSON(int maxCols) throws IOException
      Description copied from class: Operation
      Produces a JSON object for fingerprint and details exposure in a parseable format.
      Overrides:
      toJSON in class Operation
      Parameters:
      maxCols - a limit on the number of columns to include in the JSON
      Returns:
      a JSONObject containing this Operation's information, as a string
      Throws:
      IOException
    • toJSON

      public String toJSON() throws IOException
      Description copied from class: Operation
      Produces a JSON object sufficient for description of a query in a debugging or logging context.
      Overrides:
      toJSON in class Operation
      Returns:
      the produced JSON object, as a string
      Throws:
      IOException