Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico JotaComm
Olá,

Quanto aos oids de tabelas de usuário elas vem desabilitadas a partir da
versão 8.1.

Se você usar os oids nas tabelas sempre que você realizar um procedimento de
backup e depois for restaurar o banco, novos oids serão gerados ao realizar
o processo de importação, a não ser que você especifique a opção -o para
gerar o dump com os oids.

E com relação ao seu uso, sinceramente eu não vejo um uso prático deles em
tabelas de usuário.


2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com

 Olá a todos,

 Me desculpem a ignorancia, pois estou começando agora com PostGres.

 É que eu precisava saber as implicações de usar ou não o OID nas tabelas.

 Desde de já agradeço a atenção

 []s
 Marcelo

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Osvaldo Kussama
2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com:

 Me desculpem a ignorancia, pois estou começando agora com PostGres.

 É que eu precisava saber as implicações de usar ou não o OID nas tabelas.



Do manual:
http://www.postgresql.org/docs/current/interactive/datatype-oid.html

The oid type is currently implemented as an unsigned four-byte
integer. Therefore, it is not large enough to provide database-wide
uniqueness in large databases, or even in large individual tables. So,
using a user-created table's OID column as a primary key is
discouraged. OIDs are best used only for references to system tables.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Marcelo Cardoso de Souza
Primeiramente obrigado,

No caso é que tenho uma aplicação que precisa saber o ultimo inser da
conexao com o banco.

A aplicação este em PHP.

2009/6/5 JotaComm jota.c...@gmail.com


 Olá,

 Quanto aos oids de tabelas de usuário elas vem desabilitadas a partir da
 versão 8.1.

 Se você usar os oids nas tabelas sempre que você realizar um procedimento
 de backup e depois for restaurar o banco, novos oids serão gerados ao
 realizar o processo de importação, a não ser que você especifique a opção -o
 para gerar o dump com os oids.

 E com relação ao seu uso, sinceramente eu não vejo um uso prático deles em
 tabelas de usuário.


 2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com

 Olá a todos,

 Me desculpem a ignorancia, pois estou começando agora com PostGres.

 É que eu precisava saber as implicações de usar ou não o OID nas tabelas.

 Desde de já agradeço a atenção

 []s
 Marcelo

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 []s
 --
 JotaComm
 http://jotacomm.wordpress.com
 http://www.dextra.com.br/postgres

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Osvaldo Kussama
2009/6/5 Marcelo Cardoso de Souza marceloc...@gmail.com:

 No caso é que tenho uma aplicação que precisa saber o ultimo inser da
 conexao com o banco.

 A aplicação este em PHP.



Se for na mesma conexão considere o uso da cláusula RETURNING do camando INSERT.
http://www.postgresql.org/docs/current/interactive/sql-insert.html

De uma forma geral é provável que um campo timestamp com default
CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades.

Como já foi dito quando sua instalação consumir cerca de 4GB oids ele
retornará para o início, isto é, não se pode garantir que o último
insert realizado tenha o maior oid.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Nilson Chagas
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Se for na mesma conexão considere o uso da cláusula RETURNING do camando
 INSERT.
 http://www.postgresql.org/docs/current/interactive/sql-insert.html

 De uma forma geral é provável que um campo timestamp com default
 CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades.

 Como já foi dito quando sua instalação consumir cerca de 4GB oids ele
 retornará para o início, isto é, não se pode garantir que o último
 insert realizado tenha o maior oid.

 Osvaldo


Osvaldo,

Já falamos a respeito deste assunto.
E a sua ideia para o CURRENT_TIMESTAMP, realmente se torna bem mais
agradavel do que OID.

Mas no caso gostaria de abusar um pouco da vontade dos amigos.

Seria possivel utilizar o CURRENT_TIMESTAMP, como padrão do campo, mas
eliminando os pontos, traços e espaço.

Algo do tipo: arb_id limpacampo(CURRENT_TIMESTAMP) NOT NULL, --
Identificador do Registro

Ou teria que criar uma trigger??

