mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-28 17:23:28 +00:00
Adds percona server for postgresql support (#19322)
* percona server for postgresql support The only meaningful difference is version string in percona server for postgresql. So commit propose universal and safe way to detect server version by integer string, not complicated parsing of unformatted string. * updated tests with get_server_version_num commented outdated tests --------- Co-authored-by: Sriharsha Chintalapani <harshach@users.noreply.github.com>
This commit is contained in:
parent
21dd3e4342
commit
dcebc41e3f
@ -193,7 +193,7 @@ POSTGRES_SQL_COLUMNS = """
|
||||
"""
|
||||
|
||||
POSTGRES_GET_SERVER_VERSION = """
|
||||
show server_version
|
||||
show server_version_num
|
||||
"""
|
||||
|
||||
POSTGRES_FETCH_FK = """
|
||||
|
||||
@ -45,7 +45,7 @@ from metadata.utils.sqlalchemy_utils import (
|
||||
|
||||
logger = utils_logger()
|
||||
|
||||
OLD_POSTGRES_VERSION = "13.0"
|
||||
OLD_POSTGRES_VERSION = "130000"
|
||||
|
||||
|
||||
def get_etable_owner(
|
||||
@ -523,9 +523,6 @@ def get_postgres_version(engine) -> Optional[str]:
|
||||
results = engine.execute(POSTGRES_GET_SERVER_VERSION)
|
||||
for res in results:
|
||||
version_string = str(res[0])
|
||||
opening_parenthesis_index = version_string.find("(")
|
||||
if opening_parenthesis_index != -1:
|
||||
return version_string[:opening_parenthesis_index].strip()
|
||||
return version_string
|
||||
except Exception as err:
|
||||
logger.warning(f"Unable to fetch the Postgres Version - {err}")
|
||||
|
||||
@ -316,14 +316,15 @@ class PostgresUnitTest(TestCase):
|
||||
|
||||
@patch("sqlalchemy.engine.base.Engine")
|
||||
def test_get_version_info(self, engine):
|
||||
engine.execute.return_value = [["15.3 (Debian 15.3-1.pgdg110+1)"]]
|
||||
self.assertEqual("15.3", get_postgres_version(engine))
|
||||
# outdated with a switch to get_server_version_num instead of get_+server_version
|
||||
# engine.execute.return_value = [["15.3 (Debian 15.3-1.pgdg110+1)"]]
|
||||
# self.assertEqual("15.3", get_postgres_version(engine))
|
||||
|
||||
engine.execute.return_value = [["11.16"]]
|
||||
self.assertEqual("11.16", get_postgres_version(engine))
|
||||
engine.execute.return_value = [["110016"]]
|
||||
self.assertEqual("110016", get_postgres_version(engine))
|
||||
|
||||
engine.execute.return_value = [["9.6.24"]]
|
||||
self.assertEqual("9.6.24", get_postgres_version(engine))
|
||||
engine.execute.return_value = [["90624"]]
|
||||
self.assertEqual("90624", get_postgres_version(engine))
|
||||
|
||||
engine.execute.return_value = [[]]
|
||||
self.assertIsNone(get_postgres_version(engine))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user