LIMIT ALL == LIMIT NULL

31/05/2007

Link: http://people.planetpostgresql.org/gevik/index.php?/archives/51-LIMIT-ALL-LIMIT-NULL.html

Essa dica foi publicada há um tempo atrás no Planet PostgreSQL.

Digamos que você tenha uma função PL/PgSQL que use LIMIT e OFFSET, com parâmetros inteiros. O LIMIT ALL é o equivalente a sem LIMIT. Mas como passar esse parâmetro se a função requer um inteiro? Simples: passe NULL.


Email por Walter Cruz em Bancos de Dados, PostgreSQL
Tags: bancos de dados, postgresql, sql

Encontrando furos em sequências no PostgreSQL

11/05/2007

Dica rápida: você precisa encontrar, num tabela com o tipo serial, quais os que estão faltando na sequência (o que poderia indicar alguma transação que sofreu rollback ou alguma tupla que foi deletada). No PostgreSQL, cabe tudo numa query só:


SELECT * FROM generate_series(1,(SELECT max(id_campo_serial) FROM tabela)) AS i WHERE i NOT IN
        (SELECT id_campo_serial FROM tabela)
 

Outra forma possível, agora chamando a sequência pelo nome:


SELECT id
FROM generate_series(1, (SELECT last_value FROM id_seq)) AS s(id)
EXCEPT
SELECT id_campo_serial FROM tabela
 

É isso!


Email por Walter Cruz em PostgreSQL
Tags: postgresql, sequencias, sql

SQL Magazine 41 - Comprem

25/04/2007
Capa da SQL Magazine 41

Um momento jabá: Saiu a SQL Magazine nº 41, com um artigo sobre PostgreSQL escrito a quatro mãos com o Fike! O artigo trata do PostgreSQL 8.2 (e já estamos praticamente às portas do 8.3!) e está muuuuuuuuito legal.

Comprem!

Por falar em 41, vou colocar aqui um vídeo do Carter Beauford, da Dave Matthews Band tocando a música #41 numa vídeo aula. O cara é um ótimo baterista, e essa música é muito bonita.

Não se esqueçam desse número: 41!


Email por Walter Cruz em PostgreSQL
Tags: revista, sql

De olho no PostgreSQL 8.3

09/04/2007

O PostgreSQL 8.2 saiu em dezembro, e os desenvolvedores do PostgreSQL já trabalham duro para lançar a versão 8.3.

Algumas novidades discutidas na lista pgsql-hackers:

Linguagem SQL/PSM

http://postgresql.interweb.cz/index.php/SQL/PSM

Segundo o wiki do desenvolvedor, Pavel Stehule, a linguagem SQL/PSM é uma "linguagem mística, sem nenhuma informação, cujo paraíso é a Suécia". Falando mais a sério, ele é uma linguagem pra desenvolvimento de Stored Procedures e Triggers, suportada no DB2 e no MySQL a partir da versão 5.0. Para a versão 8.3, ela estará disponível no PostgreSQL, provavelmente como uma extensão do contrib.

Identity

A forma padrão do SQL de gerar colunas de auto-incremento é usando o IDENTITY. Segundo uma comparação de bancos de dados com o padrão SQL em http://troels.arvin.dk/db/rdbms/#mix-identity, apenas o DB2 segue o padrão, embora com algumas restrições. Os patches são de Zoltan Boszormenyi.

Índices Bitmap

Outra novidade que era pra estar pronta no 8.2, mas acabou atrasando: indíces bitmap. São índices especiais, usados para colunas de baixa cardinalidade, onde índices BTREE não são muito úteis. Até a versão atual, o PostgreSQL pode combinar um ou mais indíces e transformá-los em bitmap em memória, antes da execução da consulta. Para o 8.3, é esperado que seja possível criar o indíce bitmap diretamente no disco. Para mais informações sobre índices bitmap, veja http://files.meetup.com/230033/BitmapIndexPerformance-Bizgres-0.9.pdf

Tsearch no core.

Até agora, índices fulltext no postgres estão disponíveis via contrib (até esse nome foi discutido recentemente). Para o 8.3, uma grande discussão é sobre a inclusão de índices fulltext no core. Aparentemente, está tudo certo pra isso!

Notícia rápida: PL/Python compatível com Python 2.5 ;)

Ficam de fora :(

UPSERT (http://archives.postgresql.org/pgsql-hackers/2007-03/msg00114.php). Aquela característica legal do MySQL (REPLACE INTO ou o ON DUPLICATE KEY UPDATE). Houve até alguma discussão, mas nenhum consenso.

Views atualizáveis (postergadas para o 8.4)

Existem ainda muito mais sendo discutido. É esperar para ver!


Email por Walter Cruz em PostgreSQL
Tags: bancos de dados, postgresql, sql

1 2 >>