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 1h55W6-0007s2-AR for pgsql-committers@arkaria.postgresql.org; Sat, 16 Mar 2019 09:22:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1h55W4-0006h9-Sw for pgsql-committers@arkaria.postgresql.org; Sat, 16 Mar 2019 09:22:08 +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 1h55W4-0006Zy-KJ for pgsql-committers@lists.postgresql.org; Sat, 16 Mar 2019 09:22:08 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h55W1-0005yA-20 for pgsql-committers@lists.postgresql.org; Sat, 16 Mar 2019 09:22:08 +0000 Received: from gemulon.postgresql.org ([2001:4800:3e1:1::198]) by mahout.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h55Vz-000543-8D for pgsql-committers@lists.postgresql.org; Sat, 16 Mar 2019 09:22:03 +0000 Received: from git by gemulon.postgresql.org with local (Exim 4.89) (envelope-from ) id 1h55Vy-00034w-Mi for pgsql-committers@lists.postgresql.org; Sat, 16 Mar 2019 09:22:02 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 To: pgsql-committers@lists.postgresql.org From: Alexander Korotkov Subject: pgsql: Partial implementation of SQL/JSON path language Message-Id: Date: Sat, 16 Mar 2019 09:22:02 +0000 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk UGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBTUUwvSlNPTiBwYXRoIGxhbmd1YWdlCgpTUUwgMjAx NiBzdGFuZGFyZHMgYW1vbmcgb3RoZXIgdGhpbmdzIGNvbnRhaW5zIHNldCBvZiBTUUwvSlNPTiBm ZWF0dXJlcyBmb3IKSlNPTiBwcm9jZXNzaW5nIGluc2lkZSBvZiByZWxhdGlvbmFsIGRhdGFiYXNl LiAgVGhlIGNvcmUgb2YgU1FML0pTT04gaXMgSlNPTgpwYXRoIGxhbmd1YWdlLCBhbGxvd2luZyBh Y2Nlc3MgcGFydHMgb2YgSlNPTiBkb2N1bWVudHMgYW5kIG1ha2UgY29tcHV0YXRpb25zCm92ZXIg dGhlbS4gIFRoaXMgY29tbWl0IGltcGxlbWVudHMgcGFydGlhbCBzdXBwb3J0IEpTT04gcGF0aCBs YW5ndWFnZSBhcwpzZXBhcmF0ZSBkYXRhdHlwZSBjYWxsZWQgImpzb25wYXRoIi4gIFRoZSBpbXBs ZW1lbnRhdGlvbiBpcyBwYXJ0aWFsIGJlY2F1c2UKaXQncyBsYWNraW5nIGRhdGV0aW1lIHN1cHBv cnQgYW5kIHN1cHByZXNzaW9uIG9mIG51bWVyaWMgZXJyb3JzLiAgTWlzc2luZwpmZWF0dXJlcyB3 aWxsIGJlIGFkZGVkIGxhdGVyIGJ5IHNlcGFyYXRlIGNvbW1pdHMuCgpTdXBwb3J0IG9mIFNRTC9K U09OIGZlYXR1cmVzIHJlcXVpcmVzIGltcGxlbWVudGF0aW9uIG9mIHNlcGFyYXRlIG5vZGVzLCBh bmQgaXQKd2lsbCBiZSBjb25zaWRlcmVkIGluIHN1YnNlcXVlbnQgcGF0Y2hlcy4gIFRoaXMgY29t bWl0IGluY2x1ZGVzIGZvbGxvd2luZwpzZXQgb2YgcGxhaW4gZnVuY3Rpb25zLCBhbGxvd2luZyB0 byBleGVjdXRlIGpzb25wYXRoIG92ZXIganNvbmIgdmFsdWVzOgoKICoganNvbmJfcGF0aF9leGlz dHMoanNvbmIsIGpzb25wYXRoWywganNvbmIsIGJvb2xdKSwKICoganNvbmJfcGF0aF9tYXRjaChq c29uYiwganNvbnBhdGhbLCBqc29uYiwgYm9vbF0pLAogKiBqc29uYl9wYXRoX3F1ZXJ5KGpzb25i LCBqc29ucGF0aFssIGpzb25iLCBib29sXSksCiAqIGpzb25iX3BhdGhfcXVlcnlfYXJyYXkoanNv bmIsIGpzb25wYXRoWywganNvbmIsIGJvb2xdKS4KICoganNvbmJfcGF0aF9xdWVyeV9maXJzdChq c29uYiwganNvbnBhdGhbLCBqc29uYiwgYm9vbF0pLgoKVGhpcyBjb21taXQgYWxzbyBpbXBsZW1l bnRzICJqc29uYiBAPyBqc29ucGF0aCIgYW5kICJqc29uYiBAQCBqc29ucGF0aCIsIHdoaWNoCmFy ZSB3cmFwcGVycyBvdmVyIGpzb25wYXRoX2V4aXN0cyhqc29uYiwganNvbnBhdGgpIGFuZCBqc29u cGF0aF9wcmVkaWNhdGUoanNvbmIsCmpzb25wYXRoKSBjb3JyZXNwb25kaW5nbHkuICBUaGVzZSBv cGVyYXRvcnMgd2lsbCBoYXZlIGFuIGluZGV4IHN1cHBvcnQKKGltcGxlbWVudGVkIGluIHN1YnNl cXVlbnQgcGF0Y2hlcykuCgpDYXR2ZXJzaW9uIGJ1bXBlZCwgdG8gYWRkIG5ldyBmdW5jdGlvbnMg YW5kIG9wZXJhdG9ycy4KCkNvZGUgd2FzIHdyaXR0ZW4gYnkgTmlraXRhIEdsdWtob3YgYW5kIFRl b2RvciBTaWdhZXYsIHJldmlzZWQgYnkgbWUuCkRvY3VtZW50YXRpb24gd2FzIHdyaXR0ZW4gYnkg T2xlZyBCYXJ0dW5vdiBhbmQgTGl1ZG1pbGEgTWFudHJvdmEuICBUaGUgd29yawp3YXMgaW5zcGly ZWQgYnkgT2xlZyBCYXJ0dW5vdi4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmNj NmZjNmEtYjQ5Ny1mMzlhLTkyM2QtYWEzNGQwYzU4OGU4JTQwMm5kUXVhZHJhbnQuY29tCkF1dGhv cjogTmlraXRhIEdsdWtob3YsIFRlb2RvciBTaWdhZXYsIEFsZXhhbmRlciBLb3JvdGtvdiwgT2xl ZyBCYXJ0dW5vdiwgTGl1ZG1pbGEgTWFudHJvdmEKUmV2aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSwg QW5kcmV3IER1bnN0YW4sIFBhdmVsIFN0ZWh1bGUsIEFsZXhhbmRlciBLb3JvdGtvdgoKQnJhbmNo Ci0tLS0tLQptYXN0ZXIKCkRldGFpbHMKLS0tLS0tLQpodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9y Zy9wZy9jb21taXRkaWZmLzcyYjY0NjAzMzZlODZhZDVjYWZkMzQyNmFmNjAxM2M3ZDg0NTczNjcK Ck1vZGlmaWVkIEZpbGVzCi0tLS0tLS0tLS0tLS0tCmRvYy9zcmMvc2dtbC9iaWJsaW8uc2dtbCAg ICAgICAgICAgICAgICAgICAgIHwgICAxMSArCmRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAg ICAgICAgICAgICAgICAgIHwgIDc2OCArKysrKysrKy0KZG9jL3NyYy9zZ21sL2pzb24uc2dtbCAg ICAgICAgICAgICAgICAgICAgICAgfCAgMjM3ICsrLQpzcmMvYmFja2VuZC9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKy0Kc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsICAgICAgICAgfCAgIDQwICsKc3JjL2JhY2tlbmQvdXRpbHMvYWR0Ly5naXRpZ25v cmUgICAgICAgICAgICAgfCAgICAzICsKc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlICAg ICAgICAgICAgICAgfCAgIDE5ICstCnNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jICAgICAg ICAgICAgICAgIHwgICA5MSArLQpzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJfdXRpbC5jICAg ICAgICAgICB8ICAgIDggKwpzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYyAgICAgICAg ICAgICB8IDEwNTMgKysrKysrKysrKysrCnNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9l eGVjLmMgICAgICAgIHwgMjI5MiArKysrKysrKysrKysrKysrKysrKysrKysrKwpzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbnBhdGhfZ3JhbS55ICAgICAgICB8ICA0ODAgKysrKysrCnNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29ucGF0aF9zY2FuLmwgICAgICAgIHwgIDYzOCArKysrKysrCnNyYy9i YWNrZW5kL3V0aWxzL2FkdC9yZWdleHAuYyAgICAgICAgICAgICAgIHwgICAgNCArLQpzcmMvYmFj a2VuZC91dGlscy9lcnJjb2Rlcy50eHQgICAgICAgICAgICAgICB8ICAgMTUgKwpzcmMvaW5jbHVk ZS9jYXRhbG9nL2NhdHZlcnNpb24uaCAgICAgICAgICAgICB8ICAgIDIgKy0Kc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAgICAgfCAgICA4ICsKc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgfCAgIDM5ICsKc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ190eXBlLmRhdCAgICAgICAgICAgICAgfCAgICA1ICsKc3JjL2luY2x1ZGUvcmVnZXgvcmVn ZXguaCAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsKc3JjL2luY2x1ZGUvdXRpbHMvLmdpdGln bm9yZSAgICAgICAgICAgICAgICAgfCAgICAxICsKc3JjL2luY2x1ZGUvdXRpbHMvanNvbmIuaCAg ICAgICAgICAgICAgICAgICAgfCAgICA0ICsKc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCAg ICAgICAgICAgICAgICAgfCAgMjQ1ICsrKwpzcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aF9zY2Fu bmVyLmggICAgICAgICB8ICAgMzIgKwpzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iX2pz b25wYXRoLm91dCB8IDE3NTYgKysrKysrKysrKysrKysrKysrKysKc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9qc29ucGF0aC5vdXQgICAgICAgfCAgODA2ICsrKysrKysrKwpzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICB8ICAgIDcgKy0Kc3JjL3Rlc3QvcmVncmVz cy9zZXJpYWxfc2NoZWR1bGUgICAgICAgICAgICAgfCAgICAyICsKc3JjL3Rlc3QvcmVncmVzcy9z cWwvanNvbmJfanNvbnBhdGguc3FsICAgICAgfCAgMzY5ICsrKysrCnNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2pzb25wYXRoLnNxbCAgICAgICAgICAgIHwgIDE0NyArKwpzcmMvdG9vbHMvbXN2Yy9Na3Zj YnVpbGQucG0gICAgICAgICAgICAgICAgICB8ICAgIDIgKwpzcmMvdG9vbHMvbXN2Yy9Tb2x1dGlv bi5wbSAgICAgICAgICAgICAgICAgICB8ICAgMTggKwpzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdCAgICAgICAgICAgICB8ICAgMTMgKwozMyBmaWxlcyBjaGFuZ2VkLCA5MDc5IGluc2Vy dGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoK