<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments on: PostgreSQL: Create Prepared Statement, to increase Session Performance	</title>
	<atom:link href="https://www.dbrnd.com/2016/11/postgresql-create-prepared-statement-to-increase-session-performance-prevent-sql-injection/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbrnd.com/2016/11/postgresql-create-prepared-statement-to-increase-session-performance-prevent-sql-injection/</link>
	<description>BIGData &#124; NoSQL &#124; MSSQL &#124; MySQL &#124; PostgreSQL</description>
	<lastBuildDate>Thu, 09 May 2019 05:59:31 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>
	<item>
		<title>
		By: darshan shah		</title>
		<link>https://www.dbrnd.com/2016/11/postgresql-create-prepared-statement-to-increase-session-performance-prevent-sql-injection/#comment-7132</link>

		<dc:creator><![CDATA[darshan shah]]></dc:creator>
		<pubDate>Thu, 09 May 2019 05:59:31 +0000</pubDate>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3933#comment-7132</guid>

					<description><![CDATA[Hi Avnesh, 

I have scenario of prepared transactions.  I&#039;m thinking to make automated process to handle this. 
so used below script to identify  orphan prepared transactions. 

Select * from (
SELECT gid, DATE_PART(&#039;hour&#039;,now()::timestamp-prepared::timestamp)*60+DATE_PART(&#039;minute&#039;,now()::timestamp-prepared::timestamp)as TimeDiff,prepared, owner, database, transaction AS xmin
FROM pg_prepared_xacts
where database=current_database()) As A 
Where TimeDiff&#062;10
ORDER BY TimeDiff DESC  LIMIT 1

To rollback this transaction I prepared one script with DO statment/ also tried with function. However can not run rollback prepared Transactionid inside any plpgsql block. 

  
DO $$
DECLARE dbname text;
Declare str text;
BEGIN

      str= (select gid FROM pg_prepared_xacts where database=current_database() limit 1);
	  str:=&#039;ROLLBACK PREPARED &#039;&#124;&#124;&#039;&#039;&#039;&#039;&#124;&#124;str&#124;&#124;&#039;&#039;&#039;&#039;&#124;&#124;&#039;;&#039;;
	  Execute (str);
      END $$ ;
	 
	 
Do you have any other option for same ?]]></description>
			<content:encoded><![CDATA[<p>Hi Avnesh, </p>
<p>I have scenario of prepared transactions.  I&#8217;m thinking to make automated process to handle this.<br />
so used below script to identify  orphan prepared transactions. </p>
<p>Select * from (<br />
SELECT gid, DATE_PART(&#8216;hour&#8217;,now()::timestamp-prepared::timestamp)*60+DATE_PART(&#8216;minute&#8217;,now()::timestamp-prepared::timestamp)as TimeDiff,prepared, owner, database, transaction AS xmin<br />
FROM pg_prepared_xacts<br />
where database=current_database()) As A<br />
Where TimeDiff&gt;10<br />
ORDER BY TimeDiff DESC  LIMIT 1</p>
<p>To rollback this transaction I prepared one script with DO statment/ also tried with function. However can not run rollback prepared Transactionid inside any plpgsql block. </p>
<p>DO $$<br />
DECLARE dbname text;<br />
Declare str text;<br />
BEGIN</p>
<p>      str= (select gid FROM pg_prepared_xacts where database=current_database() limit 1);<br />
	  str:=&#8217;ROLLBACK PREPARED &#8216;||&#8221;&#8221;||str||&#8221;&#8221;||&#8217;;&#8217;;<br />
	  Execute (str);<br />
      END $$ ;</p>
<p>Do you have any other option for same ?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
