Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bLnVI-0001E2-Hn for pgsql-hackers@arkaria.postgresql.org; Sat, 09 Jul 2016 08:20:48 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bLnVH-0006Zu-JA for pgsql-hackers@arkaria.postgresql.org; Sat, 09 Jul 2016 08:20:47 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bLnVG-0006Zo-P5 for pgsql-hackers@postgresql.org; Sat, 09 Jul 2016 08:20:47 +0000 Received: from jiboia.ensmp.fr ([194.214.158.137]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bLnVC-0005vP-9h for pgsql-hackers@postgresql.org; Sat, 09 Jul 2016 08:20:45 +0000 Received: from cri.ensmp.fr (AGrenoble-653-1-69-83.w92-129.abo.wanadoo.fr [92.129.7.83]) (authenticated bits=0) by jiboia.ensmp.fr (8.15.2/8.15.1/JMMC-22/Oct/2013) with ESMTPSA id u698Kd7d008310 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Sat, 9 Jul 2016 10:20:39 +0200 Date: Sat, 9 Jul 2016 10:20:39 +0200 (CEST) From: Fabien COELHO X-X-Sender: fabien@sto Reply-To: Fabien COELHO To: PostgreSQL Developers Subject: pgbench - allow to store select results into variables Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="8323329-656824026-1468052203=:3412" Content-ID: X-Miltered: at jiboia.ensmp.fr with ID 5780B3D7.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Auth: USER-ID fabien.coelho X-j-chkmail-Enveloppe: 5780B3D7.000 from AGrenoble-653-1-69-83.w92-129.abo.wanadoo.fr/AGrenoble-653-1-69-83.w92-129.abo.wanadoo.fr/92.129.7.83/cri.ensmp.fr/ X-Pg-Spam-Score: -3.2 (---) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-656824026-1468052203=:3412 Content-Type: text/plain; format=flowed; charset=US-ASCII Content-ID: Hello devs, I mentionned my intention to add some features to pgbench back in March: https://www.postgresql.org/message-id/alpine.DEB.2.10.1603301618570.5677@sto The attached patch adds an \into meta command to store results of preceding SELECTs into pgbench variables, so that they can be reused afterwards. The feature is useful to make more realistic scripts, currently pgbench script cannot really interact with the database as results are discarded. The chosen syntax is easy to understand and the implementation is quite light, with minimal impact on the code base. I think that this is a reasonnable compromise. The SELECTs must yield exactly one row, the number of variables must be less than the number of columns. Also attached a set of test scripts, especially to trigger various error cases. -- Fabien. --8323329-656824026-1468052203=:3412 Content-Type: text/x-diff; name=pgbench-into-1.patch; charset=us-ascii Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=pgbench-into-1.patch ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdiZW5jaC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwNCmluZGV4IGYzYWZlZGIu LjhhN2FkM2UgMTAwNjQ0DQotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnYmVu Y2guc2dtbA0KKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwN CkBAIC04MDksNiArODA5LDI5IEBAIHBnYmVuY2ggPG9wdGlvbmFsPiA8cmVw bGFjZWFibGU+b3B0aW9uczwvPiA8L29wdGlvbmFsPiA8cmVwbGFjZWFibGU+ ZGJuYW1lPC8+DQogICA8L3BhcmE+DQogDQogICA8dmFyaWFibGVsaXN0Pg0K KyAgIDx2YXJsaXN0ZW50cnkgaWQ9J3BnYmVuY2gtbWV0YWNvbW1hbmQtaW50 byc+DQorICAgIDx0ZXJtPg0KKyAgICAgPGxpdGVyYWw+XGludG8gPHJlcGxh Y2VhYmxlPnZhcjE8Lz4gWzxyZXBsYWNlYWJsZT52YXIyPC8+IC4uLl08L2xp dGVyYWw+DQorICAgIDwvdGVybT4NCisNCisgICAgPGxpc3RpdGVtPg0KKyAg ICAgPHBhcmE+DQorICAgICAgU3RvcmVzIHRoZSBmaXJzdCBmaWVsZHMgb2Yg dGhlIHJlc3VsdGluZyByb3cgZnJvbSB0aGUgcHJlY2VkaW5nDQorICAgICAg PGNvbW1hbmQ+U0VMRUNUPC8+IGNvbW1hbmRzIGludG8gdGhlc2UgdmFyaWFi bGVzLg0KKyAgICAgIFRoZSBxdWVyaWVzIG11c3QgeWllbGQgZXhhY3RseSBv bmUgcm93IGFuZCB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkDQorICAgICAgdmFy aWFibGVzIG11c3QgYmUgbGVzcyB0aGFuIHRoZSB0b3RhbCBudW1iZXIgb2Yg Y29sdW1ucyBvZiB0aGUgcmVzdWx0cy4NCisgICAgIDwvcGFyYT4NCisNCisg ICAgIDxwYXJhPg0KKyAgICAgIEV4YW1wbGU6DQorPHByb2dyYW1saXN0aW5n Pg0KK1NFTEVDVCBhYmFsYW5jZSBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hF UkUgYWlkPTU0MzI7DQorXGludG8gYmFsYW5jZQ0KKzwvcHJvZ3JhbWxpc3Rp bmc+DQorICAgICA8L3BhcmE+DQorICAgIDwvbGlzdGl0ZW0+DQorICAgPC92 YXJsaXN0ZW50cnk+DQorDQogICAgPHZhcmxpc3RlbnRyeSBpZD0ncGdiZW5j aC1tZXRhY29tbWFuZC1zZXQnPg0KICAgICA8dGVybT4NCiAgICAgIDxsaXRl cmFsPlxzZXQgPHJlcGxhY2VhYmxlPnZhcm5hbWU8Lz4gPHJlcGxhY2VhYmxl PmV4cHJlc3Npb248Lz48L2xpdGVyYWw+DQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ2JlbmNoL3BnYmVuY2guYyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNo LmMNCmluZGV4IDg3ZmIwMDYuLmQ5ODI3ZGMgMTAwNjQ0DQotLS0gYS9zcmMv YmluL3BnYmVuY2gvcGdiZW5jaC5jDQorKysgYi9zcmMvYmluL3BnYmVuY2gv cGdiZW5jaC5jDQpAQCAtMzA3LDYgKzMwNyw3IEBAIHR5cGVkZWYgc3RydWN0 DQogCWludAkJCXR5cGU7CQkJLyogY29tbWFuZCB0eXBlIChTUUxfQ09NTUFO RCBvciBNRVRBX0NPTU1BTkQpICovDQogCWludAkJCWFyZ2M7CQkJLyogbnVt YmVyIG9mIGNvbW1hbmQgd29yZHMgKi8NCiAJY2hhcgkgICAqYXJndltNQVhf QVJHU107IC8qIGNvbW1hbmQgd29yZCBsaXN0ICovDQorCWNoYXIJICAgKmlu dG9bTUFYX0FSR1NdOyAvKiBOVUxMLXRlcm1pbmF0ZWQgdGFyZ2V0IHZhcmlh YmxlcyBmb3IgXGludG8gKi8NCiAJUGdCZW5jaEV4cHIgKmV4cHI7CQkJLyog cGFyc2VkIGV4cHJlc3Npb24sIGlmIG5lZWRlZCAqLw0KIAlTaW1wbGVTdGF0 cyBzdGF0czsJCQkvKiB0aW1lIHNwZW50IGluIHRoaXMgY29tbWFuZCAqLw0K IH0gQ29tbWFuZDsNCkBAIC0xMTQ4LDYgKzExNDksOTYgQEAgZ2V0UXVlcnlQ YXJhbXMoQ1N0YXRlICpzdCwgY29uc3QgQ29tbWFuZCAqY29tbWFuZCwgY29u c3QgY2hhciAqKnBhcmFtcykNCiAJCXBhcmFtc1tpXSA9IGdldFZhcmlhYmxl KHN0LCBjb21tYW5kLT5hcmd2W2kgKyAxXSk7DQogfQ0KIA0KKy8qIHJlYWQg YWxsIHJlc3BvbnNlcyBmcm9tIGJhY2tlbmQgKi8NCitzdGF0aWMgYm9vbA0K K3JlYWRfcmVzcG9uc2UoQ1N0YXRlICpzdCwgY2hhciAqIGludG9bXSkNCit7 DQorCVBHcmVzdWx0ICAgKnJlczsNCisJaW50CQkJaSA9IDA7DQorCWJvb2wJ CWF0X2xlYXN0X29uZSA9IGZhbHNlOw0KKw0KKwl3aGlsZSAoKHJlcyA9IFBR Z2V0UmVzdWx0KHN0LT5jb24pKSAhPSBOVUxMKQ0KKwl7DQorCQlhdF9sZWFz dF9vbmUgPSB0cnVlOw0KKw0KKwkJc3dpdGNoIChQUXJlc3VsdFN0YXR1cyhy ZXMpKQ0KKwkJew0KKwkJY2FzZSBQR1JFU19DT01NQU5EX09LOiAvKiBub24t U0VMRUNUIGNvbW1hbmRzICovDQorCQljYXNlIFBHUkVTX0VNUFRZX1FVRVJZ OiAvKiBtYXkgYmUgdXNlZCBmb3IgdGVzdGluZyBuby1vcCBvdmVyaGVhZCAq Lw0KKwkJCWJyZWFrOyAvKiBPSyAqLw0KKw0KKwkJY2FzZSBQR1JFU19UVVBM RVNfT0s6DQorCQkJaWYgKGludG8gIT0gTlVMTCAmJiBpbnRvW2ldICE9IE5V TEwpDQorCQkJew0KKwkJCQkvKiBzdG9yZSByZXN1bHQgaW50byB2YXJpYWJs ZXMgKi8NCisJCQkJaW50IG50dXBsZXMgPSBQUW50dXBsZXMocmVzKSwNCisJ CQkJCW5maWVsZHMgPSBQUW5maWVsZHMocmVzKSwNCisJCQkJCWYgPSAwOw0K Kw0KKwkJCQlpZiAobnR1cGxlcyAhPSAxKQ0KKwkJCQl7DQorCQkJCQlmcHJp bnRmKHN0ZGVyciwNCisJCQkJCQkJImNsaWVudCAlZCBzdGF0ZSAlZCBleHBl Y3Rpbmcgb25lIHJvdywgZ290ICVkXG4iLA0KKwkJCQkJCQlzdC0+aWQsIHN0 LT5zdGF0ZSwgbnR1cGxlcyk7DQorCQkJCQlzdC0+ZWNudCsrOw0KKwkJCQkJ UFFjbGVhcihyZXMpOw0KKwkJCQkJZGlzY2FyZF9yZXNwb25zZShzdCk7DQor CQkJCQlyZXR1cm4gZmFsc2U7DQorCQkJCX0NCisNCisJCQkJd2hpbGUgKGlu dG9baV0gIT0gTlVMTCAmJiBmIDwgbmZpZWxkcykNCisJCQkJew0KKwkJCQkJ Lyogc3RvcmUgcmVzdWx0IGFzIGEgc3RyaW5nICovDQorCQkJCQlpZiAoIXB1 dFZhcmlhYmxlKHN0LCAiaW50byIsIGludG9baV0sIFBRZ2V0dmFsdWUocmVz LCAwLCBmKSkpDQorCQkJCQl7DQorCQkJCQkJLyogaW50ZXJuYWwgZXJyb3Is IHNob3VsZCBpdCByYXRoZXIgYWJvcnQ/ICovDQorCQkJCQkJZnByaW50Zihz dGRlcnIsDQorCQkJCQkJCQkiY2xpZW50ICVkIHN0YXRlICVkOiBlcnJvciBz dG9yaW5nIGludG8gdmFyICVzXG4iLA0KKwkJCQkJCQkJc3QtPmlkLCBzdC0+ c3RhdGUsIGludG9baV0pOw0KKwkJCQkJCXN0LT5lY250Kys7DQorCQkJCQkJ UFFjbGVhcihyZXMpOw0KKwkJCQkJCWRpc2NhcmRfcmVzcG9uc2Uoc3QpOw0K KwkJCQkJCXJldHVybiBmYWxzZTsNCisJCQkJCX0NCisNCisJCQkJCWkrKzsN CisJCQkJCWYrKzsNCisJCQkJfQ0KKwkJCX0NCisJCQlicmVhazsJLyogT0sg Ki8NCisNCisJCWRlZmF1bHQ6DQorCQkJLyogZXZlcnl0aGluZyBlbHNlIGlz IHVuZXhwZWN0ZWQsIHNvIHByb2JhYmx5IGFuIGVycm9yICovDQorCQkJZnBy aW50ZihzdGRlcnIsICJjbGllbnQgJWQgYWJvcnRlZCBpbiBzdGF0ZSAlZDog JXMiLA0KKwkJCQkJc3QtPmlkLCBzdC0+c3RhdGUsIFBRZXJyb3JNZXNzYWdl KHN0LT5jb24pKTsNCisJCQlzdC0+ZWNudCsrOw0KKwkJCVBRY2xlYXIocmVz KTsNCisJCQlkaXNjYXJkX3Jlc3BvbnNlKHN0KTsNCisJCQlyZXR1cm4gZmFs c2U7DQorCQl9DQorDQorCQlQUWNsZWFyKHJlcyk7DQorCX0NCisNCisJaWYg KCFhdF9sZWFzdF9vbmUpDQorCXsNCisJCWZwcmludGYoc3RkZXJyLCAiY2xp ZW50ICVkIHN0YXRlICVkOiBubyByZXN1bHRzXG4iLCBzdC0+aWQsIHN0LT5z dGF0ZSk7DQorCQlzdC0+ZWNudCsrOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9 DQorDQorCWlmIChpbnRvICE9IE5VTEwgJiYgaW50b1tpXSAhPSBOVUxMKQ0K Kwl7DQorCQlmcHJpbnRmKHN0ZGVyciwNCisJCQkJImNsaWVudCAlZCBzdGF0 ZSAlZDogbWlzc2luZyByZXN1bHRzIHRvIGZpbGwgaW50byB2YXJpYWJsZSAl c1xuIiwNCisJCQkJc3QtPmlkLCBzdC0+c3RhdGUsIGludG9baV0pOw0KKwkJ c3QtPmVjbnQrKzsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKw0KKwlyZXR1 cm4gdHJ1ZTsNCit9DQorDQogLyogZ2V0IGEgdmFsdWUgYXMgYW4gaW50LCB0 ZWxsIGlmIHRoZXJlIGlzIGEgcHJvYmxlbSAqLw0KIHN0YXRpYyBib29sDQog Y29lcmNlVG9JbnQoUGdCZW5jaFZhbHVlICpwdmFsLCBpbnQ2NCAqaXZhbCkN CkBAIC0xNzY0LDcgKzE4NTUsNiBAQCBjaG9vc2VTY3JpcHQoVFN0YXRlICp0 aHJlYWQpDQogc3RhdGljIGJvb2wNCiBkb0N1c3RvbShUU3RhdGUgKnRocmVh ZCwgQ1N0YXRlICpzdCwgU3RhdHNEYXRhICphZ2cpDQogew0KLQlQR3Jlc3Vs dCAgICpyZXM7DQogCUNvbW1hbmQgICAqKmNvbW1hbmRzOw0KIAlib29sCQl0 cmFuc19uZWVkc190aHJvdHRsZSA9IGZhbHNlOw0KIAlpbnN0cl90aW1lCW5v dzsNCkBAIC0xODkxLDIyICsxOTgxLDExIEBAIHRvcDoNCiAJCXsNCiAJCQkv Kg0KIAkJCSAqIFJlYWQgYW5kIGRpc2NhcmQgdGhlIHF1ZXJ5IHJlc3VsdDsg bm90ZSB0aGlzIGlzIG5vdCBpbmNsdWRlZCBpbg0KLQkJCSAqIHRoZSBzdGF0 ZW1lbnQgbGF0ZW5jeSBudW1iZXJzLg0KKwkJCSAqIHRoZSBzdGF0ZW1lbnQg bGF0ZW5jeSBudW1iZXJzIChhYm92ZSksIHRodXMgaWYgcmVhZGluZyB0aGUN CisJCQkgKiByZXNwb25zZSBmYWlscyB0aGUgdHJhbnNhY3Rpb24gaXMgY291 bnRlZCBuZXZlcnRoZWxlc3MuDQogCQkJICovDQotCQkJcmVzID0gUFFnZXRS ZXN1bHQoc3QtPmNvbik7DQotCQkJc3dpdGNoIChQUXJlc3VsdFN0YXR1cyhy ZXMpKQ0KLQkJCXsNCi0JCQkJY2FzZSBQR1JFU19DT01NQU5EX09LOg0KLQkJ CQljYXNlIFBHUkVTX1RVUExFU19PSzoNCi0JCQkJCWJyZWFrOwkJLyogT0sg Ki8NCi0JCQkJZGVmYXVsdDoNCi0JCQkJCWZwcmludGYoc3RkZXJyLCAiY2xp ZW50ICVkIGFib3J0ZWQgaW4gc3RhdGUgJWQ6ICVzIiwNCi0JCQkJCQkJc3Qt PmlkLCBzdC0+c3RhdGUsIFBRZXJyb3JNZXNzYWdlKHN0LT5jb24pKTsNCi0J CQkJCVBRY2xlYXIocmVzKTsNCi0JCQkJCXJldHVybiBjbGllbnREb25lKHN0 KTsNCi0JCQl9DQotCQkJUFFjbGVhcihyZXMpOw0KLQkJCWRpc2NhcmRfcmVz cG9uc2Uoc3QpOw0KKwkJCWlmICghcmVhZF9yZXNwb25zZShzdCwgY29tbWFu ZHNbc3QtPnN0YXRlXS0+aW50bykpDQorCQkJCXJldHVybiBjbGllbnREb25l KHN0KTsNCiAJCX0NCiANCiAJCWlmIChjb21tYW5kc1tzdC0+c3RhdGUgKyAx XSA9PSBOVUxMKQ0KQEAgLTI5MzAsNiArMzAwOSwyNCBAQCBwcm9jZXNzX2Jh Y2tzbGFzaF9jb21tYW5kKFBzcWxTY2FuU3RhdGUgc3N0YXRlLCBjb25zdCBj aGFyICpzb3VyY2UpDQogCQkJc3ludGF4X2Vycm9yKHNvdXJjZSwgbGluZW5v LCBteV9jb21tYW5kLT5saW5lLCBteV9jb21tYW5kLT5hcmd2WzBdLA0KIAkJ CQkJCSAibWlzc2luZyBjb21tYW5kIiwgTlVMTCwgLTEpOw0KIAl9DQorCWVs c2UgaWYgKHBnX3N0cmNhc2VjbXAobXlfY29tbWFuZC0+YXJndlswXSwgImlu dG8iKSA9PSAwKQ0KKwl7DQorCQlpbnQgaTsNCisNCisJCS8qIGF0IGxlYXN0 IG9uZSB2YXJpYWJsZSBuYW1lIG11c3QgYmUgcHJvdmlkZWQgKi8NCisJCWlm IChteV9jb21tYW5kLT5hcmdjIDwgMikNCisJCQlzeW50YXhfZXJyb3Ioc291 cmNlLCBsaW5lbm8sIG15X2NvbW1hbmQtPmxpbmUsIG15X2NvbW1hbmQtPmFy Z3ZbMF0sDQorCQkJCQkJICJtaXNzaW5nIHZhcmlhYmxlIG5hbWUiLCBOVUxM LCAtMSk7DQorDQorCQkvKiBjaGVjayB0aGF0IGFsbCB2YXJpYWJsZSBuYW1l cyBhcmUgdmFsaWQgKi8NCisJCWZvciAoaSA9IDE7IGkgPCBteV9jb21tYW5k LT5hcmdjOyBpKyspDQorCQl7DQorCQkJaWYgKCFpc0xlZ2FsVmFyaWFibGVO YW1lKG15X2NvbW1hbmQtPmFyZ3ZbaV0pKQ0KKwkJCQlzeW50YXhfZXJyb3Io c291cmNlLCBsaW5lbm8sIG15X2NvbW1hbmQtPmxpbmUsDQorCQkJCQkJCSBt eV9jb21tYW5kLT5hcmd2WzBdLCAiaW52YWxpZCB2YXJpYWJsZSBuYW1lIiwN CisJCQkJCQkJIG15X2NvbW1hbmQtPmFyZ3ZbaV0sIC0xKTsNCisJCX0NCisJ fQ0KIAllbHNlDQogCXsNCiAJCXN5bnRheF9lcnJvcihzb3VyY2UsIGxpbmVu bywgbXlfY29tbWFuZC0+bGluZSwgbXlfY29tbWFuZC0+YXJndlswXSwNCkBA IC0zMDEwLDcgKzMxMDcsNDAgQEAgUGFyc2VTY3JpcHQoY29uc3QgY2hhciAq c2NyaXB0LCBjb25zdCBjaGFyICpkZXNjLCBpbnQgd2VpZ2h0KQ0KIAkJaWYg KHNyID09IFBTQ0FOX0JBQ0tTTEFTSCkNCiAJCXsNCiAJCQljb21tYW5kID0g cHJvY2Vzc19iYWNrc2xhc2hfY29tbWFuZChzc3RhdGUsIGRlc2MpOw0KLQkJ CWlmIChjb21tYW5kKQ0KKw0KKwkJCS8qIHNwZWNpYWwgY2FzZSBmb3IgXGlu dG86IG1lcmdlIGludG8gcHJlY2VkaW5nIFNRTCBjb21tYW5kICovDQorCQkJ aWYgKGNvbW1hbmQgJiYgY29tbWFuZC0+YXJnYyA+PSAxICYmDQorCQkJCXBn X3N0cmNhc2VjbXAoY29tbWFuZC0+YXJndlswXSwgImludG8iKSA9PSAwKQ0K KwkJCXsNCisJCQkJaWYgKGluZGV4ID09IDApDQorCQkJCXsNCisJCQkJCWZw cmludGYoc3RkZXJyLA0KKwkJCQkJCQkibWV0YSBjb21tYW5kIFxcaW50byBj YW5ub3Qgc3RhcnQgYSBzY3JpcHRcbiIpOw0KKwkJCQkJZXhpdCgxKTsNCisJ CQkJfQ0KKwkJCQllbHNlIGlmIChwcy5jb21tYW5kc1tpbmRleC0xXS0+dHlw ZSAhPSBTUUxfQ09NTUFORCkNCisJCQkJew0KKwkJCQkJZnByaW50ZihzdGRl cnIsDQorCQkJCQkJCSJtZXRhIGNvbW1hbmQgXFxpbnRvIG11c3QgZm9sbG93 IGEgU0VMRUNUICglcylcbiIsDQorCQkJCQkJCXBzLmNvbW1hbmRzW2luZGV4 LTFdLT5saW5lKTsNCisJCQkJCWV4aXQoMSk7DQorCQkJCX0NCisJCQkJZWxz ZSBpZiAocHMuY29tbWFuZHNbaW5kZXgtMV0tPmludG9bMF0gIT0gTlVMTCkN CisJCQkJew0KKwkJCQkJZnByaW50ZihzdGRlcnIsDQorCQkJCQkJCSJTUUwg Y29tbWFuZCAlZCBhbHJlYWR5IGhhcyBhbiBhc3NvY2lhdGVkIFxcaW50b1xu IiwNCisJCQkJCQkJaW5kZXgtMSk7DQorCQkJCQlleGl0KDEpOw0KKwkJCQl9 DQorCQkJCS8qIGVsc2UgKGNvbW1hbmQtPmFyZ2MgPj0gMik6IGFscmVhZHkg Y2hlY2tlZCBieSBwYXJzZXIgKi8NCisNCisJCQkJLyogaW50byBpcyBOVUxM LXRlcm1pbmF0ZWQgdGhhbmtzIHRvIHBnX21hbGxvYzAoKSAqLw0KKwkJCQlt ZW1jcHkocHMuY29tbWFuZHNbaW5kZXgtMV0tPmludG8sDQorCQkJCQkgICAm Y29tbWFuZC0+YXJndlsxXSwgc2l6ZW9mKGNoYXIgKikgKiAoTUFYX0FSR1Mt MSkpOw0KKw0KKwkJCQlwZ19mcmVlKGNvbW1hbmQpOw0KKwkJCX0NCisJCQll bHNlIGlmIChjb21tYW5kKQ0KIAkJCXsNCiAJCQkJcHMuY29tbWFuZHNbaW5k ZXhdID0gY29tbWFuZDsNCiAJCQkJaW5kZXgrKzsNCg== --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into.sql U0VMRUNUIDE7ClxpbnRvIG9uZQpcc2V0IHQgZGVidWcoOm9uZSkKU0VMRUNU IDIsIDIrMTsKXGludG8geCB5ClxzZXQgdCBkZWJ1Zyg6eCkKXHNldCB0IGRl YnVnKDp5KQpTRUxFQ1QgMioyIFw7IFNFTEVDVCAzKzIuMCwgNjsKXGludG8g YSBiClxzZXQgdCBkZWJ1Zyg6YSkKXHNldCB0IGRlYnVnKDpiKQpcO1w7IFNF TEVDVCAocGkoKSAqIDIuMCk6OklOVFw7IFVQREFURSBwZ2JlbmNoX2FjY291 bnRzIFNFVCBhYmFsYW5jZSA9IGFiYWxhbmNlICsgMSBXSEVSRSBhaWQ9MTsK XGludG8gc2l4ClxzZXQgdCBkZWJ1Zyg6c2l4KQo= --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-1.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-1.sql LS0gbWlzc2luZyBTUUwgY29tbWFuZApcaW50byB4Cg== --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-2.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-2.sql LS0gdG9vIG1hbnkgdmFyaWFibGVzClNFTEVDVCAxLCAyOwpcaW50byB4IHkg ego= --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-3.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-3.sql LS0gbm8gcm93cwpTRUxFQ1QgYWJhbGFuY2UgRlJPTSBwZ2JlbmNoX2FjY291 bnRzIFdIRVJFIGFpZD0wOwpcaW50byBiYWxhbmNlCg== --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-4.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-4.sql LS0gdG9vIG1hbnkgcm93cwpWQUxVRVMgKDEpLCAoMik7ClxpbnRvIHgK --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-5.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-5.sql LS0gaW52YWxpZCB2YXJpYWJsZSBuYW1lIChjb21tYSBzaG91bGQgYmUgcmVt b3ZlZCkKU0VMRUNUIDEsIDI7ClxpbnRvIHgsIHkK --8323329-656824026-1468052203=:3412 Content-Type: application/x-sql; name=into-err-6.sql Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=into-err-6.sql LS0gbm90IGEgc2VsZWN0ClVQREFURSBwZ2JlbmNoX2FjY291bnRzIFNFVCBh YmFsYW5jZSA9IGFiYWxhbmNlICsxIFdIRVJFIGFpZD0xOwpcaW50byBhCg== --8323329-656824026-1468052203=:3412 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --8323329-656824026-1468052203=:3412--