X-Original-To: pgsql-sql-postgresql.org@postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 437889FB1B8 for ; Mon, 24 Jul 2006 19:04:54 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 73790-03 for ; Mon, 24 Jul 2006 19:04:50 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from megazone.bigpanda.com (megazone.bigpanda.com [64.147.171.210]) by postgresql.org (Postfix) with ESMTP id E931D9FB0D1 for ; Mon, 24 Jul 2006 19:04:49 -0300 (ADT) Received: by megazone.bigpanda.com (Postfix, from userid 1001) id 0AF88350E3; Mon, 24 Jul 2006 15:04:47 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by megazone.bigpanda.com (Postfix) with ESMTP id 08FF8350DA; Mon, 24 Jul 2006 15:04:47 -0700 (PDT) Date: Mon, 24 Jul 2006 15:04:47 -0700 (PDT) From: Stephan Szabo To: Kevin Nikiforuk Cc: Erik Jones , Rodrigo De Leon , pgsql-sql@postgresql.org Subject: Re: CREATE TABLE AS inside of a function In-Reply-To: <6EA72AC41F81D242A38AAF505523A94D022DFC@kappa.acrodex.net> Message-ID: <20060724144553.T65749@megazone.bigpanda.com> References: <6EA72AC41F81D242A38AAF505523A94D022DFC@kappa.acrodex.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.057 tagged_above=0 required=5 tests=AWL, UPPERCASE_25_50 X-Spam-Level: X-Archive-Number: 200607/305 X-Sequence-Number: 25879 On Mon, 24 Jul 2006, Kevin Nikiforuk wrote: > So, I've changed my code as Erik suggested: > > CREATE OR REPLACE FUNCTION rgio() RETURNS INTEGER as $$ > DECLARE > lv RECORD; > > BEGIN > FOR lv IN SELECT DISTINCT rg > FROM ldevrg > LOOP > > EXECUTE 'CREATE TABLE rgio_' || $lv || ' AS > SELECT ldev > FROM ldevrg > WHERE rg=' || quote_literal($lv) || ';' I think you want something like lv.rg (no special punctuation) rather than $lv in the above.