(ds: CoreDatasource, conf: DatasourceConf, table_name: str = None)
| 169 | |
| 170 | |
| 171 | def get_field_sql(ds: CoreDatasource, conf: DatasourceConf, table_name: str = None): |
| 172 | if equals_ignore_case(ds.type, "mysql"): |
| 173 | sql1 = """ |
| 174 | SELECT |
| 175 | COLUMN_NAME, |
| 176 | DATA_TYPE, |
| 177 | COLUMN_COMMENT |
| 178 | FROM |
| 179 | INFORMATION_SCHEMA.COLUMNS |
| 180 | WHERE |
| 181 | TABLE_SCHEMA = :param1 |
| 182 | """ |
| 183 | sql2 = " AND TABLE_NAME = :param2" if table_name is not None and table_name != "" else "" |
| 184 | return sql1 + sql2, conf.database, table_name |
| 185 | elif equals_ignore_case(ds.type, "sqlServer"): |
| 186 | sql1 = """ |
| 187 | SELECT |
| 188 | COLUMN_NAME AS [COLUMN_NAME], |
| 189 | DATA_TYPE AS [DATA_TYPE], |
| 190 | ISNULL(EP.value, '') AS [COLUMN_COMMENT] |
| 191 | FROM |
| 192 | INFORMATION_SCHEMA.COLUMNS C |
| 193 | LEFT JOIN |
| 194 | sys.extended_properties EP |
| 195 | ON EP.major_id = OBJECT_ID(C.TABLE_SCHEMA + '.' + C.TABLE_NAME) |
| 196 | AND EP.minor_id = C.ORDINAL_POSITION |
| 197 | AND EP.name = 'MS_Description' |
| 198 | WHERE |
| 199 | C.TABLE_SCHEMA = :param1 |
| 200 | """ |
| 201 | sql2 = " AND C.TABLE_NAME = :param2" if table_name is not None and table_name != "" else "" |
| 202 | return sql1 + sql2, conf.dbSchema, table_name |
| 203 | elif equals_ignore_case(ds.type, "pg", "excel"): |
| 204 | sql1 = """ |
| 205 | SELECT a.attname AS COLUMN_NAME, |
| 206 | pg_catalog.format_type(a.atttypid, a.atttypmod) AS DATA_TYPE, |
| 207 | col_description(c.oid, a.attnum) AS COLUMN_COMMENT |
| 208 | FROM pg_catalog.pg_attribute a |
| 209 | JOIN |
| 210 | pg_catalog.pg_class c ON a.attrelid = c.oid |
| 211 | JOIN |
| 212 | pg_catalog.pg_namespace n ON n.oid = c.relnamespace |
| 213 | WHERE n.nspname = :param1 |
| 214 | AND a.attnum > 0 |
| 215 | AND NOT a.attisdropped \ |
| 216 | """ |
| 217 | sql2 = " AND c.relname = :param2" if table_name is not None and table_name != "" else "" |
| 218 | return sql1 + sql2, conf.dbSchema, table_name |
| 219 | elif equals_ignore_case(ds.type, "redshift"): |
| 220 | sql1 = """ |
| 221 | SELECT a.attname AS COLUMN_NAME, |
| 222 | pg_catalog.format_type(a.atttypid, a.atttypmod) AS DATA_TYPE, |
| 223 | col_description(c.oid, a.attnum) AS COLUMN_COMMENT |
| 224 | FROM pg_catalog.pg_attribute a |
| 225 | JOIN |
| 226 | pg_catalog.pg_class c ON a.attrelid = c.oid |
| 227 | JOIN |
| 228 | pg_catalog.pg_namespace n ON n.oid = c.relnamespace |
no test coverage detected