RES: Creating a new type

From: "Rodrigo Sakai" <rodrigo(dot)sakai(at)zanthus(dot)com(dot)br>
To: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-interfaces(at)postgresql(dot)org>
Subject: RES: Creating a new type
Date: 2006-06-29 12:38:17
Message-ID: 000001c69b78$e5cfcee0$4700a8c0@TREEZANTHUS
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Ok, let me explain better! In my table example I will store datas like

Emp_id

emp_name

salary

emp_time

1

Rodrigo

1,200.00

(2006-jan-01, 2006-jun-01)

1

Rodrigo

2,100.00

(2006-mar-01, 2006-sep-01)

Considering the overlaps of emp_time and this question: what is the salary
of employee Rodrigo on 2006-apr-01 ??? This data is inconsistent because the
overlaps of time!

So, I have to guarantee that this situation doesn't occur! But I don't
want to use triggers because this check must be done on almost all tables
that uses the type:

CREATE TYPE time_interval (

Tbegin date,

Tend date

)

And be easy to the user. For example, any table that is created using this
type garantees that the overlaps will not occur! To do this I have to get
access for the past data of the table, and so, I have to know wich table is
using the type and have data being inserted!

Is that a way of doing this?

-----Mensagem original-----
De: pgsql-interfaces-owner(at)postgresql(dot)org
[mailto:pgsql-interfaces-owner(at)postgresql(dot)org] Em nome de Tom Lane
Enviada em: quarta-feira, 28 de junho de 2006 12:00
Para: rodrigo(dot)sakai(at)zanthus(dot)com(dot)br
Cc: pgsql-interfaces(at)postgresql(dot)org
Assunto: Re: [INTERFACES] Creating a new type

"Rodrigo Sakai" <rodrigo(dot)sakai(at)zanthus(dot)com(dot)br> writes:

> So, when I execute an INSERT operation on this table, the functions that

> deals with this type need the id or name of the table that the data was

> inserted!

Why? Your example datatype doesn't seem to require any such thing.

> How can I get this ID or NAME inside this functions???

You can't. The question itself is bogus because it assumes that data

values only exist within tables. You could not have a transient value

of the datatype (eg, a function result) because that is not stored in

any table.

regards, tom lane

---------------------------(end of broadcast)---------------------------

TIP 4: Have you searched our list archives?

http://archives.postgresql.org

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Tom Lane 2006-06-29 13:47:00 Re: RES: Creating a new type
Previous Message Francisco Figueiredo Jr. 2006-06-28 19:05:29 Re: Npgsql MS 2.0 - char bug?