blob: 45d3137aec3bf84484626772c86c86bd9fc49ec4 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Tests for Hive dialect support in sqlglot."""
from superset.sql.parse import SQLScript, Table
def test_hive_sql_parsing() -> None:
"""Test that Hive SQL can be parsed without errors."""
# Simple SELECT statement
sql = "SELECT * FROM my_table"
script = SQLScript(sql, "hive")
assert len(script.statements) == 1
assert not script.has_mutation()
# JOIN statement (common in Hive)
sql = """
SELECT t1.col1, t2.col2
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
WHERE t1.status = 'active'
"""
script = SQLScript(sql, "hive")
assert len(script.statements) == 1
assert not script.has_mutation()
# Test table extraction
tables = script.statements[0].tables
assert Table("table1") in tables
assert Table("table2") in tables
def test_hive_insert_statement() -> None:
"""Test that Hive INSERT statements are detected as mutations."""
sql = "INSERT INTO my_table VALUES (1, 'test')"
script = SQLScript(sql, "hive")
assert script.has_mutation()
def test_hive_create_table() -> None:
"""Test that Hive CREATE TABLE statements work."""
sql = """
CREATE TABLE IF NOT EXISTS my_table (
id INT,
name STRING
) STORED AS PARQUET
"""
script = SQLScript(sql, "hive")
assert len(script.statements) == 1
assert script.has_mutation()