<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Postgres OnLine Journal - pagila</title>
    <link>http://www.postgresonline.com/journal/</link>
    <description>an In depth look at the PostgreSQL open source database</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Wed, 14 Jul 2010 08:03:56 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - pagila - an In depth look at the PostgreSQL open source database</title>
        <link>http://www.postgresonline.com/journal/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>REST in PostgreSQL Part 3 B - The REST Client in Adobe Flex 3 with Paging</title>
    <link>http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html</link>
            <category>adobe flex</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=52</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In prior articles of this series, we covered the following:
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&lt;/a&gt; we demonstrated a REST web service using PHP 5&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A---Simple-REST-Client-in-Adobe-Flex-3.html&quot; target=_blank&gt;REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3&lt;/a&gt; we demonstrated a basic REST client in Adobe Flex&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt;

&lt;P&gt;In this article we shall continue where we left off by adding paging functionality to our Adobe Flex REST grid client.&lt;/P&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 3 B - The REST Client in Adobe Flex 3 with Paging&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 19 May 2008 15:06:23 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/52-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3</title>
    <link>http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html</link>
            <category>adobe flex</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>mono .NET</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=49</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=49</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In prior articles of this series, we covered the following:
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&lt;/a&gt; we demonstrated a REST web service using PHP 5&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 07 May 2008 15:45:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/49-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 2 B - The REST Server service with PHP 5</title>
    <link>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html</link>
            <category>adodb</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;This is a continuation of our REST series.  The following topics have already been covered &lt;/P&gt;
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function that spits out XML to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
&lt;/OL&gt;
&lt;br /&lt;br /&gt;
Now in this Part 2B series, we shall demonstrate the same REST server service using PHP 
&lt;/P&gt;

&lt;h4&gt;Setting up the PHP application&lt;/h4&gt;
&lt;OL&gt;
	&lt;LI&gt;
		&lt;P&gt;PHP already has the PostgreSQL drivers available as a .so (on Linux) or .dll on Windows.  For windows users if you
			are running PHP under IIS and in ISAPI mode, you will not be able to dynamically load libraries, so you need to enable &lt;b&gt;php_pgsql&lt;/b&gt; in your PHP.ini file.
		&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;We tend to keep it enabled regardless of which platform we are on since a lot of our PHP development involves PostgreSQL.   The extension is &lt;i&gt;php_pgsql&lt;/i&gt; in the php.ini file&lt;/LI&gt;
	&lt;LI&gt;PHP has numerous database abstraction libraries to choose from.  We are using the adodb abstraction library for PHP which can be downloaded from &lt;a href=&quot;http://adodb.sourceforge.net/&quot; target=_blank&gt;http://adodb.sourceforge.net/&lt;/a&gt;.
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 09 Apr 2008 22:28:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/42-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET</title>
    <link>http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>mono .NET</category>
            <category>pagila</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;h4&gt;Setting up the .NET application&lt;/h4&gt;
&lt;OL&gt;
	&lt;LI&gt;
		&lt;P&gt;Download the npgsql 1.01 driver from pgfoundary - 
		&lt;a href=&quot;http://pgfoundry.org/projects/npgsql&quot; target=_blank&gt;http://pgfoundry.org/projects/npgsql&lt;/a&gt;.
		For ASP.NET 2.0 you&#039;ll want - Npgsql1.0.1-bin-ms2.0.zip and for Mono.NET you&#039;ll want Npgsql1.0.1-bin-mono-2.0.zip.  Unzip and place the files in bin folder of your web app project.
		&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;Since we are just creating a simple REST web service and don&#039;t need any plumming of the standard SOAP like webservice, we will be using
	a .NET handler class (ashx) instead of an asmx. We have two versions listed below.  One for C# and one for VB.NET/Mono Basic&lt;/LI&gt;
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Mar 2008 22:33:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/37-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 1 - The DB components</title>
    <link>http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>plpgsql</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=36</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In this section we&#039;ll go over creating the views and stored functions that our REST Server service will rely on.&lt;/P&gt;
&lt;P&gt;Our REST service will be a thin wrapper around a pgsql function that accepts film queries and returns results in XML.&lt;/P&gt;

&lt;h4&gt;Loading the database&lt;/h4&gt;
&lt;P&gt;&lt;b&gt;Step 1:&lt;/b&gt; Download the Pagila 0.10.0 database from 
&lt;a href=&quot;http://pgfoundry.org/frs/?group_id=1000150&amp;release_id=570&quot; target=&quot;_blank&quot;&gt;http://pgfoundry.org/frs/?group_id=1000150&amp;release_id=570&lt;/a&gt;
and load the Pagila database using the following commands: &lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;For windows users - psql is usually located at &lt;em&gt;&quot;C:\Program Files\PostgreSQL\8.3\bin\psql&quot;&lt;/em&gt;&lt;br /&gt;
&lt;PRE&gt;
&lt;CODE&gt;
psql -h localhost -p 5433 -U postgres -c &quot;CREATE DATABASE pagila ENCODING &#039;UTF8&#039;&quot;
psql -h localhost -p 5433 -U postgres -c &quot;CREATE ROLE pagila_app LOGIN PASSWORD &#039;pg@123&#039;&quot;
psql -h localhost -p 5433 -U postgres -d pagila -f &quot;pagila-schema.sql&quot;
psql -h localhost -p 5433 -U postgres -d pagila -f &quot;pagila-data.sql&quot;
&lt;/CODE&gt;
&lt;/PRE&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 1 - The DB components&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 16 Mar 2008 18:33:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/36-guid.html</guid>
    
</item>
<item>
    <title>Showcasing REST in PostgreSQL - The PreQuel</title>
    <link>http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=32</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=32</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;h4&gt;What is REST?&lt;/h4&gt;
&lt;P&gt;
Representationl State Transfer (REST) is a term to describe an architectural style of sharing information with consumers using already existing protocols such as HTTP. In the strictest sense of the term, the transport protocol need not be HTTP. &lt;/P&gt;
REST was first coined by &lt;a href=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm&quot; target=_blank&gt;Roy Fielding in his
year 2000 doctoral thesis&lt;/a&gt;. Unlike things like Simple Object Access Protocol (SOAP), Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA), it is not an architecture nor a protocol but rather a style
of architecture.  As a result, a lot of things that don&#039;t call themselves &lt;b&gt;RESTFUL&lt;/b&gt; full under that umbrella or use some of the same concepts, or can arguably fall under that umbrella.
&lt;/P&gt;
&lt;P&gt;What is probably so alluring about REST is that it gives a catchy name to something a lot of people were doing already and describes how much of the web operates. 
Contrary to some popular belief, it is not NEW technology but rather a grouping of mainstream technology with a flashier name.  Part of this confusion is that the cult following of REST is a fairly new phenomenon although the underpinnings are relatively old.  The REST movement reflects a return back to the basics that prioritizes simplicity and accessibility over complexity and formality.
Nowadays REST is most often used to refer to web services where resources are requested via plain URIs and GET requests, representations are returned in simple XML or JSON format and resources are created using POST, updated using PUT and deleted using DELETE HTTP verbs.  This is similar to XML-RPC except that
XML-RPC has a concept of state and everything is generally encoded in an XML message envelop. XML-RPC also uses POST for both updating and accessing resources unlike REST which tends to use GETS and URIS for resource access. The advantage of using get is that resources can be bookmarked.  SOAP is similar to XML-RPC and in fact was born from the XML-RPC standard except the XML message streams are more complicated and formal, but arguably richer in functionality.&lt;/P&gt;

&lt;P&gt;Contrary to some popular belief, REST is not a silver bullet nor was it designed to be.  It doesn&#039;t work for all problems and web applications.  Our personal opinion: REST is well suited for transporting data that will be consumed by various kinds
of clients, but is not well suited for updating of data or where authenticated transactions are needed. &lt;/P&gt;

&lt;P&gt;REST has 4 basic features that differentiate/and it shares with similar Architectural styles.  

&lt;OL&gt;
	&lt;LI&gt;&lt;b&gt;Client Stateless Server&lt;/b&gt; - As the name suggests - the state of an object is part of the message, and is commonly referred to as a stateless communication.  It is not done with things like Session cookies where the 
	server maintains some stateful view of the client and the client passes a session cookie saying (here is my ticket - give me my state).  The server does not hold information about state, only the client.  
	Right away one can tell - this can not work for all modes of communication that require immense amounts of state information to be maintained, but does have the advantage of should the application server hiccup or connection to the server times out or breaks only the current message is lost.  
	It also works well for Web-Farms that are simply outputing data since the need for such Web-Farms to replicate state is not needed (think image caching networks such as Akamai).&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Client-Cache&lt;/b&gt; - The idea of client caching.  The server can dictate certain requests as being cacheable and if cacheable a client can use the cache request to satisfy future similar requests instead of going back to the server.  This saves on band-width but has disadvantage of possibly resulting in stale results. Keep in mind again this concept is not
	new and most webservers are designed to work that way and pass this info via http headers.&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Layered System&lt;/b&gt; - two way interaction.  In a REST style architecture, there is a client and a server.  The client is only dependent on the server it communicates with.  It has no knowledge of the components the server uses to fulfill its request.  
	That server can be a client in another REST interaction and keep its own cache to serve up like requests.  This does not break the &lt;i&gt;client keeps the cache&lt;/i&gt; rule as the server is acting as a client in this context.  Think &lt;b&gt;DNS&lt;/b&gt;. DNS is a perfect example of such a style where intermediaries cache 
	requests for a certain period of time and act as clients to DNS servers further up the root and behave as servers to DNS and client computers below.&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Resource and Resource Identifiers&lt;/b&gt; - REST is predominantly a mechanism for accessing resources although it can be used for editing as well.  The
	key element of it is a mechanism for defining resources, 
		how a resource or grouping of resources are requested via a Resource Identifier (URL or URN), transfer of representation via (HTML, XML, Jpeg etc.),
			representational metadata  (e.g. media type, last modified), control data (such as how long it can be cached). Yes this is pretty much 
			a common concept in web interfaces.&lt;/LI&gt;
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html#extended&quot;&gt;Continue reading &quot;Showcasing REST in PostgreSQL - The PreQuel&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 12 Mar 2008 06:49:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/32-guid.html</guid>
    
