Thread: Bytea question
Hopefully a quick question.
If I store a file into a bytea field, is there anyway for postgres to read the contents of the file?
Here is my scenario:
Receive text file
insert file into bytea field
insert trigger fires
- read file contents
- post contents into production tables
Is this at all possible, or am I going to need to store the original file and store/pass the file contents?
Thanks,
Chris
If I store a file into a bytea field, is there anyway for postgres to read the contents of the file?
Here is my scenario:
Receive text file
insert file into bytea field
insert trigger fires
- read file contents
- post contents into production tables
Is this at all possible, or am I going to need to store the original file and store/pass the file contents?
Thanks,
Chris
Chris Hoover escribió: > Hopefully a quick question. > > If I store a file into a bytea field, is there anyway for postgres to read > the contents of the file? When you say "store a file", do you mean "store a filename"? > Here is my scenario: > > Receive text file > insert file into bytea field > insert trigger fires > - read file contents > - post contents into production tables > > Is this at all possible, or am I going to need to store the original file > and store/pass the file contents? -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
No, I need to store the entire file as received into the database.
Chris
Chris
On 4/11/07, Alvaro Herrera < alvherre@commandprompt.com> wrote:
Chris Hoover escribió:
> Hopefully a quick question.
>
> If I store a file into a bytea field, is there anyway for postgres to read
> the contents of the file?
When you say "store a file", do you mean "store a filename"?
> Here is my scenario:
>
> Receive text file
> insert file into bytea field
> insert trigger fires
> - read file contents
> - post contents into production tables
>
> Is this at all possible, or am I going to need to store the original file
> and store/pass the file contents?
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Chris Hoover escribió: > No, I need to store the entire file as received into the database. Then you original question does not make any sense to me, because if you pass the entire file content, why would Postgres *not* be able to read it? > On 4/11/07, Alvaro Herrera <alvherre@commandprompt.com> wrote: > > > >Chris Hoover escribió: > >> Hopefully a quick question. > >> > >> If I store a file into a bytea field, is there anyway for postgres to > >read > >> the contents of the file? > > > >When you say "store a file", do you mean "store a filename"? > > > >> Here is my scenario: > >> > >> Receive text file > >> insert file into bytea field > >> insert trigger fires > >> - read file contents > >> - post contents into production tables > >> > >> Is this at all possible, or am I going to need to store the original > >file > >> and store/pass the file contents? -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.
What I am needing to do is to store a file I receive, say file1.dat. I want to store file1.dat into a bytea field so we can always go back and retrieve the original file to verify if needed. However, I also need to process the data that is in file1.dat (1234 johnny 1254.12). When I load file1.dat into the bytea field, I just have a large escaped record that represents the file. What I am hoping is possible is to have postgres look into file1.dat's byte a field and be able to read the data in file1.dat (assuming it's a simple text file). That way, the database can do all of the heavy lifting and loading.
so.
Insert file1.dat into a bytea field of table a.
Table a's insert trigger fires, and postgres looks at the bytea field and see's file1.dat and its contents of "1234 johnny 1254.12".
Trigger runs logic on data and loads into appropriate tables
I hope this makes sense.
Chris
so.
Insert file1.dat into a bytea field of table a.
Table a's insert trigger fires, and postgres looks at the bytea field and see's file1.dat and its contents of "1234 johnny 1254.12".
Trigger runs logic on data and loads into appropriate tables
I hope this makes sense.
Chris
On 4/11/07, Chris Hoover <revoohc@gmail.com> wrote:
No, I need to store the entire file as received into the database.
ChrisOn 4/11/07, Alvaro Herrera < alvherre@commandprompt.com> wrote:Chris Hoover escribió:
> Hopefully a quick question.
>
> If I store a file into a bytea field, is there anyway for postgres to read
> the contents of the file?
When you say "store a file", do you mean "store a filename"?
> Here is my scenario:
>
> Receive text file
> insert file into bytea field
> insert trigger fires
> - read file contents
> - post contents into production tables
>
> Is this at all possible, or am I going to need to store the original file
> and store/pass the file contents?
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
It sounds like you want to parse the contents of the bytea column within a trigger/stored procedure. I haven't done this myself (I process the bytea data in java as an input stream after retrieving it from postgres), but you could probably use a FOR loop over the bytea column and then use some combination of the Binary String Functions (http://www.postgresql.org/docs/current/static/functions-binarystring.html) to process the file data. Mike On Wed, 2007-04-11 at 09:22 -0400, Alvaro Herrera wrote: > Chris Hoover escribió: > > No, I need to store the entire file as received into the database. > > Then you original question does not make any sense to me, because if you > pass the entire file content, why would Postgres *not* be able to read > it? > > > > On 4/11/07, Alvaro Herrera <alvherre@commandprompt.com> wrote: > > > > > >Chris Hoover escribió: > > >> Hopefully a quick question. > > >> > > >> If I store a file into a bytea field, is there anyway for postgres to > > >read > > >> the contents of the file? > > > > > >When you say "store a file", do you mean "store a filename"? > > > > > >> Here is my scenario: > > >> > > >> Receive text file > > >> insert file into bytea field > > >> insert trigger fires > > >> - read file contents > > >> - post contents into production tables > > >> > > >> Is this at all possible, or am I going to need to store the original > > >file > > >> and store/pass the file contents? >