mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-25 07:04:43 +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> (cherry picked from commit dcebc41e3f845933aaa9b9de8761eeb8fc52f9ee)
This commit is contained in:
parent
4b2ff1cba9
commit
cbbbca5472
@ -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}")
|
||||
|
||||
@ -320,14 +320,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