class_docstr: Extend PostgresHook for working with PostgreSQL and pgvector extension for vector data types.
docstr: Create a table in the Postgres database.
  
  :param table_name: The name of the table to create.
  :param columns: A list of column definitions for the table.
  :param if_not_exists: If True, only create the table if it does not already exist.
code: def create_table(
      self,
      table_name: str,
      columns: list[str],
      if_not_exists: bool = True,
  ) -> None:
      """
      Create a table in the Postgres database.
  
      :param table_name: The name of the table to create.
      :param columns: A list of column definitions for the table.
      :param if_not_exists: If True, only create the table if it does not already exist.
      """
      create_table_sql = "CREATE TABLE"
      if if_not_exists:
          create_table_sql = f"{create_table_sql} IF NOT EXISTS"
      create_table_sql = (
          f"{create_table_sql} {table_name} ({', '.join(columns)})"
      )
      self.run(create_table_sql)
  
file_path: airflow/airflow/providers/pgvector/hooks/pgvector.py
imports: from __future__ import annotations
  from airflow.providers.postgres.hooks.postgres import PostgresHook
label_desc: Use image node_id 2 for calling the PgVectorHook obj's underlying member method code with example usage: obj.create_table(table_name, columns, if_not_exists) without return types