code: def test_insert_into(self, postgres_handler_mock):
      df = pd.DataFrame(
          {
              "id": [
                  "6ed955c6-506a-5343-9be4-2c0afae02eef",
                  "c8691da2-158a-5ed6-8537-0e6f140801f2",
                  "a6c4fc8f-6950-51de-a9ae-2c519c465071",
              ],
              "content": [
                  "this is a test",
                  "this is a test",
                  "this is a test",
              ],
              "metadata": [
                  {"test": "test1"},
                  {"test": "test2"},
                  {"test": "test3"},
              ],
              "embeddings": [
                  [1.0, 2.0, 3.0],
                  [1.0, 2.0, 3.0],
                  [1.0, 2.0, 3.0],
              ],
          }
      )
      df2 = pd.DataFrame(
          {
              "id": [
                  "a9f96b98-dd44-5216-ab0d-dbfc6b262edf",
                  "e99caacd-6c45-5906-bd9f-b79e62f25963",
                  "e4d80b30-151e-51b5-9f4f-18a3b82718e6",
              ],
              "content": [
                  "this is a test",
                  "this is a test",
                  "this is a test",
              ],
              "metadata": [
                  {"test": "test1"},
                  {"test": "test2"},
                  {"test": "test3"},
              ],
              "embeddings": [
                  [1.0, 2.0, 3.0, 4.0],
                  [1.0, 2.0],
                  [1.0, 2.0, 3.0],
              ],  # different dimensions
          }
      )
      self.set_handler(
          postgres_handler_mock,
          "weaviate",
          tables={"df": df, "df2": df2},
      )
      num_record = df.shape[0]
  
      # create a table
      sql = """
              CREATE TABLE weaviate_test.test_table5 (
                  SELECT * FROM weaviate.df
              )
          """
      self.run_sql(sql)
  
      # insert into a table with values
      sql = """
              INSERT INTO weaviate_test.test_table5 (
                  id,content,metadata,embeddings
              )
              VALUES (
                  '0159d6c7-973f-5e7a-a9a0-d195d0ea6fe2', 'this is a test', '{"test": "test"}', '[1.0, 2.0, 3.0]'
              )
          """
      self.run_sql(sql)
      # check if the data is inserted
      sql = """
              SELECT * FROM weaviate_test.test_table5
              WHERE id = '0159d6c7-973f-5e7a-a9a0-d195d0ea6fe2'
          """
      ret = self.run_sql(sql)
      assert ret.shape[0] == 1
  
      # insert without specifying id should also work
      sql = """
              INSERT INTO weaviate_test.test_table5 (
                  content,metadata,embeddings
              )
              VALUES (
                  'this is a test', '{"test": "test"}', '[1.0, 2.0, 3.0]'
              )
          """
      self.run_sql(sql)
      # check if the data is inserted
      sql = """
              SELECT * FROM weaviate_test.test_table5
          """
      ret = self.run_sql(sql)
      assert ret.shape[0] == num_record + 2
  
      # insert into a table with a select statement
      sql = """
              INSERT INTO weaviate_test.test_table5 (
                  content,metadata,embeddings
              )
              SELECT
                  content,metadata,embeddings
              FROM
                  weaviate.df
          """
      self.run_sql(sql)
      # check if the data is inserted
      sql = """
              SELECT * FROM weaviate_test.test_table5
          """
      ret = self.run_sql(sql)
      assert ret.shape[0] == num_record * 2 + 2
  
      # insert into a table with a select statement, but wrong columns
      with pytest.raises(Exception):
          sql = """
                  INSERT INTO weaviate_test.test_table5
                  SELECT
                      content,metadata,embeddings as wrong_column
                  FROM
                      weaviate.df
              """
          self.run_sql(sql)
  
      # insert into a table with a select statement, missing metadata column
      sql = """
              INSERT INTO weaviate_test.test_table5
              SELECT
                  content,embeddings
              FROM
                  weaviate.df
          """
      self.run_sql(sql)
  
      # insert into a table with a select statement, missing embedding column, shall raise an error
      with pytest.raises(Exception):
          sql = """
                  INSERT INTO weaviate_test.test_table5
                  SELECT
                      content,metadata
                  FROM
                      weaviate.df
              """
          self.run_sql(sql)
  
      # insert into a table with a select statement, with different embedding dimensions, shall raise an error
      sql = """
              INSERT INTO weaviate_test.test_table5
              SELECT
                  content,metadata,embeddings
              FROM
                  weaviate.df2
          """
      with pytest.raises(Exception):
          self.run_sql(sql)
  
      # insert into a table with existing id, shall raise an error
      sql = """
              INSERT INTO weaviate_test.test_table5 (
                  id,content,metadata,embeddings
              )
              VALUES (
                  '6ed955c6-506a-5343-9be4-2c0afae02eef', 'this is a test', '{"test": "test"}', '[1.0, 2.0, 3.0]'
              )
          """
      with pytest.raises(Exception):
          self.run_sql(sql)
  
imports: import re
  import importlib
  from unittest.mock import patch
  import tempfile
  import psutil
  import pandas
  import pytest
  from mindsdb_sql import parse_sql
  from ..unit.executor_test_base import BaseExecutorTest
label_desc: Use image node_id 7 for calling the TestWeaviateHandler obj's underlying member method code with example usage: obj.test_insert_into(postgres_handler_mock) without return types