Skip to content

VARBYTE is decoded into utf-8 #261

@psukys

Description

@psukys

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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions