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 1h9HxL-0002Jp-JT for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Mar 2019 23:27:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1h9HxK-0002WA-8a for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Mar 2019 23:27:38 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h9HxJ-00029w-Mp for pgsql-hackers@lists.postgresql.org; Wed, 27 Mar 2019 23:27:37 +0000 Received: from anastigmatix.net ([68.171.219.55]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h9HxE-0006Uc-EB for pgsql-hackers@lists.postgresql.org; Wed, 27 Mar 2019 23:27:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=anastigmatix.net; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=73GEd6LpkLv7kgMqQPDcKNY+MnoABP1U86+fcqK3Ygo=; b=To4xmEzOqe4AHLaohlAS32crf+ BEXgTrV81XNAsDUlJOlkEeQuXWOC0Pnc5bLUbXmAcX1YB4cupA/waVjz0N0d3/nSSwncYp5rvuJul apQPFGdom1CCu4x5/fd8un3znYsHPXFLs8CWGJK367HYpUugVVU4CsptEmZnJaaGLnhXGReAqsQWI nRJiWbRv38S6xQ+OMlABelnqNDwsByFK3cMbwVHsYKhhGg6Ld4ypYzLTN8uPrFSCLDk96QdH30JQv rOZQ5IaxSMi0UCFmHoP+QC6qGOSDkM6IH3XDLaTEUqIzKlJOhMooQzdFb3t2OR6dNvGwKP0kbrpfK cVgMh5vg==; Received: from [184.19.40.53] (port=55155) by bay.acenet.us with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1h9Hx6-004OQo-7c; Wed, 27 Mar 2019 19:27:30 -0400 Subject: Re: Fix XML handling with DOCTYPE To: Alvaro Herrera References: <20190327133152.GA7791@alvherre.pgsql> <5C9C023F.5070002@anastigmatix.net> Cc: Ryan Lambert , pgsql-hackers@lists.postgresql.org, Pavel Stehule , Tom Lane From: Chapman Flack X-Enigmail-Draft-Status: N1110 Message-ID: <5C9C06DB.6090901@anastigmatix.net> Date: Wed, 27 Mar 2019 19:27:23 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: <5C9C023F.5070002@anastigmatix.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-OutGoing-Spam-Status: No, score=-95.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bay.acenet.us X-AntiAbuse: Original Domain - lists.postgresql.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - anastigmatix.net X-Get-Message-Sender-Via: bay.acenet.us: authenticated_id: chap@anastigmatix.net X-Authenticated-Sender: bay.acenet.us: chap@anastigmatix.net X-Source: X-Source-Args: X-Source-Dir: X-From-Rewrite: unmodified, already matched List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 03/27/19 19:07, Chapman Flack wrote: > xml-functions-type-docfix-5.patch attached, with node-sets instead of > nodesets, libxml2 instead of libxml, and parenthesized full sentences > now au naturel. > > I ended up turning the formerly-parenthesized note about libxml2's > node-set ordering into a DocBook : there is really something > parenthetical about it, with the official statement of node-set > element ordering being that there is none, and the description of > what the library happens to do being of possible interest, but set > apart, with the necessary caveats about relying on it. I have just suffered a giant sinking feeling upon re-reading this sentence in our XMLTABLE doc: A column marked FOR ORDINALITY will be populated with row numbers matching the order in which the output rows appeared in the original input XML document. I've been skimming right over it all this time, and that right there is a glaring built-in reliance on the observable-but-disclaimed iteration order of a libxml2 node-set. I'm a bit unsure what any clarifying language should even say. Regards, -Chap