(ds: CoreDatasource, conf: DatasourceConf, db_version: str = '')
| 34 | |
| 35 | |
| 36 | def get_table_sql(ds: CoreDatasource, conf: DatasourceConf, db_version: str = ''): |
| 37 | if equals_ignore_case(ds.type, "mysql"): |
| 38 | return """ |
| 39 | SELECT |
| 40 | TABLE_NAME, |
| 41 | TABLE_COMMENT |
| 42 | FROM |
| 43 | information_schema.TABLES |
| 44 | WHERE |
| 45 | TABLE_SCHEMA = :param |
| 46 | """, conf.database |
| 47 | elif equals_ignore_case(ds.type, "sqlServer"): |
| 48 | return """ |
| 49 | SELECT |
| 50 | TABLE_NAME AS [TABLE_NAME], |
| 51 | ISNULL(ep.value, '') AS [TABLE_COMMENT] |
| 52 | FROM |
| 53 | INFORMATION_SCHEMA.TABLES t |
| 54 | LEFT JOIN |
| 55 | sys.extended_properties ep |
| 56 | ON ep.major_id = OBJECT_ID(t.TABLE_SCHEMA + '.' + t.TABLE_NAME) |
| 57 | AND ep.minor_id = 0 |
| 58 | AND ep.name = 'MS_Description' |
| 59 | WHERE |
| 60 | t.TABLE_TYPE IN ('BASE TABLE', 'VIEW') |
| 61 | AND t.TABLE_SCHEMA = :param |
| 62 | """, conf.dbSchema |
| 63 | elif equals_ignore_case(ds.type, "pg", "excel"): |
| 64 | return """ |
| 65 | SELECT c.relname AS TABLE_NAME, |
| 66 | COALESCE(COALESCE(d.description, obj_description(c.oid)), '') AS TABLE_COMMENT |
| 67 | FROM pg_class c |
| 68 | LEFT JOIN |
| 69 | pg_namespace n ON n.oid = c.relnamespace |
| 70 | LEFT JOIN |
| 71 | pg_description d ON d.objoid = c.oid AND d.objsubid = 0 |
| 72 | WHERE n.nspname = :param |
| 73 | AND c.relkind IN ('r', 'v', 'p', 'm') |
| 74 | AND c.relname NOT LIKE 'pg_%' |
| 75 | AND c.relname NOT LIKE 'sql_%' |
| 76 | ORDER BY c.relname \ |
| 77 | """, conf.dbSchema |
| 78 | elif equals_ignore_case(ds.type, "oracle"): |
| 79 | return """ |
| 80 | SELECT DISTINCT |
| 81 | t.TABLE_NAME AS "TABLE_NAME", |
| 82 | NVL(c.COMMENTS, '') AS "TABLE_COMMENT" |
| 83 | FROM ( |
| 84 | SELECT TABLE_NAME, 'TABLE' AS OBJECT_TYPE |
| 85 | FROM ALL_TABLES |
| 86 | WHERE OWNER = :param |
| 87 | UNION ALL |
| 88 | SELECT VIEW_NAME AS TABLE_NAME, 'VIEW' AS OBJECT_TYPE |
| 89 | FROM ALL_VIEWS |
| 90 | WHERE OWNER = :param |
| 91 | UNION ALL |
| 92 | SELECT MVIEW_NAME AS TABLE_NAME, 'MATERIALIZED VIEW' AS OBJECT_TYPE |
| 93 | FROM ALL_MVIEWS |
no test coverage detected