Socorro, quase tudo parou de funcionar, heheh

Onde eu posto um ticket no track do cake?

Tive que fazer uma gambiarra no fonte do cake para que minha aplicação
continuasse a funcionar :(

Agora o problema é o seguinte, após inserir algo na base, o cake pega (ou
tenta pegar)  o id desse registro com a função lastInsertId().
Após a atualização para versão 6381 do branches, ele tá gerando o seguinte
sql para pegar o último id:

SELECT last_value AS max FROM "public"
(public é o nome do schema.)

sendo com o correto seria
SELECT last_value AS max FROM "[model]_id_seq"

Fiz a seguinte gambiarra no arquivo
"repo\branches\1.2.x.x\cake\libs\model\datasources\dbo\dbo_postgres.php"

    function getSequence($table, $field = 'id') {
        if (is_object($table)) {
            $table = $this->fullTableName($table, false);
        }
        //aqui começa a gambiarra. :(
        /*if (isset($this->_sequenceMap[$table]) &&
isset($this->_sequenceMap[$table][$field])) {
            return $this->_sequenceMap[$table][$field];
        } else {*/
        //aqui termina :)
            return "{$table}_{$field}_seq";
        //}
    }

Achei o seguinte ticket relacionado com esse trecho de código que eu
alterei.:
https://trac.cakephp.org/ticket/3886


2008/1/11 wc <[EMAIL PROTECTED]>:

> Agora sim está funcionando.
>
> Muito obrigado pela ajuda.
>
> 2008/1/11 Juan Basso <[EMAIL PROTECTED]>:
>
>
> > Boas novas, amigo.
> >
> > Saiu hoje a correção da função update e delete do postgres, mssql e
> > sqlite. :)
> >
> > Está no branch do SVN do Cake. A revisão é a 6361: Refactoring fixture
> > handling and Model tests, fixing UPDATE and DELETE queries for other
> > databases, fixes #3794.  Only forcing 'test_suite' prefix on default
> > database connection, fixes #3873
> >
> > Para ver o que significa os bugs: https://trac.cakephp.org
> >
> > Para baixar o código fonte: SVN
> > https://svn.cakephp.org/repo/branches/1.2.x.x/
> >
> >
> > Juan Basso
> >
> > On 10 jan, 22:32, Juan Basso <[EMAIL PROTECTED]> wrote:
> > > Aconselho você a dar uma analisadinha no código fonte também. O código
> > > do Cake é bem simples.
> > >
> > > Particularmente, eu prefiro ler o código fonte do que a documentação.
> > > Assim da para ver como funcionam os fornos da padaria. :)
> > >
> > > Juan Basso
> > >
> > > On 10 jan, 17:27, wc < [EMAIL PROTECTED]> wrote:
> > >
> > >
> > >
> > > > Sim, estou usando a versão 1.2.0.6311-beta.
> > >
> > > > Que legal, vo falar pra minha chefe que o sistema vai funcionar
> > assim que
> > > > terminarem de homologar o cake..... ai minha orelha.... heheh
> > >
> > > > Acho que agora é hora de por em pratica as aulas de inglês e entrar
> > no irc.
> > >
> > > > mas antes vo tentar dar um rollback pra versão anterior do cake 1.2para 
> > > > ver
> > > > se antes funcionava.
> > >
> > > > On Jan 10, 2008 1:58 PM, Juan Basso <[EMAIL PROTECTED]> wrote:
> > >
> > > > > Aparentemente você está fazendo de maneira correta. Isso deve ser
> > > > > algum bug do Cake. Você está usando a versão mais nova?
> > >
> > > > > E sinta-se feliz, se for um bug, logo arrumarão, pois hoje
> > começaram a
> > > > > "homologação" do cake para Postgres, ou seja, os arquivos de
> > testes
> > > > > estão sendo reconfigurados para usar com postgres para verificar
> > todos
> > > > > os comandos e tal.
> > >
> > > > > Porém, o unbind deveria funcionar, visto que é uma função do
> > Model.php
> > > > > e não do driver Postgres.
> > >
> > > > > Juan Basso
> > >
> > > > > On 10 jan, 09:46, wc <[EMAIL PROTECTED]> wrote:
> > > > > > Problema com update no postgresql.
> > >
> > > > > > Bom dia.
> > >
> > > > > > O cake está gerando o seguinte comando update para o método
> > edit() do
> > > > > > controller pessoas:
> > > > > > UPDATE "pessoas" AS "Pessoa"
> > > > > > LEFT JOIN "instituicoes" AS "Instituicao"
> > > > > > ON ("Pessoa"."instituicao_id" = "Instituicao"."id")
> > > > > > LEFT JOIN "cursos" AS "Curso"
> > > > > > ON ("Pessoa"."curso_id" = "Curso"."id")
> > > > > > LEFT JOIN "estados" AS "Estado"
> > > > > > ON ("Pessoa"."estado_id" = "Estado"."id")
> > > > > > LEFT JOIN "cidades" AS "Cidade"
> > > > > > ON ("Pessoa"."cidade_id" = "Cidade"."id")
> > > > > > (...)
> > > > > > Ao tentar executar esse sql, o postgres gera a seguinte mensagem
> > de
> > > > > erro:
> > > > > > ERROR: syntax error at or near "AS" at character 18
> > >
> > > > > > Como eu faço para que o cake crie o update sem o alias para
> > tabela e
> > > > > > sem esses joins?
> > >
> > > > > > Ele cria o sql acima mesmo eu tento colocado o seguinte código:
> > > > > > $this->Pessoa->recursive = -1;
> > > > > > $this->Pessoa->unbindModel (array('belongsTo'=>
> > > > > > array('Instituicao', 'Curso', 'Cidade', 'Estado')), false);
> > > > > > $campos = array('nome' ,'nomemeio' ,'sobrenome' ,'inscrito_puic'
> >
> > > > > > ,'rua' ,'numero' ,'complemento' , 'bairro' , 'estado_id'
> > ,'cidade_id'
> > > > > > ,'cep' , 'telefone' ,'nomecompleto' ,'instituicao_id');
> > > > > > if ($this->Pessoa->save($this->data, true, $campos)) {
> > >
> > > > > > Vendo a documentação do update
> > > > > > ( http://api.cakephp.org/1.2/dbo__source_8php-source.html#l01287
> > ),
> > > > > > encontrei as seguintes linhas:
> > > > > > 01317 $alias = $this->name($model->alias);
> > > > > > 01318 $joins = implode(' ', $this->_getJoins($model));
> > >
> > > > > > Por favor, não me digam que terei que fazer um update
> > manualmente,
> > > > > hehehe.
> > >
> > > > > > --
> > > > > > :wq
> > > > > > ***************************************************
> > > > > > * Wiliam Camilo de Andrade *
> > > > > > * wc.sama arroba gmail.com *
> > > > > > * Bacharelado em Informática - 04 *
> > > > > > * Universidade de São Paulo - ICMC - São Carlos *
> > > > > > ***************************************************
> > > > > >
> > ------------------------------------------------------------------------
> > > > > > "Por que o Mário foi ao psicólogo?
> > > > > > Porque ele tava passando por uma fase difícil!"
> > >
> > > > > > "São necessários 42 músculos para socar alguém e apenas 4 para
> > > > > > estender meu dedo médio e mandá-lo para aquele lugar."
> > >
> > > > > >http://grad.icmc.usp.br/~wc/google.jpg<http://grad.icmc.usp.br/%7Ewc/google.jpg>
> > <http://grad.icmc.usp.br/%7Ewc/google.jpg ><--
> > > > > "o que vamos fazer hoje a noite??"
> > >
> > > > > > Feira da fruta é a feira mais cara
> > > > > > A onde só da "pilão"
> > > > > > Tem a feira tamanho família
> > > > > > Tem até a feira do melão
> > > > > >
> > ------------------------------------------------------------------------
> > >
> > > > --
> > > > :wq
> > > > ***************************************************
> > > > * Wiliam Camilo de Andrade *
> > > > * wc.sama arroba gmail.com *
> > > > * Bacharelado em Informática - 04 *
> > > > * Universidade de São Paulo - ICMC - São Carlos *
> > > > ***************************************************
> > > >
> > ------------------------------------------------------------------------
> > > > "Por que o Mário foi ao psicólogo?
> > > > Porque ele tava passando por uma fase difícil!"
> > >
> > > > "São necessários 42 músculos para socar alguém e apenas 4 para
> > estender meu
> > > > dedo médio e mandá-lo para aquele lugar."
> > >
> > > > http://grad.icmc.usp.br/~wc/google.jpg<http://grad.icmc.usp.br/%7Ewc/google.jpg><--
> > "o que vamos fazer hoje a
> > > > noite??"
> > >
> > > > Feira da fruta é a feira mais cara
> > > > A onde só da "pilão"
> > > > Tem a feira tamanho família
> > > > Tem até a feira do melão
> > > >
> > -------------------------------------------------------------------------
> > Ocultar texto entre aspas -
> > >
> > > > - Mostrar texto entre aspas -- Ocultar texto entre aspas -
> > >
> > > - Mostrar texto entre aspas -
> > > >
> >
>
>
> --
>
> :wq
> ***************************************************
> *            Wiliam Camilo de Andrade             *
> *            wc.sama arroba gmail.com             *
> *         Bacharelado em Informática - 04         *
> *  Universidade de São Paulo - ICMC - São Carlos  *
> ***************************************************
> ------------------------------------------------------------------------
> "Por que o Mário foi ao psicólogo?
> Porque ele tava passando por uma fase difícil!"
>
> "São necessários 42 músculos para socar alguém e apenas 4 para estender
> meu dedo médio e mandá-lo para aquele lugar."
>
> http://grad.icmc.usp.br/~wc/google.jpg
> <http://grad.icmc.usp.br/%7Ewc/google.jpg> <-- "o que vamos fazer hoje a
> noite??"
>
> Feira da fruta é a feira mais cara
> A onde só da "pilão"
> Tem a feira tamanho família
> Tem até a feira do melão
> ------------------------------------------------------------------------
>



-- 
:wq
***************************************************
*            Wiliam Camilo de Andrade             *
*            wc.sama arroba gmail.com             *
*         Bacharelado em Informática - 04         *
*  Universidade de São Paulo - ICMC - São Carlos  *
***************************************************
------------------------------------------------------------------------
"Por que o Mário foi ao psicólogo?
Porque ele tava passando por uma fase difícil!"

"São necessários 42 músculos para socar alguém e apenas 4 para estender meu
dedo médio e mandá-lo para aquele lugar."

http://grad.icmc.usp.br/~wc/google.jpg<http://grad.icmc.usp.br/%7Ewc/google.jpg><--
"o que vamos fazer hoje a noite??"

Feira da fruta é a feira mais cara
A onde só da "pilão"
Tem a feira tamanho família
Tem até a feira do melão
------------------------------------------------------------------------

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a