code: def concatenate_table(tup, blen=None, storage=None, create='table', **kwargs):
      
  
      # setup
      storage = _util.get_storage(storage)
      if not isinstance(tup, (tuple, list)):
          raise ValueError('expected tuple or list, found %r' % tup)
      if len(tup) < 2:
          raise ValueError('expected two or more tables to stack')
  
      # build output
      expectedlen = sum(len(t) for t in tup)
      out = None
      tnames = None
      for tdata in tup:
          tblen = _util.get_blen_table(tdata, blen)
          tnames, tcolumns = _util.check_table_like(tdata, names=tnames)
          tlen = len(tcolumns[0])
          for i in range(0, tlen, tblen):
              j = min(i+tblen, tlen)
              bcolumns = [c[i:j] for c in tcolumns]
              if out is None:
                  out = getattr(storage, create)(bcolumns, names=tnames,
                                                 expectedlen=expectedlen,
                                                 **kwargs)
              else:
                  out.append(bcolumns)
      return out
docs: Stack tables in sequence vertically (row-wise).