code: def _catalog_filter_schemas(manifest):
      
      schemas = frozenset((d.lower(), s.lower())
                          for d, s in manifest.get_used_schemas())
  
      def test(row):
          table_database = _expect_row_value('table_database', row)
          table_schema = _expect_row_value('table_schema', row)
          # the schema may be present but None, which is not an error and should
          # be filtered out
          if table_schema is None:
              return False
          return (table_database.lower(), table_schema.lower()) in schemas
      return test
docs: Return a function that takes a row and decides if the row should be
      included in the catalog output.