docs: public final long getLong(int columnIndex) {
          if (columnIndex < 0) {
              throw new IndexOutOfBoundsException("Column index " + columnIndex + " is negative");
          }
          if (columnIndex >= getColumnCount()) {
              throw new IndexOutOfBoundsException("Column index " + columnIndex +
                      " is beyond number of columns " + getColumnCount());
          }
          final VoltType type = getColumnType(columnIndex);
          if (m_activeRowIndex == INVALID_ROW_INDEX)
              throw new RuntimeException("VoltTableRow.advanceRow() must be called to advance to the first row before any access.");
  
          switch (type) {
          case TINYINT:
              final byte value1 = m_buffer.get(getOffset(columnIndex));
              m_wasNull = (value1 == VoltType.NULL_TINYINT);
              return value1;
          case SMALLINT:
              final short value2 = m_buffer.getShort(getOffset(columnIndex));
              m_wasNull = (value2 == VoltType.NULL_SMALLINT);
              return value2;
          case INTEGER:
              final int value3 = m_buffer.getInt(getOffset(columnIndex));
              m_wasNull = (value3 == VoltType.NULL_INTEGER);
              return value3;
          case BIGINT:
              final long value4 = m_buffer.getLong(getOffset(columnIndex));
              m_wasNull = (value4 == VoltType.NULL_BIGINT);
              return value4;
          default:
              throw new IllegalArgumentException("getLong() called on non-integral column.");
          }
      }