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 1irUSd-0000bI-6v for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2020 22:14:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1irUSb-0001aQ-FN for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Jan 2020 22:14:53 +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 1irUSb-0001aJ-6d for pgsql-hackers@lists.postgresql.org; Tue, 14 Jan 2020 22:14:53 +0000 Received: from xvm-110-146.dc2.ghst.net ([46.226.110.146] helo=fetter.org) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1irUSY-0001IR-Lr for pgsql-hackers@postgresql.org; Tue, 14 Jan 2020 22:14:52 +0000 Received: by fetter.org (Postfix, from userid 1001) id 1934F4096F; Tue, 14 Jan 2020 23:14:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fetter.org; s=default; t=1579040090; bh=hNcTMwQJ5nyq66dJVwU5Zhr+xOW/alh+WW0ncVnmw34=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=b+VgHyAIqdhD/3gMb5mMwyyQR5oFRlo1/qLw9pV7e4vJNEKxafMg+T4A++c7FTj7U 2f6JZTrNHx/T2a09tln9HEtY/5Zj+762SWj8F1abnqXJqvi7Y8GNfumqeFKKEoF0YL ORL74pStlCfnYT2cqoMNGznGXoeaPVm1FUUQm/OWAPqbKjevJK7O77iRWaA/eVge5F Bm0gxXZd1zgQQHaosHs6Rv2N8izocPbLH3KL55UWESo7cmj2u3rmGsSsVCTLtZXMpL BDgQ4HbueLCio45sUkw6tMMzZlPh/d7kxQPPKmQDOHiXAAfa3/Zt9+JaGnLQSokKc6 jcP3fzhRpuiBQ== Date: Tue, 14 Jan 2020 23:14:49 +0100 From: David Fetter To: Stephen Frost Cc: Tom Lane , Robert Haas , David Steele , Tels , Suraj Kharage , Rushabh Lathia , Andrew Dunstan , PostgreSQL Hackers , Jeevan Chalke , vignesh C Subject: Re: backup manifests Message-ID: <20200114221449.GH32763@fetter.org> References: <20200103170123.GX3195@tamriel.snowman.net> <20200103193559.GY3195@tamriel.snowman.net> <20200108013348.GF3195@tamriel.snowman.net> <00b28009-3781-4c4a-174b-be2c1bc52f27@pgmasters.net> <12445.1579024384@sss.pgh.pa.us> <20200114183312.GF32763@fetter.org> <20200114203540.GC3195@tamriel.snowman.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200114203540.GC3195@tamriel.snowman.net> User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On Tue, Jan 14, 2020 at 03:35:40PM -0500, Stephen Frost wrote: > Greetings, > > * David Fetter (david@fetter.org) wrote: > > On Tue, Jan 14, 2020 at 12:53:04PM -0500, Tom Lane wrote: > > > Robert Haas writes: > > > > ... I would also expect that depending on an external package > > > > would provoke significant opposition. If we suck the code into core, > > > > then we have to keep it up to date with the upstream, which is a > > > > significant maintenance burden - look at all the time Tom has spent on > > > > snowball, regex, and time zone code over the years. > > > > > > Also worth noting is that we have a seriously bad track record about > > > choosing external packages to depend on. The regex code has no upstream > > > maintainer anymore (well, the Tcl guys seem to think that *we* are > > > upstream for that now), and snowball is next door to moribund. > > > With C not being a particularly hip language to develop in anymore, > > > it wouldn't surprise me in the least for any C-code JSON parser > > > we might pick to go dead pretty soon. > > > > Given jq's extreme popularity and compatible license, I'd nominate that. > > I don't think that really changes Tom's concerns here about having an > "upstream" for this. > > For my part, I don't really agree with the whole "we don't want two > different JSON parsers" when we've got two of a bunch of stuff between > the frontend and the backend, particularly since I don't really think > it'll end up being *that* much code. > > My thought, which I had expressed to David (though he obviously didn't > entirely agree with me since he suggested the other options), was to > adapt the pgBackRest JSON parser, which isn't really all that much code. > > Frustratingly, that code has got some internal pgBackRest dependency on > things like the memory context system (which looks, unsurprisingly, an > awful lot like what is in PG backend), the error handling and logging > systems (which are different from PG because they're quite intentionally > segregated from each other- something PG would benefit from, imv..), and > Variadics (known in the PG backend as Datums, and quite similar to > them..). It might be more fun to put in that infrastructure and have it gate the manifest feature than to have two vastly different parsers to contend with. I get that putting off the backup manifests isn't an awesome prospect, but neither is rushing them in and getting them wrong in ways we'll still be regretting a decade hence. Best, David. -- David Fetter http://fetter.org/ Phone: +1 415 235 3778 Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate