docs: def republish_collection(submitter, submitlog, next_minor_version,
                           collection_ident, plpy, revised=None):
      """Insert a new row for collection_ident with a new version.
  
      Returns the module_ident of the row inserted.
      """
      sql = '''
      INSERT INTO modules (portal_type, moduleid, uuid, version, name, created,
          revised, abstractid, licenseid, doctype, submitter, submitlog,
          stateid, parent, language, authors, maintainers, licensors,
          parentauthors, google_analytics, buylink, print_style,
          major_version, minor_version)
        SELECT m.portal_type, m.moduleid, m.uuid, m.version, m.name, m.created,
          {}, m.abstractid, m.licenseid, m.doctype, $3, $4,
          m.stateid, m.parent, m.language, m.authors, m.maintainers, m.licensors,
          m.parentauthors, m.google_analytics, m.buylink, m.print_style,
          m.major_version, $1
        FROM modules m
        WHERE m.module_ident = $2
      RETURNING module_ident
      '''
      if revised is None:
          sql = sql.format('CURRENT_TIMESTAMP')
          types = ('integer', 'integer', 'text', 'text')
          params = (next_minor_version, collection_ident, submitter, submitlog)
      else:
          sql = sql.format('$5')
          types = ('integer', 'integer', 'text', 'text', 'timestamp')
          params = (next_minor_version, collection_ident, submitter, submitlog,
                    revised)
      plan = plpy.prepare(sql, types)
      new_ident = plpy.execute(plan, params, 1)[0]['module_ident']
  
      plan = plpy.prepare("""\
          INSERT INTO modulekeywords (module_ident, keywordid)
          SELECT $1, keywordid
          FROM modulekeywords
          WHERE module_ident = $2""", ('integer', 'integer'))
      plpy.execute(plan, (new_ident, collection_ident,))
  
      plan = plpy.prepare("""\
          INSERT INTO moduletags (module_ident, tagid)
          SELECT $1, tagid
          FROM moduletags
          WHERE module_ident = $2""", ('integer', 'integer'))
      plpy.execute(plan, (new_ident, collection_ident,))
  
      plan = plpy.prepare("""\
          INSERT INTO module_files (module_ident, fileid, filename)
          SELECT $1, fileid, filename
          FROM module_files
          WHERE module_ident = $2 and filename != 'collection.xml'""",
                          ('integer', 'integer'))
      plpy.execute(plan, (new_ident, collection_ident,))
      return new_ident