-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Osvaldo Kussama
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com:
 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Se for na mesma conexão considere o uso da cláusula RETURNING do camando
 INSERT.
 http://www.postgresql.org/docs/current/interactive/sql-insert.html

 De uma forma geral é provável que um campo timestamp com default
 CURRENT_TIMESTAMP em sua(s) tabela(s) atenda suas necessidades.

 Como já foi dito quando sua instalação consumir cerca de 4GB oids ele
 retornará para o início, isto é, não se pode garantir que o último
 insert realizado tenha o maior oid.

 Osvaldo

 Osvaldo,

 Já falamos a respeito deste assunto.
 E a sua ideia para o CURRENT_TIMESTAMP, realmente se torna bem mais
 agradavel do que OID.

 Mas no caso gostaria de abusar um pouco da vontade dos amigos.

 Seria possivel utilizar o CURRENT_TIMESTAMP, como padrão do campo, mas
 eliminando os pontos, traços e espaço.

 Algo do tipo: arb_id limpacampo(CURRENT_TIMESTAMP) NOT NULL, --
 Identificador do Registro

 Ou teria que criar uma trigger??
 --



Não entendi sua questão.
O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja:
http://www.postgresql.org/docs/current/interactive/datatype-datetime.html

Ele ocupa 8 bytes e é uma data juliana.

Talvez você esteja confundindo a forma de armazenamento com a forma de
exibição. Pontos, traços e espaços só existem na forma de exibição,
não existem no dado armazenado em seu banco.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Nilson Chagas
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Não entendi sua questão.
 O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja:
 http://www.postgresql.org/docs/current/interactive/datatype-datetime.html

 Ele ocupa 8 bytes e é uma data juliana.

 Talvez você esteja confundindo a forma de armazenamento com a forma de
 exibição. Pontos, traços e espaços só existem na forma de exibição,
 não existem no dado armazenado em seu banco.

 Osvaldo
 ___


Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin
mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381

Eu gostaria que esta informação não tivesse os traços, ponto e espaço,
quando eu requisitasse o conteudo.


-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico JotaComm
Olá,

Para isso você pode usar a função to_char:

SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS');


2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com

 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Não entendi sua questão.
 O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja:
 http://www.postgresql.org/docs/current/interactive/datatype-datetime.html

 Ele ocupa 8 bytes e é uma data juliana.

 Talvez você esteja confundindo a forma de armazenamento com a forma de
 exibição. Pontos, traços e espaços só existem na forma de exibição,
 não existem no dado armazenado em seu banco.

 Osvaldo
 ___


 Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin
 mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381

 Eu gostaria que esta informação não tivesse os traços, ponto e espaço,
 quando eu requisitasse o conteudo.



 --
 []s
 Nilson Chagas - Ubuntu User 25794
 ---
 Visite:
 http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
 http://tempodesalvacao.blogspot.com/
 http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Nilson Chagas
2009/6/5 JotaComm jota.c...@gmail.com

 Olá,

 Para isso você pode usar a função to_char:

 SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS');


Eu não estou em casa agora para testar, mas como ficaria o restante dos
dados??
2009-06-05 12:43:58*.019381

*

-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico JotaComm
Olá,

Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final,
depois do SS.

Por exemplo:

SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS');

2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com

 2009/6/5 JotaComm jota.c...@gmail.com

 Olá,

 Para isso você pode usar a função to_char:

 SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISS');


 Eu não estou em casa agora para testar, mas como ficaria o restante dos
 dados??
 2009-06-05 12:43:58*.019381

 *

 --
 []s
 Nilson Chagas - Ubuntu User 25794
 ---
 Visite:
 http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
 http://tempodesalvacao.blogspot.com/
 http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Nilson Chagas
2009/6/5 JotaComm jota.c...@gmail.com

 Olá,

 Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no final,
 depois do SS.

 Por exemplo:

 SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS');


Legal, chegando em casa vou testar.

No caso posso criar um trigger no before insert e gravar
to_char(current_timestamp,'MMDDHHMISSUS')

Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois.


-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Osvaldo Kussama
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com:
 2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 Não entendi sua questão.
 O tipo de dado do CURRENT_TIMESTAMP é timestamp, veja:
 http://www.postgresql.org/docs/current/interactive/datatype-datetime.html

 Ele ocupa 8 bytes e é uma data juliana.

 Talvez você esteja confundindo a forma de armazenamento com a forma de
 exibição. Pontos, traços e espaços só existem na forma de exibição,
 não existem no dado armazenado em seu banco.

 Osvaldo
 ___

 Devo estar confundindo mesmo, mas quando dou um select ou mesmo no pgAdmin
 mando abrir o banco ele me retorna: 2009-06-05 12:43:58.019381

 Eu gostaria que esta informação não tivesse os traços, ponto e espaço,
 quando eu requisitasse o conteudo.



