19 lines
546 B
Python
19 lines
546 B
Python
from pgcli.pyev import Visualizer
|
|
import json
|
|
|
|
|
|
"""Explain response output adapter"""
|
|
|
|
|
|
class ExplainOutputFormatter:
|
|
def __init__(self, max_width):
|
|
self.max_width = max_width
|
|
|
|
def format_output(self, cur, headers, **output_kwargs):
|
|
# explain query results should always contain 1 row each
|
|
[(data,)] = list(cur)
|
|
explain_list = json.loads(data)
|
|
visualizer = Visualizer(self.max_width)
|
|
for explain in explain_list:
|
|
visualizer.load(explain)
|
|
yield visualizer.get_list()
|