Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5UxJ-0003aC-1k for pgsql-sql@arkaria.postgresql.org; Tue, 11 Aug 2020 14:08:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1k5UxH-00024C-Vn for pgsql-sql@arkaria.postgresql.org; Tue, 11 Aug 2020 14:08:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5UxH-000245-M2 for pgsql-sql@lists.postgresql.org; Tue, 11 Aug 2020 14:08:43 +0000 Received: from mout.gmx.net ([212.227.17.20]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k5UxD-00074o-RI for pgsql-sql@lists.postgresql.org; Tue, 11 Aug 2020 14:08:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1597154915; bh=oEdPZlKOhnPUTFc/+mBzNCymSqJHAZ/jJjUaCQSbdKw=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=btGvfyvpsLWRi9ZJqbUinhq7Z+TrefxH8e/RorahlamCTccCjVKkkYgyJNwCjyNB1 bDHNsAE2pyKHWxIDKlksBKs0yrfQz599F3aFWBo6BBGFBCNDP4CLccYVUVRPruO0iz cac7pdKXbvdsF7deadX2vJC6tJpdJjTPL5J1ttmQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [10.1.34.75] ([185.40.248.10]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MCbEp-1jwO8G3HCF-009kPv for ; Tue, 11 Aug 2020 16:08:35 +0200 Subject: Re: Use multidimensional array as VALUES clause in insert To: pgsql-sql@lists.postgresql.org References: From: Thomas Kellerer Message-ID: <060a1d9c-ff92-01eb-a0d8-c6370c854b13@gmx.net> Date: Tue, 11 Aug 2020 16:08:32 +0200 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:V+79KcJHsqKtwwB/LnmDNCQMrRN9K5G/B+WKehfROeFRscmc29B WXOKbM2G3R53YjRi8qVGyovBbrNXOTo8JzZVbkEc9SMugQ04WiP0J1ZXPyYshEDknF1q8n7 tVoitqahKG8sFnbV9eFeWUZl+JAgX1NB4D1r4BlY9W1ibME5DLEf7B7ReF0MHfOtk1I2bRt 9cNXeNK+SfN4Ph3AAEqqA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:vpouNxzlNj8=:RVIoQE3l+4al7q4MY0ZDzp o7HudvUJGGLhcSAKTUI4DK7BnCUGWLe6zpmJz0zcICJyAMNR6IcE6HK+GJowyCKl+n0zpFM6M WYUtAW9dbhk3V/qRK1HnPaKaA0SLpHd6ZCxgN1fJHlcwCiaffvc8CtLKxAMumVaynwQ3FCsnI PCVIYlEF9rxRpdbauGild6MoNGGly48NPd/PTWIFH5KdZjHUKG4TLza7uYKEyehe+zrUQAxt/ 32M+Ewl5z9cnjBM/zMGZ6a6fHau/CCPnP/AN35aveK4X6xta2QYGUTkEuZQII85FxlccBYfMv LTbTpzVB5r6G5sZucoVrs3jDPbFVXcPjGtbM1VRkw5lLy7K1oZfrRmsh1Uyyoybu3HjUyik6b WIM5t0La4sxLSkK38RVlqd8rLm3El81omPP7jD91c5NCi2hbAWe5VzQ9OzfvONz8BrNUPOlsw m/N5rjkt78Cib/Mn9Tnpx+vsFa6h7+E6C41xo2gdA3xtuNlvpG2L8HT5UWaFcCdw57z80SjFg Bx8gp/+sILjJXYsDOpasI0EtZVa5cw3B1pQGADN6M1OEx1h6gotAdBto64vWZc6BAOiQVoQNX vRTrrPpEi0xlsjThDL/vRwfDX2zm2CWoAjcF2xTdJTzeg+9DuOsTR6H74kgILkiEFvPsL0Rrx 9dIWB3mkSJ5Mzf4xrg65joQ5xMFgstMZ/tYm73Ks7Xox26iFLJvnC2fjfNvWpJF7sqnLqh+yH MyeugIgDLH8+OnUqAm4wsseJs0LVbZQViVnZdcOzfXbMF7gOENJjosgEQmhJGD+aPSI4ZshXj arFryo8y2OGpFy1l4vME7O5VB3P09aO9XSLzlDmsj+0CAHpcLqPwilgiexafjiJV2Y0dsudH3 Ww66PfiQ5pqh+H6ltgfkPDF7BSbvt00tmlkywk+RlEbpEZCPpG5FeIq9U3ioVXartbXoN6YmZ sMJY+XXd5jvorPB9/7tRiPkSGPbv0Cs3U1ibrhmMTWJS0pBXClaiNLzdRLZUz2rNFyul1+kPo NgGmeVBGPjOJpj6A+MOT7MGJfw234vJYEeg8FcrDTmMm+PrfGkQNuJCPP5z/IZ18+1Ck4Wd76 uGR6QtCP+Pgr3eig/zwZsVsyB0END/BeL7bn7Ct8vBZ4XYgMmhTH3QxUE+EmOMhZIxh1LpQml ZkJjfSWToCQZKeApOwdmk9oK+HytORs8EnEWTsqxhPKaIo61Cfp1IpBsU3LrpMumXniDR+Q/0 pfqyrmnrx32OYzq0j List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Mike Martin schrieb am 11.08.2020 um 12:50: > Is this possible? I have seen examples with array literals as VALUES str= ing, but I cant seen to get it to work with an actual array. > > testing code > > --This gets me a multidimensional array > with arr AS ( > SELECT ARRAY(SELECT ARRAY[fileid::text,tagname,array_to_string(tagvalue,= E'\b')] > FROM tagdata_all) -- limit 100) > arr1 > ) > --Then > > INSERT INTO=C2=A0 tagdatatest2 > SELECT =C2=A0arr1::text[] FROM arr --doesnt work only populates one colu= mn with original array I don't understand why you aggregate in the first place if you want to the= insert the array elements as rows. Can't you just do: INSERT INTO tagdatatest2 (fileid, tagname, tagvalue) SELECT fileid, tagname, array_to_string(tagvalue,E'\b') FROM tagdata_all