Simple schema which maps table&column to a unique identifier
| 14 | from process_sql import get_sql |
| 15 | |
| 16 | class Schema: |
| 17 | """ |
| 18 | Simple schema which maps table&column to a unique identifier |
| 19 | """ |
| 20 | def __init__(self, schema, table): |
| 21 | self._schema = schema |
| 22 | self._table = table |
| 23 | self._idMap = self._map(self._schema, self._table) |
| 24 | |
| 25 | @property |
| 26 | def schema(self): |
| 27 | return self._schema |
| 28 | |
| 29 | @property |
| 30 | def idMap(self): |
| 31 | return self._idMap |
| 32 | |
| 33 | def _map(self, schema, table): |
| 34 | column_names_original = table['column_names_original'] |
| 35 | table_names_original = table['table_names_original'] |
| 36 | #print 'column_names_original: ', column_names_original |
| 37 | #print 'table_names_original: ', table_names_original |
| 38 | for i, (tab_id, col) in enumerate(column_names_original): |
| 39 | if tab_id == -1: |
| 40 | idMap = {'*': i} |
| 41 | else: |
| 42 | key = table_names_original[tab_id].lower() |
| 43 | val = col.lower() |
| 44 | idMap[key + "." + val] = i |
| 45 | |
| 46 | for i, tab in enumerate(table_names_original): |
| 47 | key = tab.lower() |
| 48 | idMap[key] = i |
| 49 | |
| 50 | return idMap |
| 51 | |
| 52 | |
| 53 | def get_schemas_from_json(fpath): |