docs: def merge(self,recarray,columns=None):
          """Merge another recarray with the same columns into this table.
  
          :Arguments:
             recarray
                numpy record array that describes the layout and initializes the
                table
  
          :Returns:
             n           number of inserted rows
  
          :Raises:
             Raises an exception if duplicate and incompatible data exist
             in the main table and the new one.
          """
          len_before = len(self)
          #  CREATE TEMP TABLE in database
          tmparray = SQLarray(self.tmp_table_name, records=recarray, columns=columns,
                              connection=self.connection, is_tmp=True)
          len_tmp = len(tmparray)
          # insert into main table
          SQL = """INSERT OR ABORT INTO __self__ SELECT * FROM %s""" % self.tmp_table_name
          self.sql(SQL)
          len_after = len(self)
          n_inserted = len_after - len_before
          assert len_tmp == n_inserted
          del tmparray          # also drops the tmp table (keep it at end for debugging)
          return n_inserted