Skip to content

Commit 3eb8e0e

Browse files
committed
fix: sybase schema
1 parent 3e1cad5 commit 3eb8e0e

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

dcs_core/integrations/databases/sybase.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,9 +251,9 @@ def query_get_table_columns(
251251
if self.sybase_driver_type.is_iq:
252252
query = (
253253
f"SELECT c.column_name, d.domain_name AS data_type, "
254-
f"CASE WHEN d.domain_name IN ('DECIMAL', 'NUMERIC') THEN c.scale ELSE NULL END AS numeric_scale, "
255-
f"CASE WHEN d.domain_name IN ('DECIMAL', 'NUMERIC') THEN c.width ELSE NULL END AS numeric_precision, "
256254
f"CASE WHEN d.domain_name IN ('DATE', 'TIME', 'TIMESTAMP') THEN c.scale ELSE NULL END AS datetime_precision, "
255+
f"CASE WHEN t.name IN ('float') THEN 15 WHEN t.name IN ('real') THEN 7 ELSE c.prec END AS numeric_precision, "
256+
f"CASE WHEN t.name IN ('float', 'real') THEN NULL ELSE c.scale END AS numeric_scale, "
257257
f"NULL AS collation_name, c.width AS character_maximum_length "
258258
f"FROM {database}.SYS.SYSTABLE t "
259259
f"JOIN {database}.SYS.SYSCOLUMN c ON t.table_id = c.table_id "
@@ -266,8 +266,9 @@ def query_get_table_columns(
266266
elif self.sybase_driver_type.is_ase:
267267
query = (
268268
f"SELECT c.name AS column_name, t.name AS data_type, "
269-
f"c.prec AS numeric_precision, c.scale AS numeric_scale, "
270269
f"CASE WHEN c.type IN (61, 111) THEN c.prec ELSE NULL END AS datetime_precision, "
270+
f"CASE WHEN t.name IN ('float') THEN 15 WHEN t.name IN ('real') THEN 7 ELSE c.prec END AS numeric_precision, "
271+
f"CASE WHEN t.name IN ('float', 'real') THEN NULL ELSE c.scale END AS numeric_scale, "
271272
f"NULL AS collation_name, c.length AS character_maximum_length "
272273
f"FROM {database}..sysobjects o "
273274
f"JOIN {database}..syscolumns c ON o.id = c.id "
@@ -280,8 +281,9 @@ def query_get_table_columns(
280281
try:
281282
ase_query = (
282283
f"SELECT c.name AS column_name, t.name AS data_type, "
283-
f"c.prec AS numeric_precision, c.scale AS numeric_scale, "
284284
f"CASE WHEN c.type IN (61, 111) THEN c.prec ELSE NULL END AS datetime_precision, "
285+
f"CASE WHEN t.name IN ('float') THEN 15 WHEN t.name IN ('real') THEN 7 ELSE c.prec END AS numeric_precision, "
286+
f"CASE WHEN t.name IN ('float', 'real') THEN NULL ELSE c.scale END AS numeric_scale, "
285287
f"NULL AS collation_name, c.length AS character_maximum_length "
286288
f"FROM {database}..sysobjects o "
287289
f"JOIN {database}..syscolumns c ON o.id = c.id "
@@ -295,8 +297,9 @@ def query_get_table_columns(
295297
except Exception as _:
296298
iq_query = (
297299
f"SELECT c.name AS column_name, t.name AS data_type, "
298-
f"c.prec AS numeric_precision, c.scale AS numeric_scale, "
299300
f"CASE WHEN c.type IN (61, 111) THEN c.prec ELSE NULL END AS datetime_precision, "
301+
f"CASE WHEN t.name IN ('float') THEN 15 WHEN t.name IN ('real') THEN 7 ELSE c.prec END AS numeric_precision, "
302+
f"CASE WHEN t.name IN ('float', 'real') THEN NULL ELSE c.scale END AS numeric_scale, "
300303
f"NULL AS collation_name, c.length AS character_maximum_length "
301304
f"FROM {database}.dbo.sysobjects o "
302305
f"JOIN {database}.dbo.syscolumns c ON o.id = c.id "

0 commit comments

Comments
 (0)