Skip to main content

Ingres client side debugging tools (printqry,printtrace)

Very useful debugging tools in the form of environmental variables that can make the developer's life much easier.
They can be set inside the user's profile for persistence or in a shell prompt for temporary operation.
The former is more useful to the developer since he can watch the code running behind his forms and the latter for help-desk operation (when a user calls and complains that something went wrong and you can replicate his actions remotely, activate the directives so you can check in what part of the code the problem arose)

II_EMBED_SET='printqry'; export II_EMBED_SET
produces a file called 'iiprtqry.log' which contains info such as :
Query text:
define query (yl0201p)  
is select end_p as end_p, end_par as end
_par, end_or as end_or, end_ak as end_ak,
end_ekt as end_ekt,
d_ekd as d_ekd, c_pr as c_pr
from hyl 
where c_en= $0='Î¥04'
and last_year= $1=?  and last_aa= $2=10
Query Send Time:       Fri Oct 10 13:12:05 2008
Query Response Time:   Fri Oct 10 13:12:05 2008
Response CPU Time:     130
Qry End CPU Time:      130
II_EMBED_SET='printtrace 1';export II_EMBED_SET
ING_SET='set printqry';export ING_SET
produces a file called 'iiprttrc.log' which contains info such as :
QUERY PARAMETERS:
-------------------------------------------------------------------
QUERY BUFFER:
define query  ~Q  is select end_p as end_p,
end_par as end_par, end_or as end_or,
end_ak as end_ak, end_ekt as end_ekt,
d_ekd as d_ekd, c_pr as c_pr 
from hyl
where c_en= $0= ~V  
and last_year= $1= ~V  
and last_aa= $2= ~V

QUERY PARAMETERS:
Parameter : 0
13192
Parameter : 1
15546
Parameter : 2
'yl0201p                                                      '
Parameter : 3
'Î¥04'
Parameter : 4
dn_status = 1d  dn_highday = 0  dn_time = 0

dn_year = 2008  dn_month = 1    dn_lowday = 1
Parameter : 5
10
-------------------------------------------------------------------
-------------------------------------------------------------------
Execute <1088 .="" yl0201p=""> Statement
'Î¥04'
'Î¥04'
dn_status = 1d  dn_highday = 0  dn_time = 0
dn_year = 2008  dn_month = 1    dn_lowday = 1
dn_status = 1d  dn_highday = 0  dn_time = 0
dn_year = 2008  dn_month = 1    dn_lowday = 1
10
10
-------------------------------------------------------------------
QUERY BUFFER:
commit


'printqry' cannot display date, as seen by last_year which is not interpolated there.
But 'printtrace' can, as seen in the
Parameter : 4 section

My personal experience using them is that they save loads of time debugging both in developing and help-desk support

Comments

Popular posts from this blog

The Advent of SQL 2024 Has Commenced

  It's Advent - the time of year when we countdown the days to Christmas - and if your are a programmer complete daily coding challenges with the Advent of Code, the Advent of Perl, the Advent of Java, Javascriptmas, etc. Now we have the Advent of SQL too with 24 SQL challenges to complete before Christmas! https://www.i-programmer.info/news/204-challenges/17678-the-advent-of-sql-2024-has-commenced.html

Greenplum's Cloudberry Fork Enters Apache Incubator

  Cloudberry is the open source equivalent of Greenplum. Now it is fostered by the Apache Foundation as it acquires incubating status. It all began about six months ago. Greenplum's Github repositories was archived and went dark. This meant no more free new releases or security and bug fixes for its users. Why? Because in May 2024, Tanzu made the decision to close-source the project. https://www.i-programmer.info/news/84-database/17694-greenplums-cloudberry-fork-enters-apache-incubator-.html