39.6. Módulos e classes do PL/Ruby

Nesta seção são documentados os módulos e as classes do PL/Ruby.

39.6.1. Global

warn [nível,] mensagem

Interface do Ruby com a função elog() do PostgreSQL.

Os valores possíveis para nível são NOTICE, DEBUG e NOIND.

Deve ser utilizado raise() para simular a função elog(ERROR, "...").

$Plans (hash, tainted)

Pode ser utilizado para armazenar planos preparados.

39.6.2. Módulo PL

Módulo geral do PL/Ruby.

args_type

Retorna os tipos dos argumentos fornecidos para a função.

column_name(tabela)

Retorna os nomes das colunas da tabela.

column_type(tabela)

Retorna os tipos das colunas da tabela.

context

Retorna o contexto (ou nil) associado a uma função SETOF (ExprMultiResult).

context=

Define o contexto de uma função SETOF (ExprMultiResult).

quote(cadeia_de_caracteres

Duplica todas as ocorrências dos caracteres apóstrofo e contrabarra. Deve ser utilizado quando as variáveis são usadas na cadeia de caracteres do comando fornecido para spi_exec ou spi_prepare (não para a lista de valores de execp).

result_name

Retorna os nomes das colunas de uma função que retorna SETOF.

result_type

Retorna os tipos das colunas de uma função que retorna SETOF.

result_size

Retorna o número de colunas de uma função que retorna SETOF.

result_description

Retorna a descrição da tabela fornecida para uma função que retorna SETOF.

exec(cadeia_de_caracteres [, contador [, tipo]])
spi_exec(cadeia_de_caracteres [, contador [, tipo]])

Chama o analisador/planejador/otimizador/executor para o comando. O valor opcional contador informa a spi_exec o número máximo de linhas a serem processadas pelo comando.

SELECT

Se o comando for uma instrução SELECT, retorna uma matriz (se contador não for especificado, ou se for especificado com um valor maior que um). Cada elemento desta matriz é um hash onde a chave é o nome da coluna. Se tipo for especificado, pode assumir um dos seguintes valores:

  • "array" retorna para cada coluna uma matriz com o elemento ["name", "value", "type", "len", "typeid"].

  • "hash" retorna para cada coluna um hash com as chaves ["name", "value", "type", "len", "typeid"].

  • "value" retorna todos os valores

SELECT INTO, INSERT, UPDATE e DELETE

Retorna o número de linhas inseridas, atualizadas ou excluídas.

UTILITY

Retorna TRUE.

prepare(string[, types])
spi_prepare(string[, types])
prepare(string, "types" => types, "count" => count, "output" => type, "tmp" => true)

Em obsolescência: Veja PL::Plan::new e PL::Plan#save.

Prepara e salva o plano do comando para execução posterior. É um pouco diferente do SPI_prepare em C, porque o plano é copiado automaticamente para o contexto de memória de nível mais alto.

Se o comando fizer referências a argumentos, os nomes dos tipos devem ser fornecidos como uma matriz de cadeias de caracteres do Ruby. O valor retornado pela preparação é um objeto PL::Plan a ser utilizado nas próximas chamadas a PL::Plan#exec.

Se o hash fornecido possuir as chaves count, output, estes valores serão fornecidos para as chamada subseqüentes de each.

39.6.3. Classe PL::Plan

Classe para os planos preparados.

initialize(cadeia_de_caracteres, "types" => tipos, "count" => contador, "output" => tipo, "save" => false)

Prepara um plano de comando para execução posterior.

Se o comando fizer referências a argumentos, os nomes dos tipos devem ser fornecidos como uma matriz de cadeias de caracteres do Ruby.

Se o hash fornecido possuir as chaves count e output, estes valores serão fornecidos para as chamada subseqüentes de each.

Se "save" for um valor verdade, o plano será salvo.

exec(valores, [contador [, tipo]])
execp(valores, [contador [, tipo]])
exec("values" => valores, "count" => contador, "output" => tipo)
execp("values" => valores, "count" => contador, "output" => tipo)

Executa o plano preparado por PL::PLan::new com substituição de variável. O valor opcional contador informa a PL::Plan#exec o número máximo de linhas a serem processadas pelo comando.

Se houver uma lista de tipos fornecida a PL::PLan::new, uma matriz de valores do mesmo comprimento deve ser fornecida a PL::Plan#exec. como seu primeiro argumento. Se a lista de tipos em PL::PLan::new estiver vazia, este argumento deve ser omitido.

Se o comando for uma instrução SELECT, acontece a mesma coisa descrita para PL#exec para o corpo do laço e para as variáveis para os campos selecionados.

Se tipo for especificado, pode assumir um dos seguintes valores:

  • "array" retorna para cada coluna uma matriz com o elemento ["name", "value", "type", "len", "typeid"].

  • "hash" retorna para cada coluna um hash com as chaves ["name", "value", "type", "len", "typeid"].

  • "value" retorna todos os valores

cursor(name = nil, "values" => valores, "output" => tipo)

Se output for especificado, pode assumir um dos seguintes valores:

  • "array" retorna uma matriz com o elemento ["name", "value", "type", "len", "typeid"].

  • "hash" retorna um hash com as chaves ["name", "value", "type", "len", "typeid"].

  • "value" retorna uma matriz com todos os valores.

each(valores, [contador [, tipo ]]) { ... }
fetch(valores, [contador [, tipo ]]) { ... }
each("values" => valores, "count" => contador, "output" => tipo) { ... }
fetch("values" => valores, "count" => contador, "output" => tipo) { ... }

O mesmo que #exec, mas é feita uma chamada para SPI_cursor_open() e SPI_cursor_fetch().

Pode ser utilizado somente com um bloco e uma instrução SELECT.

release

Libera um plano de comando.

save

Salva um plano de comando para execução posterior. O plano é copiado para o contexto de memória de nível mais alto.

39.6.4. Classe PL::Cursor

O cursor é criado através do método PL::Plan#cursor

close

Fecha o cursor.

each {|row| ... }

Interação sobre todas as linhas (para a frente).

fetch(count = 1)
row(count = 1)

Traz algumas linhas usando o cursor.

Se count for maior que zero traz andando para a frente, caso contrário tráz andando para trás.

move(count)

Move o cursor. Se count for maior que zero move para a frente, caso contrário move trás.

reverse_each {|row| ... }

Interação sobre todas as linhas (para trás).

rewind

Posiciona o cursor no início da tabela.

SourceForge.net Logo CSS válido!