input: Write a function to parse a SQL CREATE TABLE statement and extract column names and their data types as a dictionary.
  assert parse_create_table('CREATE TABLE employees (id INTEGER PRIMARY KEY, name VARCHAR(255), salary INTEGER)') == {'id': 'INTEGER PRIMARY KEY', 'name': 'VARCHAR(255)', 'salary': 'INTEGER'}
  assert parse_create_table('CREATE TABLE users (user_id INT, username TEXT, email TEXT, age INT)') == {'user_id': 'INT', 'username': 'TEXT', 'email': 'TEXT', 'age': 'INT'}
  assert parse_create_table('CREATE TABLE products (product_id SERIAL, product_name VARCHAR(100), price NUMERIC(10,2))') == {'product_id': 'SERIAL', 'product_name': 'VARCHAR(100)', 'price': 'NUMERIC(10,2)'}
output: def parse_create_table(sql):
      import re
      table_match = re.search(r'CREATE TABLE \w+ \((.+)\)', sql, re.IGNORECASE)
      if not table_match:
          return {}
      
      columns_str = table_match.group(1)
      columns = columns_str.split(',')
      column_dict = {}
      
      for column in columns:
          name_type = column.strip().split(' ', 1)
          if len(name_type) == 2:
              column_dict[name_type[0]] = name_type[1]
      
      return column_dict