MCPcopy Index your code
hub / github.com/dataease/SQLBot / get_field_sql

Function get_field_sql

backend/apps/db/db_sql.py:171–321  ·  view source on GitHub ↗
(ds: CoreDatasource, conf: DatasourceConf, table_name: str = None)

Source from the content-addressed store, hash-verified

169
170
171def 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

Callers 1

get_fieldsFunction · 0.90

Calls 1

equals_ignore_caseFunction · 0.90

Tested by

no test coverage detected