docs: @Override
      public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException
      {
          checkClosed();
          this.sysCatalog.setString(1, "COLUMNS");
          JDBC4ResultSet res = (JDBC4ResultSet) this.sysCatalog.executeQuery();
          VoltTable vtable = res.getVoltTable().clone(0);
  
          // If no pattern is specified, default to matching any/all.
          if (tableNamePattern == null || tableNamePattern.length() == 0)
          {
              tableNamePattern = "%";
          }
          Pattern table_pattern = computeJavaPattern(tableNamePattern);
  
          if (columnNamePattern == null || columnNamePattern.length() == 0)
          {
              columnNamePattern = "%";
          }
          Pattern column_pattern = computeJavaPattern(columnNamePattern);
  
          // Filter columns based on table name and column name
          while (res.next()) {
              Matcher table_matcher = table_pattern.matcher(res.getString("TABLE_NAME"));
              if (table_matcher.matches())
              {
                  Matcher column_matcher = column_pattern.matcher(res.getString("COLUMN_NAME"));
                  if (column_matcher.matches())
                  {
                      vtable.addRow(res.getRowData());
                  }
              }
          }
  
          return new JDBC4ResultSet(this.sysCatalog, vtable);
      }