clickzetta-semantic-model-generator 1.0.11__py3-none-any.whl → 1.0.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {clickzetta_semantic_model_generator-1.0.11.dist-info → clickzetta_semantic_model_generator-1.0.13.dist-info}/METADATA +1 -1
- {clickzetta_semantic_model_generator-1.0.11.dist-info → clickzetta_semantic_model_generator-1.0.13.dist-info}/RECORD +5 -5
- semantic_model_generator/clickzetta_utils/clickzetta_connector.py +40 -22
- {clickzetta_semantic_model_generator-1.0.11.dist-info → clickzetta_semantic_model_generator-1.0.13.dist-info}/LICENSE +0 -0
- {clickzetta_semantic_model_generator-1.0.11.dist-info → clickzetta_semantic_model_generator-1.0.13.dist-info}/WHEEL +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
semantic_model_generator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
semantic_model_generator/clickzetta_utils/clickzetta_connector.py,sha256=
|
2
|
+
semantic_model_generator/clickzetta_utils/clickzetta_connector.py,sha256=CwmO0kjQRujtDBaikjUY2h9Y28i4Ui--ojtB5Nr7XJs,36033
|
3
3
|
semantic_model_generator/clickzetta_utils/env_vars.py,sha256=8cbL6R75c1-aVQ2i1TDr9SiHCUjTrgvXbIRz4MbcmbE,7664
|
4
4
|
semantic_model_generator/clickzetta_utils/utils.py,sha256=UBfWy9qOTyut8tL02gOHHbh6Uz8RqRz5Mm2YdKWFN54,4950
|
5
5
|
semantic_model_generator/data_processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -32,7 +32,7 @@ semantic_model_generator/validate/context_length.py,sha256=HL-GfaRXNcVji1-pAFGXG
|
|
32
32
|
semantic_model_generator/validate/keywords.py,sha256=frZ5HjRXP69K6dYAU5_d86oSp40_3yoLUg1eQwU3oLM,7080
|
33
33
|
semantic_model_generator/validate/schema.py,sha256=eL_wl5yscIeczwNBRUKhF_7QqWW2wSGimkgaOhMFsrA,5893
|
34
34
|
semantic_model_generator/validate_model.py,sha256=Uq-V-GfPeF2Dy4l9uF5Guv104gDCDGh0Cxz1AJOu5dk,836
|
35
|
-
clickzetta_semantic_model_generator-1.0.
|
36
|
-
clickzetta_semantic_model_generator-1.0.
|
37
|
-
clickzetta_semantic_model_generator-1.0.
|
38
|
-
clickzetta_semantic_model_generator-1.0.
|
35
|
+
clickzetta_semantic_model_generator-1.0.13.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
36
|
+
clickzetta_semantic_model_generator-1.0.13.dist-info/METADATA,sha256=eWxK-U7IaduyEYAHMppEJx_DxDaTDdgQJPoed52fu-s,7817
|
37
|
+
clickzetta_semantic_model_generator-1.0.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
38
|
+
clickzetta_semantic_model_generator-1.0.13.dist-info/RECORD,,
|
@@ -482,42 +482,59 @@ def _fetch_columns_via_show(
|
|
482
482
|
rows: List[pd.DataFrame] = []
|
483
483
|
category = _catalog_category(session, workspace)
|
484
484
|
is_shared_catalog = category == "SHARED"
|
485
|
-
catalog = workspace
|
485
|
+
catalog = workspace
|
486
486
|
schema_token = table_schema or ""
|
487
|
-
if schema_token and not is_shared_catalog:
|
488
|
-
schema_token = schema_token.upper()
|
489
487
|
|
490
488
|
for table_name in table_names:
|
491
489
|
table_token = str(table_name).strip()
|
492
490
|
if not table_token:
|
493
491
|
continue
|
494
|
-
|
492
|
+
|
493
|
+
identifier_candidates: List[str] = []
|
494
|
+
fully_qualified = join_quoted_identifiers(
|
495
495
|
*(part for part in (catalog, schema_token, table_token) if part)
|
496
496
|
)
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
497
|
+
if fully_qualified:
|
498
|
+
identifier_candidates.append(fully_qualified)
|
499
|
+
schema_qualified = (
|
500
|
+
join_quoted_identifiers(schema_token, table_token)
|
501
|
+
if schema_token
|
502
|
+
else ""
|
503
|
+
)
|
504
|
+
if schema_qualified:
|
505
|
+
identifier_candidates.append(schema_qualified)
|
506
|
+
bare_identifier = join_quoted_identifiers(table_token)
|
507
|
+
if bare_identifier:
|
508
|
+
identifier_candidates.append(bare_identifier)
|
509
|
+
|
510
|
+
df = pd.DataFrame()
|
511
|
+
df_source = ""
|
512
|
+
for identifier in identifier_candidates:
|
513
|
+
query = f"SHOW COLUMNS IN {identifier}"
|
508
514
|
try:
|
509
|
-
|
515
|
+
df = session.sql(query).to_pandas()
|
516
|
+
df_source = "SHOW COLUMNS"
|
510
517
|
except Exception as exc:
|
511
518
|
logger.debug(
|
512
|
-
"
|
519
|
+
"SHOW COLUMNS fallback failed for {}: {}", identifier, exc
|
513
520
|
)
|
514
|
-
|
515
|
-
if
|
516
|
-
|
517
|
-
|
521
|
+
df = pd.DataFrame()
|
522
|
+
if df.empty:
|
523
|
+
describe_query = f"DESCRIBE TABLE {identifier}"
|
524
|
+
try:
|
525
|
+
describe_df = session.sql(describe_query).to_pandas()
|
526
|
+
except Exception as exc:
|
527
|
+
logger.debug(
|
528
|
+
"DESCRIBE TABLE fallback failed for {}: {}", identifier, exc
|
529
|
+
)
|
530
|
+
describe_df = pd.DataFrame()
|
531
|
+
if not describe_df.empty:
|
532
|
+
df = describe_df
|
533
|
+
df_source = "DESCRIBE TABLE"
|
534
|
+
if not df.empty:
|
535
|
+
break
|
518
536
|
if df.empty:
|
519
537
|
continue
|
520
|
-
df.columns = [str(col).upper() for col in df.columns]
|
521
538
|
if df_source == "DESCRIBE TABLE":
|
522
539
|
if "KIND" in df.columns:
|
523
540
|
df = df[df["KIND"].astype(str).str.upper() == "COLUMN"]
|
@@ -530,6 +547,7 @@ def _fetch_columns_via_show(
|
|
530
547
|
df = df.rename(columns=rename_map)
|
531
548
|
if df.empty:
|
532
549
|
continue
|
550
|
+
df.columns = [str(col).upper() for col in df.columns]
|
533
551
|
schema_col = next(
|
534
552
|
(col for col in ("TABLE_SCHEMA", "SCHEMA_NAME") if col in df.columns), None
|
535
553
|
)
|
File without changes
|
File without changes
|