Thank you sir,
 
i have sorted out the problem on 
" The columns that are not quoted are guaranteed not to contain a comma. "
 
But i have another query, the structure of PG Log CSV as mentioned in manual 
and as below has 24 columns
http://www.postgresql.org/docs/9.1/static/runtime-config-logging.html
-------------------------------------------


log_time timestamp,
  user_name text,
  database_name text,
  process_id integer,
  connection_from text,
  session_id text,
  session_line_num bigint,
  command_tag text,
  session_start_time timestamp,
  virtual_transaction_id text,
  transaction_id bigint,
  error_severity text,
  sql_state_code text,
  message text,
  detail text,
  hint text,
  internal_query text,
  internal_query_pos integer,
  context text,
  query text,
  query_pos integer,
  location text,
  application_name text,
  PRIMARY KEY (session_id, session_line_num)
-------------------------------------------
 
However every Log line added contains only 22 columns, a sample log line is 
given below
-------------------------------------------

2012-03-22 15:29:53.546 
IST,"postgres","stock_apals",2396,"localhost:2766",4f6af819.95c,9,"SELECT",2012-03-22
 15:29:53 IST,3/0,0,LOG,00000,"QUERY STATISTICS","! system usage stats:
! 0.015000 elapsed 0.000000 user 0.015625 system sec
! [0.078125 user 0.062500 sys total]",,,,,"SELECT SUBSTR(itemname, 1, 15) as 
Product,
avg(rate) as Avgrate
FROM   issue_stock WHERE extract(year from issue_stock.edate) = '2011'
GROUP BY itemname
order by itemname",,"ShowUsage, .\src\backend\tcop\postgres.c:4305",""
-------------------------------------------
 
> the last column of the Log is not the Primarykey ?
> the last column as of yet is unknown because at all occurances it is a empty 
> quoted column ?
> the column numbers dont match with the generated log
 
Is this is a different Log format , can you guide us to a page where the column 
specifications can be matched.
 
Yrs truly
arvind pal singh
 

> Subject: RE: [GENERAL] Help in Parsing PG log usings CSV format
> Date: Thu, 22 Mar 2012 16:47:11 +0100
> From: laurenz.a...@wien.gv.at
> To: arvin...@hotmail.com; pgsql-general@postgresql.org
> 
> Arvind Singh wrote:
> > Help needed in parsing PostgreSQL CSV Log
> 
> [...]
> 
> > **However the main problem that is, the Log format is not readable**
> 
> > A Sample Log data line
> > > 2012-03-21 11:59:20.640
> >
> IST,"postgres","stock_apals",3276,"localhost:1639",4f697540.ccc,10,"idle
> ",2012-03-21 11:59:20
> > IST,2/163,0,LOG,00000,"statement: SELECT
> version()",,,,,,,,"exec_simple_query,
> > .\src\backend\tcop\postgres.c:900",""
> > 
> > As you can see the columns in the Log are comma separated , But
> however individual values are not
> > Quote Enclosed.
> > 
> > For instance the 1st,4rth,6th .. columns
> > 
> > **Is there a setting in PostgreSQL configuration to place quotes
> around all columns in a Logfili
> > 
> > I just want to update the columns so that all are within Quotes
> > 
> > what happens wrong is when it reaches the column where sql statement
> is place. it also has commas set
> > for table columns. The log line is a mix bunch of quote-enclosed and
> non-quote-enclosed column. is
> > there is a configuration or utility to convert the non-quoted column
> to quoted column
> 
> The columns that are not quoted are guaranteed not to contain a comma.
> So it shouldn't be a problem to parse them.
> 
> In fact, it is quite easy. As an example, see here:
> http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgreplay/pgreplay/parse.c?re
> v=1.14&content-type=text/x-cvsweb-markup
> In the function parse_csvlog_entry, after the comment
> "read next line after start timestamp from log file"
> you can find code that parses such a line.
> 
> The code is in C, so it should be easy to port it to C#, which
> is essentially Java, which has C-like syntax.
> 
> Yours,
> Laurenz Albe
                                          

Reply via email to