orm icon indicating copy to clipboard operation
orm copied to clipboard

Add ByteArray Field

Open FrostiiWeeb opened this issue 3 years ago • 3 comments

Checklist

  • [x] There are no similar issues or pull requests for this yet.
  • [ ] I discussed this idea on the community chat and feedback is positive.

Is your feature related to a problem? Please describe.

I want to be able to make a ByteArray field for my projects.

Describe the solution you would like.

For example, i would like to have the BYTEA Type in ORM. Eg:

import orm
...
class Example(orm.Model):
    tablename = "example"
    registry = metadata

    fields = {
        "user_id": orm.BigInteger(primary_key=True),
        "example_bytes": orm.ByteArray()
    }

And when i do for example,

field_ex = Example
# in async func
data = await field_ex.objects.get(user_id=1)
return data.example_bytes # this would return python bytes

Describe alternatives you considered

I considered using raw asyncpg which i am, but i would like the bytearray field in ORM so i can use it.

Additional context

FrostiiWeeb avatar Feb 02 '22 12:02 FrostiiWeeb

@aminalaee What do you think?

Mng-dev-ai avatar Feb 06 '22 09:02 Mng-dev-ai

Maybe we should use a more generic field type for this. Something like SQLAlchemy LargeBinary.

This will behave differently for each database, and make it easier since we rely on SQLAlchemy core.

aminalaee avatar Feb 06 '22 12:02 aminalaee

And maybe a BinaryField for typesystem too ?

Mng-dev-ai avatar Feb 06 '22 12:02 Mng-dev-ai