aws / aws/amazon-redshift-python-driver

VARBYTE is decoded into utf-8

Đang mở
#261 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
220
Fork
86
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

In readme VARBYTE is stated as supported as Python's `bytes` type. When trying to query data VARBYTE data from Redshift, 'utf-8' decoding error is thrown.

### Reproduction

```python
import redshift_connector

DROP_DDL = "drop table if exists varbyte_repro"
CREATE_DDL = """create table varbyte_repro(
my_var varbyte
);
"""
INSERT_DML = "insert into varbyte_repro(my_var) values (from_hex(SHA1('hello')))"
QUERY = "select * from varbyte_repro"

with redshift_connector.connect(
host="replaced",
database="replaced",
user="replaced",
password="replaced",
) as conn, conn.cursor() as cursor:
conn.autocommit = True
cursor.execute(DROP_DDL)
cursor.execute(CREATE_DDL)
cursor.execute(INSERT_DML)
cursor.execute(QUERY)
```

### Expected

Last `cursor.execute` runs without issue (so that later something like `cursor.fetchall` could be used)

### Actual

Error thrown:
```
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xaa in position 0: invalid start byte
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Chạy bản tái hiện Python được cung cấp trên Redshift và kiểm tra đường dẫn giải mã kết quả VARBYTE của connector khi truy vấn cuối cùng được thực thi. Xác nhận rằng các giá trị VARBYTE được trả về dưới dạng Python bytes mà không có UnicodeDecodeError, sau đó thêm hoặc cập nhật coverage cho hành vi truy vấn được minh họa.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
database
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.