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

Book Review : How To Create Pragmatic, Lightweight Languages

At last, a guide that makes creating a language with its associated baggage of lexers, parsers and compilers, accessible to mere mortals, rather to a group of a few hardcore eclectics as it stood until now.

The first thing that catches the eye, is the subtitle:

The unix philosophy applied to language design, for GPLs and DSLs"
What is meant by "unix philosophy" ?. It's taking simple, high quality components and combining them together in smart ways to obtain a complex result; the exact approach the book adopts.
I'm getting ahead here, but a first sample of this philosophy becomes apparent at the beginnings of Chapter 5 where the Parser treats and calls the Lexer like  unix's pipes as in lexer|parser. Until the end of the book, this pipeline is going to become larger, like a chain, due to the amount of components that end up interacting together.

The book opens by putting things into perspective in Chapter 1: Motivation: why do you want to build lan…

Headless Chrome and the Puppeteer Library for Scraping and Testing the Web

With the advent of Single Page Applications, scraping pages for information as well as running automated user interaction tests has become much harder due to its highly dynamic nature. The solution? Headless Chrome and the Puppeteer library. While there's always been Selenium, PhantomJS and others, and despite headless Chrome and Puppeteer arriving late to the party, they make for valuable additions to the team of web testing automation tools, which allow developers to simulate interaction of real users with a web site or application. Headless Chrome is able to run without Puppeteer, as it can be programmatically controlled through the Chrome DevTools Protocol, typically invoked by attaching to a remotely running Chrome instance: chrome --headless --disable-gpu
                     --remote-debugging-port=9222 Subsequently loading the protocol's sideckick module 'chrome-remote-interface' which provides  a simple abstraction of commands and notifications using a straight…

EU Blockchain Observatory and Forum Blockchain AMA

The EU Blockchain Observatory is a recent initiative, launched in February 2018, which is backed by the European Commission with the primary aim of educating the EU's public on Blockchain technology.This very interesting AMA really served that purpose by answering  the public's challenging questions, which were mainly tweeted under the #AMABlockchain hashtag. Educating the public aside, the forum's two other objectives are to accelerate the application of this technology at a pan-European level and to push for cooperation between member states to materialize uses cases and scenarios backed by Blockchain. The AMA started smoothly tackling lightweight questions, such as "what is the Blockchain technology?" or "where is a Bitcoin stored?", (answer: "on every computer in the Blockchain network"), continuing with what a blockchain Node is and what does a Miner do. Other questions revolved around which Consensus algorithms does a blockchain network…