(self, tableColumns, content_type=None)
| 278 | self.string("tables", dbTables, content_type=CONTENT_TYPE.TABLES) |
| 279 | |
| 280 | def dbTableColumns(self, tableColumns, content_type=None): |
| 281 | if isinstance(tableColumns, dict) and len(tableColumns) > 0: |
| 282 | if conf.api: |
| 283 | self._write(tableColumns, content_type=content_type) |
| 284 | |
| 285 | for db, tables in tableColumns.items(): |
| 286 | if not db: |
| 287 | db = "All" |
| 288 | |
| 289 | for table, columns in tables.items(): |
| 290 | maxlength1 = 0 |
| 291 | maxlength2 = 0 |
| 292 | |
| 293 | colType = None |
| 294 | |
| 295 | colList = list(columns.keys()) |
| 296 | colList.sort(key=lambda _: _.lower() if hasattr(_, "lower") else _) |
| 297 | |
| 298 | for column in colList: |
| 299 | colType = columns[column] |
| 300 | |
| 301 | column = unsafeSQLIdentificatorNaming(column) |
| 302 | maxlength1 = max(maxlength1, len(column or "")) |
| 303 | maxlength2 = max(maxlength2, len(colType or "")) |
| 304 | |
| 305 | maxlength1 = max(maxlength1, len("COLUMN")) |
| 306 | lines1 = "-" * (maxlength1 + 2) |
| 307 | |
| 308 | if colType is not None: |
| 309 | maxlength2 = max(maxlength2, len("TYPE")) |
| 310 | lines2 = "-" * (maxlength2 + 2) |
| 311 | |
| 312 | self._write("Database: %s\nTable: %s" % (unsafeSQLIdentificatorNaming(db) if db and METADB_SUFFIX not in db else "<current>", unsafeSQLIdentificatorNaming(table))) |
| 313 | |
| 314 | if len(columns) == 1: |
| 315 | self._write("[1 column]") |
| 316 | else: |
| 317 | self._write("[%d columns]" % len(columns)) |
| 318 | |
| 319 | if colType is not None: |
| 320 | self._write("+%s+%s+" % (lines1, lines2)) |
| 321 | else: |
| 322 | self._write("+%s+" % lines1) |
| 323 | |
| 324 | blank1 = " " * (maxlength1 - len("COLUMN")) |
| 325 | |
| 326 | if colType is not None: |
| 327 | blank2 = " " * (maxlength2 - len("TYPE")) |
| 328 | |
| 329 | if colType is not None: |
| 330 | self._write("| Column%s | Type%s |" % (blank1, blank2)) |
| 331 | self._write("+%s+%s+" % (lines1, lines2)) |
| 332 | else: |
| 333 | self._write("| Column%s |" % blank1) |
| 334 | self._write("+%s+" % lines1) |
| 335 | |
| 336 | for column in colList: |
| 337 | colType = columns[column] |
no test coverage detected