SameerMesiah97 commented on code in PR #66893:
URL: https://github.com/apache/airflow/pull/66893#discussion_r3243495827
##########
providers/postgres/src/airflow/providers/postgres/hooks/postgres.py:
##########
@@ -262,30 +285,13 @@ def get_conn(self) -> CompatConnection:
if arg_name not in self.ignored_extra_options:
conn_args[arg_name] = arg_val
- if USE_PSYCOPG3:
- from psycopg.connection import Connection as pgConnection
-
- raw_cursor = conn.extra_dejson.get("cursor")
- if raw_cursor:
- conn_args["row_factory"] = self._get_cursor(raw_cursor)
-
- # Use Any type for the connection args to avoid type conflicts
- connection = pgConnection.connect(**cast("Any", conn_args))
- self.conn = cast("CompatConnection", connection)
-
- # Register JSON handlers for both json and jsonb types
- # This ensures JSON data is properly decoded from bytes to Python
objects
- register_default_adapters(connection)
+ raw_cursor = conn.extra_dejson.get("cursor")
- # Add the notice handler AFTER the connection is established
- if self.enable_log_db_messages and hasattr(self.conn,
"add_notice_handler"):
- self.conn.add_notice_handler(self._notice_handler)
- else: # psycopg2
- raw_cursor = conn.extra_dejson.get("cursor", False)
- if raw_cursor:
- conn_args["cursor_factory"] = self._get_cursor(raw_cursor)
+ if raw_cursor:
+ key, value = self._get_cursor_config(raw_cursor)
+ conn_args[key] = value
Review Comment:
I believe keeping the truthy check i.e. `if raw_cursor` should preserve
existing behavior. Before the refactoring `raw_cursor` in the PPG2 path would
default to `False` is no `raw_cursor` is found and the truthy check would
prevent the cursor from being evaluated. The only difference now is that `None`
is kept as `None`, which fails the truthy check. In other words, I see no need
to change this.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]