Solving sudoku using SQL - Mailing list pgsql-hackers

From Tatsuo Ishii
Subject Solving sudoku using SQL
Date
Msg-id 20101208.225708.648213446555450402.t-ishii@sraoss.co.jp
Whole thread Raw
Responses Re: Solving sudoku using SQL  (Merlin Moncure <mmoncure@gmail.com>)
Re: Solving sudoku using SQL  (Robert Haas <robertmhaas@gmail.com>)
List 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


pgsql-hackers by date:

Previous
From: Dmitriy Igrishin
Date:
Subject: Re: pg_type.typname of array types.
Next
From: Dimitri Fontaine
Date:
Subject: Re: Review: Extensions Patch