<?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/"
	>

<channel>
	<title>Out of the Woods</title>
	<atom:link href="http://blogs.ingres.com/debwoods/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.ingres.com/debwoods</link>
	<description>And into the light of Open Source</description>
	<pubDate>Tue, 09 Jun 2009 21:36:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>More Goodies from Ingres..</title>
		<link>http://blogs.ingres.com/debwoods/2009/06/09/more-goodies-from-ingres/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/06/09/more-goodies-from-ingres/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:23:39 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[OpenR]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/debwoods/?p=165</guid>
		<description><![CDATA[Our community is at it again, this time releasing a really cool Query Tool . The Query Tool was shown at the UK IUA today and got rave reviews. Thought I would share some information about it and hopefully get some feedback on the tool as well.
Query Tool  is an Ingres data management application that [...]]]></description>
			<content:encoded><![CDATA[<p>Our community is at it again, this time releasing a really cool <a href="http://esd.ingres.com/product/Community_Projects/Administration_Tools/Windows_32-Bit/Query_Tool">Query Tool </a>. The Query Tool was shown at the <a href="http://www.iua.org.uk/">UK IUA </a>today and got rave reviews. Thought I would share some<a href="http://community.ingres.com/wiki/QueryTool_Home"> information </a>about it and hopefully get some feedback on the tool as w<img class="alignleft size-full wp-image-177" title="qt_main1_thumb1" src="http://blogs.ingres.com/debwoods/wp-content/uploads/2009/06/qt_main1_thumb1.png" alt="qt_main1_thumb1" width="304" height="243" />ell.</p>
<p>Query Tool  is an Ingres data management application that was written with another Ingres tool - <a href="http://www.ingres.com/products/openroad.php">Ingres OpenROAD</a>. It&#8217;s a simple tool for proto-typing and testing Ingres SQL that can support Unicode as well. The Query Tool allows developers to maintain and manipulate data in the <a href="http://www.ingres.com/products/ingres-database.php">Ingres Database</a> by providing full QBF style tabular and simple editor interfaces. There also is a GUI based version which is an added bonus. The tool includes a number of assistants to help developers create select statements, views, and tables and also to hep migrate data into excel, etc. You can store SQL scripts as part of your database so you don&#8217;t have to go hunting them down later and can run the scripts in a terminal style interface with full support for the Ingres terminal monitor commands and query buffering.</p>
<p>For more information or how to get involved with Query Tool visit the<a href="http://community.ingres.com/wiki/QueryTool_Home"> Ingres wiki</a>.</p>
<p>Give it a try and let us know what you think?</p>
<p>/deb</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/06/09/more-goodies-from-ingres/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On the bookshelves with Ingres</title>
		<link>http://blogs.ingres.com/debwoods/2009/06/02/on-the-bookshelves-with-ingres/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/06/02/on-the-bookshelves-with-ingres/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 19:20:46 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Connectivity]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Drivers]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[Add new tag]]></category>

		<category><![CDATA[database books]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[rick van der lans]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=158</guid>
		<description><![CDATA[Last year I had the opportunity to meet Rick van der Lans. He specializes in lecturing and writing books about databases, data warehousing, and BI topics. He&#8217;s quite an individual and has been a great resource over the year to help guide some of our work particularly in the BI space and future database work. [...]]]></description>
			<content:encoded><![CDATA[<p>Last year I had the opportunity to meet <a href="http://www.r20.nl/rick_f__van_der_lans1.htm">Rick van der Lans</a>. He specializes in lecturing and writing books about databases, data warehousing, and BI topics. He&#8217;s quite an individual and has been a great resource over the year to help guide some of our work particularly in the BI space and future database work. After talking with several of us here at Ingres, Rick decided to put pen to paper or rather fingers to the keyboard and has just completed his new book, <a href="http://www.lulu.com/content/paperback-book/the-sql-guide-to-ingres/6608333">The SQL Guide to Ingres</a>. At 700+ pages, it&#8217;s sure to answer all your Ingres SQL questions. Rick was joined by a number of individuals here at Ingres who helped with the editing of the book and includes a forward by <a href="http://blogs.ingres.com/emmamcgrattan/">Emma McGrattan</a>.</p>
<p><a href="http://blogs.ingres.com/technology/wp-content/uploads/2009/06/cover_ingres_v1.jpg"><img class="alignleft size-medium wp-image-160" title="cover_ingres_v1" src="http://blogs.ingres.com/technology/wp-content/uploads/2009/06/cover_ingres_v1-228x300.jpg" alt="" width="228" height="300" /></a></p>
<p>If you happen to be in London on Tuesday, June 9, stop by for the <a href="http://www.iua.org.uk/docs/IUA_Invitation_2009.pdf">UK IUA event</a> where Rick will be talking about his <a href="http://www.lulu.com/content/paperback-book/the-sql-guide-to-ingres/6608333">new book on Ingres</a> and connect with other Ingres users as well as hear what is going on at Ingres up close.</p>
<p>/deb</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/06/02/on-the-bookshelves-with-ingres/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Land of Confusion - What&#8217;s up with MySQL</title>
		<link>http://blogs.ingres.com/debwoods/2009/05/14/land-of-confusion-whats-up-with-mysql/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/05/14/land-of-confusion-whats-up-with-mysql/#comments</comments>
		<pubDate>Thu, 14 May 2009 22:16:11 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[mariadb]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[red hat]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=143</guid>
		<description><![CDATA[I&#8217;ve been involved in open source for over a decade now and all I can say is nothing ever surprises me anymore. When I saw the announcement this week for the Open Database Alliance, I had to think - wassup? Looks like there are loads of users, customers, partners, contributors and who knows who else [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been involved in open source for over a decade now and all I can say is nothing ever surprises me anymore. When I saw the announcement this week for the<a href="http://www.emediawire.com/releases/2009/5/prweb2417854.htm"> Open Database Alliance,</a> I had to think - wassup? Looks like there are loads of users, customers, partners, contributors and who knows who else is not happy with the recent Oracle acquisition of MySQL. Now we have MariaDB, which is really MySQL with a little extra goodness added in for those that don&#8217;t want support from Oracle. That is the beauty of open source.</p>
<p>I do find it sort of interesting that MariaDB is doing the same thing to MySQL/ Oracle that <a href="http://www.oracle.com/corporate/press/2006_oct/Oracle-Linux-Program.html">Oracle did to Red Hat </a>a few years ago. MariaDB is basically taking MySQL and adding their fixes and additional functionality and releasing to the market at MariaDB. No harm no foul. Oracle does the same thing, they take Red Hat Enterprise Linux, add their own fixes, couple unique patches just for Oracle and then releases it as Oracle Linux.</p>
<p>Oh well,I guess it all works out in the wash. But now come the questions - and trust me, there are alot. What happens to all the customers and partners that depend on MySQL? How do you know which version to use <a href="http://askmonty.org/wiki/index.php/MariaDB_versus_MySQL">MariaDB vs MySQL,</a> Which storage engine  do I use <a href="http://askmonty.org/wiki/index.php/Maria">Maria</a>,<a href="http://www.primebase.org/"> PBXT</a>, <a href="http://dev.mysql.com/doc/refman/5.0/en/innodb.html">Innodb</a>, <a href="http://dev.mysql.com/doc/refman/4.1/en/myisam-storage-engine.html">MyISAM</a>, <a href="http://forge.mysql.com/wiki/Falcon">Falcom,</a> <a href="http://www.mysqlperformanceblog.com/2008/12/16/announcing-percona-xtradb-storage-engine-a-drop-in-replacement-for-standard-innodb/">Percona XtraDB</a>,  etc?   How do I know if all the features I need will be included in future versions. I&#8217;ll stop there. It&#8217;s always sad to see a community reach the point that they split. Sounds like a lot of confusion and uncertainty for their community.</p>
<p>We at Ingres have been most fortunate in this area. The code has been together with out a fork for over 30 years and has over 10k commercial customers.  With a support team that has an average tenure of 12+ years and a customer satisfaction rating over 90%, we know what it means to support enterprises with business critical needs. True, we don&#8217;t have the same mindshare as MySQL, but we do have a great set of loyal customers, partners and community members. Today is the day we remember how important it is to stand together and listen to the needs of each other.</p>
<p>/deb</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/05/14/land-of-confusion-whats-up-with-mysql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Looking to save some Cash - These guys are doing it!!!</title>
		<link>http://blogs.ingres.com/debwoods/2009/05/13/looking-to-save-some-cash-these-guys-are-doing-it/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/05/13/looking-to-save-some-cash-these-guys-are-doing-it/#comments</comments>
		<pubDate>Wed, 13 May 2009 23:52:51 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Ingres News]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=138</guid>
		<description><![CDATA[It feels great when you know you can deliver products to the market that people are really interested in; solutions that add value and not just set on the shelf. Today we shared 3 stories of how Ingres and Red Hat are helping customers save money and deliver robust solutions to their customers.  The industries [...]]]></description>
			<content:encoded><![CDATA[<p>It feels great when you know you can deliver products to the market that people are really interested in; <a href="http://www.ingres.com/partners/redhat/">solutions </a>that add value and not just set on the shelf. Today we shared 3 stories of how <a href="http://www.ingres.com/partners/redhat/">Ingres and Red Hat </a>are helping customers save money and deliver robust solutions to their customers.  The industries range from the financial segment  (<a href="http://customers.redhat.com/2009/05/13/bbp-builds-reliable-reputation-on-integrated-open-source-development-stack/">Biveroni Batschelet Partners AG - BBP)</a>, transportation industry (<a href="http://customers.redhat.com/2009/05/13/allied-express-and-its-customers-use-ingres-database-and-jboss-to-track-freight-online-in-real-time/">Allied Express</a>),  and include  social media (<a href="http://customers.redhat.com/2009/05/13/connectedweddings-com-makes-planning-easier-via-facebook-integration/">Facebook- Connected Weddings)</a> . In talking to these customers, there were several common threads among their requirements. They were all looking for a more cost effective means to providing services to their customers while ensuring secure, 24&#215;7 access and  the ability to scale as their business grew. Sounds like a reasonable request but hard to find in today&#8217;s business climate.</p>
<p>Open Source is uniquely position to help customers with these issues and with more pressure from today&#8217;s economic climate, it&#8217;s no wonder we are seeing more customers turn to open source. <a href="http://www.businesswire.com/portal/site/google/?ndmViewId=news_view&amp;newsId=20090513005159&amp;newsLang=en">Ingres and Red Hat have joined forces </a>to help customers take out costs, to give them more control over their budgets. With all the budget cuts everywhere you look, it feels great to be part of a company that is helping people reduce costs without cutting heads. Feels even better when you have been part of two companies that focus on reducing costs and helping solve real problems.  (I used to work at Red Hat as well)</p>
<p>Got similar stories on how your solution is helping reduce costs with open source - Please share.</p>
<p>/deb</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/05/13/looking-to-save-some-cash-these-guys-are-doing-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Need to get at your salesforce data and can&#8217;t?</title>
		<link>http://blogs.ingres.com/debwoods/2009/04/30/need-to-get-at-your-salesforce-data-and-cant/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/04/30/need-to-get-at-your-salesforce-data-and-cant/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 22:40:45 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Drivers]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[BI tools]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=126</guid>
		<description><![CDATA[I can&#8217;t tell you the number of times I hear people say they want to know how a particular product is performing, how sales numbers are coming together or trouble tickets match up to various products. You can typically find out this type information if YOU have ACCESS to the right data sources within your [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t tell you the number of times I hear people say they want to know how a particular product is performing, how sales numbers are coming together or trouble tickets match up to various products. You can typically find out this type information if YOU have ACCESS to the right data sources within your company. How many times have you been told - I can run that report for you but can&#8217;t give you access? Either you&#8217;re not allowed to have access to all the information or the cost of individual licenses to the various BI tools are prohibited for all employees.</p>
<p>We at Ingres released an update to the Ingres <a href="http://www.ingres.com/products/icebreaker-bi-appliance.php">Icebreaker BI Appliance </a>this week. Not only did we update the Ingres database, an updated version of Jaspersoft, we include a reporting appliance. What is a reporting appliance you may ask? It allows you to connect to salesforce, download a local copy of your salesforce data and can now run reports locally against the data and also against other data marts you have stored locally.  We use this feature here at Ingres to track product performance against product revenue and incoming leads. It&#8217;s a great feature that has been added and now we can offer access to this information to a broader group of individuals without having individual licenses to salesforce.com. Another cool feature is we can restrict access to certain components of data to various individuals.</p>
<p>In today&#8217;s business climate, providing employees with the right tools to do their job is critical. Why not provide them with cost effective, easy to use tools as well? Check out the new <a href="http://esd.ingres.com/product/icebreaker/Business_Intelligence/Appliances/Icebreaker_Business_Intelligence_Appliance">Ingres Icebreaker BI Appliance</a>. Where else can you get a full suite of BI tools (Jaspersoft), business critical database (Ingres) and the linux operating system in a single install with integrated maintainence?</p>
<p>/deb woods</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/04/30/need-to-get-at-your-salesforce-data-and-cant/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ingres :&#8221;only mission critical open source database&#8221;</title>
		<link>http://blogs.ingres.com/debwoods/2009/04/30/ingres-only-mission-critical-open-source-database/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/04/30/ingres-only-mission-critical-open-source-database/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 18:40:28 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[mission critical]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=117</guid>
		<description><![CDATA[Emma and I have been doing a number of analyst briefings recently and it&#8217;s always great when your message gets picked up. Couple good reports have come out supporting Ingres as the only open source database for business critical workloads and wanted to share them.
Gartner&#8217;s Donald Feinberg&#8217;s published a report today entitled &#8220;Cost Optimization with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.ingres.com/emmamcgrattan" target="_self">Emma</a> and I have been doing a number of analyst briefings recently and it&#8217;s always great when your message gets picked up. Couple good reports have come out supporting Ingres as the only open source database for business critical workloads and wanted to share them.</p>
<p>Gartner&#8217;s Donald Feinberg&#8217;s published a report today entitled &#8220;Cost Optimization with Open Source DBMSs.&#8221; In the reprot, Feinberg addresses the question, &#8220;How much can I save with an open-source database management system (DBMS)?&#8221;</p>
<p>Within the report, Feinberg states it is still a risk to use an open source DBMS for mission-critical applications, with <strong>one important exception</strong>:</p>
<p><strong>&#8220;The use of open-source DBMSs for mission-critical applications carries far more risk - the exception is Ingres. Ingres has been available for over 25 years and has a broad base of customers with mission-critical applications today. Issues of scalability, reliability and maturity are not a problem for the Ingres DBMS. If your organization wants to use one fo the other two open soruce DMBSs, MySQL or Postgres Plus, for mission-critical applications, you may encournter many issues as the database grows in size and the number of concurrent users increases. Clients have reported issues with crashing, locking and lack of functionality in supporting large mission-critical applications.&#8221;</strong></p>
<p><a href="http://www.it-director.com/technology/data_mgmt/content.php?cid=11243" target="_blank">Andy Hayler</a> published an article discussing the strength of Ingres in mission critical workloads. Excerpt from Andy&#8217;s article: Since Ingres was one of the top-tier commercial databases, and has over ten thousand commercial customers no-one can accuse it of being unproven. The steady progress of open-source databases mean that more and more companies will start to consider them seriously, a trend that can only be accelerated by the tough economic climate, where saving money is a priority.</p>
<p>Donald, Andy - Thanks again for the great feedback on Ingres.</p>
<p>/deb woods</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/04/30/ingres-only-mission-critical-open-source-database/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Developers - come one come all..</title>
		<link>http://blogs.ingres.com/debwoods/2009/04/14/php-developers-come-one-come-all/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/04/14/php-developers-come-one-come-all/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 15:55:50 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[developers]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=114</guid>
		<description><![CDATA[It&#8217;s always great to see contributions come in from the community especially when they are in great demand. Recently we received a contribution from Cédric Pasquotti that helps get PHP developers get started easier on Ingres. Cedric has worked to bundle the Ingres database with PHP and Apache all in a single install called EasyIngres [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always great to see contributions come in from the community especially when they are in great demand. Recently we received a contribution from Cédric Pasquotti that helps get PHP developers get started easier on Ingres. Cedric has worked to bundle the Ingres database with PHP and Apache all in a single install called <a href="http://community.ingres.com/wiki/Easy_Ingres_PHP">EasyIngres</a> to help users get started much faster with the latest and greatest. It&#8217;s a nice install with an easy setup that anyone can work with. Take a look and let us know what you think..</p>
<p>You can find the download here:</p>
<p><a class="external free" title="http://esd.ingres.com/product/Community_Projects/Development_Tools/Windows_32-Bit/EasyIngres/" rel="nofollow" href="http://esd.ingres.com/product/Community_Projects/Development_Tools/Windows_32-Bit/EasyIngres/">http://esd.ingres.com/product/Community_Projects/Development_Tools/Windows_32-Bit/EasyIngres/</a></p>
<p>Thanks again Cedric..</p>
<p>/deb</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/04/14/php-developers-come-one-come-all/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using C# with Linux (Mono) on Ingres ?</title>
		<link>http://blogs.ingres.com/debwoods/2009/02/23/using-c-with-linux-mono-on-ingres/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/02/23/using-c-with-linux-mono-on-ingres/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 16:22:29 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Connectivity]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[ingres]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[mono]]></category>

		<category><![CDATA[mono c# linux ingres]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=94</guid>
		<description><![CDATA[Today we have a post from Thomas Glaser from the Ingres Support team. He has been doing some work recently with C# on Linux(mono) with Ingres and wanted to share some things he learned along the way.
Hello World,
I&#8217;ve recently come across the challenge to query an Ingres Database using C# on Linux (Mono). Mono is, [...]]]></description>
			<content:encoded><![CDATA[<p>Today we have a post from Thomas Glaser from the Ingres Support team. He has been doing some work recently with C# on Linux(mono) with Ingres and wanted to share some things he learned along the way.</p>
<p>Hello World,</p>
<p>I&#8217;ve recently come across the challenge to query an Ingres Database using C# on Linux (Mono). <a href="http://www.mono-project.com">Mono</a> is, as you know, the Linux port of the Microsoft .NET Framework. Most Applications run on it but for various reasons there might be problems. Such reasons are:</p>
<ul>
<li>NotImplementedExceptions. The MONO port is not 100% finished</li>
<li>P/Invoke. There might be applications that leave the abstract world of .NET and do immediate OS/specific calls. There is no way that Mono can address this; these Applications won&#8217;t run.</li>
</ul>
<p>So how did the Ingres .NET Data provider do? Not too bad actually, given that Mono is not an officially supported platform. There were three problems:</p>
<ol>
<li>Our provider can do Distributed Transactions. This is not implemented in Mono</li>
<li>There are variable names in the provider starting with an underscore. This breaks strict CLI compliance</li>
<li>There were some inheritance problems with embedded classes</li>
</ol>
<p>Good news is, it seems to be rather straightforward to fix this. If the patch (see below) is applied on top of the current community version of the Ingres data provider (get it <a href="http://code.ingres.com/ingres/main/src/common/dotnet2_win/">here</a>), it compiles fine and seems to work as well. What I&#8217;ve tested so far is:</p>
<ul>
<li>Connecting to a local database</li>
<li>Selecting some data using a IngresDataReader</li>
</ul>
<p>This worked fine and returned the expected results. There is a patched binary version available <a href="http://code.ingres.com/apps/playback/branches/2.0/Preprocess/Preprocess/lib/Ingres.Client.dll">here</a> as well.<br />
Should you fancy trying it out, please beware: Mono is in no way supported by Ingres. Do it at your own risk!</p>
<p>If you have any thoughts on this, feel free to contact me (Thomas.Glaser@ingres.com)</p>
<p>Best regards,<br />
Thomas</p>
<p>Here is the patch:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Index: ingres/assemblyinfo.cs<br />
===================================================================<br />
&#8212; ingres/assemblyinfo.cs      (revision 1228)<br />
+++ ingres/assemblyinfo.cs      (working copy)<br />
@@ -17,7 +17,7 @@<br />
[assembly: AssemblyTrademark("")]<br />
[assembly: AssemblyCulture("")]  // culture neutral<br />
[assembly: System.Runtime.InteropServices.ComVisible(true)]<br />
-[assembly: System.CLSCompliant(true)]<br />
+[assembly: System.CLSCompliant(false)]</p>
<p>//Allows strong-named assemblies to be called by partially trusted code.<br />
//Without this declaration, only fully trusted callers would be able use<br />
Index: ingres/connection.cs<br />
===================================================================<br />
&#8212; ingres/connection.cs        (revision 1228)<br />
+++ ingres/connection.cs        (working copy)<br />
@@ -692,11 +692,14 @@<br />
(ToInvariantLower(persistSecurityInfo) != &#8220;true&#8221;  &amp;&amp;<br />
ToInvariantLower(persistSecurityInfo) != &#8220;yes&#8221;))<br />
_connectionString = _connectionStringSanitized;<br />
+<br />
+                       if (System.Environment.OSVersion.Platform != PlatformID.Unix)<br />
+                       {<br />
+                               transaction = EnlistDistributedTransactionIsNeeded();</p>
<p>-                       transaction = EnlistDistributedTransactionIsNeeded();<br />
-<br />
-                       if (transaction != null)<br />
-                               EnlistDistributedTransaction(transaction, false);  // implicit enlistment<br />
+                               if (transaction != null)<br />
+                                       EnlistDistributedTransaction(transaction, false);  // implicit enlistment<br />
+                       }<br />
}</p>
<p>Index: provider/advan/metadata.cs<br />
===================================================================<br />
&#8212; provider/advan/metadata.cs  (revision 1228)<br />
+++ provider/advan/metadata.cs  (working copy)<br />
@@ -1489,7 +1489,7 @@<br />
///<br />
/// Table reference of the SQL statement.<br />
///<br />
-               public sealed class Table : MetaData.DbTableDefinition<br />
+               public sealed class Table : DbTableDefinition<br />
{<br />
///<br />
/// Constructor for the table definition.<br />
@@ -1648,7 +1648,7 @@<br />
///<br />
/// Column reference of the SQL statement.<br />
///<br />
-               public sealed class Column : MetaData.DbColumnDefinition<br />
+               public sealed class Column : DbColumnDefinition<br />
{<br />
///<br />
/// Constructor for column definition.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/02/23/using-c-with-linux-mono-on-ingres/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Isn&#8217;t it time for Open Source at the White House?</title>
		<link>http://blogs.ingres.com/debwoods/2009/02/10/isnt-it-time-for-open-source-at-the-white-house/</link>
		<comments>http://blogs.ingres.com/debwoods/2009/02/10/isnt-it-time-for-open-source-at-the-white-house/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 20:00:39 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Ingres News]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[open source news]]></category>

		<category><![CDATA[business critical]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Obama]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=90</guid>
		<description><![CDATA[With all the pressure in the marketplace, everyone is looking for ways to cut cost and get their budgets in line to solve this economic downturn. Just cutting costs doesn&#8217;t solve the problem. People need to look at different ways to solve problems. Open Source has been doing just that in a number of areas [...]]]></description>
			<content:encoded><![CDATA[<p>With all the pressure in the marketplace, everyone is looking for ways to cut cost and get their budgets in line to solve this economic downturn. Just cutting costs doesn&#8217;t solve the problem. People need to look at different ways to solve problems. Open Source has been doing just that in a number of areas and can continue to bring value to the market place. We have seen open source being used in numerous business critical industries such as: financial, health care, transportation, manufacturing, and entertainment. One can find open source in just about every industry and each year adoption is increasing and we now are seeing the influence of the open source movement affecting areas other than just software. Open Source is much more than just software at a fraction of the cost, it&#8217;s all about changing the way IT procures software, how it develops and deploys solutions and how they are managed all the way through the life cycle. It is about choice. We are seeing great change across the US with a much more open style in the White House.</p>
<p><a href="http://www.informationweek.com/news/industry/government/showArticle.jhtml?articleID=213402101">Information Week</a>&#8217;s Charles Babcock wrote about a group of open source leaders who drafted a<a href="http://consideropensource.blogspot.com/"> letter</a> to Mr. Obama to secure his support for more Open Source projects. We have all been witness to Mr. Obama&#8217;s vision for a more open society, based on change and hope. We believe that open source can help deliver this vision by providing that transparency and opportunity for change to the marketplace.  We have asked our future leaders to take a look at the advantages that open source can bring to this country. Why would we continue to be locked in to paying upfront fees for licensed products before we know if they work, why continue to be forced to pay renewal fees, why are there fees to transfer ownership of products, why can&#8217;t I just pay for what I use? Everyday we find more and more users asking these questions - The time is NOW for Open Source to provide answers to these questions.</p>
<p>We at Ingres are working on transitioning a number of key business critical applications everyday to open source projects. Our goals are simple - provide innovative solutions to the market place while reducing costs with our focus on business critical applications.  We don&#8217;t have hidden fees, our development is out in the open, you pay for what you use, we believe in collaboration,  we believe in choice and transparency in everything we do. I guess you would say we believe in Change.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2009/02/10/isnt-it-time-for-open-source-at-the-white-house/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Ingres Journals for Audit Purposes</title>
		<link>http://blogs.ingres.com/debwoods/2008/11/19/using-ingres-journals-for-audit-purposes/</link>
		<comments>http://blogs.ingres.com/debwoods/2008/11/19/using-ingres-journals-for-audit-purposes/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 20:32:22 +0000</pubDate>
		<dc:creator>Deb Woods</dc:creator>
		
		<category><![CDATA[Ingres News]]></category>

		<guid isPermaLink="false">http://blogs.ingres.com/technology/?p=87</guid>
		<description><![CDATA[Michael Flower and I were chatting a couple days back and he was sharing some ideas with me around Ingres Journals. I asked him to write up some notes and I would post in the technology blog. For those of you who don&#8217;t know Michael - he is responsible for training here at Ingres and [...]]]></description>
			<content:encoded><![CDATA[<p>Michael Flower and I were chatting a couple days back and he was sharing some ideas with me around Ingres Journals. I asked him to write up some notes and I would post in the technology blog. For those of you who don&#8217;t know Michael - he is responsible for training here at Ingres and is a wealth of knowledge. In the future we will continue to pull tid bits of knowledge from him to share with you.. Below are his some of his notes around Ingres Journals</p>
<p class="MsoNormal"><span lang="EN-GB">The Ingres Checkpoint files provide a backup capability to recover to a database (using the <strong>rollforwarddb</strong> command).</span></p>
<p class="MsoNormal"><span lang="EN-GB">The Ingres Journal system allows a point-in-time recovery of a database (using the <strong>rollforwarddb –e</strong> flag)</span></p>
<p class="MsoNormal"><span lang="EN-GB">By recovering a database checkpoint <span style="text-decoration: underline;">and</span><em> </em>the Journals, a journalled database can be recovered to a moment in time which is <em>after </em>the most recent checkpoint.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><span lang="EN-GB">Online Analysis of Ingres Journals</span></h2>
<p class="MsoNormal"><span lang="EN-GB">We might sometimes need to identify the point-in-time to which we want to recover our database. Ingres provides methods of analysing a database’s journals, even while the database is online:</span></p>
<p class="MsoNormal"><span lang="EN-GB">1. Ingres Journal Analyzer</span></p>
<p class="MsoNormal"><span lang="EN-GB">2. The <strong>auditdb</strong> command</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><span lang="EN-GB">What Can the Journals Tell Us?</span></h2>
<p class="MsoNormal"><span lang="EN-GB">The ability to audit the journals provides us with other auditing benefits. What if we want to know:</span></p>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal"><span lang="EN-GB">What updates has user Joe done recently?</span></li>
<li class="MsoNormal"><span lang="EN-GB">Who has deleted rows from table C?</span></li>
<li class="MsoNormal"><span lang="EN-GB">Who has run the most updates against table D?</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">Any standard DML statement (insert, update, delete) will be journalled, and this information can be extracted from the journals and analysed.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><span lang="EN-GB">Steps to Extract Journals</span></h2>
<p class="MsoNormal"><span lang="EN-GB">The <strong>auditdb</strong> command can be used to extract table-specific information.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h3><span lang="EN-GB">Step 1. Extract the Journal information into a File</span></h3>
<p class="MsoNormal"><span lang="EN-GB"><span> </span>auditdb <span> </span><em>dbname </em><span> </span>-file -table=<em>tablename</em></span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span lang="EN-GB">This will create an audit file in the format <em>tablename</em>.trl</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h3><span lang="EN-GB">Step 2. Create a new target table to load the file</span></h3>
<p class="MsoNormal"><span lang="EN-GB">Create a table based on the original table, with the following extra column definitions:</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">date<span> </span>date<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">username<span> </span>char(32)<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">operation<span> </span>char(8)<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">tran_id1<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">tran_id2<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">table_id1<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">table_id2<span> </span>integer not null with default,</span></p>
<p class="MsoNormal"><span lang="EN-GB"><span> </span>… then the columns from the original table</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">If using a version of Ingres which has ingresdate and ansidate, ensure that the ingresdate is used.</span></p>
<p class="MsoNormal"><span lang="EN-GB">Note that the new audit table does not have to be on the same database as the original table.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h3><span lang="EN-GB">Step 3. Load the file into the new table</span></h3>
<p class="MsoNormal"><span lang="EN-GB">Load the data from the audit file into the new table using the SQL copy command, </span></p>
<p class="MsoNormal"><span lang="EN-GB">eg. </span><span style="font-family: &quot;Courier New&quot;;">copy table audit_tbl<span> </span>() from &#8216;originaltable.trl&#8217;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h3><span lang="EN-GB">Step 4. Analyse the audit data.</span></h3>
<p class="MsoNormal"><span lang="EN-GB">Connect to the database and analyse the audit table</span></p>
<p class="MsoNormal"><span lang="EN-GB">eg. </span><span style="font-family: &quot;Courier New&quot;;">select * from audit_tbl where username = ‘Joe’</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><span lang="EN-GB">Reference Guides</span></h2>
<p class="MsoNormal"><span lang="EN-GB">To find out more about database backup and recovery, see the Ingres DBA Guide - <a href="http://docs.ingres.com/dba/">http://docs.ingres.com/dba/</a></span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">The Ingres Command Reference Guide shows the full syntax for the Ingres operating system commands discussed in the document - <a href="http://docs.ingres.com/cmdref/">http://docs.ingres.com/cmdref/</a></span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">The Ingres SQL Reference shows the syntax of the SQL commands discussed in this document - <a href="http://docs.ingres.com/sqlref/">http://docs.ingres.com/sqlref/</a></span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><span lang="EN-GB">Example Script to automatically analyse Journal Data</span></h2>
<p class="MsoNormal"><span lang="EN-GB">This whole process can be automated with the help of copydb, eg.</span></p>
<p class="MsoNormal"><span lang="EN-GB">A bash script (auddb.bash) to audit the contents of a particular table</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">#!/bin/bash</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Audit a table’s journals using QBF</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Syntax<span> </span>audddb.bash <em>dbname tablename</em></span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Author. M Flower<span> </span>13/11/2008</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Need to add a check that both parameters have been defined</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">if test $# -lt 2</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">then</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>echo &#8216;Syntax Error.&#8217;</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span></span><span style="font-family: &quot;Courier New&quot;;">echo &#8216;Syntax:<span> </span>&#8216; $0 &#8216;dbname tablename&#8217;</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>exit 1</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">fi</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">DBNAME=$1</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">TBLNAME=$2</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Define workfiles</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">COPYINFILE=$$copy.in</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">COPYOUTFILE=$$copy.out</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">TRLFILE=$$.trl</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">#cd to a temp directory,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">cd `ingprenv II_TEMPORARY`</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">auditdb $DBNAME -file=$TRLFILE -table=$TBLNAME</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Check that the TRL file has been created</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">if test -f $TRLFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">then</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>echo &#8216;Audit file created&#8217;</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">else</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>echo &#8216;Error; No audit file &#8216; $TRLFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span></span><span style="font-family: &quot;Courier New&quot;;">exit 1</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">fi</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">copydb $DBNAME $TBLNAME -with_tables -no_loc -noint -infile=$COPYINFILE -outfile=$COPYOUTFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># check that the copy.in script has been created</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">if test -f $COPYINFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">then</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>echo &#8216;Copyin file created&#8217;</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">else</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span>echo &#8216;Error; No copyin file &#8216; $COPYINFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"><span> </span></span><span style="font-family: &quot;Courier New&quot;;">exit 1</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">fi</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">ed $COPYINFILE &lt;&lt; !</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">/create table $TBLNAME</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">s/create table $TBLNAME/create table aud_$TBLNAME /</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">+1</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">i</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">date<span> </span>date<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">username<span> </span>char(32)<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">operation<span> </span>char(8)<span> </span>not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">tran_id1<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">tran_id2<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">table_id1<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">table_id2<span> </span>integer not null with default,</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">$</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">a</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">copy table aud_$TBLNAME () from &#8216;$TRLFILE&#8217; pg</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">w</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">q</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">!</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Run the amended copy.in</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Note that the DBNAME could be changed here.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Maybe introduce another parameter TARGETDB</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">sql $DBNAME &lt;<span> </span>$COPYINFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"># Remove workfiles</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">rm $TRLFILE $COPYINFILE $COPYOUTFILE</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">#Launch qbf against</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: &quot;Courier New&quot;;">qbf -t $DBNAME aud_$TBLNAME</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.ingres.com/debwoods/2008/11/19/using-ingres-journals-for-audit-purposes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
