<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: Tag postgresql</title>
    <link>http://blog.zabiello.com/articles/tag/postgresql</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>PostgreSQL vs MySQL vs MSSQL2K</title>
      <description>&lt;p&gt;Zawsze dziwi&#322;em si&#281; dlaczego aplikacje komunikuj&#261;ce si&#281; z &lt;span class="caps"&gt;MSSQL&lt;/span&gt; chodz&#261; tak niemrawo. Zrobi&#322;em sobie szybki test szybko&#347;ci. Na tym samym komputerze zainstalowa&#322;em: &lt;span class="caps"&gt;MSSQL 2000 SP4&lt;/span&gt;, MySQL 5.0.27 i PostgreSQL 8.2.3. Zadanie by&#322;o proste, pobra&#263; list&#281; tabel w bazie.&lt;/p&gt;


	&lt;p&gt;U&#380;yto nast&#281;puj&#261;cego kodu w Pythonie:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;adodbapi&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;MySQLdb&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;psycopg2&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;time&lt;/span&gt;
&lt;span class="ident"&gt;conn&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;[&lt;/span&gt;
  &lt;span class="punct"&gt;(&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;mysql&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="constant"&gt;MySQLdb&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;connect&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;user&lt;/span&gt;&lt;span class="punct"&gt;='&lt;/span&gt;&lt;span class="string"&gt;root&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="ident"&gt;db&lt;/span&gt;&lt;span class="punct"&gt;='&lt;/span&gt;&lt;span class="string"&gt;test&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;SHOW TABLES&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt;
  &lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;pgsql&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="ident"&gt;psycopg2&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;connect&lt;/span&gt;&lt;span class="punct"&gt;(&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;user='postgres' password='test''&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;),&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;SELECT * FROM pg_tables jdb273&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt;
  &lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;mssql ado&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="ident"&gt;adodbapi&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;connect&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;EXEC sp_tables&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt;
  &lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;mssql odbc&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;odbc&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;DRIVER={SQL Server};SERVER=localhost;DATABASE=test;UID=sa;PWD=test&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;EXEC sp_tables&lt;/span&gt;&lt;span class="punct"&gt;'),&lt;/span&gt;
  &lt;span class="punct"&gt;]&lt;/span&gt;
&lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;test&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;repeat&lt;/span&gt;&lt;span class="punct"&gt;=&lt;/span&gt;&lt;span class="number"&gt;100&lt;/span&gt;&lt;span class="punct"&gt;):&lt;/span&gt;
  &lt;span class="keyword"&gt;for&lt;/span&gt; &lt;span class="ident"&gt;c&lt;/span&gt; &lt;span class="keyword"&gt;in&lt;/span&gt; &lt;span class="ident"&gt;conn&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;
    &lt;span class="ident"&gt;dbtype&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;db&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;sql&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;c&lt;/span&gt;
    &lt;span class="ident"&gt;print&lt;/span&gt; &lt;span class="ident"&gt;dbtype&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt;
    &lt;span class="ident"&gt;t&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt;
    &lt;span class="keyword"&gt;for&lt;/span&gt; &lt;span class="ident"&gt;i&lt;/span&gt; &lt;span class="keyword"&gt;in&lt;/span&gt; &lt;span class="ident"&gt;range&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;repeat&lt;/span&gt;&lt;span class="punct"&gt;):&lt;/span&gt;
      &lt;span class="ident"&gt;cursor&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;cursor&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt;
      &lt;span class="ident"&gt;cursor&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;execute&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;sql&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
      &lt;span class="ident"&gt;rows&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;cursor&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;fetchall&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt;
      &lt;span class="ident"&gt;cursor&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;close&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt;
    &lt;span class="ident"&gt;print&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;%d req/s&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="punct"&gt;%&lt;/span&gt; &lt;span class="ident"&gt;round&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;repeat&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt; &lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;time&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt; &lt;span class="punct"&gt;-&lt;/span&gt; &lt;span class="ident"&gt;t&lt;/span&gt;&lt;span class="punct"&gt;))&lt;/span&gt;
&lt;span class="keyword"&gt;if&lt;/span&gt; &lt;span class="ident"&gt;__name__&lt;/span&gt; &lt;span class="punct"&gt;==&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;__main__&lt;/span&gt;&lt;span class="punct"&gt;':&lt;/span&gt;
  &lt;span class="ident"&gt;test&lt;/span&gt;&lt;span class="punct"&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;U&#380;yta konfiguracja:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;WinXP Pro 2000 &lt;span class="caps"&gt;SP2&lt;/span&gt;, P4 3.2GHz, 1GB &lt;span class="caps"&gt;RAM&lt;/span&gt;.&lt;/li&gt;
		&lt;li&gt;Python 2.5&lt;/li&gt;
		&lt;li&gt;MySQL v5.0. 27, driver: MySQLdb v1.2.2&lt;/li&gt;
		&lt;li&gt;PostgreSQL v8.2.3, driver: psycopg2 v2.0.6b1 (dec dt ext pq3)&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;MSSQL 2000 SP4&lt;/span&gt;, driver: &lt;span class="caps"&gt;ADO&lt;/span&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Wyniki:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;:\&lt;/span&gt;&lt;span class="ident"&gt;home\app\bench\scripts&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ident"&gt;bench_db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;py&lt;/span&gt;
&lt;span class="ident"&gt;mysql&lt;/span&gt; &lt;span class="number"&gt;457&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;pgsql&lt;/span&gt; &lt;span class="number"&gt;581&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;ado&lt;/span&gt; &lt;span class="number"&gt;6&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt; &lt;span class="number"&gt;9&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;

&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;:\&lt;/span&gt;&lt;span class="ident"&gt;home\app\bench\scripts&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ident"&gt;bench_db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;py&lt;/span&gt;
&lt;span class="ident"&gt;mysql&lt;/span&gt; &lt;span class="number"&gt;457&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;pgsql&lt;/span&gt; &lt;span class="number"&gt;581&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;ado&lt;/span&gt; &lt;span class="number"&gt;9&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt; &lt;span class="number"&gt;10&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;

&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;:\&lt;/span&gt;&lt;span class="ident"&gt;home\app\bench\scripts&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ident"&gt;bench_db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;py&lt;/span&gt;
&lt;span class="ident"&gt;mysql&lt;/span&gt; &lt;span class="number"&gt;457&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;pgsql&lt;/span&gt; &lt;span class="number"&gt;578&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;ado&lt;/span&gt; &lt;span class="number"&gt;9&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt; &lt;span class="number"&gt;11&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;

&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;:\&lt;/span&gt;&lt;span class="ident"&gt;home\app\bench\scripts&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ident"&gt;bench_db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;py&lt;/span&gt;
&lt;span class="ident"&gt;mysql&lt;/span&gt; &lt;span class="number"&gt;457&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;pgsql&lt;/span&gt; &lt;span class="number"&gt;581&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;ado&lt;/span&gt; &lt;span class="number"&gt;8&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt; &lt;span class="number"&gt;11&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;

&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;:\&lt;/span&gt;&lt;span class="ident"&gt;home\app\bench\scripts&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ident"&gt;bench_db&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;py&lt;/span&gt;
&lt;span class="ident"&gt;mysql&lt;/span&gt; &lt;span class="number"&gt;455&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;pgsql&lt;/span&gt; &lt;span class="number"&gt;641&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;ado&lt;/span&gt; &lt;span class="number"&gt;9&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;
&lt;span class="ident"&gt;mssql&lt;/span&gt; &lt;span class="ident"&gt;odbc&lt;/span&gt; &lt;span class="number"&gt;10&lt;/span&gt; &lt;span class="ident"&gt;req&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Mit o rzekomej szybko&#347;ci MySQL ju&#380; jest nieaktualny. Nowy PostgreSQL 8 bije go pod ka&#380;dym wzgl&#281;dem. Zar&#243;wno wydajno&#347;ciowo i jak i znacznie wi&#281;kszymi mozliwo&#347;ciami (o tym mo&#380;e kiedy indziej).  Dziwi s&#322;aba, a raczej n&#281;dzna, wydajno&#347;&#263; produktu firmy Microsoft. Nie sprawdza&#322;em nowego &lt;span class="caps"&gt;MSSQL 2005&lt;/span&gt;, ale wszystko wskazuje na to, &#380;e przynajmniej &lt;span class="caps"&gt;MSSQL2K&lt;/span&gt; to kompletne dno!&lt;/p&gt;</description>
      <pubDate>Mon, 02 Apr 2007 17:14:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:43ae7c94-8984-4c09-86f1-fa0bf007d58c</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2007/04/02/postgresql-vs-mysql-vs-mssql2k</link>
      <category>mysql</category>
      <category>postgresql</category>
      <category>mssql</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>PostgreSQL - inne problemy</title>
      <description>&lt;p&gt;Zauwa&#380;y&#322;em, &#380;e problem z dziwacznym dzia&#322;aniem kwerend MySQL5 korzystaj&#261;cych z &lt;span class="caps"&gt;LIKE&lt;/span&gt; nie wyst&#281;puje pod Linuksem. By&#263; mo&#380;e to po  prostu przypad&#322;o&#347;&#263; kiepsko przygotowanej binarki dla Windows&#243;w&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Najbardziej bolesna sprawa zwi&#261;zana z &lt;a href="http://postgresql.org"&gt;PostgreSQL&lt;/a&gt; (dalej: PG) jest z&#322;a implementacja wersji mi&#281;dzynarodowych. Tzn. PG ustawia jedn&#261; collations &lt;strong&gt;dla ca&#322;ej bazy&lt;/strong&gt; co skutecznie uniemo&#380;liwia to, aby w ramach jednej bazy u&#380;ywa&#263; r&#243;&#380;nych tabel z r&#243;&#380;nymi sortowaniami (wg r&#243;&#380;nych j&#281;zyk&#243;w).&lt;/p&gt;


	&lt;p&gt;Za&#347; MySQL potrafi ustawi&#263; niezale&#380;nie collation nawet dla poszczeg&#243;lnych kolumn!&lt;/p&gt;


	&lt;p&gt;Pr&#243;bowa&#322;em przeszuka&#263; listy dyskusyjne na temat PG, ale &lt;a href="http://groups.google.com/group/pgsql.general/browse_thread/thread/c34ca786a3b63973/d89346af9ea2293d?q=collation&amp;#38;rnum=7#d89346af9ea2293d"&gt;to, co znalaz&#322;em&lt;/a&gt;, potwierdza moje obawy: PG ma to &#378;le zrobione. Je&#347;li chc&#281; mie&#263; efekt sortowania  i takiego samego traktowania du&#380;ych i ma&#322;ych znak&#243;w (istotne przy wi&#281;kszo&#347;ci wyszukiwa&#324; tekstu) to musia&#322;bym dla ka&#380;dego j&#281;zyka tworzy&#263; oddzieln&#261; baz&#281;. To raczej nie wchodzi w gr&#281;.&lt;/p&gt;</description>
      <pubDate>Mon, 29 May 2006 21:00:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:64c71b24-72a1-4923-ba7c-a094ff376a63</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2006/05/29/postgresql-inne-problemy</link>
      <category>Databases</category>
      <category>postgresql</category>
    </item>
  </channel>
</rss>
