<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>:: HawkEYE Expression :: &#187; Database</title>
	<atom:link href="http://blog.namran.net/category/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.namran.net</link>
	<description>R35p3c7 7h3 !n7311!93n7,h31p wh0 c4n’7 4ff02d….        [blog.namran.net]</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:36:03 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Error processing: DBD::Pg::st execute failed: ERROR:  numeric field overflow</title>
		<link>http://blog.namran.net/2009/07/07/error-processing-dbdpgst-execute-failed-error-numeric-field-overflow/</link>
		<comments>http://blog.namran.net/2009/07/07/error-processing-dbdpgst-execute-failed-error-numeric-field-overflow/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:36:03 +0000</pubDate>
		<dc:creator>namran</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://blog.namran.net/?p=2200</guid>
		<description><![CDATA[Bumped into this message :

Jul  7 00:13:54 server1 /usr/local/play/bin/getintodb.pl[12345]: 1067-345246.xml: 
Error processing: DBD::Pg::st execute failed: 
ERROR:  numeric field overflow
DETAIL:  The absolute value is greater than or equal to 10^2 for field with precision 3, scale 1.

Hehehe&#8230; this is from posgresql database..

let&#8217;s examine the SQL statement before that error :

Jul  7 00:13:54 [...]

<div class="post-fixed">
Related posts:<ol><li><a href='http://blog.namran.net/2009/03/10/php-fatal-error-class-domdocument-not-found-in-blabla/' rel='bookmark' title='Permanent Link: PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in bla..bla..'>PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in bla..bla..</a></li><li><a href='http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/' rel='bookmark' title='Permanent Link: Postgresql Function. Procedural script'>Postgresql Function. Procedural script</a></li><li><a href='http://blog.namran.net/2008/09/23/buffer-overflow/' rel='bookmark' title='Permanent Link: buffer overflow&#8230;'>buffer overflow&#8230;</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Bumped into this message :</p>

<div class="wp_syntax"><div class="code"><pre class="postgresql" style="font-family:monospace;">Jul  7 00:13:54 server1 /usr/local/play/bin/getintodb.pl[12345]: 1067-345246.xml: 
Error processing: DBD::Pg::st execute failed: 
ERROR:  numeric field overflow
DETAIL:  The absolute value is greater than or equal to 10^2 for field with precision 3, scale 1.</pre></div></div>

<p>Hehehe&#8230; this is from posgresql database..<br />
<span id="more-2200"></span><br />
let&#8217;s examine the SQL statement before that error :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Jul  <span style="color: #000000;">7</span> 00:<span style="color: #000000;">13</span>:<span style="color: #000000;">54</span> server1 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>getintodb.pl<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">12345</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: 
Calculated max_relative_humidity <span style="color: #c20cb9; font-weight: bold;">as</span> <span style="color: #000000;">100.0</span> 
Fatal SQL Error <span style="color: #000000; font-weight: bold;">for</span> SQL: INSERT INTO forecast_daily_lt
 <span style="color: #7a0874; font-weight: bold;">&#40;</span>data_timestamp,station_id,gust_direction,gust_speed,
gust_timestamp,hail_duration,max_air_temperature,
max_qfe,max_qff,max_qnh,max_rainfall_15m,max_rainfall_30m,
max_relative_humidity,mean_air_temperature,mean_relative_humidity,
mean_wind_dir,mean_wind_speed,min_air_temperature,
min_qfe,min_qff,min_qnh,min_relative_humidity,rainfall_duration,
total_hail,total_rainfall<span style="color: #7a0874; font-weight: bold;">&#41;</span> VALUES <span style="color: #7a0874; font-weight: bold;">&#40;</span>?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?<span style="color: #7a0874; font-weight: bold;">&#41;</span> and 
VALUES: <span style="color: #000000;">2009</span>-06-07 <span style="color: #000000;">16</span>:00:00 UTC,<span style="color: #000000;">67</span>,<span style="color: #000000;">210</span>,<span style="color: #000000;">3.2</span>,
<span style="color: #000000;">2009</span>-06-07 <span style="color: #000000;">19</span>:00:00+00,<span style="color: #000000;">0</span>,<span style="color: #000000;">32.8</span>,
<span style="color: #000000;">1007.6</span>,<span style="color: #000000;">1012.0</span>,<span style="color: #000000;">1012.3</span>,<span style="color: #000000;">0</span>,<span style="color: #000000;">0</span>,<span style="color: #000000;">100.0</span>,
<span style="color: #000000;">26.1</span>,<span style="color: #000000;">82.5</span>,<span style="color: #000000;">200</span>,<span style="color: #000000;">0.5</span>,<span style="color: #000000;">23.1</span>,<span style="color: #000000;">1004.7</span>,<span style="color: #000000;">1009.2</span>,
<span style="color: #000000;">1009.4</span>,<span style="color: #000000;">63.2</span>,<span style="color: #000000;">0</span>,<span style="color: #000000;">0</span>,<span style="color: #000000;">0</span></pre></div></div>

<p>database structure.. turn out to be among others..</p>

<div class="wp_syntax"><div class="wp_syn_hdr">postgresql_table_before</div><div class="code"><pre class="postgresql" style="font-family:monospace;">\d forecast_daily_lt
               Table &quot;public.forecast_daily&quot;
         Column         |           Type           | Modifiers 
------------------------+--------------------------+-----------
 data_timestamp         | timestamp with time zone | 
...
 min_relative_humidity  | numeric(3,1)             | 
 mean_relative_humidity | numeric(3,1)             | 
 max_relative_humidity  | numeric(3,1)             | 
 ...
 total_hail             | numeric(4,1)             | 
 hail_duration          | numeric(3,0)             | 
Indexes:
    &quot;forecast_daily_lt_idx1&quot; UNIQUE, btree (data_timestamp, station_id)</pre></div></div>

<div class='tip'>
<code><br />
10^2 is equal to 100.<br />
</code><br />
and<br />
<code><br />
numeric(3,1) mean .. 3 total width and with 1 decimal point..<br />
</code></p>
<p>so ..<br />
<code><br />
the maximum it can take is 99.9<br />
</code><br />
hence ..<br />
<code><br />
it can't accept 100.1 which is 4 digit with 1 decimal point already ..<br />
</code>
</div>
<p>Solution : shall changed field to numeric (4,1)..</p>
<p>to change..</p>
<p>just need to issue this command via the SQL prompt.</p>

<div class="wp_syntax"><div class="wp_syn_hdr">posgresql_alter_cmd</div><div class="code"><pre class="postgresql" style="font-family:monospace;"> ALTER TABLE forecast_daily_lt ALTER column max_relative_humidity TYPE numeric(4,1);</pre></div></div>

<p>so that it changed to :</p>

<div class="wp_syntax"><div class="wp_syn_hdr">postgresql_table_after</div><div class="code"><pre class="postgresql" style="font-family:monospace;">               Table &quot;public.forecast_daily_lt&quot;
         Column         |           Type           | Modifiers 
------------------------+--------------------------+-----------
 max_relative_humidity  | numeric(4,1)             |</pre></div></div>




<div class="post-fixed"><p>Related posts:<ol><li><a href='http://blog.namran.net/2009/03/10/php-fatal-error-class-domdocument-not-found-in-blabla/' rel='bookmark' title='Permanent Link: PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in bla..bla..'>PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in bla..bla..</a></li><li><a href='http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/' rel='bookmark' title='Permanent Link: Postgresql Function. Procedural script'>Postgresql Function. Procedural script</a></li><li><a href='http://blog.namran.net/2008/09/23/buffer-overflow/' rel='bookmark' title='Permanent Link: buffer overflow&#8230;'>buffer overflow&#8230;</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.namran.net/2009/07/07/error-processing-dbdpgst-execute-failed-error-numeric-field-overflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postgresql Function. Procedural script</title>
		<link>http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/</link>
		<comments>http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 08:08:24 +0000</pubDate>
		<dc:creator>HawkEYE</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/</guid>
		<description><![CDATA[Postgresql can be use with procedural call also ..
example as below.

CREATE FUNCTION update_aqsense_id (v_oldid varchar, v_newid varchar, vlayer varchar,geortd_object_type varchar)
returns setof  varchar AS $$
DECLARE
nismos RECORD;
nismos_id integer;
nismos_aq varchar;
nismos_aqformat varchar;
nismos_sendonconnect varchar;
nismos_sendonhide varchar;
nismos_sendondisplay varchar;
station_id integer NOT NULL DEFAULT 0;
new_aq varchar;
new_aqformat varchar;
new_sendonconnect varchar;
new_sendonhide varchar;
new_sendondisplay varchar;
-- this function internal variable
status varchar;
BEGIN
IF geortd_object_type = 'label' THEN
FOR nismos IN select label_id,aqsense_id,aqsense_format,sendonconnect,sendondisplay,sendonhide [...]

<div class="post-fixed">
Related posts:<ol><li><a href='http://blog.namran.net/2008/11/19/how-to-write-an-upstart-eventd-script/' rel='bookmark' title='Permanent Link: How to write an upstart event.d script'>How to write an upstart event.d script</a></li><li><a href='http://blog.namran.net/2009/07/10/aftershock-in-the-nismos-project/' rel='bookmark' title='Permanent Link: Aftershock.. in the NISMOS project'>Aftershock.. in the NISMOS project</a></li><li><a href='http://blog.namran.net/2009/07/07/error-processing-dbdpgst-execute-failed-error-numeric-field-overflow/' rel='bookmark' title='Permanent Link: Error processing: DBD::Pg::st execute failed: ERROR:  numeric field overflow'>Error processing: DBD::Pg::st execute failed: ERROR:  numeric field overflow</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Postgresql can be use with procedural call also ..</p>
<p>example as below.<span id="more-763"></span><br />
<code><br />
CREATE FUNCTION update_aqsense_id (v_oldid varchar, v_newid varchar, vlayer varchar,geortd_object_type varchar)<br />
returns setof  varchar AS $$<br />
DECLARE<br />
nismos RECORD;<br />
nismos_id integer;<br />
nismos_aq varchar;<br />
nismos_aqformat varchar;<br />
nismos_sendonconnect varchar;<br />
nismos_sendonhide varchar;<br />
nismos_sendondisplay varchar;<br />
station_id integer NOT NULL DEFAULT 0;<br />
new_aq varchar;<br />
new_aqformat varchar;<br />
new_sendonconnect varchar;<br />
new_sendonhide varchar;<br />
new_sendondisplay varchar;<br />
-- this function internal variable<br />
status varchar;<br />
BEGIN<br />
IF geortd_object_type = 'label' THEN<br />
FOR nismos IN select label_id,aqsense_id,aqsense_format,sendonconnect,sendondisplay,sendonhide from geortd_label  where 	label_name  ILIKE vlayer ORDER BY label_id LOOP<br />
-- Temporary set the variable from old one.<br />
nismos_id := nismos.label_id;<br />
nismos_aq := nismos.aqsense_id;<br />
nismos_aqformat := nismos.aqsense_format;<br />
nismos_sendonconnect := nismos.sendonconnect;<br />
nismos_sendondisplay := nismos.sendondisplay;<br />
nismos_sendonhide := nismos.sendonhide;<br />
station_id := station_id +1;<br />
-- Replacing with new product_id<br />
new_aq := regexp_replace (nismos_aq,v_oldid,v_newid);<br />
new_aqformat := regexp_replace (nismos_aqformat,v_oldid,v_newid);<br />
new_sendonconnect := regexp_replace (nismos_sendonconnect,v_oldid,v_newid);<br />
new_sendonhide := regexp_replace (nismos_sendonhide,v_oldid,v_newid);<br />
new_sendondisplay := regexp_replace (nismos_sendondisplay,v_oldid,v_newid);<br />
UPDATE geortd_label SET aqsense_id = new_aq ,aqsense_format = new_aqformat , sendonconnect = new_sendonconnect, sendonhide = new_sendonhide , sendondisplay = new_sendondisplay  where label_id = nismos_id;<br />
-- Return the status.<br />
status := 'updated nismos(' || station_id || ' ) at record number : ' || nismos_id || ' n';<br />
RETURN NEXT status;<br />
END LOOP;<br />
END IF;<br />
<!--more--><br />
-- windindicator updater<br />
IF geortd_object_type = 'windindicator' THEN<br />
FOR nismos IN select windindicator_id,aqsense_id,sendonconnect,sendondisplay,sendonhide from geortd_windindicator  where 	windindicator_name  ILIKE vlayer ORDER BY windindicator_id LOOP<br />
-- Temporary set the variable from old one.<br />
nismos_id := nismos.windindicator_id;<br />
nismos_aq := nismos.aqsense_id;<br />
nismos_sendonconnect := nismos.sendonconnect;<br />
nismos_sendondisplay := nismos.sendondisplay;<br />
nismos_sendonhide := nismos.sendonhide;<br />
station_id := station_id +1;<br />
-- Replacing with new product_id<br />
new_aq := regexp_replace (nismos_aq,v_oldid,v_newid);<br />
new_sendonconnect := regexp_replace (nismos_sendonconnect,v_oldid,v_newid);<br />
new_sendonhide := regexp_replace (nismos_sendonhide,v_oldid,v_newid);<br />
new_sendondisplay := regexp_replace (nismos_sendondisplay,v_oldid,v_newid);<br />
-- Update the table<br />
UPDATE geortd_windindicator SET aqsense_id = new_aq , sendonconnect = new_sendonconnect, sendonhide = new_sendonhide , sendondisplay = new_sendondisplay  where windindicator_id = nismos_id;<br />
-- Return the status.<br />
status := 'updated nismos(' || station_id || ' ) at record number : ' || nismos_id || ' n';<br />
RETURN NEXT status;<br />
END LOOP;<br />
END IF;<br />
-- image table updater.<br />
IF geortd_object_type = 'image' THEN<br />
FOR nismos IN select image_id,aqsense_id,sendonconnect,sendondisplay,sendonhide from geortd_image  where 	image_name  ILIKE vlayer ORDER BY image_id LOOP<br />
-- Temporary set the variable from old one.<br />
nismos_id := nismos.image_id;<br />
nismos_aq := nismos.aqsense_id;<br />
nismos_sendonconnect := nismos.sendonconnect;<br />
nismos_sendondisplay := nismos.sendondisplay;<br />
nismos_sendonhide := nismos.sendonhide;<br />
station_id := station_id +1;<br />
-- Replacing with new product_id<br />
new_aq := regexp_replace (nismos_aq,v_oldid,v_newid);<br />
new_sendonconnect := regexp_replace (nismos_sendonconnect,v_oldid,v_newid);<br />
new_sendonhide := regexp_replace (nismos_sendonhide,v_oldid,v_newid);<br />
new_sendondisplay := regexp_replace (nismos_sendondisplay,v_oldid,v_newid);<br />
-- Update the table<br />
UPDATE geortd_image SET aqsense_id = new_aq , sendonconnect = new_sendonconnect, sendonhide = new_sendonhide , sendondisplay = new_sendondisplay  where image_id = nismos_id;<br />
-- Return the status.<br />
status := 'updated nismos(' || station_id || ' ) at record number : ' || nismos_id || ' n';<br />
RETURN NEXT status;<br />
END LOOP;<br />
END IF;<br />
END;<br />
$$ LANGUAGE plpgsql;<br />
</code></p>
<p>to use.. just need one liner each time..</p>
<blockquote><p> <code><br />
SELECT * from update_aqsense_id ('1050','105050','LabelRainHourly%','label');<br />
</code></p></blockquote>
<p>how nice..</p>



<div class="post-fixed"><p>Related posts:<ol><li><a href='http://blog.namran.net/2008/11/19/how-to-write-an-upstart-eventd-script/' rel='bookmark' title='Permanent Link: How to write an upstart event.d script'>How to write an upstart event.d script</a></li><li><a href='http://blog.namran.net/2009/07/10/aftershock-in-the-nismos-project/' rel='bookmark' title='Permanent Link: Aftershock.. in the NISMOS project'>Aftershock.. in the NISMOS project</a></li><li><a href='http://blog.namran.net/2009/07/07/error-processing-dbdpgst-execute-failed-error-numeric-field-overflow/' rel='bookmark' title='Permanent Link: Error processing: DBD::Pg::st execute failed: ERROR:  numeric field overflow'>Error processing: DBD::Pg::st execute failed: ERROR:  numeric field overflow</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.namran.net/2008/12/30/postgresql-function-procedural-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug Tracker..</title>
		<link>http://blog.namran.net/2007/04/09/bug-tracker/</link>
		<comments>http://blog.namran.net/2007/04/09/bug-tracker/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 15:04:47 +0000</pubDate>
		<dc:creator>HawkEYE</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tracker]]></category>

		<guid isPermaLink="false">http://blog.namran.net/2007/04/09/bug-tracker/</guid>
		<description><![CDATA[after all .. finished the installation of bug tracker for my personal stuff and project..
it is accessible at http://bug.namran.net or should i put http://bugs.namran.net hahaha..
both also can lah..
erm. one more thing.. these few days.. seem like a lot of thing have been taken care off..
every that seem to fall apart before&#8230; have come into right [...]

<div class="post-fixed">
Related posts:<ol><li><a href='http://blog.namran.net/2008/11/07/you-turn-me-upside-down-read-from-bottom-to-top/' rel='bookmark' title='Permanent Link: you turn me upside down&#8230; (read from bottom to top..)'>you turn me upside down&#8230; (read from bottom to top..)</a></li><li><a href='http://blog.namran.net/2008/11/02/when-a-long-lost-friend-suddenly-calls-to-meet-up/' rel='bookmark' title='Permanent Link: When a long-lost friend suddenly call to meet up ..'>When a long-lost friend suddenly call to meet up ..</a></li><li><a href='http://blog.namran.net/2007/04/10/gis-again/' rel='bookmark' title='Permanent Link: GIS again..'>GIS again..</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>after all .. finished the installation of bug tracker for my personal stuff and project..<br />
it is accessible at <a href="http://bug.namran.net">http://bug.namran.net</a> or should i put <a href="http://bugs.namran.net">http://bugs.namran.net</a> hahaha..<br />
both also can lah..</p>
<p>erm. one more thing.. these few days.. seem like a lot of thing have been taken care off..<br />
every that seem to fall apart before&#8230; have come into right place again..<br />
somehow may be we should let something that we can&#8217;t control to have its own ..<br />
so we can still have a peace in mind.. at least..</p>
<p>the bottom line is.. May be God have better plan for me .. and of course for each of us..<br />
just&#8230; stay put.. <img src='http://blog.namran.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ** like what my boss have said.. **<br />
yeah.. leave it alone&#8230; then revisit later.. then a lot of thing look very different.. damn right..<br />
<a href="http://bug.namran.net"><br />
<img src='http://blog.namran.net/wp-content/uploads/2007/04/mantis_logo.gif' alt='Logo' /></a></p>



<div class="post-fixed"><p>Related posts:<ol><li><a href='http://blog.namran.net/2008/11/07/you-turn-me-upside-down-read-from-bottom-to-top/' rel='bookmark' title='Permanent Link: you turn me upside down&#8230; (read from bottom to top..)'>you turn me upside down&#8230; (read from bottom to top..)</a></li><li><a href='http://blog.namran.net/2008/11/02/when-a-long-lost-friend-suddenly-calls-to-meet-up/' rel='bookmark' title='Permanent Link: When a long-lost friend suddenly call to meet up ..'>When a long-lost friend suddenly call to meet up ..</a></li><li><a href='http://blog.namran.net/2007/04/10/gis-again/' rel='bookmark' title='Permanent Link: GIS again..'>GIS again..</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.namran.net/2007/04/09/bug-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