A forma de exibição padrão de campos date e timestamp é definida no
parâmetro de configuração DateStyle. Veja:
http://www.postgresql.org/docs/current/interactive/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-FORMAT

De acordo com o que você informou acima seu servidor está configurado para ISO.
Você pode modificar a forma padrão com que o PostgreSQL irá exibir
seus campos DATE e TIMESTAMP, bem como a forma como ele deve
interpretar uma string contendo uma data, modificando este parâmetro
(DateStyle). Veja as opções em 8.5.2. Date/Time Output:
http://www.postgresql.org/docs/current/interactive/datatype-datetime.html

Agora para manter total controle sobre a forma com que deseja exibir
seu campo date ou timestamp siga o conselho do Jota e utilize a função
to_char. Para controlar como interpretar corretamente um string
contendo uma data ou instante de tempo utilize a função to_date.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Osvaldo Kussama
2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com:
 2009/6/5 JotaComm jota.c...@gmail.com

 Olá,

 Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no
 final, depois do SS.

 Por exemplo:

 SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS');

 Legal, chegando em casa vou testar.

 No caso posso criar um trigger no before insert e gravar
 to_char(current_timestamp,'MMDDHHMISSUS')

 Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois.



NÃO!
O PostgreSQL não grava esta string em seu banco.
Ele grava um campo de 8 bytes contendo o número de microssegundos que
seu instante de tempo dista de meia-noite de 01 de janeiro de 2000 (se
for negativo é anterior, se positivo posterior).

Você exibe este dado ou da forma padrão - definida no parâmetro de
configuração DateStyle - ou da forma que quiser utilizando a função
to_char. Esta é apenas uma questão de exibição do dado armazenado isto
é, como converter aquele dado em uma string legível por humanos.

Por analogia imagine o conteúdo de um byte. Eu posso exibi-lo como um
número decimal, um número binário ou um número hexadecimal. O conteúdo
é o mesmo apenas a forma de exibição é diferente.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Duvidas OID

2009-06-05 Por tôpico Nilson Chagas
2009/6/5 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/6/5 Nilson Chagas nilson.chagas.si...@gmail.com:
  2009/6/5 JotaComm jota.c...@gmail.com
 
  Olá,
 
  Neste exemplo eu removi, mas se quiseres utiliza-lo basta como US no
  final, depois do SS.
 
  Por exemplo:
 
  SELECT current_timestamp,to_char(current_timestamp,'MMDDHHMISSUS');
 
  Legal, chegando em casa vou testar.
 
  No caso posso criar um trigger no before insert e gravar
  to_char(current_timestamp,'MMDDHHMISSUS')
 
  Pq se eu não já gravar sem a pontuação, vai ficar ruim manipular depois.
 


 NÃO!
 O PostgreSQL não grava esta string em seu banco.
 Ele grava um campo de 8 bytes contendo o número de microssegundos que
 seu instante de tempo dista de meia-noite de 01 de janeiro de 2000 (se
 for negativo é anterior, se positivo posterior).

 Você exibe este dado ou da forma padrão - definida no parâmetro de
 configuração DateStyle - ou da forma que quiser utilizando a função
 to_char. Esta é apenas uma questão de exibição do dado armazenado isto
 é, como converter aquele dado em uma string legível por humanos.

 Por analogia imagine o conteúdo de um byte. Eu posso exibi-lo como um
 número decimal, um número binário ou um número hexadecimal. O conteúdo
 é o mesmo apenas a forma de exibição é diferente.

 Osvaldo


rsrsrsrs

É a preguiça de ficar lembrando de usar o to_char. rsrsrs
Mas ainda é melhor do que ficar mudando a configuração de todo o banco, mais
garantido.

Já peguei a idéia, vou colocar em pratica.

Neste caso é só informar o current_timestamp como default do campo, sem
precisar gastar linhas com trigger.

-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast - Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ - Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral