<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Ingres Community Forums - Blogs - Alan.Raison</title>
		<link>http://community.ingres.com/forum/blogs/alan-raison/</link>
		<description><![CDATA[Ingres Corporation is a leading provider of open source database management software and support services. [Toll Free] +1 (888) 446-4737]]></description>
		<language>en</language>
		<lastBuildDate>Tue, 09 Feb 2010 14:17:23 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>http://community.ingres.com/forum/ingres4/misc/rss.jpg</url>
			<title>Ingres Community Forums - Blogs - Alan.Raison</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/</link>
		</image>
		<item>
			<title>Ingres SQLAlchemy dialect available</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/30-ingres-sqlalchemy-dialect-available.html</link>
			<pubDate>Fri, 27 Nov 2009 09:59:15 GMT</pubDate>
			<description>The Ingres dialect for SQLAlchemy 0.6 is now available through SVN from http://code.ingres.com/apps/SQLAlchemy. 
 
SQLAlchemy is an ORM framework for...</description>
			<content:encoded><![CDATA[<div>The Ingres dialect for SQLAlchemy 0.6 is now available through SVN from [url=http://code.ingres.com/apps/SQLAlchemy]http://code.ingres.com/apps/SQLAlchemy[/url].<br />
<br />
SQLAlchemy is an ORM framework for Python, allowing Python objects to be direclty mapped to database tables.<br />
<br />
Ingres has a DBI driver for Python; this is available for download from [url=http://esd.ingres.com]http://esd.ingres.com[/url] or from the Ingres Subversion repository ([url=http://code.ingres.com/ingres/drivers/python]http://code.ingres.com/ingres/drivers/python[/url]).  This is required to use SQLAlchemy.<br />
<br />
In order to use Ingres with SQLAlchemy, you will need to first check out the SQLAlchemy source code from [url=http://svn.sqlalchemy.org/sqlalchemy]http://svn.sqlalchemy.org/sqlalchemy[/url].  Then export the Ingres dialect into the same folder.  Edit lib/sqlalchemy/dialects/__init__.py to include 'ingres' in the __all__ list, then install SQLAlchemy into your python package directory using python setup.py install.<br />
<br />
Hope you followed that!!<br />
<br />
The intention is to release this to the main SQLAlchemy project; watch this space for news!</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/30-ingres-sqlalchemy-dialect-available.html</guid>
		</item>
		<item>
			<title>ORM News</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/23-orm-news.html</link>
			<pubDate>Wed, 21 Oct 2009 09:48:13 GMT</pubDate>
			<description><![CDATA[I thought I'd post a link to an article about the new features in the JPA 2.0 spec, written by Kevin Sutter, who also contributes to OpenJPA.  Check...]]></description>
			<content:encoded><![CDATA[<div>I thought I'd post a link to an article about the new features in the JPA 2.0 spec, written by Kevin Sutter, who also contributes to OpenJPA.  [URL=&quot;http://www.ibm.com/developerworks/websphere/techjournal/0909_col_sutter/0909_col_sutter.html&quot;]Check out the article here[/URL].<br />
<br />
I've also been working with the Python ORM framework [URL=&quot;http://www.sqlalchemy.org/&quot;]SQLAlchemy[/URL].  This has a basic dialect for Ingres 9.2 now, which we hope to release to the community when we get time to run through the unit tests and fix any bugs.<br />
<br />
Ingres has had a Hibernate dialect availble on [URL=&quot;http://esd.ingres.com&quot;]esd.ingres.com[/URL] for a while now, but I don't know much about that.<br />
<br />
I feel a bit like &quot;the ORM man&quot; at work now, so let me know if there's any more that we need to check out!!</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/23-orm-news.html</guid>
		</item>
		<item>
			<title>Ingres Dictionary Submitted to OpenJPA</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/16-ingres-dictionary-submitted-openjpa.html</link>
			<pubDate>Mon, 24 Aug 2009 11:14:58 GMT</pubDate>
			<description>The Ingres Dictionary for OpenJPA is now part of the main Apache OpenJPA release (trunk and version 1.3.0).  Download it now from openjpa.apache.org...</description>
			<content:encoded><![CDATA[<div>The Ingres Dictionary for OpenJPA is now part of the main Apache OpenJPA release (trunk and version 1.3.0).  Download it now from [url=http://openjpa.apache.org]openjpa.apache.org[/url].<br />
<br />
To use Ingres as the data store, set the openjpa.ConnectionDriverName property to com.ingres.jdbc.IngresDriver and the openjpa.ConnectionURL property to the Ingres JDBC URL.  You can also set openjpa.ConnectionUserName and openjpa.ConnectionPassword if required.  Finally ensure that the iijdbc.jar is on your classpath.<br />
<br />
In order to use LOB locators, databases must be created with the -n flag in createdb.<br />
<br />
Some applications are known to run using this dictionary; if you have any of your own experience with this then let me know!</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/16-ingres-dictionary-submitted-openjpa.html</guid>
		</item>
		<item>
			<title>More Maven Info</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/12-more-maven-info.html</link>
			<pubDate>Tue, 28 Jul 2009 10:02:43 GMT</pubDate>
			<description>A few weeks ago, I posted a little bit of information about Maven. 
 
Since then I found a very good reference for Maven: Maven: The Definitive Guide...</description>
			<content:encoded><![CDATA[<div>A few weeks ago, I posted a little bit of information about Maven.<br />
<br />
Since then I found a very good reference for Maven: [URL=&quot;http://www.sonatype.com/books/maven-book/reference/&quot;]Maven: The Definitive Guide[/URL] by Sonatype.<br />
<br />
If you're a Java developer who is unfamiliar with Maven, I strongly recommend that you read it.</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/12-more-maven-info.html</guid>
		</item>
		<item>
			<title>Ingres JDBC and Maven</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/9-ingres-jdbc-maven.html</link>
			<pubDate>Thu, 09 Jul 2009 09:45:25 GMT</pubDate>
			<description><![CDATA[Java developers may be familiar with Maven (http://maven.apache.org), the dependency management and project lifecycle mananagement tool.  It's really...]]></description>
			<content:encoded><![CDATA[<div>Java developers may be familiar with [url=http://maven.apache.org]Maven[/url], the dependency management and project lifecycle mananagement tool.  It's really good at managing a structured project and best of all it automatically downloads and adds to the Java classpath any declared dependencies.<br />
<br />
These dependency JARs are stored in Maven repositories and by default Maven only looks in the so-called &quot;Central&quot; repository, at [url=http://repo1.maven.org/maven2]repo1.maven.org/maven2[/url].<br />
<br />
For a while I have been trying to get the Ingres JDBC driver into this central repository and this morning I found out that our request has been successful!  This makes it really easy for Java developers to integrate the Ingres JDBC driver into their Maven-controlled projects.<br />
<br />
Each Maven project has a project object model, or POM file, pom.xml (See [url=http://maven.apache.org/pom.html]Maven - POM Reference[/url] for details).  This has a &lt;dependencies&gt; section into which dependencies for the project can be declared.<br />
<br />
In order to add the Ingres JDBC driver as a dependency, add the following inside the &lt;dependencies&gt; tag:<br />
[code]&lt;dependency&gt;<br />
    &lt;groupId&gt;com.ingres.jdbc&lt;/groupId&gt;<br />
    &lt;artifactId&gt;iijdbc&lt;/artifactId&gt;<br />
&lt;/dependency&gt;[/code]<br />
<br />
And that's it!  That will include the latest JDBC driver in your project.<br />
<br />
If you want to specify a particular version to use, you need the Database version and the JDBC driver version.  The following are currently held in the central Maven repository:<br />
[code]<br />
Ingres Version    | JDBC Driver Version | Maven Version<br />
Ingres 2006 Rls 2 | 3.2.4               | 9.1-3.4.2<br />
9.2               | 3.4.7               | 9.2-3.4.7<br />
9.2               | 3.4.8               | 9.2-3.4.8[/code]<br />
<br />
The default version is currently 9.2-3.4.8.<br />
<br />
It would be great to hear about your experiences with this.  Obviously you will need an Ingres database to connect to, so head over to [url]esd.ingres.com[/url] to download that too!<br />
<br />
Thanks to Teresa, Grant, Phil and the Maven guys for making this happen!</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/9-ingres-jdbc-maven.html</guid>
		</item>
		<item>
			<title>Ingres New Features</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/8-ingres-new-features.html</link>
			<pubDate>Fri, 03 Jul 2009 10:30:55 GMT</pubDate>
			<description>I recently learnt that Ingres 9.2 has introducted the facility to restrict the rows returned from a query by specifying an offset. 
 
Where...</description>
			<content:encoded><![CDATA[<div>I recently learnt that Ingres 9.2 has introducted the facility to restrict the rows returned from a query by specifying an offset.<br />
<br />
Where previously you would only be able to select the first n rows:<br />
SELECT FIRST n col_name FROM table WHERE col_name = 'value';<br />
<br />
There is now an &quot;OFFSET&quot; clause:<br />
SELECT FIRST n col_name FROM table WHERE col_name = 'value' OFFSET m;<br />
<br />
I went about implementing this in OpenJPA, but found that this dual-location for the Select Range specification was going to cause trouble, so I'd have to override a core method.  The problem with that was that the method in question was marked &quot;private&quot;, so an override wouldn't have the desired effect!  I posted on the developer mailing list about this and they had no problem to me opening up the access, but then I heard about another syntax:<br />
<br />
SELECT col_name FROM table WHERE col_name = 'value' OFFSET m FETCH FIRST n ROWS ONLY;<br />
<br />
(FIRST can also be replaced by the keyword &quot;NEXT&quot;)<br />
<br />
This solved my problems, as I was able to specify the range at the end of the query; OpenJPA had a constant for specifying this position (DBDictionary.RANGE_POST_SELECT).<br />
<br />
I had a quick play with this new syntax, wondering what<br />
SELECT FIRST x col_name FROM table OFFSET y FETCH NEXT z ROWS ONLY;<br />
would do.  Fortunately Ingres prevented me from mixing the FIRST and FETCH FIRST z tokens in a single statement!<br />
<br />
Obviously, when restricting the number of rows selected it is important to have a guaranteed ordering, so an ORDER BY clause should also be used.  The ORDER BY clause comes before the OFFSET/FETCH FIRST clause.<br />
<br />
There's always loads of new features being added to Ingres; these were added in the 9.2 release.  For a summary of the new features in a given release, see the Release Summary document; this is currently available for Ingres 9.2 at [url]docs.ingres.com[/url].</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/8-ingres-new-features.html</guid>
		</item>
		<item>
			<title>Getting into OpenJPA</title>
			<link>http://community.ingres.com/forum/blogs/alan-raison/7-getting-into-openjpa.html</link>
			<pubDate>Wed, 24 Jun 2009 16:24:59 GMT</pubDate>
			<description>A while ago we were approached by a company using OpenJPA for their product wanting us to help them port it to Ingres.  It fell to me to do the work...</description>
			<content:encoded><![CDATA[<div>A while ago we were approached by a company using OpenJPA for their product wanting us to help them port it to Ingres.  It fell to me to do the work and it ended up being really interesting, so I thought I'd share some of the progress that's been made.<br />
<br />
JPA is a &quot;Persistence Framework&quot; for Java, meaning a way to store a program's data, usually represented in an application as objects, into a database.  [url=http://openjpa.apache.org]OpenJPA[/url] is the Apache Foundation's implementaion of this framework.  Its design allows for the underlying datastore to be easily changed with minimal reconfiguration - and no recoding.  This is exactly the sort of vendor-neutral design that we strive for at Luminary and so getting Ingres support would be really useful for the whole community.<br />
<br />
The initial development went well and the company have been using their product against Ingres for a little while now, so it seems to do the trick!  It will soon be submitted to the Apache Foundation as part of the main OpenJPA build but there's still a few bugs to iron out.<br />
<br />
The really interesting part of the development was looking inside the Ingres JDBC driver and getting to know some of the Ingres development team who look after it.</div>

]]></content:encoded>
			<dc:creator>Alan.Raison</dc:creator>
			<dc:publisher>5003</dc:publisher>
			<guid isPermaLink="true">http://community.ingres.com/forum/blogs/alan-raison/7-getting-into-openjpa.html</guid>
		</item>
	</channel>
</rss>
