Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hWMlF-0005GL-0N for pgsql-general@arkaria.postgresql.org; Thu, 30 May 2019 15:14:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hWMlC-0007gZ-F8 for pgsql-general@arkaria.postgresql.org; Thu, 30 May 2019 15:14:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hWMkn-0007Pj-QA for pgsql-general@lists.postgresql.org; Thu, 30 May 2019 15:14:06 +0000 Received: from post5.gaz-is.ru ([194.50.152.156]) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hWMkl-0003Ep-7t for pgsql-general@postgresql.org; Thu, 30 May 2019 15:14:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaz-is.ru; i=@gaz-is.ru; q=dns/txt; s=Gazinformservice; t=1559229243; x=1590765243; h=from:to:subject:date:message-id:mime-version; bh=8e+GK6DVB3lq1qi56gZgmgqDRUXNHkxkcamZT8BsNzg=; b=mWH0Brx5q0xGrbzbYC/nkAUjYMq+ISWrkwTNRclci3gP9765D97dhz2A Mzfd1KXgzxLnypBIyXrZV5dLcAL26NezR/EThNcXuMleDjG7B+GYI7IEe jdE1tr836h6cdkA3oB61qErbaJlMxvfKManQar5TLj8ccj+olKfkihhp0 pln8EomblN9rfhfOuU8BqXP1KSkiebzNuqNIQS10erOhAJGcsrAdBxN2k vP4SYfLZvlJJZCL0k425pCJ86Rgw8Zq8TuvicxFBgSL6/R64+3zmGMsXX RFoF1jODPcz9jpCG6lu+v9lArcWRcdII0iH6GGvqcSOex8yA3OUJXnK2j Q==; X-IronPort-AV: E=Sophos;i="5.60,531,1549918800"; d="scan'208";a="4755498" Received: from srvexch00.gis.lan ([192.168.1.20]) by post5.gaz-is.ru with ESMTP; 30 May 2019 18:14:02 +0300 Received: from SRVEXCH00.gis.lan (192.168.1.16) by SRVEXCH00.gis.lan (192.168.1.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Thu, 30 May 2019 18:14:01 +0300 Received: from SRVEXCH00.gis.lan ([192.168.1.20]) by SRVEXCH00.gis.lan ([192.168.1.20]) with mapi id 15.01.1591.008; Thu, 30 May 2019 18:14:01 +0300 From: =?koi8-r?B?9MHSwdPP1yDnxc/Sx8nKIPfJ1MHM2MXXyd4=?= To: "pgsql-general@postgresql.org" Subject: compiling PL/pgSQL plugin with C++ Thread-Topic: compiling PL/pgSQL plugin with C++ Thread-Index: AdUW9zSrAsEwyx8hSw2+ohU8NzyBtQ== Date: Thu, 30 May 2019 15:14:01 +0000 Message-ID: Accept-Language: ru-RU, en-US Content-Language: ru-RU X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [192.168.129.35] Content-Type: multipart/mixed; boundary="_002_b517ec3918d645eb950505eac8dd434egazisru_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --_002_b517ec3918d645eb950505eac8dd434egazisru_ Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable Dear all, I'm working on development of some PL/pgSQL plugin. The smaller part of my code is written on C. It's a standard extension code for integration with fmgr (_PG_init ...) But bigger part of the code is written on C++.=20 And here I need declarations of internal PL/pgSQL structs from plpgsql.h Direct include of this file to my C++ code results in the following errors: /opt/pgsql-11/include/server/plpgsql.h:1201:45: =CF=DB=C9=C2=CB=C1: expecte= d <,> or <...> before extern void plpgsql_adddatum(PLpgSQL_datum *new); ^ /opt/pgsql-11/include/server/plpgsql.h:1228:15: =CF=DB=C9=C2=CB=C1: expecte= d <,> or <...> before Oid *typeid, int32 *typmod, Oid *collation); ^ It's obviously that this code can't be compiled with C++ because the C++ keywords are used as an identifiers. I modified plpgsql.h. So, please advise does the renaming is the right step in this situation?? All my modifications are in the attached patch. Corrections are made also in C-files (pl_comp.c and pl_exec.c), where the f= unction definitions are=20 located, but this is not necessarily. George --_002_b517ec3918d645eb950505eac8dd434egazisru_ Content-Type: application/octet-stream; name="rename-args-looks-like-cpp-keywords.patch" Content-Description: rename-args-looks-like-cpp-keywords.patch Content-Disposition: attachment; filename="rename-args-looks-like-cpp-keywords.patch"; size=3693; creation-date="Thu, 30 May 2019 14:37:35 GMT"; modification-date="Thu, 30 May 2019 14:37:35 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9jb21wLmMgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfY29tcC5jCmluZGV4IDU5NDYwZDI2NDMuLjg1NzIxYmY3MzUgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9jb21wLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2NvbXAuYwpAQCAtMjIwMyw3ICsyMjAzLDcgQEAgcGxwZ3NxbF9zdGFydF9kYXR1bXModm9pZCkK ICAqIC0tLS0tLS0tLS0KICAqLwogdm9pZAotcGxwZ3NxbF9hZGRkYXR1bShQTHBnU1FMX2RhdHVt ICpuZXcpCitwbHBnc3FsX2FkZGRhdHVtKFBMcGdTUUxfZGF0dW0gKmRvYmopCiB7CiAJaWYgKHBs cGdzcWxfbkRhdHVtcyA9PSBkYXR1bXNfYWxsb2MpCiAJewpAQCAtMjIxMSw4ICsyMjExLDggQEAg cGxwZ3NxbF9hZGRkYXR1bShQTHBnU1FMX2RhdHVtICpuZXcpCiAJCXBscGdzcWxfRGF0dW1zID0g cmVwYWxsb2MocGxwZ3NxbF9EYXR1bXMsIHNpemVvZihQTHBnU1FMX2RhdHVtICopICogZGF0dW1z X2FsbG9jKTsKIAl9CiAKLQluZXctPmRubyA9IHBscGdzcWxfbkRhdHVtczsKLQlwbHBnc3FsX0Rh dHVtc1twbHBnc3FsX25EYXR1bXMrK10gPSBuZXc7CisJZG9iai0+ZG5vID0gcGxwZ3NxbF9uRGF0 dW1zOworCXBscGdzcWxfRGF0dW1zW3BscGdzcWxfbkRhdHVtcysrXSA9IGRvYmo7CiB9CiAKIC8q IC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDhmOGY3ZWZlNDQuLmVmZjQzNDY1OGQg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtNTU1Niw3ICs1NTU2LDcgQEAgcGxwZ3NxbF9leGVjX2dl dF9kYXR1bV90eXBlKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiB2b2lkCiBwbHBnc3FsX2V4 ZWNfZ2V0X2RhdHVtX3R5cGVfaW5mbyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJ CQkgUExwZ1NRTF9kYXR1bSAqZGF0dW0sCi0JCQkJCQkJCSBPaWQgKnR5cGVpZCwgaW50MzIgKnR5 cG1vZCwgT2lkICpjb2xsYXRpb24pCisJCQkJCQkJCSBPaWQgKnR5cG9pZCwgaW50MzIgKnR5cG1v ZCwgT2lkICpjb2xsYXRpb24pCiB7CiAJc3dpdGNoIChkYXR1bS0+ZHR5cGUpCiAJewpAQCAtNTU2 NSw3ICs1NTY1LDcgQEAgcGxwZ3NxbF9leGVjX2dldF9kYXR1bV90eXBlX2luZm8oUExwZ1NRTF9l eGVjc3RhdGUgKmVzdGF0ZSwKIAkJCXsKIAkJCQlQTHBnU1FMX3ZhciAqdmFyID0gKFBMcGdTUUxf dmFyICopIGRhdHVtOwogCi0JCQkJKnR5cGVpZCA9IHZhci0+ZGF0YXR5cGUtPnR5cG9pZDsKKwkJ CQkqdHlwb2lkID0gdmFyLT5kYXRhdHlwZS0+dHlwb2lkOwogCQkJCSp0eXBtb2QgPSB2YXItPmRh dGF0eXBlLT5hdHR0eXBtb2Q7CiAJCQkJKmNvbGxhdGlvbiA9IHZhci0+ZGF0YXR5cGUtPmNvbGxh dGlvbjsKIAkJCQlicmVhazsKQEAgLTU1NzgsMTMgKzU1NzgsMTMgQEAgcGxwZ3NxbF9leGVjX2dl dF9kYXR1bV90eXBlX2luZm8oUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQlpZiAocmVj LT5lcmggPT0gTlVMTCB8fCByZWMtPnJlY3R5cGVpZCAhPSBSRUNPUkRPSUQpCiAJCQkJewogCQkJ CQkvKiBSZXBvcnQgdmFyaWFibGUncyBkZWNsYXJlZCB0eXBlICovCi0JCQkJCSp0eXBlaWQgPSBy ZWMtPnJlY3R5cGVpZDsKKwkJCQkJKnR5cG9pZCA9IHJlYy0+cmVjdHlwZWlkOwogCQkJCQkqdHlw bW9kID0gLTE7CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CiAJCQkJCS8qIFJlcG9ydCByZWNvcmQn cyBhY3R1YWwgdHlwZSBpZiBkZWNsYXJlZCBSRUNPUkQgKi8KLQkJCQkJKnR5cGVpZCA9IHJlYy0+ ZXJoLT5lcl90eXBlaWQ7CisJCQkJCSp0eXBvaWQgPSByZWMtPmVyaC0+ZXJfdHlwZWlkOwogCQkJ CQkvKiBkbyBOT1QgcmV0dXJuIHRoZSBtdXRhYmxlIHR5cG1vZCBvZiBhIFJFQ09SRCB2YXJpYWJs ZSAqLwogCQkJCQkqdHlwbW9kID0gLTE7CiAJCQkJfQpAQCAtNTYyNCw3ICs1NjI0LDcgQEAgcGxw Z3NxbF9leGVjX2dldF9kYXR1bV90eXBlX2luZm8oUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwK IAkJCQkJcmVjZmllbGQtPnJlY3R1cGxlZGVzY2lkID0gcmVjLT5lcmgtPmVyX3R1cGRlc2NfaWQ7 CiAJCQkJfQogCi0JCQkJKnR5cGVpZCA9IHJlY2ZpZWxkLT5maW5mby5mdHlwZWlkOworCQkJCSp0 eXBvaWQgPSByZWNmaWVsZC0+ZmluZm8uZnR5cGVpZDsKIAkJCQkqdHlwbW9kID0gcmVjZmllbGQt PmZpbmZvLmZ0eXBtb2Q7CiAJCQkJKmNvbGxhdGlvbiA9IHJlY2ZpZWxkLT5maW5mby5mY29sbGF0 aW9uOwogCQkJCWJyZWFrOwpAQCAtNTYzMiw3ICs1NjMyLDcgQEAgcGxwZ3NxbF9leGVjX2dldF9k YXR1bV90eXBlX2luZm8oUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBkdHlwZTogJWQiLCBkYXR1bS0+ZHR5cGUpOwot CQkJKnR5cGVpZCA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCSp0 eXBvaWQgPSBJbnZhbGlkT2lkOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCQkqdHlwbW9k ID0gLTE7CiAJCQkqY29sbGF0aW9uID0gSW52YWxpZE9pZDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBn c3FsLmgKaW5kZXggZmI5ZmNiNTVmNS4uODJiMjk1MDI5NCAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL3BscGdzcWwuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCkBA IC0xMTk4LDcgKzExOTgsNyBAQCBleHRlcm4gUExwZ1NRTF9yZWNmaWVsZCAqcGxwZ3NxbF9idWls ZF9yZWNmaWVsZChQTHBnU1FMX3JlYyAqcmVjLAogZXh0ZXJuIGludCBwbHBnc3FsX3JlY29nbml6 ZV9lcnJfY29uZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRuYW1lLAogCQkJCQkJCQlib29sIGFsbG93 X3NxbHN0YXRlKTsKIGV4dGVybiBQTHBnU1FMX2NvbmRpdGlvbiAqcGxwZ3NxbF9wYXJzZV9lcnJf Y29uZGl0aW9uKGNoYXIgKmNvbmRuYW1lKTsKLWV4dGVybiB2b2lkIHBscGdzcWxfYWRkZGF0dW0o UExwZ1NRTF9kYXR1bSAqbmV3KTsKK2V4dGVybiB2b2lkIHBscGdzcWxfYWRkZGF0dW0oUExwZ1NR TF9kYXR1bSAqZG9iaik7CiBleHRlcm4gaW50CXBscGdzcWxfYWRkX2luaXRkYXR1bXMoaW50ICoq dmFybm9zKTsKIGV4dGVybiB2b2lkIHBscGdzcWxfSGFzaFRhYmxlSW5pdCh2b2lkKTsKIApAQCAt MTIyNSw3ICsxMjI1LDcgQEAgZXh0ZXJuIE9pZCBwbHBnc3FsX2V4ZWNfZ2V0X2RhdHVtX3R5cGUo UExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQlQTHBnU1FMX2RhdHVtICpkYXR1bSk7 CiBleHRlcm4gdm9pZCBwbHBnc3FsX2V4ZWNfZ2V0X2RhdHVtX3R5cGVfaW5mbyhQTHBnU1FMX2V4 ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkgUExwZ1NRTF9kYXR1bSAqZGF0dW0sCi0JCQkJCQkJ CSBPaWQgKnR5cGVpZCwgaW50MzIgKnR5cG1vZCwgT2lkICpjb2xsYXRpb24pOworCQkJCQkJCQkg T2lkICp0eXBvaWQsIGludDMyICp0eXBtb2QsIE9pZCAqY29sbGF0aW9uKTsKIAogLyoKICAqIEZ1 bmN0aW9ucyBmb3IgbmFtZXNwYWNlIGhhbmRsaW5nIGluIHBsX2Z1bmNzLmMK --_002_b517ec3918d645eb950505eac8dd434egazisru_--