X-Original-To: pgsql-patches-postgresql.org@postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 0E6319FB334 for ; Mon, 31 Jul 2006 15:57:43 -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 19336-05 for ; Mon, 31 Jul 2006 15:57:37 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from joeconway.com (joeconway.com [68.15.9.201]) by postgresql.org (Postfix) with ESMTP id 6CDD29FB332 for ; Mon, 31 Jul 2006 15:57:36 -0300 (ADT) Received: from [192.168.4.40] (account jconway [192.168.4.40] verified) by joeconway.com (CommuniGate Pro SMTP 4.1.8) with ESMTP-TLS id 4131875; Mon, 31 Jul 2006 11:57:35 -0700 Message-ID: <44CE529F.2070701@joeconway.com> Date: Mon, 31 Jul 2006 11:57:35 -0700 From: Joe Conway User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.13) Gecko/20060501 Fedora/1.7.13-1.1.fc5 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tom Lane CC: "Patches (PostgreSQL)" Subject: Re: [HACKERS] 8.2 features? References: <200607281947.k6SJlOI02533@momjian.us> <473.1154116455@sss.pgh.pa.us> <44CA76A9.8070101@joeconway.com> <44CB051D.6090609@joeconway.com> <21320.1154222840@sss.pgh.pa.us> <26226.1154279741@sss.pgh.pa.us> In-Reply-To: <26226.1154279741@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="------------060402040409070000000406" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.027 tagged_above=0 required=5 tests=AWL, SPF_HELO_PASS, SPF_PASS X-Spam-Level: X-Archive-Number: 200607/350 X-Sequence-Number: 20504 This is a multi-part message in MIME format. --------------060402040409070000000406 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Tom Lane wrote: > As far as avoiding overhead goes, here's what I'm thinking: > > * The Values RTE node should contain a list of lists of bare > expressions, without TargetEntry decoration (you probably do not > need ResTarget in the raw parse tree for VALUES, either). > > * The ValuesScan plan node will just reference this list-of-lists > (avoiding making a copy). It will need to contain a targetlist > because all plan nodes do, but the base version of that will just > be a trivial "Var 1", "Var 2", etc. (The planner might replace that > with a nontrivial targetlist in cases such as the example above.) I wanted to post an updated patch even though there are still things not working again after conversion to bare expressions. Note that I hacked enough of the executor stuff so I could test my changes on the parser area. The basic "INSERT ... VALUES (...), (...), ..." does work, but without DEFAULT again :-(. The good news is that from a memory and perfomance standpoint, my simple test now shows us outperforming mysql: $loopcount = 1000000; Postgres: multi-INSERT-at-once Elapsed time is 12 seconds ~420MB MySQL: multi-INSERT-at-once Elapsed time is 17 seconds ~600MB $loopcount = 2000000; Postgres: multi-INSERT-at-once Elapsed time is 29 seconds ~730MB MySQL: multi-INSERT-at-once Elapsed time is 37 seconds ~1.2GB (this one is from memory -- I didn't write it in my notes) Joe --------------060402040409070000000406 Content-Type: application/x-gzip; name="multi-insert-r18.diff.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="multi-insert-r18.diff.gz" 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 --------------060402040409070000000406--