Bug when looking for foreign keys - Mailing list pgsql-odbc

From Luiz Angelo Daros de Luca
Subject Bug when looking for foreign keys
Date
Msg-id 3F3AB67E.9040009@inf.ufsc.br
Whole thread Raw
List pgsql-odbc
Hello,

    I used Ms Visio to reverse engeneer my database and generate
documentation. The problem is that it returns an error when it tries to
get the foreign keys. By generating the log, I found the problem. The
last comma of the FROM statement is absent. My version is the last one
in homepage.

SELECT       pt.tgargs,              pt.tgnargs,
pt.tgdeferrable,            pt.tginitdeferred,
pp1.proname,            pp2.proname,       pc.oid,
pc1.oid,                pc1.relname,            pn.nspname FROM
pg_catalog.pg_class pc,             pg_catalog.pg_proc
pp1,                 pg_catalog.pg_proc pp2,
pg_catalog.pg_trigger pt1,          pg_catalog.pg_trigger
pt2,              pg_catalog.pg_proc pp,     pg_catalog.pg_trigger
pt,                pg_catalog.pg_class pc1,
pg_catalog.pg_namespace pn          pg_catalog.pg_namespace pn1
WHERE       pt.tgrelid = pc.oid AND pp.oid = pt.tgfoid AND
pt1.tgconstrrelid = pc.oid AND pp1.oid = pt1.tgfoid AND pt2.tgfoid =
pp2.oid AND pt2.tgconstrrelid = pc.oid AND
((pc.relname='CamposConfiguracao') AND (pn1.oid = pc.relnamespace) AND
(pn1.nspname = 'public') AND (pp.proname LIKE '%ins') AND (pp1.proname
LIKE '%upd') AND (pp2.proname LIKE '%del') AND
(pt1.tgrelid=pt.tgconstrrelid) AND (pt1.tgconstrname=pt.tgconstrname)
AND (pt2.tgrelid=pt.tgconstrrelid) AND
(pt2.tgconstrname=pt.tgconstrname) AND (pt.tgconstrrelid=pc1.oid) AND
(pc1.relnamespace=pn.oid))

Fixed become:


SELECT       pt.tgargs,              pt.tgnargs,
pt.tgdeferrable,            pt.tginitdeferred,
pp1.proname,            pp2.proname,       pc.oid,
pc1.oid,                pc1.relname,            pn.nspname FROM
pg_catalog.pg_class pc,             pg_catalog.pg_proc
pp1,                 pg_catalog.pg_proc pp2,
pg_catalog.pg_trigger pt1,          pg_catalog.pg_trigger
pt2,              pg_catalog.pg_proc pp,     pg_catalog.pg_trigger
pt,                pg_catalog.pg_class pc1,
pg_catalog.pg_namespace pn    ,      pg_catalog.pg_namespace pn1
WHERE       pt.tgrelid = pc.oid AND pp.oid = pt.tgfoid AND
pt1.tgconstrrelid = pc.oid AND pp1.oid = pt1.tgfoid AND pt2.tgfoid =
pp2.oid AND pt2.tgconstrrelid = pc.oid AND
((pc.relname='CamposConfiguracao') AND (pn1.oid = pc.relnamespace) AND
(pn1.nspname = 'public') AND (pp.proname LIKE '%ins') AND (pp1.proname
LIKE '%upd') AND (pp2.proname LIKE '%del') AND
(pt1.tgrelid=pt.tgconstrrelid) AND (pt1.tgconstrname=pt.tgconstrname)
AND (pt2.tgrelid=pt.tgconstrrelid) AND
(pt2.tgconstrname=pt.tgconstrname) AND (pt.tgconstrrelid=pc1.oid) AND
(pc1.relnamespace=pn.oid))



-- Luiz Angelo Daros de Luca Federal University of Santa Catarina
Florianopolis - SC - Brazil luizd@inf.ufsc.br ICQ : 19290419 I Know,
"Where you wanted to go today", but I decided to stop here instead! MS
Windows

PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_TemperaturaMediaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_UmidadeMinimaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_UmidadeMaximaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_UmidadeMediaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_CargaMinimaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_CargaMaximaDia',type=701,name='float8'
PGAPI_Columns: table='DadosAgoraSemanaNormalizados',field_name='SEMANA_CargaMediaDia',type=701,name='float8'
conn=838154376, query='select c.relname, i.indkey, i.indisunique, i.indisclustered, a.amname, c.relhasrules, n.nspname
frompg_catalog.pg_index i, pg_catalog.pg_class c, pg_catalog.pg_class d, pg_catalog.pg_am a, pg_catalog.pg_namespace n
whered.relname = 'DadosAgoraSemanaNormalizados' and n.nspname = 'public' and n.oid = d.relnamespace and d.oid =
i.indrelidand i.indexrelid = c.oid and c.relam = a.oid order by i.indisprimary desc, i.indisunique, n.nspname,
c.relname'
    [ fetched 0 rows ]
conn=838154376, query='select u.nspname, c.relname, a.attname, a.atttypid, t.typname, a.attnum, a.attlen, a.atttypmod,
a.attnotnull,c.relhasrules, c.relkind from pg_catalog.pg_namespace u, pg_catalog.pg_class c, pg_catalog.pg_attribute a,
pg_catalog.pg_typet where u.oid = c.relnamespace and (not a.attisdropped) and c.oid= a.attrelid and a.atttypid = t.oid
and(a.attnum > 0) and c.relname = 'Experimento' and u.nspname = 'public' order by u.nspname, c.relname, attnum' 
    [ fetched 7 rows ]
PGAPI_Columns: table='Experimento',field_name='id_Experimento',type=20,name='int8'
PGAPI_Columns: table='Experimento',field_name='id_Configuracao',type=20,name='int8'
PGAPI_Columns: table='Experimento',field_name='desligar',type=16,name='bool'
PGAPI_Columns: table='Experimento',field_name='atualizacaoCliente',type=26,name='oid'
PGAPI_Columns: table='Experimento',field_name='programaCliente',type=26,name='oid'
PGAPI_Columns: table='Experimento',field_name='versaoCliente',type=701,name='float8'
PGAPI_Columns: table='Experimento',field_name='prioridade',type=701,name='float8'
conn=838154376, query='select c.relname, i.indkey, i.indisunique, i.indisclustered, a.amname, c.relhasrules, n.nspname
frompg_catalog.pg_index i, pg_catalog.pg_class c, pg_catalog.pg_class d, pg_catalog.pg_am a, pg_catalog.pg_namespace n
whered.relname = 'Experimento' and n.nspname = 'public' and n.oid = d.relnamespace and d.oid = i.indrelid and
i.indexrelid= c.oid and c.relam = a.oid order by i.indisprimary desc, i.indisunique, n.nspname, c.relname' 
    [ fetched 1 rows ]
conn=838154376, query='select u.nspname, c.relname, a.attname, a.atttypid, t.typname, a.attnum, a.attlen, a.atttypmod,
a.attnotnull,c.relhasrules, c.relkind from pg_catalog.pg_namespace u, pg_catalog.pg_class c, pg_catalog.pg_attribute a,
pg_catalog.pg_typet where u.oid = c.relnamespace and (not a.attisdropped) and c.oid= a.attrelid and a.atttypid = t.oid
and(a.attnum > 0) and c.relname = 'Individuos_184' and u.nspname = 'public' order by u.nspname, c.relname, attnum' 
    [ fetched 5 rows ]
PGAPI_Columns: table='Individuos_184',field_name='fitness',type=701,name='float8'
PGAPI_Columns: table='Individuos_184',field_name='cliente',type=1043,name='varchar'
PGAPI_Columns: table='Individuos_184',field_name='iniciado_em',type=1114,name='timestamp'
PGAPI_Columns: table='Individuos_184',field_name='terminado_em',type=1114,name='timestamp'
PGAPI_Columns: table='Individuos_184',field_name='chave',type=25,name='text'
conn=838154376, query='select c.relname, i.indkey, i.indisunique, i.indisclustered, a.amname, c.relhasrules, n.nspname
frompg_catalog.pg_index i, pg_catalog.pg_class c, pg_catalog.pg_class d, pg_catalog.pg_am a, pg_catalog.pg_namespace n
whered.relname = 'Individuos_184' and n.nspname = 'public' and n.oid = d.relnamespace and d.oid = i.indrelid and
i.indexrelid= c.oid and c.relam = a.oid order by i.indisprimary desc, i.indisunique, n.nspname, c.relname' 
    [ fetched 1 rows ]
conn=838154376, query='SELECT    pt.tgargs,         pt.tgnargs,         pt.tgdeferrable,         pt.tginitdeferred,
   pp1.proname,         pp2.proname,         pc.oid,         pc1.oid,         pc1.relname,         pn.nspname FROM
