From: | Tatsuo Ishii <ishii(at)postgresql(dot)org> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Solving sudoku using SQL |
Date: | 2010-12-08 13:57:08 |
Message-ID: | 20101208.225708.648213446555450402.t-ishii@sraoss.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I found an interesting article which explains how to solve "sudoku" by
using SQL(unfortunately written in Japanese):
http://codezine.jp/article/detail/1629?p=2
In the article example sudoku is:
http://static.shoeisha.jp/cz/static/images/article/1629/problem4.gif
To solve the example you create following table:
CREATE TABLE nums (n INT NOT NULL PRIMARY KEY);
INSERT INTO nums VALUES (1);
INSERT INTO nums VALUES (2);
INSERT INTO nums VALUES (3);
INSERT INTO nums VALUES (4);
INSERT INTO nums VALUES (5);
INSERT INTO nums VALUES (6);
INSERT INTO nums VALUES (7);
INSERT INTO nums VALUES (8);
INSERT INTO nums VALUES (9);
Then execute the huge SELECT:
http://codezine.jp/static/images/article/1629/html/sql.html
In the page first one takes infinite time by PostgreSQL 9.0.1. Next
one can be executed very quickly because the join order is explicitely
specified by cross join syntax. This seems to be a limitation of
PostgreSQL optimizer and I would like it be removed. Comments?
BTW according to the article, Oracle execute the first SELECT(the one
PostgreSQL takes infinite time) in 10 seconds. It seems Oracle's
optimizer is sperior in this regard.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-12-08 14:40:04 | Re: Final(?) proposal for wal_sync_method changes |
Previous Message | Dmitriy Igrishin | 2010-12-08 13:32:10 | Re: pg_type.typname of array types. |