|
78 | 78 | numeric_to_float_binary, |
79 | 79 | numeric_to_float_in, |
80 | 80 | ) |
81 | | -from redshift_connector.utils import pg_types as PG_TYPES |
82 | 81 | from redshift_connector.utils import py_types as PY_TYPES |
| 82 | +from redshift_connector.utils import q_pack |
| 83 | +from redshift_connector.utils import redshift_types as REDSHIFT_TYPES |
83 | 84 | from redshift_connector.utils import ( |
84 | | - q_pack, |
85 | 85 | text_recv, |
86 | 86 | time_in, |
87 | 87 | time_recv_binary, |
@@ -470,7 +470,7 @@ def __init__( |
470 | 470 | self._client_protocol_version: int = client_protocol_version |
471 | 471 | self._database = database |
472 | 472 | self.py_types = deepcopy(PY_TYPES) |
473 | | - self.pg_types = deepcopy(PG_TYPES) |
| 473 | + self.redshift_types = deepcopy(REDSHIFT_TYPES) |
474 | 474 | self._database_metadata_current_db_only: bool = database_metadata_current_db_only |
475 | 475 | self.numeric_to_float: bool = numeric_to_float |
476 | 476 |
|
@@ -724,42 +724,42 @@ def get_calling_module() -> str: |
724 | 724 |
|
725 | 725 | def _enable_protocol_based_conversion_funcs(self: "Connection"): |
726 | 726 | if self._client_protocol_version >= ClientProtocolVersion.BINARY.value: |
727 | | - self.pg_types[RedshiftOID.NUMERIC] = (FC_BINARY, numeric_in_binary) |
728 | | - self.pg_types[RedshiftOID.DATE] = (FC_BINARY, date_recv_binary) |
729 | | - self.pg_types[RedshiftOID.GEOGRAPHY] = (FC_BINARY, geographyhex_recv) # GEOGRAPHY |
730 | | - self.pg_types[RedshiftOID.TIME] = (FC_BINARY, time_recv_binary) |
731 | | - self.pg_types[RedshiftOID.TIMETZ] = (FC_BINARY, timetz_recv_binary) |
732 | | - self.pg_types[RedshiftOID.CHAR_ARRAY] = (FC_BINARY, array_recv_binary) # CHAR[] |
733 | | - self.pg_types[RedshiftOID.SMALLINT_ARRAY] = (FC_BINARY, array_recv_binary) # INT2[] |
734 | | - self.pg_types[RedshiftOID.INTEGER_ARRAY] = (FC_BINARY, array_recv_binary) # INT4[] |
735 | | - self.pg_types[RedshiftOID.TEXT_ARRAY] = (FC_BINARY, array_recv_binary) # TEXT[] |
736 | | - self.pg_types[RedshiftOID.VARCHAR_ARRAY] = (FC_BINARY, array_recv_binary) # VARCHAR[] |
737 | | - self.pg_types[RedshiftOID.REAL_ARRAY] = (FC_BINARY, array_recv_binary) # FLOAT4[] |
738 | | - self.pg_types[RedshiftOID.OID_ARRAY] = (FC_BINARY, array_recv_binary) # OID[] |
739 | | - self.pg_types[RedshiftOID.ACLITEM_ARRAY] = (FC_BINARY, array_recv_binary) # ACLITEM[] |
740 | | - self.pg_types[RedshiftOID.VARBYTE] = (FC_TEXT, text_recv) # VARBYTE |
| 727 | + self.redshift_types[RedshiftOID.NUMERIC] = (FC_BINARY, numeric_in_binary) |
| 728 | + self.redshift_types[RedshiftOID.DATE] = (FC_BINARY, date_recv_binary) |
| 729 | + self.redshift_types[RedshiftOID.GEOGRAPHY] = (FC_BINARY, geographyhex_recv) # GEOGRAPHY |
| 730 | + self.redshift_types[RedshiftOID.TIME] = (FC_BINARY, time_recv_binary) |
| 731 | + self.redshift_types[RedshiftOID.TIMETZ] = (FC_BINARY, timetz_recv_binary) |
| 732 | + self.redshift_types[RedshiftOID.CHAR_ARRAY] = (FC_BINARY, array_recv_binary) # CHAR[] |
| 733 | + self.redshift_types[RedshiftOID.SMALLINT_ARRAY] = (FC_BINARY, array_recv_binary) # INT2[] |
| 734 | + self.redshift_types[RedshiftOID.INTEGER_ARRAY] = (FC_BINARY, array_recv_binary) # INT4[] |
| 735 | + self.redshift_types[RedshiftOID.TEXT_ARRAY] = (FC_BINARY, array_recv_binary) # TEXT[] |
| 736 | + self.redshift_types[RedshiftOID.VARCHAR_ARRAY] = (FC_BINARY, array_recv_binary) # VARCHAR[] |
| 737 | + self.redshift_types[RedshiftOID.REAL_ARRAY] = (FC_BINARY, array_recv_binary) # FLOAT4[] |
| 738 | + self.redshift_types[RedshiftOID.OID_ARRAY] = (FC_BINARY, array_recv_binary) # OID[] |
| 739 | + self.redshift_types[RedshiftOID.ACLITEM_ARRAY] = (FC_BINARY, array_recv_binary) # ACLITEM[] |
| 740 | + self.redshift_types[RedshiftOID.VARBYTE] = (FC_TEXT, text_recv) # VARBYTE |
741 | 741 |
|
742 | 742 | if self.numeric_to_float: |
743 | | - self.pg_types[RedshiftOID.NUMERIC] = (FC_BINARY, numeric_to_float_binary) |
| 743 | + self.redshift_types[RedshiftOID.NUMERIC] = (FC_BINARY, numeric_to_float_binary) |
744 | 744 |
|
745 | 745 | else: # text protocol |
746 | | - self.pg_types[RedshiftOID.NUMERIC] = (FC_TEXT, numeric_in) |
747 | | - self.pg_types[RedshiftOID.TIME] = (FC_TEXT, time_in) |
748 | | - self.pg_types[RedshiftOID.DATE] = (FC_TEXT, date_in) |
749 | | - self.pg_types[RedshiftOID.GEOGRAPHY] = (FC_TEXT, text_recv) # GEOGRAPHY |
750 | | - self.pg_types[RedshiftOID.TIMETZ] = (FC_BINARY, timetz_recv_binary) |
751 | | - self.pg_types[RedshiftOID.CHAR_ARRAY] = (FC_TEXT, array_recv_text) # CHAR[] |
752 | | - self.pg_types[RedshiftOID.SMALLINT_ARRAY] = (FC_TEXT, int_array_recv) # INT2[] |
753 | | - self.pg_types[RedshiftOID.INTEGER_ARRAY] = (FC_TEXT, int_array_recv) # INT4[] |
754 | | - self.pg_types[RedshiftOID.TEXT_ARRAY] = (FC_TEXT, array_recv_text) # TEXT[] |
755 | | - self.pg_types[RedshiftOID.VARCHAR_ARRAY] = (FC_TEXT, array_recv_text) # VARCHAR[] |
756 | | - self.pg_types[RedshiftOID.REAL_ARRAY] = (FC_TEXT, float_array_recv) # FLOAT4[] |
757 | | - self.pg_types[RedshiftOID.OID_ARRAY] = (FC_TEXT, int_array_recv) # OID[] |
758 | | - self.pg_types[RedshiftOID.ACLITEM_ARRAY] = (FC_TEXT, array_recv_text) # ACLITEM[] |
759 | | - self.pg_types[RedshiftOID.VARBYTE] = (FC_TEXT, varbytehex_recv) # VARBYTE |
| 746 | + self.redshift_types[RedshiftOID.NUMERIC] = (FC_TEXT, numeric_in) |
| 747 | + self.redshift_types[RedshiftOID.TIME] = (FC_TEXT, time_in) |
| 748 | + self.redshift_types[RedshiftOID.DATE] = (FC_TEXT, date_in) |
| 749 | + self.redshift_types[RedshiftOID.GEOGRAPHY] = (FC_TEXT, text_recv) # GEOGRAPHY |
| 750 | + self.redshift_types[RedshiftOID.TIMETZ] = (FC_BINARY, timetz_recv_binary) |
| 751 | + self.redshift_types[RedshiftOID.CHAR_ARRAY] = (FC_TEXT, array_recv_text) # CHAR[] |
| 752 | + self.redshift_types[RedshiftOID.SMALLINT_ARRAY] = (FC_TEXT, int_array_recv) # INT2[] |
| 753 | + self.redshift_types[RedshiftOID.INTEGER_ARRAY] = (FC_TEXT, int_array_recv) # INT4[] |
| 754 | + self.redshift_types[RedshiftOID.TEXT_ARRAY] = (FC_TEXT, array_recv_text) # TEXT[] |
| 755 | + self.redshift_types[RedshiftOID.VARCHAR_ARRAY] = (FC_TEXT, array_recv_text) # VARCHAR[] |
| 756 | + self.redshift_types[RedshiftOID.REAL_ARRAY] = (FC_TEXT, float_array_recv) # FLOAT4[] |
| 757 | + self.redshift_types[RedshiftOID.OID_ARRAY] = (FC_TEXT, int_array_recv) # OID[] |
| 758 | + self.redshift_types[RedshiftOID.ACLITEM_ARRAY] = (FC_TEXT, array_recv_text) # ACLITEM[] |
| 759 | + self.redshift_types[RedshiftOID.VARBYTE] = (FC_TEXT, varbytehex_recv) # VARBYTE |
760 | 760 |
|
761 | 761 | if self.numeric_to_float: |
762 | | - self.pg_types[RedshiftOID.NUMERIC] = (FC_TEXT, numeric_to_float_in) |
| 762 | + self.redshift_types[RedshiftOID.NUMERIC] = (FC_TEXT, numeric_to_float_in) |
763 | 763 |
|
764 | 764 | @property |
765 | 765 | def _is_multi_databases_catalog_enable_in_server(self: "Connection") -> bool: |
@@ -1575,7 +1575,7 @@ def handle_ROW_DESCRIPTION(self: "Connection", data, cursor: Cursor) -> None: |
1575 | 1575 | idx += 2 |
1576 | 1576 |
|
1577 | 1577 | cursor.ps["row_desc"].append(field) |
1578 | | - field["pg8000_fc"], field["func"] = self.pg_types[field["type_oid"]] |
| 1578 | + field["redshift_connector_fc"], field["func"] = self.redshift_types[field["type_oid"]] |
1579 | 1579 |
|
1580 | 1580 | _logger.debug(cursor.ps["row_desc"]) |
1581 | 1581 |
|
@@ -1702,7 +1702,7 @@ def execute(self: "Connection", cursor: Cursor, operation: str, vals) -> None: |
1702 | 1702 |
|
1703 | 1703 | # We've got row_desc that allows us to identify what we're |
1704 | 1704 | # going to get back from this statement. |
1705 | | - output_fc = tuple(self.pg_types[f["type_oid"]][0] for f in ps["row_desc"]) |
| 1705 | + output_fc = tuple(self.redshift_types[f["type_oid"]][0] for f in ps["row_desc"]) |
1706 | 1706 |
|
1707 | 1707 | ps["input_funcs"] = tuple(f["func"] for f in ps["row_desc"]) |
1708 | 1708 | # Byte1('B') - Identifies the Bind command. |
|
0 commit comments