Skip to content

Commit 0dc7f2b

Browse files
ok
1 parent 61b02ff commit 0dc7f2b

File tree

4 files changed

+30
-85
lines changed

4 files changed

+30
-85
lines changed

crates/pgls_completions/src/providers/columns.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@ mod tests {
7979
TestCompletionsCase::new()
8080
.inside_static_statement(r#"
8181
select * from (
82-
<sql>
82+
<sql> from private.audio_books
8383
) as subquery
8484
join public.users u
8585
on u.id = subquery.id;
8686
"#)
87-
.type_sql("select id, narrator_id<1> from private.audio_books")
87+
.type_sql("select id, narrator_id<1>")
8888
.comment("Should prefer the one from private.audio_audiobooks, since the other tables are out of scope.")
8989
)
9090
.snapshot("handles_nested_queries")

crates/pgls_completions/src/relevance/scoring.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -444,9 +444,16 @@ impl CompletionScore<'_> {
444444
}
445445

446446
// "public" is the default postgres schema where users
447-
// create objects. Prefer it by a slight bit.
447+
// create objects. Prefer it by a slight bit, but do not suggest the literal one.
448448
if schema_name.as_str() == "public" {
449-
self.score += 2;
449+
match self.data {
450+
CompletionRelevanceData::Schema(_) => {
451+
self.score -= 2;
452+
}
453+
_ => {
454+
self.score += 2;
455+
}
456+
}
450457
}
451458

452459
let item_name = self.get_item_name().to_string();

crates/pgls_completions/src/snapshots/pgls_completions__test_helper__handles_nested_queries.snap

Lines changed: 18 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -25,141 +25,79 @@ create table private.audio_books (
2525
--------------
2626

2727
select * from (
28-
|
28+
| from private.audio_books
2929
) as subquery
3030
join public.users u
3131
on u.id = subquery.id;
3232
select * from (
33-
s|
33+
s| from private.audio_books
3434
) as subquery
3535
join public.users u
3636
on u.id = subquery.id;
3737
select * from (
38-
select |
38+
select | from private.audio_books
3939
) as subquery
4040
join public.users u
4141
on u.id = subquery.id;
4242

4343
Results:
44+
id - private.audio_books.id (Column)
45+
narrator_id - private.audio_books.narrator_id (Column)
4446
id - public.audio_books.id (Column)
4547
name - public.users.name (Column)
4648
narrator - public.audio_books.narrator (Column)
47-
id - private.audio_books.id (Column)
48-
narrator_id - private.audio_books.narrator_id (Column)
4949

5050
--------------
5151

5252
select * from (
53-
select i|
53+
select i| from private.audio_books
5454
) as subquery
5555
join public.users u
5656
on u.id = subquery.id;
5757

5858
Results:
59-
id - public.audio_books.id (Column)
59+
id - private.audio_books.id (Column)
6060
narrator_id - private.audio_books.narrator_id (Column)
61-
iclikejoinsel - Schema: pg_catalog.iclikejoinsel (Function)
62-
iclikesel - Schema: pg_catalog.iclikesel (Function)
63-
icnlikejoinsel - Schema: pg_catalog.icnlikejoinsel (Function)
61+
id - public.audio_books.id (Column)
62+
ident - pg_catalog.pg_backend_memory_contexts.ident (Column)
63+
identity_cycle - information_schema.columns.identity_cycle (Column)
6464

6565
--------------
6666

6767
select * from (
68-
select id, |
68+
select id, | from private.audio_books
6969
) as subquery
7070
join public.users u
7171
on u.id = subquery.id;
7272
**Should prefer the one from private.audio_audiobooks, since the other tables are out of scope.**
7373

7474
Results:
75+
narrator_id - private.audio_books.narrator_id (Column)
76+
id - private.audio_books.id (Column)
7577
name - public.users.name (Column)
7678
narrator - public.audio_books.narrator (Column)
77-
narrator_id - private.audio_books.narrator_id (Column)
7879
id - public.audio_books.id (Column)
79-
pg_catalog.RI_FKey_cascade_del() - Schema: pg_catalog.RI_FKey_cascade_del (Function)
8080

8181
--------------
8282

8383
select * from (
84-
select id, n|
84+
select id, n| from private.audio_books
8585
) as subquery
8686
join public.users u
8787
on u.id = subquery.id;
8888
**Should prefer the one from private.audio_audiobooks, since the other tables are out of scope.**
8989

9090
Results:
91+
narrator_id - private.audio_books.narrator_id (Column)
9192
name - public.users.name (Column)
9293
narrator - public.audio_books.narrator (Column)
93-
narrator_id - private.audio_books.narrator_id (Column)
94-
name - Schema: pg_catalog.name (Function)
95-
nameconcatoid - Schema: pg_catalog.nameconcatoid (Function)
96-
97-
--------------
98-
99-
select * from (
100-
select id, narrator_id |
101-
) as subquery
102-
join public.users u
103-
on u.id = subquery.id;
104-
select * from (
105-
select id, narrator_id f|
106-
) as subquery
107-
join public.users u
108-
on u.id = subquery.id;
109-
select * from (
110-
select id, narrator_id from |
111-
) as subquery
112-
join public.users u
113-
on u.id = subquery.id;
114-
115-
Results:
116-
audio_books - public.audio_books (Table)
117-
users - public.users (Table)
118-
private - private (Schema)
119-
private.audio_books - private.audio_books (Table)
120-
information_schema - information_schema (Schema)
121-
122-
--------------
123-
124-
select * from (
125-
select id, narrator_id from p|
126-
) as subquery
127-
join public.users u
128-
on u.id = subquery.id;
129-
130-
Results:
131-
public - public (Schema)
132-
private - private (Schema)
133-
pg_catalog - pg_catalog (Schema)
134-
pg_toast - pg_toast (Schema)
135-
information_schema.parameters - information_schema.parameters (Table)
136-
137-
--------------
138-
139-
select * from (
140-
select id, narrator_id from private.|
141-
) as subquery
142-
join public.users u
143-
on u.id = subquery.id;
144-
145-
Results:
146-
audio_books - private.audio_books (Table)
147-
148-
--------------
149-
150-
select * from (
151-
select id, narrator_id from private.a|
152-
) as subquery
153-
join public.users u
154-
on u.id = subquery.id;
155-
156-
Results:
157-
audio_books - private.audio_books (Table)
94+
n_dead_tup - pg_catalog.pg_stat_all_tables.n_dead_tup (Column)
95+
n_distinct - pg_catalog.pg_stats.n_distinct (Column)
15896

15997
--------------
16098

16199
select * from (
162-
select id, narrator_id from private.audio_books |
100+
select id, narrator_id | from private.audio_books
163101
) as subquery
164102
join public.users u
165103
on u.id = subquery.id;

crates/pgls_completions/src/snapshots/pgls_completions__test_helper__ignores_cols_in_from_clause.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ select * from p|
3333
**No column suggestions.**
3434

3535
Results:
36-
public - public (Schema)
3736
private - private (Schema)
37+
public - public (Schema)
3838
pg_catalog - pg_catalog (Schema)
3939
pg_toast - pg_toast (Schema)
4040
information_schema.parameters - information_schema.parameters (Table)

0 commit comments

Comments
 (0)