</item>
<item>
    <title>Reading PgAdmin Graphical Explain Plans</title>
    <link>http://www.postgresonline.com/journal/archives/27-Reading-PgAdmin-Graphical-Explain-Plans.html</link>
            <category>basics</category>
            <category>beginner</category>
            <category>pagila</category>
            <category>pgadmin</category>
    
    <comments>http://www.postgresonline.com/journal/archives/27-Reading-PgAdmin-Graphical-Explain-Plans.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=27</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;One of our favorite features of PgAdmin is the graphical explain plan feature.  While a graphical explain plan is not a complete
substitute for EXPLAIN or EXPLAIN ANALYZE text plans, it does provide a quick and easy to read view that can be used for further analysis.
In this article, we&#039;ll walk thru using
the explain plan to troubleshoot query performance.
&lt;/P&gt;
&lt;P&gt;To use the graphical explain plan feature in PgAdmin III - do the following &lt;/P&gt;
&lt;OL&gt;
	&lt;LI&gt;Launch PgAdmin III and select a database.&lt;/LI&gt;
	&lt;LI&gt;Click the SQL icon &lt;img src=&quot;/images/journal/explain_sql.png&quot; alt=&quot;SQL icon&quot; /&gt;&lt;/LI&gt;
	&lt;LI&gt;Type in a query or set of queries, and highlight the text of the query you want to analyse.&lt;/LI&gt;
	&lt;LI&gt;Click the F7 button or go under Query-&gt;Explain or click the Explain Query icon &lt;img src=&quot;/images/journal/explain_query.png&quot; alt=&quot;Explain Query&quot; /&gt;.&lt;/LI&gt;
	&lt;LI&gt;If you see no graphical explain plan, &lt;b&gt;make sure that Query-&gt;Explain options-&gt;Verbose is unchecked&lt;/b&gt; - otherwise graphical explain will not work&lt;/LI&gt;
	&lt;LI&gt;In terms of Explain option under the Query-&gt;Explain options-&gt; you can choose &lt;em&gt;Analyze&lt;/em&gt; which will give you the actual Explain plan in use and actual time and will take longer to run.  Unchecking
		this feature gives you the approximate explain plan and does not include time since its approximate.  In terms of the graphical display - the raw display doesn&#039;t look too different between the 2, but if you click
			on a section of the graph, a little tip will pop up showing the stats for that part of the graph.  For analyze, you will see time metrics in the tip.&lt;/LI&gt;
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/27-Reading-PgAdmin-Graphical-Explain-Plans.html#extended&quot;&gt;Continue reading &quot;Reading PgAdmin Graphical Explain Plans&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 08 Feb 2008 20:59:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/27-guid.html</guid>
    <category>performance optimization</category>
<category>pgadmin</category>

</item>
<item>
    <title>Using MS Access with PostgreSQL</title>
    <link>http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>ms access</category>
            <category>pagila</category>
            <category>tsearch</category>
    
    <comments>http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=24</wfw:comment>

    <slash:comments>36</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=24</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;
