On 11/20/2015 06:18 AM, Albe Laurenz wrote:
Chris Richards wrote:
Howdy. I have two tables that I'm joining together and using the result to 
create a temporary table.
Performing the join operation works fine; it produces 0 rows (as expected). If I 
prepend "CREATE TEMP
tmp_policyqueue AS" to the SELECT then it generates this error:

ERROR:  could not read block 39 in file "base/16391/11937": read only 0 of 8192 
bytes


$ psql
psql (9.3.9)

mdb=> CREATE TEMP TABLE tmp_policyqueue AS

mdb-> SELECT pq.* FROM policyqueue AS pq
mdb-> JOIN seed_progress AS sp ON pq.id=sp.polidx;
ERROR:  could not read block 40 in file "base/16391/11937": read only 0 of 8192 
bytes

You'll also observe that the block number is changing each time I execute the 
command. I know very
little about postgres internal structure so it may be irrelevant. I've left my 
database in this state
should extra information be needed.

It would be interesting to know what object is affected:

SELECT s.nspname AS schemaname, t.relname AS objectname, t.relkind
FROM pg_class t JOIN
      pg_namespace s ON t.relnamespace = s.oid
WHERE t.relfilenode = 11937;

If it is an index, REINDEX should help.

What is the statement that performs the join operation and works just fine?

If I am following correctly it is:

mdb-> SELECT pq.* FROM policyqueue AS pq
mdb-> JOIN seed_progress AS sp ON pq.id=sp.polidx;


Yours,
Laurenz Albe



--
Adrian Klaver
adrian.kla...@aklaver.com


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to