improvements on output
This commit is contained in:
+16
-2
@@ -1,4 +1,3 @@
|
||||
from operator import index
|
||||
from engine.utils import base62uuid
|
||||
from copy import copy
|
||||
# replace column info with this later.
|
||||
@@ -203,8 +202,11 @@ class Context:
|
||||
using namespace types;
|
||||
|
||||
'''
|
||||
LOG_INFO = 'INFO'
|
||||
LOG_ERROR = 'ERROR'
|
||||
LOG_SILENT = 'SILENT'
|
||||
def __init__(self):
|
||||
self.tables:List[TableInfo] = []
|
||||
self.tables:list[TableInfo] = []
|
||||
self.tables_byname = dict()
|
||||
self.ccols_byname = dict()
|
||||
self.gc_name = 'gc_' + base62uuid(4)
|
||||
@@ -212,6 +214,8 @@ class Context:
|
||||
self.udf_map = dict()
|
||||
self.headers = set(['\"./server/libaquery.h\"'])
|
||||
self.finalized = False
|
||||
self.log_level = Context.LOG_SILENT
|
||||
self.print = print
|
||||
# read header
|
||||
self.ccode = ''
|
||||
self.ccodelet = ''
|
||||
@@ -277,6 +281,16 @@ class Context:
|
||||
self.emit(str_scan)
|
||||
self.scans.remove(scan)
|
||||
|
||||
def Info(self, msg):
|
||||
if self.log_level.upper() == Context.LOG_INFO:
|
||||
self.print(msg)
|
||||
def Error(self, msg):
|
||||
if self.log_level.upper() == Context.LOG_ERROR:
|
||||
self.print(msg)
|
||||
else:
|
||||
self.Info(self, msg)
|
||||
|
||||
|
||||
def finalize(self):
|
||||
if not self.finalized:
|
||||
headers = ''
|
||||
|
||||
+3
-3
@@ -28,7 +28,7 @@ class create_table(ast_node):
|
||||
# create an empty new table
|
||||
if self.cexprs is None:
|
||||
for c in tbl.columns:
|
||||
self.emit(f"{c.cxt_name}.init({c.name});")
|
||||
self.emit(f'{c.cxt_name}.init("{c.name}");')
|
||||
# create an output table
|
||||
else:
|
||||
# 1 to 1 lineage.
|
||||
@@ -40,7 +40,7 @@ class create_table(ast_node):
|
||||
else:
|
||||
self.lineage = None
|
||||
for i, c in enumerate(tbl.columns):
|
||||
self.emit(f"{c.cxt_name}.init({c.name});")
|
||||
self.emit(f'{c.cxt_name}.init("{c.name}");')
|
||||
self.emit(f"{c.cxt_name} = {self.cexprs[i](self.lineage)};")
|
||||
self.lineage = None
|
||||
self.parent.assumptions = None
|
||||
@@ -54,7 +54,7 @@ class create_table(ast_node):
|
||||
scanner.add(f"{lineage_var}.emplace_back({counter_var}++);", "front")
|
||||
self.lineage = f"{lineage_var}.rid"
|
||||
for i, c in enumerate(tbl.columns):
|
||||
scanner.add(f"{c.cxt_name}.init({c.name});", "init")
|
||||
scanner.add(f'{c.cxt_name}.init("{c.name}");', "init")
|
||||
scanner.add(f"{c.cxt_name} = {self.cexprs[i](scanner.it_ver)};")
|
||||
|
||||
class insert(ast_node):
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ class expr(ast_node):
|
||||
elif key in self.unary_ops:
|
||||
self._expr += f'{self.unary_ops[key]}({expr(self, val)._expr})'
|
||||
else:
|
||||
print(f'Undefined expr: {key}{val}')
|
||||
self.context.Error(f'Undefined expr: {key}{val}')
|
||||
|
||||
if key in self.coumpound_generating_ops and not self.is_compound:
|
||||
self.is_compound = True
|
||||
|
||||
@@ -24,7 +24,7 @@ class projection(ast_node):
|
||||
def produce(self, node):
|
||||
p = node['select']
|
||||
self.projections = p if type(p) is list else [p]
|
||||
print(node)
|
||||
self.context.Info(node)
|
||||
|
||||
def spawn(self, node):
|
||||
self.datasource = None
|
||||
|
||||
Reference in New Issue
Block a user