pg_catalog.pg_classpc,         pg_catalog.pg_proc pp1,         pg_catalog.pg_proc pp2,         pg_catalog.pg_trigger
pt1,        pg_catalog.pg_trigger pt2,         pg_catalog.pg_proc pp,         pg_catalog.pg_trigger pt,
pg_catalog.pg_classpc1,         pg_catalog.pg_namespace pn         pg_catalog.pg_namespace pn1 WHERE    pt.tgrelid =
pc.oidAND pp.oid = pt.tgfoid AND pt1.tgconstrrelid = pc.oid AND pp1.oid = pt1.tgfoid AND pt2.tgfoid = pp2.oid AND
pt2.tgconstrrelid= pc.oid AND ((pc.relname='CamposConfiguracao') AND (pn1.oid = pc.relnamespace) AND (pn1.nspname =
'public')AND (pp.proname LIKE '%ins') AND (pp1.proname LIKE '%upd') AND (pp2.proname LIKE '%del') AND
(pt1.tgrelid=pt.tgconstrrelid)AND (pt1.tgconstrname=pt.tgconstrname) AND (pt2.tgrelid=pt.tgconstrrelid) AND
(pt2.tgconstrname=pt.tgconstrname)AND (pt.tgconstrrelid=pc1.oid) AND (pc1.relnamespace=pn.oid))' 
ERROR from backend during send_query: 'ERROR:  parser: parse error at or near "pg_catalog" at character 402'
STATEMENT ERROR: func=SC_execute, desc='', errnum=7, errmsg='Error while executing the query'
                 ------------------------------------------------------------
                 hdbc=838154376, stmt=838185648, result=838149000
                 manual_result=0, prepare=0, internal=0
                 bindings=0, bindings_allocated=0
                 parameters=0, parameters_allocated=0
                 statement_type=0, statement='SELECT    pt.tgargs,         pt.tgnargs,         pt.tgdeferrable,
pt.tginitdeferred,        pp1.proname,         pp2.proname,         pc.oid,         pc1.oid,         pc1.relname,
 pn.nspname FROM    pg_catalog.pg_class pc,         pg_catalog.pg_proc pp1,         pg_catalog.pg_proc pp2,
pg_catalog.pg_triggerpt1,         pg_catalog.pg_trigger pt2,         pg_catalog.pg_proc pp,
pg_catalog.pg_triggerpt,         pg_catalog.pg_class pc1,         pg_catalog.pg_namespace pn
pg_catalog.pg_namespacepn1 WHERE    pt.tgrelid = pc.oid AND pp.oid = pt.tgfoid AND pt1.tgconstrrelid = pc.oid AND
pp1.oid= pt1.tgfoid AND pt2.tgfoid = pp2.oid AND pt2.tgconstrrelid = pc.oid AND ((pc.relname='CamposConfiguracao') AND
(pn1.oid= pc.relnamespace) AND (pn1.nspname = 'public') AND (pp.proname LIKE '%ins') AND (pp1.proname LIKE '%upd') AND
(pp2.pronameLIKE '%del') AND (pt1.tgrelid=pt.tgconstrrelid) AND (pt1.tgconstrname=pt.tgconstrname) AND
(pt2.tgrelid=pt.tgconstrrelid)AND (pt2.tgconstrname=pt.tgconstrname) AND (pt.tgconstrrelid=pc1.oid) AND
(pc1.relnamespace=pn.oid))'
                 stmt_with_params='SELECT    pt.tgargs,         pt.tgnargs,         pt.tgdeferrable,
pt.tginitdeferred,        pp1.proname,         pp2.proname,         pc.oid,         pc1.oid,         pc1.relname,
 pn.nspname FROM    pg_catalog.pg_class pc,         pg_catalog.pg_proc pp1,         pg_catalog.pg_proc pp2,
pg_catalog.pg_triggerpt1,         pg_catalog.pg_trigger pt2,         pg_catalog.pg_proc pp,
pg_catalog.pg_triggerpt,         pg_catalog.pg_class pc1,         pg_catalog.pg_namespace pn
pg_catalog.pg_namespacepn1 WHERE    pt.tgrelid = pc.oid AND pp.oid = pt.tgfoid AND pt1.tgconstrrelid = pc.oid AND
pp1.oid= pt1.tgfoid AND pt2.tgfoid = pp2.oid AND pt2.tgconstrrelid = pc.oid AND ((pc.relname='CamposConfiguracao') AND
(pn1.oid= pc.relnamespace) AND (pn1.nspname = 'public') AND (pp.proname LIKE '%ins') AND (pp1.proname LIKE '%upd') AND
(pp2.pronameLIKE '%del') AND (pt1.tgrelid=pt.tgconstrrelid) AND (pt1.tgconstrname=pt.tgconstrname) AND
(pt2.tgrelid=pt.tgconstrrelid)AND (pt2.tgconstrname=pt.tgconstrname) AND (pt.tgconstrrelid=pc1.oid) AND
(pc1.relnamespace=pn.oid))'
                 data_at_exec=-1, current_exec_param=-1, put_data=0
                 currTuple=-1, current_col=-1, lobj_fd=-1
                 maxRows=0, rowset_size=1, keyset_size=0, cursor_type=0, scroll_concurrency=1
                 cursor_name='SQL_CUR31F5B2B0'
                 ----------------QResult Info -------------------------------
                 fields=859429696, manual_tuples=0, backend_tuples=0, tupleField=0, conn=0
                 fetch_count=0, num_total_rows=0, num_fields=0, cursor='(NULL)'
                 message='ERROR:  parser: parse error at or near "pg_catalog" at character 402', command='(NULL)',
notice='(NULL)'
                 status=7, inTuples=0
CONN ERROR: func=SC_execute, desc='', errnum=110, errmsg='ERROR:  parser: parse error at or near "pg_catalog" at
character402' 
            ------------------------------------------------------------
            henv=838147864, conn=838154376, status=1, num_stmts=16
            sock=838147920, stmts=838147992, lobj_type=-999
            ---------------- Socket Info -------------------------------
            socket=1012, reverse=0, errornumber=0, errormsg='(NULL)'
            buffer_in=838165360, buffer_out=838169464
            buffer_filled_in=1, buffer_filled_out=0, buffer_read_in=1
STATEMENT ERROR: func=PGAPI_ForeignKeys, desc='', errnum=7, errmsg='ERROR:  parser: parse error at or near "pg_catalog"
atcharacter 402' 
                 ------------------------------------------------------------
                 hdbc=838154376, stmt=838185272, result=838188656
                 manual_result=1, prepare=0, internal=0
                 bindings=838173592, bindings_allocated=15
                 parameters=0, parameters_allocated=0
                 statement_type=-2, statement='(NULL)'
                 stmt_with_params='(NULL)'
                 data_at_exec=-1, current_exec_param=-1, put_data=0
                 currTuple=-1, current_col=-1, lobj_fd=-1
                 maxRows=0, rowset_size=1, keyset_size=0, cursor_type=0, scroll_concurrency=1
                 cursor_name=''
                 ----------------QResult Info -------------------------------
                 fields=859396536, manual_tuples=859395952, backend_tuples=0, tupleField=0, conn=0
                 fetch_count=0, num_total_rows=0, num_fields=0, cursor='(NULL)'
                 message='(NULL)', command='(NULL)', notice='(NULL)'
                 status=0, inTuples=0
CONN ERROR: func=PGAPI_ForeignKeys, desc='', errnum=110, errmsg='ERROR:  parser: parse error at or near "pg_catalog" at
character402' 
            ------------------------------------------------------------
            henv=838147864, conn=838154376, status=1, num_stmts=16
            sock=838147920, stmts=838147992, lobj_type=-999
            ---------------- Socket Info -------------------------------
            socket=1012, reverse=0, errornumber=0, errormsg='(NULL)'
            buffer_in=838165360, buffer_out=838169464
            buffer_filled_in=1, buffer_filled_out=0, buffer_read_in=1
conn=838154376, query='SELECT    pt.tgargs,         pt.tgnargs,         pt.tgdeferrable,         pt.tginitdeferred,
   pp1.proname,         pp2.proname,         pc.oid,         pc1.oid,         pc1.relname,         pn.nspname FROM
pg_catalog.pg_classpc,         pg_catalog.pg_proc pp1,         pg_catalog.pg_proc pp2,         pg_catalog.pg_trigger
pt1,        pg_catalog.pg_trigger pt2,         pg_catalog.pg_proc pp,         pg_catalog.pg_trigger pt,
pg_catalog.pg_classpc1,         pg_catalog.pg_namespace pn         pg_catalog.pg_namespace pn1 WHERE    pt.tgrelid =
pc.oidAND pp.oid = pt.tgfoid AND pt1.tgconstrrelid = pc.oid AND pp1.oid = pt1.tgfoid AND pt2.tgfoid = pp2.oid AND
pt2.tgconstrrelid= pc.oid AND ((pc.relname='CamposDoBancoDeDados') AND (pn1.oid = pc.relnamespace) AND (pn1.nspname =
'public')AND (pp.proname LIKE '%ins') AND (pp1.proname LIKE '%upd') AND (pp2.proname LIKE '%del') AND
(pt1.tgrelid=pt.tgconstrrelid)AND (pt1.tgconstrname=pt.tgconstrname) AND (pt2.tgrelid=pt.tgconstrrelid) AND
(pt2.tgconstrname=pt.tgconstrname)AND (pt.tgconstrrelid=pc1.oid) AND (pc1.relnamespace=pn.oid))' 
ERROR from backend during send_query: 'ERROR:  parser: parse error at or near "pg_catalog" at character 402'
STATEMENT ERROR: func=SC_execute, desc='', errnum=7, errmsg='Error while executing the query'

Attachment

pgsql-odbc by date:

Previous
From: Andre Felipe Machado
Date:
Subject: app does not search for public schema qualifier
Next
From: "Steve Johnson"
Date:
Subject: FW: ERROR: Bad numeric input format '.' on insert or update of numeric column with a zero value