Many in the PostgreSQL community use Microsoft Access as a front-end to their PostgreSQL databases.
Although MS Access is strictly a windows application and PostgreSQL has its roots in Unix, the two go well together.  A large part of that reason is because
the PostgreSQL ODBC driver is well maintained and has frequent updates.  You can expect one new ODBC driver release every 4-6 months.  There exist only 32-bit production quality drivers.  The 64-bit driver is of alpha quality.  In addition to other front-ends to PostgreSQL that utilize the ODBC driver used by Windows developers, there is VB 6 (VB.NET/C# use the ADO.NET driver also very well maintained), Visual FoxPro, Delphi, to name a few).
&lt;/P&gt;

&lt;P&gt;People who have never used Microsoft Access or anything like it and consider themselves hard-core programmers or database purists, dismiss Microsoft Access as a dangerous child&#039;s toy, causing nothing but grief when real programmers and database administrators have to debug the
disorganized mess of amateurs.  They dream of the day when this nuisance is rid of and their company can be finally under the strict bureaucratic control of well-designed apps that no one cares to use.&lt;/P&gt;
&lt;P&gt;
Beneath the croft of this dinkiness/dangerous toy is a RAD and Reporting tool that
can connect to any database with an ODBC or ADO driver.  It serves the unique niche of &lt;br /&gt;
&lt;OL&gt;&lt;LI&gt;Empowering a knowledge worker/beginner programmer/DB user who is slowly discovering the wonders of relational databases and what time savings such a tool can provide.&lt;/LI&gt; 
&lt;LI&gt;On the other side - it is inviting to the pragmatic (lazy) database programmer who has spent precious time to investigate its gems. The pragmatist sees it as a tool which provides a speedy development environment and intuitive reporting environment. It allows one to give more freedom to less experienced users, thus relieving one of tedious requests for information. By using it as a front-end to a strong server-side database such as PostgreSQL, it allows one to enforce a sufficient 
level of data integrity and control.  The pragmatist realizes that often the best way to maintain order is to not fight disorder because the more you try to restrict 
people&#039;s freedoms, the craftier they get in devising ways of circumventing your traps.
The pragmatic programmer also takes the view of &lt;em&gt;Give a man a fish and he will pester you for more fish.  Teach a man to fish and he will help you catch bigger fish.&lt;/em&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html#extended&quot;&gt;Continue reading &quot;Using MS Access with PostgreSQL&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 31 Jan 2008 12:17:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/24-guid.html</guid>
    <category>msaccess</category>

</item>
<item>
    <title>The Anatomy of PostgreSQL - Part 2 - Database Objects</title>
    <link>http://www.postgresonline.com/journal/archives/20-The-Anatomy-of-PostgreSQL-Part-2-Database-Objects.html</link>
            <category>basics</category>
            <category>beginner</category>
            <category>db2</category>
            <category>mysql</category>
            <category>oracle</category>
            <category>pagila</category>
            <category>pgadmin</category>
            <category>sql server</category>
    
    <comments>http://www.postgresonline.com/journal/archives/20-The-Anatomy-of-PostgreSQL-Part-2-Database-Objects.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In the first part of this series, &lt;a href=&quot;http://www.postgresonline.com/journal/archives/2-The-Anatomy-of-a-PostgreSQL---Part-1.html&quot; target=_blank&gt;The Anatomy of PostgreSQL - Part 1&lt;/a&gt;, we covered PostgreSQL Server object features.  In this part, we shall explore 
the database and dissect the parts.&lt;/P&gt;

&lt;P&gt;Here we see a snapshot of what a standard PostgreSQL database looks like from a PgAdmin interface. 
&lt;img src=&quot;/images/journal/pgdbview.jpg&quot; class=&quot;Image_Float_Right&quot; /&gt;&lt;br /&gt;
&lt;OL&gt;
	&lt;LI&gt;Catalogs - these hold meta data information and built-in Postgres objects&lt;/LI&gt;
	&lt;LI&gt;Casts - control how Postgres casts from one datatype to another.&lt;/LI&gt;
	&lt;LI&gt;Languages - these are the languages you can define stored functions, aggregates and triggers in.&lt;/LI&gt;
	&lt;LI&gt;Schemas - logical containers for database objects.&lt;/LI&gt;
	&lt;LI&gt;Aggregates - holder for aggregate functions and custom built aggregate functions.&lt;/LI&gt;
	&lt;LI&gt;Conversions&lt;/LI&gt;
	&lt;LI&gt;Domains&lt;/LI&gt;
	&lt;LI&gt;Functions&lt;/LI&gt;
	&lt;LI&gt;Operators&lt;/LI&gt;
	&lt;LI&gt;Operator Classes&lt;/LI&gt;
	&lt;LI&gt;Operator Families - this is not shown in the diagram and is new in PostgreSQL 8.3&lt;/LI&gt;
	&lt;LI&gt;Sequences - objects for implementing autonumbers&lt;/LI&gt;
	&lt;LI&gt;Tables - self-explanatory but we&#039;ll cover the various object properties of a table such as indexes, rules, triggers, and constraints.&lt;/LI&gt;
	&lt;LI&gt;Trigger Functions - these are functions you create that get called from a PostgreSQL table trigger body.&lt;/LI&gt;
	&lt;LI&gt;Types - this is one of the key elements that qualifies PostgreSQL as an object relational database,  the fact that one can define new data types.&lt;/LI&gt;
	&lt;LI&gt;Views - virtual tables&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/20-The-Anatomy-of-PostgreSQL-Part-2-Database-Objects.html#extended&quot;&gt;Continue reading &quot;The Anatomy of PostgreSQL - Part 2 - Database Objects&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 24 Jan 2008 18:56:00 -0500</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/20-guid.html</guid>
    
</item>

</channel>
</rss>
