mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-08 06:53:11 +00:00
Add: Postgres SP and UDF descriptions (#22021)
This commit is contained in:
parent
10b377590c
commit
b4cd7b7046
@ -40,7 +40,11 @@ from metadata.generated.schema.entity.services.ingestionPipelines.status import
|
|||||||
from metadata.generated.schema.metadataIngestion.workflow import (
|
from metadata.generated.schema.metadataIngestion.workflow import (
|
||||||
Source as WorkflowSource,
|
Source as WorkflowSource,
|
||||||
)
|
)
|
||||||
from metadata.generated.schema.type.basic import EntityName, FullyQualifiedEntityName
|
from metadata.generated.schema.type.basic import (
|
||||||
|
EntityName,
|
||||||
|
FullyQualifiedEntityName,
|
||||||
|
Markdown,
|
||||||
|
)
|
||||||
from metadata.ingestion.api.models import Either
|
from metadata.ingestion.api.models import Either
|
||||||
from metadata.ingestion.api.steps import InvalidSourceException
|
from metadata.ingestion.api.steps import InvalidSourceException
|
||||||
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
|
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
|
||||||
@ -300,9 +304,15 @@ class PostgresSource(CommonDbSourceService, MultiDBSource):
|
|||||||
"""List stored procedures"""
|
"""List stored procedures"""
|
||||||
if self.source_config.includeStoredProcedures:
|
if self.source_config.includeStoredProcedures:
|
||||||
yield from self._get_stored_procedures_internal(
|
yield from self._get_stored_procedures_internal(
|
||||||
POSTGRES_GET_STORED_PROCEDURES
|
POSTGRES_GET_STORED_PROCEDURES.format(
|
||||||
|
schema_name=self.context.get().database_schema
|
||||||
|
)
|
||||||
|
)
|
||||||
|
yield from self._get_stored_procedures_internal(
|
||||||
|
POSTGRES_GET_FUNCTIONS.format(
|
||||||
|
schema_name=self.context.get().database_schema
|
||||||
|
)
|
||||||
)
|
)
|
||||||
yield from self._get_stored_procedures_internal(POSTGRES_GET_FUNCTIONS)
|
|
||||||
|
|
||||||
def yield_stored_procedure(
|
def yield_stored_procedure(
|
||||||
self, stored_procedure
|
self, stored_procedure
|
||||||
@ -311,7 +321,9 @@ class PostgresSource(CommonDbSourceService, MultiDBSource):
|
|||||||
try:
|
try:
|
||||||
stored_procedure_request = CreateStoredProcedureRequest(
|
stored_procedure_request = CreateStoredProcedureRequest(
|
||||||
name=EntityName(stored_procedure.name),
|
name=EntityName(stored_procedure.name),
|
||||||
description=None,
|
description=Markdown(stored_procedure.description)
|
||||||
|
if stored_procedure.description
|
||||||
|
else None,
|
||||||
storedProcedureCode=StoredProcedureCode(
|
storedProcedureCode=StoredProcedureCode(
|
||||||
language=STORED_PROC_LANGUAGE_MAP.get(stored_procedure.language),
|
language=STORED_PROC_LANGUAGE_MAP.get(stored_procedure.language),
|
||||||
code=stored_procedure.definition,
|
code=stored_procedure.definition,
|
||||||
|
|||||||
@ -24,3 +24,4 @@ class PostgresStoredProcedure(BaseModel):
|
|||||||
definition: str
|
definition: str
|
||||||
language: Optional[str] = None
|
language: Optional[str] = None
|
||||||
procedure_type: Optional[str] = Field(None, alias="procedure_type")
|
procedure_type: Optional[str] = Field(None, alias="procedure_type")
|
||||||
|
description: Optional[str] = Field(None, alias="description")
|
||||||
|
|||||||
@ -225,10 +225,12 @@ POSTGRES_GET_STORED_PROCEDURES = """
|
|||||||
proargtypes AS argument_types,
|
proargtypes AS argument_types,
|
||||||
prorettype::regtype AS return_type,
|
prorettype::regtype AS return_type,
|
||||||
prosrc AS definition,
|
prosrc AS definition,
|
||||||
'StoredProcedure' as procedure_type
|
'StoredProcedure' as procedure_type,
|
||||||
|
obj_description(pg_proc.oid, 'pg_proc') AS description
|
||||||
FROM pg_proc
|
FROM pg_proc
|
||||||
JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
|
JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
|
||||||
WHERE prokind = 'p';
|
WHERE prokind = 'p'
|
||||||
|
and pg_namespace.nspname = '{schema_name}';
|
||||||
"""
|
"""
|
||||||
|
|
||||||
POSTGRES_GET_FUNCTIONS = """
|
POSTGRES_GET_FUNCTIONS = """
|
||||||
@ -238,11 +240,12 @@ SELECT
|
|||||||
proargtypes AS argument_types,
|
proargtypes AS argument_types,
|
||||||
prorettype :: regtype AS return_type,
|
prorettype :: regtype AS return_type,
|
||||||
prosrc AS definition,
|
prosrc AS definition,
|
||||||
'Function' as procedure_type
|
'Function' as procedure_type,
|
||||||
|
obj_description(pg_proc.oid, 'pg_proc') AS description
|
||||||
FROM
|
FROM
|
||||||
pg_proc
|
pg_proc
|
||||||
JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
|
JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
|
||||||
WHERE
|
WHERE
|
||||||
prokind = 'f'
|
prokind = 'f'
|
||||||
and pg_namespace.nspname NOT IN ('pg_catalog', 'information_schema');
|
and pg_namespace.nspname = '{schema_name}';
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user