feat(api): autocomplete fixed DISTINCT values
This commit is contained in:
parent
bfffc8ee4c
commit
2c50d9bda6
2 changed files with 13 additions and 18 deletions
|
|
@ -285,11 +285,6 @@ def __search_pg_metadata(project_id, value, key=None, source=None):
|
|||
WHERE project_id = %(project_id)s
|
||||
AND {colname} ILIKE %(svalue)s LIMIT 5)""")
|
||||
with pg_client.PostgresClient() as cur:
|
||||
print(cur.mogrify(f"""\
|
||||
SELECT key, value, 'METADATA' AS TYPE
|
||||
FROM({" UNION ALL ".join(sub_from)}) AS all_metas
|
||||
LIMIT 5;""", {"project_id": project_id, "value": helper.string_to_sql_like(value),
|
||||
"svalue": helper.string_to_sql_like("^" + value)}))
|
||||
cur.execute(cur.mogrify(f"""\
|
||||
SELECT key, value, 'METADATA' AS TYPE
|
||||
FROM({" UNION ALL ".join(sub_from)}) AS all_metas
|
||||
|
|
@ -301,7 +296,7 @@ def __search_pg_metadata(project_id, value, key=None, source=None):
|
|||
|
||||
def __generic_query(typename, value_length=None):
|
||||
if value_length is None or value_length > 2:
|
||||
return f"""(SELECT value, type
|
||||
return f"""(SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
|
|
@ -309,14 +304,14 @@ def __generic_query(typename, value_length=None):
|
|||
AND value ILIKE %(svalue)s
|
||||
LIMIT 5)
|
||||
UNION
|
||||
(SELECT value, type
|
||||
(SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
AND type='{typename}'
|
||||
AND value ILIKE %(value)s
|
||||
LIMIT 5);"""
|
||||
return f"""SELECT value, type
|
||||
return f"""SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
|
|
@ -432,15 +427,15 @@ def __get_merged_queries(queries, value, project_id):
|
|||
def __get_autocomplete_table(value, project_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
if len(value) > 2:
|
||||
query = """SELECT DISTINCT ON(value,type) project_id, value, type
|
||||
FROM (SELECT project_id, type, value
|
||||
FROM (SELECT *,
|
||||
query = """SELECT DISTINCT value, type
|
||||
FROM (SELECT type, value
|
||||
FROM (SELECT type, value,
|
||||
ROW_NUMBER() OVER (PARTITION BY type ORDER BY value) AS Row_ID
|
||||
FROM public.autocomplete
|
||||
WHERE project_id = %(project_id)s
|
||||
AND value ILIKE %(svalue)s
|
||||
UNION
|
||||
SELECT *,
|
||||
SELECT type, value,
|
||||
ROW_NUMBER() OVER (PARTITION BY type ORDER BY value) AS Row_ID
|
||||
FROM public.autocomplete
|
||||
WHERE project_id = %(project_id)s
|
||||
|
|
@ -448,9 +443,9 @@ def __get_autocomplete_table(value, project_id):
|
|||
WHERE Row_ID <= 5) AS sfa
|
||||
ORDER BY sfa.type;"""
|
||||
else:
|
||||
query = """SELECT DISTINCT ON(value,type) project_id, value, type
|
||||
FROM (SELECT project_id, type, value
|
||||
FROM (SELECT *,
|
||||
query = """SELECT DISTINCT value, type
|
||||
FROM (SELECT type, value
|
||||
FROM (SELECT type, value,
|
||||
ROW_NUMBER() OVER (PARTITION BY type ORDER BY value) AS Row_ID
|
||||
FROM public.autocomplete
|
||||
WHERE project_id = %(project_id)s
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ def get_top_key_values(project_id):
|
|||
|
||||
def __generic_query(typename, value_length=None):
|
||||
if value_length is None or value_length > 2:
|
||||
return f""" (SELECT value, type
|
||||
return f""" (SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
|
|
@ -91,7 +91,7 @@ def __generic_query(typename, value_length=None):
|
|||
ORDER BY value
|
||||
LIMIT 5)
|
||||
UNION
|
||||
(SELECT value, type
|
||||
(SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
|
|
@ -99,7 +99,7 @@ def __generic_query(typename, value_length=None):
|
|||
AND value ILIKE %(value)s
|
||||
ORDER BY value
|
||||
LIMIT 5);"""
|
||||
return f""" SELECT value, type
|
||||
return f""" SELECT DISTINCT value, type
|
||||
FROM public.autocomplete
|
||||
WHERE
|
||||
project_id = %(project_id)s
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue