NEW + tableOID
am 13.08.2010 23:08:15 von Ricardo Bayley
--0016e659f4d89e6593048dbae1e6
Content-Type: text/plain; charset=UTF-8
Hi Fellows,
I have a bunch of tables which I need to perform a Full Text Search.
The approach I am using is to insert into another table (the searcheable
table): tsvector information, tableOID and the record Id
I do this with triggers. This issue I have is that the tableoid data cannot
be used with the NEW keyword. I always get value 0 instead of the actual
tableoid.
Insert statement looks something like this:
INSERT INTO fts.fdata(tbl_oid, id, vector_info)
VALUES (NEW.tableoid, NEW.id, NEW.vector_info)
So how can I get the tableoid in a trigger function ?
regards,
Ricardo
--0016e659f4d89e6593048dbae1e6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Hi Fellows,
I have a bunch of tables which I need to per=
form a Full Text Search.Â
The approach I am using is to inse=
rt into another table (the searcheable table): Â tsvector information, =
tableOID and the record Id
I do this with triggers. This issue I have is that the =
tableoid data cannot be used with the NEW keyword. I always get value 0 ins=
tead of the actual tableoid.
Insert statement look=
s something like this:
INSERT INTO fts.fdata(tbl_oid, id, vector_info)
VALUES =
(NEW.tableoid, NEW.id, NEW.vector_info)
So h=
ow can I get the tableoid in a trigger function ?
regards,
Ricardo
v>
--0016e659f4d89e6593048dbae1e6--
Re: NEW + tableOID
am 13.08.2010 23:33:01 von Ricardo Bayley
--0016364ef6102d8057048dbb3a51
Content-Type: text/plain; charset=UTF-8
By the way,
Another option to do this, is to do some table Inheritance. So Full Text
Search is perform on each table.
So which scenario is better ? Triggers which insert data into a third table,
or Inheritance ?
Thanks in advanced !
Ricardo.
On Fri, Aug 13, 2010 at 6:08 PM, Ricardo Bayley wrote:
> Hi Fellows,
>
> I have a bunch of tables which I need to perform a Full Text Search.
> The approach I am using is to insert into another table (the searcheable
> table): tsvector information, tableOID and the record Id
>
> I do this with triggers. This issue I have is that the tableoid data cannot
> be used with the NEW keyword. I always get value 0 instead of the actual
> tableoid.
>
> Insert statement looks something like this:
> INSERT INTO fts.fdata(tbl_oid, id, vector_info)
> VALUES (NEW.tableoid, NEW.id, NEW.vector_info)
>
> So how can I get the tableoid in a trigger function ?
>
>
> regards,
>
>
> Ricardo
>
>
--0016364ef6102d8057048dbb3a51
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
By the way,
Another option to do this, is to do some tab=
le Inheritance. So Full Text Search is perform on each table.
>
So which scenario is better ? Triggers which insert data into a=
third table, Â or Inheritance ?
Thanks in advanced !
>
Ricardo.
On Fri, Aug 13, 201=
0 at 6:08 PM, Ricardo Bayley
<
o.bayley@gmail.com">ricardo.bayley@gmail.com> wrote:
x #ccc solid;padding-left:1ex;">Hi Fellows,
I have a bun=
ch of tables which I need to perform a Full Text Search.Â
Th=
e approach I am using is to insert into another table (the searcheable tabl=
e): Â tsvector information, tableOID and the record Id
I do this with triggers. This issue I have is that the =
tableoid data cannot be used with the NEW keyword. I always get value 0 ins=
tead of the actual tableoid.
Insert statement look=
s something like this:
INSERT INTO fts.fdata(tbl_oid, id, vector_info)
VALUES =
(NEW.tableoid, NEW.id, NEW.vector_info)
So h=
ow can I get the tableoid in a trigger function ?
regards,
r>
Ricardo
--0016364ef6102d8057048dbb3a51--
Re: NEW + tableOID
am 13.08.2010 23:45:05 von Tom Lane
Ricardo Bayley writes:
> I do this with triggers. This issue I have is that the tableoid data cannot
> be used with the NEW keyword. I always get value 0 instead of the actual
> tableoid.
That might work in an AFTER trigger, but it definitely won't work in a
BEFORE trigger, because the NEW row isn't actually part of the table at
that point. You'd probably be better off to rely on the trigger
function TG_RELID parameter instead, anyway.
regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Re: NEW + tableOID
am 14.08.2010 00:05:39 von Ricardo Bayley
--001636416ae3e26973048dbbae95
Content-Type: text/plain; charset=UTF-8
Thanks Tom that was exactly what I was looking for.
Do you think that having just 1 table to perform the Full Text Search is a
better approach than having 1 master table with child tables, and always
querying the Master one ? Which do you believe is faster ?
regards
On Fri, Aug 13, 2010 at 6:45 PM, Tom Lane wrote:
> Ricardo Bayley writes:
> > I do this with triggers. This issue I have is that the tableoid data
> cannot
> > be used with the NEW keyword. I always get value 0 instead of the actual
> > tableoid.
>
> That might work in an AFTER trigger, but it definitely won't work in a
> BEFORE trigger, because the NEW row isn't actually part of the table at
> that point. You'd probably be better off to rely on the trigger
> function TG_RELID parameter instead, anyway.
>
> regards, tom lane
>
--001636416ae3e26973048dbbae95
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Thanks Tom that was exactly what I was looking for.
Do y=
ou think that having just 1 table to perform the Full Text Search is a bett=
er approach than having 1 master table with child tables, and always queryi=
ng the Master one ? Which do you believe is faster ?
regards
On Fri=
, Aug 13, 2010 at 6:45 PM, Tom Lane
<
:tgl@sss.pgh.pa.us">tgl@sss.pgh.pa.us> wrote:
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex;">
Ricardo Bayley <
..com">ricardo.bayley@gmail.com> writes:
> I do this with triggers. This issue I have is that the tableoid data c=
annot
> be used with the NEW keyword. I always get value 0 instead of the actu=
al
> tableoid.
That might work in an AFTER trigger, but it definitely won't work=
in a
BEFORE trigger, because the NEW row isn't actually part of the table at=
that point. Â You'd probably be better off to rely on the trigger
r>
function TG_RELID parameter instead, anyway.
          =C2=
=A0 Â regards, tom lane
--001636416ae3e26973048dbbae95--