def METHOD_NAME(self) -> Iterator[str]:
    selects = []
    for row in struct_types.abc:
        if pd.isna(row):
            datarow = "NULL"
        else:
            datarow = ", ".join(
                "NULL" if pd.isna(val) else repr(val) for val in row.values()
            )
            datarow = f"CAST(ROW({datarow}) AS ROW(a DOUBLE, b VARCHAR, c BIGINT))"
        selects.append(f"SELECT {datarow} AS abc")
    # mirror the existing tables except for intervals which are not supported
    # and maps which we do natively in trino, because trino has more extensive
    # map support
    unsupported_memory_tables = ("intervals", "not_supported_intervals", "map")
    with self.connection.begin() as c:
        pg_tables = c.exec_driver_sql(
            f"""
            SELECT table_name
            FROM postgresql.information_schema.tables
            WHERE table_schema = 'public'
              AND table_name NOT IN {unsupported_memory_tables!r}
            """
        ).scalars()
    for table in pg_tables:
        dest = f"memory.default.{table}"
        yield f"DROP VIEW IF EXISTS {dest}"
        yield f"CREATE VIEW {dest} AS SELECT * FROM postgresql.public.{table}"
    yield "DROP VIEW IF EXISTS struct"
    yield f"CREATE VIEW struct AS {' UNION ALL '.join(selects)}"
    yield from super().METHOD_NAME