code: def virtual_dataset():
      from superset.connectors.sqla.models import (
          SqlaTable,
          SqlMetric,
          TableColumn,
      )
  
      dataset = SqlaTable(
          table_name="virtual_dataset",
          sql=(
              "SELECT 0 as col1, 'a' as col2, 1.0 as col3, NULL as col4, '2000-01-01 00:00:00' as col5 "
              "UNION ALL "
              "SELECT 1, 'b', 1.1, NULL, '2000-01-02 00:00:00' "
              "UNION ALL "
              "SELECT 2 as col1, 'c' as col2, 1.2, NULL, '2000-01-03 00:00:00' "
              "UNION ALL "
              "SELECT 3 as col1, 'd' as col2, 1.3, NULL, '2000-01-04 00:00:00' "
              "UNION ALL "
              "SELECT 4 as col1, 'e' as col2, 1.4, NULL, '2000-01-05 00:00:00' "
              "UNION ALL "
              "SELECT 5 as col1, 'f' as col2, 1.5, NULL, '2000-01-06 00:00:00' "
              "UNION ALL "
              "SELECT 6 as col1, 'g' as col2, 1.6, NULL, '2000-01-07 00:00:00' "
              "UNION ALL "
              "SELECT 7 as col1, 'h' as col2, 1.7, NULL, '2000-01-08 00:00:00' "
              "UNION ALL "
              "SELECT 8 as col1, 'i' as col2, 1.8, NULL, '2000-01-09 00:00:00' "
              "UNION ALL "
              "SELECT 9 as col1, 'j' as col2, 1.9, NULL, '2000-01-10 00:00:00' "
          ),
          database=get_example_database(),
      )
      TableColumn(column_name="col1", type="INTEGER", table=dataset)
      TableColumn(
          column_name="col2", type="VARCHAR(255)", table=dataset
      )
      TableColumn(
          column_name="col3", type="DECIMAL(4,2)", table=dataset
      )
      TableColumn(
          column_name="col4", type="VARCHAR(255)", table=dataset
      )
      # Different database dialect datetime type is not consistent, so temporarily use varchar
      TableColumn(
          column_name="col5", type="VARCHAR(255)", table=dataset
      )
  
      SqlMetric(
          metric_name="count", expression="count(*)", table=dataset
      )
      db.session.add(dataset)
      db.session.commit()
  
      yield dataset
  
      db.session.delete(dataset)
      db.session.commit()
  
imports: from __future__ import annotations
  import contextlib
  import functools
  import os
  from typing import Any, Callable, TYPE_CHECKING
  from unittest.mock import patch
  import pytest
  from flask.ctx import AppContext
  from flask_appbuilder.security.sqla import models
  from sqlalchemy.engine import Engine
  from superset import db, security_manager
  from superset.extensions import feature_flag_manager
  from superset.utils.core import json_dumps_w_dates
  from superset.utils.database import get_example_database, remove_database
  from tests.integration_tests.test_app import app, login
label_desc: Use image node_id 14 for calling a global function with example usage: virtual_dataset() without return types