kopia lustrzana https://github.com/simonw/datasette
WIP refactoring facets to plugin, refs #427
rodzic
b495839e60
commit
63e52c0936
|
@ -59,6 +59,7 @@ class Facet:
|
||||||
self.table = table # can be None
|
self.table = table # can be None
|
||||||
self.configs = configs
|
self.configs = configs
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
async def suggest(self, sql, params, filtered_table_rows_count):
|
async def suggest(self, sql, params, filtered_table_rows_count):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
@ -83,6 +84,28 @@ class ColumnFacet(Facet):
|
||||||
async def suggest(self, sql, params, filtered_table_rows_count):
|
async def suggest(self, sql, params, filtered_table_rows_count):
|
||||||
# Detect column names using the "limit 0" trick
|
# Detect column names using the "limit 0" trick
|
||||||
columns = await self.get_columns(sql, params)
|
columns = await self.get_columns(sql, params)
|
||||||
|
=======
|
||||||
|
async def suggest(self, sql, params):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
async def facet_results(self, sql, params):
|
||||||
|
# returns ([results], [timed_out])
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
class ColumnFacet(Facet):
|
||||||
|
# This is the default so type=""
|
||||||
|
type = ""
|
||||||
|
|
||||||
|
async def suggest(self, sql, params, filtered_table_rows_count):
|
||||||
|
# Detect column names
|
||||||
|
columns = (
|
||||||
|
await self.ds.execute(
|
||||||
|
self.database, "select * from ({}) limit 0".format(sql),
|
||||||
|
params
|
||||||
|
)
|
||||||
|
).columns
|
||||||
|
>>>>>>> WIP refactoring facets to plugin, refs #427
|
||||||
facet_size = self.ds.config("default_facet_size")
|
facet_size = self.ds.config("default_facet_size")
|
||||||
suggested_facets = []
|
suggested_facets = []
|
||||||
for column in columns:
|
for column in columns:
|
||||||
|
@ -139,9 +162,13 @@ class ColumnFacet(Facet):
|
||||||
other_args[key] = value[0]
|
other_args[key] = value[0]
|
||||||
|
|
||||||
facet_size = self.ds.config("default_facet_size")
|
facet_size = self.ds.config("default_facet_size")
|
||||||
|
<<<<<<< HEAD
|
||||||
for config in (self.configs or []):
|
for config in (self.configs or []):
|
||||||
column = config.get("column") or config["single"]
|
column = config.get("column") or config["single"]
|
||||||
# TODO: does this query break if inner sql produces value or count columns?
|
# TODO: does this query break if inner sql produces value or count columns?
|
||||||
|
=======
|
||||||
|
for column in self.configs:
|
||||||
|
>>>>>>> WIP refactoring facets to plugin, refs #427
|
||||||
facet_sql = """
|
facet_sql = """
|
||||||
select {col} as value, count(*) as count from (
|
select {col} as value, count(*) as count from (
|
||||||
{sql}
|
{sql}
|
||||||
|
@ -203,6 +230,7 @@ class ColumnFacet(Facet):
|
||||||
class ManyToManyFacet(Facet):
|
class ManyToManyFacet(Facet):
|
||||||
type = "m2m"
|
type = "m2m"
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
async def suggest(self, sql, params, filtered_table_rows_count):
|
async def suggest(self, sql, params, filtered_table_rows_count):
|
||||||
# This is calculated based on foreign key relationships to this table
|
# This is calculated based on foreign key relationships to this table
|
||||||
# Are there any many-to-many tables pointing here?
|
# Are there any many-to-many tables pointing here?
|
||||||
|
@ -660,3 +688,8 @@ emoji_re = re.compile(
|
||||||
"\U0001f95e\U0001f95f-\U0001f96b\U0001f980-\U0001f984\U0001f985-\U0001f991"
|
"\U0001f95e\U0001f95f-\U0001f96b\U0001f980-\U0001f984\U0001f985-\U0001f991"
|
||||||
"\U0001f992-\U0001f997\U0001f9c0\U0001f9d0-\U0001f9e6]"
|
"\U0001f992-\U0001f997\U0001f9c0\U0001f9d0-\U0001f9e6]"
|
||||||
)
|
)
|
||||||
|
=======
|
||||||
|
|
||||||
|
class ArrayFacet(Facet):
|
||||||
|
type = "array"
|
||||||
|
>>>>>>> WIP refactoring facets to plugin, refs #427
|
||||||
|
|
Ładowanie…
Reference in New Issue