Обсуждение: Storing image contents in TEXT fields
Hi, I wanted to know if it's possible to store an image content in a TEXT field, or if another type is needed (in this case, then which one ?). I don't want to use BLOBs, because I modify an existing application which also works with MySQL, and I can't update to postgresql-7.1.x (I don't admin this server) in a TEXT field the image seems to be truncated at the first nul byte. Thanks in advance for any help. bye, Jerome Alet
You must use type 'bytea'. When you insert data, you must escape them like this: '\001\002\\000' note the double-backslash for null byte. On Wed, 27 Jun 2001, Jerome Alet wrote: > Hi, > > I wanted to know if it's possible to store an image content in a TEXT field, > or if another type is needed (in this case, then which one ?). > > I don't want to use BLOBs, because I modify an existing application > which also works with MySQL, and I can't update to postgresql-7.1.x > (I don't admin this server) > > in a TEXT field the image seems to be truncated at the first nul byte. > > Thanks in advance for any help. > > bye, > > Jerome Alet > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html > >
Jerome Alet wrote: > Hi, > > I wanted to know if it's possible to store an image content in a TEXT field, > or if another type is needed (in this case, then which one ?). > > I don't want to use BLOBs, because I modify an existing application > which also works with MySQL, and I can't update to postgresql-7.1.x > (I don't admin this server) > > in a TEXT field the image seems to be truncated at the first nul byte. To have the highest portability across ALL databases, you might be best off by converting it to/from base64 or similar in the client application and store the string in a text or varchar attribute. If you can't upgrade to 7.1.x, you'll have to slice and reassemble it yourself. 7.0 doesn't have TOAST. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
On Wed, Jun 27, 2001 at 11:17:28AM -0400, Jan Wieck wrote: > Jerome Alet wrote: > > Hi, > > > > I wanted to know if it's possible to store an image content in a TEXT field, > > or if another type is needed (in this case, then which one ?). > > > > I don't want to use BLOBs, because I modify an existing application > > which also works with MySQL, and I can't update to postgresql-7.1.x > > (I don't admin this server) > > > > in a TEXT field the image seems to be truncated at the first nul byte. > > To have the highest portability across ALL databases, you > might be best off by converting it to/from base64 or similar > in the client application and store the string in a text or > varchar attribute. I think that I'll modify the app anyway, since I fear to hit the tuple max size with some postgresql versions. I think it's better to store images outside the database, but the original app developper didn't seem to think the same ;-) bye, and thanks to all Jerome Alet
Jerome Alet wrote: > On Wed, Jun 27, 2001 at 11:17:28AM -0400, Jan Wieck wrote: > > Jerome Alet wrote: > > > Hi, > > > > > > I wanted to know if it's possible to store an image content in a TEXT field, > > > or if another type is needed (in this case, then which one ?). > > > > > > I don't want to use BLOBs, because I modify an existing application > > > which also works with MySQL, and I can't update to postgresql-7.1.x > > > (I don't admin this server) > > > > > > in a TEXT field the image seems to be truncated at the first nul byte. > > > > To have the highest portability across ALL databases, you > > might be best off by converting it to/from base64 or similar > > in the client application and store the string in a text or > > varchar attribute. > > I think that I'll modify the app anyway, since I fear to hit the > tuple max size with some postgresql versions. I think it's better > to store images outside the database, but the original app developper > didn't seem to think the same ;-) There is no "tuple max size" any more since PostgreSQL version 7.1. If you get it through the parser, planner, and executor (depends on virtual memory), it'll make it down to the disk. So if you don't intend to store tenth-mega-sized multi-frame video clips, you should be fine. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com