Пример #1
0
def test_dot_suggests_cols_of_a_table_or_schema_qualified_table():
    suggestions = suggest_type("SELECT tabl. FROM tabl", "SELECT tabl.")
    assert (
        set(suggestions)
        == set(
            [
                Column(table_refs=((None, "tabl", None, False),)),
                Table(schema="tabl"),
                View(schema="tabl"),
                Function(schema="tabl"),
            ]
        )
    )
Пример #2
0
def test_dot_suggests_cols_of_an_alias_where(sql):
    suggestions = suggest_type(sql, sql)
    assert (
        set(suggestions)
        == set(
            [
                Table(schema="t1"),
                View(schema="t1"),
                Column(table_refs=((None, "tabl1", "t1", False),)),
                Function(schema="t1"),
            ]
        )
    )
Пример #3
0
def test_join_alias_dot_suggests_cols2(sql):
    suggestion = suggest_type(sql, sql)
    assert (
        set(suggestion)
        == set(
            [
                Column(table_refs=((None, "def", "d", False),)),
                Table(schema="d"),
                View(schema="d"),
                Function(schema="d"),
            ]
        )
    )
Пример #4
0
def test_outer_table_reference_in_exists_subquery_suggests_columns():
    q = "SELECT * FROM foo f WHERE EXISTS (SELECT 1 FROM bar WHERE f."
    suggestions = suggest_type(q, q)
    assert (
        set(suggestions)
        == set(
            [
                Column(table_refs=((None, "foo", "f", False),)),
                Table(schema="f"),
                View(schema="f"),
                Function(schema="f"),
            ]
        )
    )
Пример #5
0
def test_join_alias_dot_suggests_cols1(sql):
    suggestions = suggest_type(sql, sql)
    tables = ((None, "abc", "a", False), (None, "def", "d", False))
    assert (
        set(suggestions)
        == set(
            [
                Column(table_refs=((None, "abc", "a", False),)),
                Table(schema="a"),
                View(schema="a"),
                Function(schema="a"),
                JoinCondition(table_refs=tables, parent=(None, "abc", "a", False)),
            ]
        )
    )
Пример #6
0
def test_sub_select_dot_col_name_completion():
    suggestions = suggest_type(
        "SELECT * FROM (SELECT t. FROM tabl t", "SELECT * FROM (SELECT t."
    )
    assert (
        set(suggestions)
        == set(
            [
                Column(table_refs=((None, "tabl", "t", False),)),
                Table(schema="t"),
                View(schema="t"),
                Function(schema="t"),
            ]
        )
    )
Пример #7
0
def test_dot_col_comma_suggests_cols_or_schema_qualified_table():
    suggestions = suggest_type(
        "SELECT t1.a, t2. FROM tabl1 t1, tabl2 t2", "SELECT t1.a, t2."
    )
    assert (
        set(suggestions)
        == set(
            [
                Column(table_refs=((None, "tabl2", "t2", False),)),
                Table(schema="t2"),
                View(schema="t2"),
                Function(schema="t2"),
            ]
        )
    )
Пример #8
0
def test_distinct_and_order_by_suggestions_with_alias_given(text, text_before):
    suggestions = suggest_type(text, text_before)
    assert (
        set(suggestions)
        == set(
            [
                Column(
                    table_refs=(TableReference(None, "tbl", "x", False),),
                    local_tables=(),
                    qualifiable=False,
                ),
                Table(schema="x"),
                View(schema="x"),
                Function(schema="x"),
            ]
        )
    )
Пример #9
0
def test_drop_schema_qualified_table_suggests_only_tables():
    text = "DROP TABLE schema_name.table_name"
    suggestions = suggest_type(text, text)
    assert suggestions == (Table(schema="schema_name"),)
Пример #10
0
def test_schema_scoped_views_tables_suggested_after_slash_d_schema():
    sql = "\\d abc."
    suggestions = suggest_type(sql, sql)
    expected = (Table(schema='abc'), View(schema='abc'))
    assert expected == suggestions
Пример #11
0
def test_alter_column_type_suggests_types():
    q = "ALTER TABLE foo ALTER COLUMN bar TYPE "
    assert (
        set(suggest_type(q, q))
        == set([Datatype(schema=None), Table(schema=None), Schema()])
    )
Пример #12
0
def test_into_suggests_tables_and_schemas():
    suggestion = suggest_type("INSERT INTO ", "INSERT INTO ")
    assert set(suggestion) == set([Table(schema=None), View(schema=None), Schema()])
Пример #13
0
def test_truncate_suggests_qualified_tables():
    suggestions = suggest_type("TRUNCATE sch.", "TRUNCATE sch.")
    assert set(suggestions) == set([Table(schema="sch")])
Пример #14
0
def test_truncate_suggests_tables_and_schemas():
    suggestions = suggest_type("TRUNCATE ", "TRUNCATE ")
    assert set(suggestions) == set([Table(schema=None), Schema()])
Пример #15
0
def test_suggest_qualified_aliasable_tables_and_views(expression):
    suggestions = suggest_type(expression, expression)
    assert set(suggestions) == set([Table(schema="sch"), View(schema="sch")])
Пример #16
0
def test_suggests_tables_views_and_schemas(expression):
    suggestions = suggest_type(expression, expression)
    assert set(suggestions) == set([Table(schema=None), View(schema=None), Schema()])
Пример #17
0
def test_cast_operator_suggests_types(text):
    assert (
        set(suggest_type(text, text))
        == set([Datatype(schema=None), Table(schema=None), Schema()])
    )
Пример #18
0
def test_schemas_views_tables_suggested_after_slash_d():
    sql = "\\d "
    suggestions = suggest_type(sql, sql)
    expected = (Schema(), Table(schema=None), View(schema=None))
    assert expected == suggestions
Пример #19
0
def test_cast_operator_suggests_schema_qualified_types(text):
    assert (
        set(suggest_type(text, text))
        == set([Datatype(schema="bar"), Table(schema="bar")])
    )
Пример #20
0
def test_schemas_views_tables_suggested_after_slash_d_arg_with_wildcards():
    sql = "\\d abc??"
    suggestions = suggest_type(sql, sql)
    expected = (Schema(), Table(schema=None), View(schema=None))
    assert expected == suggestions
Пример #21
0
def test_identifier_suggests_types_in_parentheses(text):
    assert (
        set(suggest_type(text, text))
        == set([Datatype(schema=None), Table(schema=None), Schema()])
    )
Пример #22
0
    [
        (
            "\\ns abc SELECT ",
            "SELECT ",
            [
                Column(table_refs=(), qualifiable=True),
                Function(schema=None),
                Keyword("SELECT"),
            ],
        ),
        ("\\ns abc SELECT foo ", "SELECT foo ", (Keyword(),)),
        (
            "\\ns abc SELECT t1. FROM tabl1 t1",
            "SELECT t1.",
            [
                Table(schema="t1"),
                View(schema="t1"),
                Column(table_refs=((None, "tabl1", "t1", False),)),
                Function(schema="t1"),
            ],
        ),
    ],
)
def test_named_query_completion(text, before, expected):
    suggestions = suggest_type(text, before)
    assert set(expected) == set(suggestions)


def test_select_suggests_fields_from_function():
    suggestions = suggest_type("SELECT  FROM func()", "SELECT ")
    assert set(suggestions) == cols_etc("func", is_function=True, last_keyword="SELECT")