Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXgMd-00074Q-Ay for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jul 2017 04:13:31 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dXgMc-0006MX-Bb for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jul 2017 04:13: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_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dXgMS-0006AC-JB for pgsql-hackers@postgresql.org; Wed, 19 Jul 2017 04:13:21 +0000 Received: from mail-pf0-x229.google.com ([2607:f8b0:400e:c00::229]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dXgMN-0007cg-TD for pgsql-hackers@postgresql.org; Wed, 19 Jul 2017 04:13:19 +0000 Received: by mail-pf0-x229.google.com with SMTP id s70so11980752pfs.0 for ; Tue, 18 Jul 2017 21:13:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc:message-id:references :to; bh=bkaJiOjGBnUzoUJMw8sZwQsdswzBsxXaV7WN9HFeJtI=; b=hMS0zUCmpIDtIwYi52b1i0qHbbnVWD+YRGLX/JV9joCt/VCqAghALrpSjWS6lJs0FC QDjRJmJ6Mepg1hnITmWD1SItLI+WaK/+DY4zVdlCVVaOGbGm2kYKcUrLD7eXFCR2C9wQ o/jMDLapG7a6Xg6dK+q6OvAxPm9+PJ8ylMpcEZRUsBqexC9Wz4Wt1E2koavJt24gX0NA uvgkLnM8i47kgxp3JokN5eE59QL+0k0VlaPrdM+xJgxqghh1ugIhxHg+A+7X5XHts3bb IP39X8mHSfMvdeW7/3/wH99LoOIlnktpqn20BdnnCpFew2WZysX2ikpTNMROwwGuX6Gt Rb5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=bkaJiOjGBnUzoUJMw8sZwQsdswzBsxXaV7WN9HFeJtI=; b=dnlv2PR70wPzIA1hQNYYmgpETyotMSl9sli0pNdPjQArpPYVue0rhUsgFj/VzibEBR 0zS57ghc8l0fVj/P6XdfUr9eLsDrj+Kbw5WJNPyNdWI26z0bBR2ru/YB8Q3gQ2/8dZ0l uZNBpuP5SibvQlRS2TUTZI/dgp8N4yArbuMg5GgDj5fFQl1axDmLLx3QAmgvXsuVrard 5Ki2dtBhSkcVOo42LEA+UqM3fdxcE2+LyJoWFY0bbs2MdiWeg/YbH/u0Y8UIOlCA78A/ IrWHl5KBv+FouEL8gbYx1qqLeFLhe+RLwTBqASj/tDedbuTczMSng0exIlh5V2RS/sNE SZtg== X-Gm-Message-State: AIVw110R772lM3CtrrJ8ASj696+aI8nIU01eTyp9t4aZ65YeRyKVjBHP ynCEGjNgtJoaAtbrD2M= X-Received: by 10.84.232.129 with SMTP id i1mr1146416plk.28.1500437593397; Tue, 18 Jul 2017 21:13:13 -0700 (PDT) Received: from [192.168.2.121] ([172.92.221.196]) by smtp.gmail.com with ESMTPSA id y6sm7229394pgq.41.2017.07.18.21.13.11 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 18 Jul 2017 21:13:12 -0700 (PDT) Content-Type: multipart/mixed; boundary="Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C" Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: Something for the TODO list: deprecating abstime and friends From: Mark Dilger In-Reply-To: Date: Tue, 18 Jul 2017 21:13:10 -0700 Cc: pgsql-hackers@postgresql.org Message-Id: References: <30691.1500156034@sss.pgh.pa.us> <3D60B97C-5E80-4343-9CCF-390CD23B0E23@gmail.com> <3CD79F5D-DB73-4F2A-B698-44FF1930CB97@gmail.com> <12814.1500326041@sss.pgh.pa.us> To: Tom Lane X-Mailer: Apple Mail (2.3124) 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 --Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Jul 17, 2017, at 2:34 PM, Mark Dilger wrote: >=20 >>=20 >> On Jul 17, 2017, at 2:14 PM, Tom Lane wrote: >>=20 >> Mark Dilger writes: >>>> On Jul 17, 2017, at 12:54 PM, Mark Dilger wr= ote: >>> On Jul 15, 2017, at 3:00 PM, Tom Lane wrote: >>>>> The types abstime, reltime, and tinterval need to go away, or be >>>>> reimplemented, sometime well before 2038 when they will overflow. >>=20 >>>> These types provide a 4-byte datatype for storing real-world second >>>> precision timestamps, as occur in many log files. Forcing people to >>>> switch to timestamp or timestamptz will incur a 4 byte per row >>>> penalty. In my own builds, I have changed the epoch on these so >>>> they won't wrap until sometime after 2100 C.E. I see little point in >>>> switching to an 8-byte millisecond precision datatype when a perfectly >>>> good 4-byte second precision datatype already serves the purpose. >>=20 >> Well, if you or somebody is willing to do the legwork, I'd be on board >> with a plan that says that every 68 years we redefine the origin of >> abstime. I imagine it could be done so that currently-stored abstime >> values retain their present meaning as long as they're not too old. >> For example the initial change would toss abstimes before 1970 overboard, >> repurposing that range of values as being 2038-2106, but values between >> 1970 and 2038 still mean the same as they do today. If anybody still >> cares in circa 2085, we toss 1970-2038 overboard and move the origin >> again, lather rinse repeat. >>=20 >> But we're already past the point where it would be time to make the >> first such switch, if we're gonna do it. So I'd like to see somebody >> step up to the plate sooner not later. >=20 > Assuming other members of the community would not object to such > a plan, I'd be willing to step up to that plate. I'll wait a respectable= time, > maybe until tomorrow, to allow others to speak up. There was not much conversation about this, so I went ahead with what I think makes a logical first step. The attached patch removes the tinterv= al datatype from the sources. I intend to remove reltime next, and then make the changes to abstime in a third patch. mark --Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C Content-Disposition: attachment; filename=tinterval_abatement.patch.1 Content-Type: application/octet-stream; name="tinterval_abatement.patch.1" Content-Transfer-Encoding: quoted-printable diff --git a/src/backend/po/de.po b/src/backend/po/de.po=0A= index 0962242..30d589a 100644=0A= --- a/src/backend/po/de.po=0A= +++ b/src/backend/po/de.po=0A= @@ -20594,11 +20594,6 @@ msgstr "ung=C3=BCltiger Zeitzonenname: =C2=BB%s=C2= =AB"=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "kann =C2=BBabstime=C2=AB-Wert =C2=BBinvalid=C2=AB nicht =C2=BBtime= stamp=C2=AB umwandeln"=0A= =20=0A= -#: utils/adt/nabstime.c:782=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "ung=C3=BCltiger Status in externem =C2=BBtinterval=C2=AB-Wert"=0A= -=0A= #: utils/adt/nabstime.c:852=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= diff --git a/src/backend/po/es.po b/src/backend/po/es.po=0A= index 1e98ded..66be186 100644=0A= --- a/src/backend/po/es.po=0A= +++ b/src/backend/po/es.po=0A= @@ -21160,11 +21160,6 @@ msgstr "nombre de huso horario no v=C3=A1lido: =C2= =AB%s=C2=BB"=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "no se puede convertir el valor reservado de abstime =C2=ABinvalid= =C2=BB a timestamp"=0A= =20=0A= -#: utils/adt/nabstime.c:782=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "estatus no v=C3=A1lido en valor =C2=ABtinterval=C2=BB externo"=0A= -=0A= #: utils/adt/nabstime.c:852=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= @@ -25281,9 +25276,6 @@ msgstr "no se puede importar un snapshot desde una = base de datos diferente"=0A= #~ msgid "invalid input syntax for type macaddr: \"%s\""=0A= #~ msgstr "sintaxis de entrada no v=C3=A1lida para tipo macaddr: =C2=AB%s= =C2=BB"=0A= =20=0A= -#~ msgid "invalid input syntax for type tinterval: \"%s\""=0A= -#~ msgstr "sintaxis de entrada no v=C3=A1lida para el tipo tinterval: =C2= =AB%s=C2=BB"=0A= -=0A= #~ msgid "invalid input syntax for type numeric: \"%s\""=0A= #~ msgstr "la sintaxis de entrada no es v=C3=A1lida para el tipo numeric: = =C2=AB%s=C2=BB"=0A= =20=0A= diff --git a/src/backend/po/fr.po b/src/backend/po/fr.po=0A= index c709370..4763830 100644=0A= --- a/src/backend/po/fr.po=0A= +++ b/src/backend/po/fr.po=0A= @@ -19564,21 +19564,11 @@ msgstr "nom du fuseau horaire invalide : =C2=AB %= s =C2=BB"=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "ne peut pas convertir un abstime =C2=AB invalid =C2=BB en timestam= p"=0A= =20=0A= -#: utils/adt/nabstime.c:781=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "statut invalide dans la valeur externe =C2=AB tinterval =C2=BB"=0A= -=0A= #: utils/adt/nabstime.c:855=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "ne peut pas convertir reltime =C2=AB invalid =C2=BB en interval"= =0A= =20=0A= -#: utils/adt/nabstime.c:1550=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "syntaxe en entr=C3=A9e invalide pour le type tinterval : =C2=AB %s= =C2=BB"=0A= -=0A= #: utils/adt/network.c:69=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/po/id.po b/src/backend/po/id.po=0A= index d5d4841..dfdbbc2 100644=0A= --- a/src/backend/po/id.po=0A= +++ b/src/backend/po/id.po=0A= @@ -15760,21 +15760,11 @@ msgstr "nama zona waktu tidak valid: =C2=AB %s = =C2=BB"=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "tidak dapat mengkonversi abstime =C2=AB invalid =C2=BB ke timestam= p"=0A= =20=0A= -#: utils/adt/nabstime.c:807=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "status tidak valid pada nilai eksternal =C2=AB tinterval =C2=BB"= =0A= -=0A= #: utils/adt/nabstime.c:881=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "tidak dapat mengkonversi reltime =C2=AB invalid =C2=BB ke interval= "=0A= =20=0A= -#: utils/adt/nabstime.c:1576=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "sintaks masukan tidak valid untuk tipe tinterval : =C2=AB %s =C2= =BB"=0A= -=0A= #: utils/adt/network.c:118=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/po/it.po b/src/backend/po/it.po=0A= index 5f42bb4..21135e6 100644=0A= --- a/src/backend/po/it.po=0A= +++ b/src/backend/po/it.po=0A= @@ -20609,11 +20609,6 @@ msgstr "il nome del fuso orario \"%s\" non =C3=A8 = valido"=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "non =C3=A8 possibile convertire il valore abstime \"invalid\" in t= imestamp"=0A= =20=0A= -#: utils/adt/nabstime.c:782=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "lo stato nel valore del \"tinterval\" esterno non =C3=A8 valido"= =0A= -=0A= #: utils/adt/nabstime.c:852=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= diff --git a/src/backend/po/ja.po b/src/backend/po/ja.po=0A= index 2fa5d48..8bdb383 100644=0A= --- a/src/backend/po/ja.po=0A= +++ b/src/backend/po/ja.po=0A= @@ -15765,11 +15765,6 @@ msgstr "=E4=B8=8B=E9=99=90=E3=81=8A=E3=82=88=E3=81= =B3=E4=B8=8A=E9=99=90=E3=81=AF=E6=9C=89=E9=99=90=E3=81=A7=E3=81=AA=E3=81=91= =E3=82=8C=E3=81=B0=E3=81=AA=E3=82=8A=E3=81=BE=E3=81=9B=E3=82=93"=0A= msgid "lower bound cannot equal upper bound"=0A= msgstr "=E4=B8=8B=E9=99=90=E3=82=92=E4=B8=8A=E9=99=90=E3=81=A8=E5=90=8C=E3= =81=98=E3=81=AB=E3=81=A7=E3=81=8D=E3=81=BE=E3=81=9B=E3=82=93"=0A= =20=0A= -#: utils/adt/formatting.c:492=0A= -#, c-format=0A= -msgid "invalid format specification for an interval value"=0A= -msgstr "\"tinterval\"=E5=80=A4=E3=81=AE=E6=9B=B8=E5=BC=8F=E6=8C=87=E5=AE= =9A=E3=81=8C=E7=84=A1=E5=8A=B9=E3=81=A7=E3=81=99"=0A= -=0A= #: utils/adt/formatting.c:493=0A= #, c-format=0A= msgid "Intervals are not tied to specific calendar dates."=0A= @@ -16510,21 +16505,11 @@ msgstr "=E6=99=82=E9=96=93=E5=B8=AF=E5=90=8D=E7= =A7=B0=E3=81=8C=E7=84=A1=E5=8A=B9=E3=81=A7=E3=81=99: \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "abstime=E3=81=AE\"invalid\"=E3=82=92timestamp=E3=81=AB=E5=A4=89=E6= =8F=9B=E3=81=A7=E3=81=8D=E3=81=BE=E3=81=9B=E3=82=93"=0A= =20=0A= -#: utils/adt/nabstime.c:807=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "\"tinterval\"=E3=81=AE=E5=A4=96=E9=83=A8=E5=80=A4=E3=81=AE=E3=82= =B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9=E3=81=8C=E7=84=A1=E5=8A=B9=E3=81=A7= =E3=81=99"=0A= -=0A= #: utils/adt/nabstime.c:881=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "reltime=E3=81=AE\"invalid\"=E3=82=92interval=E3=81=AB=E5=A4=89=E6= =8F=9B=E3=81=A7=E3=81=8D=E3=81=BE=E3=81=9B=E3=82=93"=0A= =20=0A= -#: utils/adt/nabstime.c:1576=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "=E5=9E=8Btinterval=E3=81=AE=E5=85=A5=E5=8A=9B=E6=A7=8B=E6=96=87=E3= =81=8C=E7=84=A1=E5=8A=B9=E3=81=A7=E3=81=99: \"%s\""=0A= -=0A= #: utils/adt/network.c:118=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/po/ko.po b/src/backend/po/ko.po=0A= index c5225ff..9a4e045 100644=0A= --- a/src/backend/po/ko.po=0A= +++ b/src/backend/po/ko.po=0A= @@ -20131,21 +20131,11 @@ msgstr "=EC=9E=98=EB=AA=BB=EB=90=9C =ED=83=80=EC= =9E=84=EC=A1=B4 =EC=9D=B4=EB=A6=84: \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "\"invalid\" abstime =EC=9E=90=EB=A3=8C=ED=98=95=EC=9D=84 timestamp= =EC=9E=90=EB=A3=8C=ED=98=95=EC=9C=BC=EB=A1=9C =EB=B3=80=ED=99=98=ED=95=A0 = =EC=88=98 =EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4."=0A= =20=0A= -#: utils/adt/nabstime.c:781=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "=EC=99=B8=EB=B6=80 \"tinterval\" =EA=B0=92=EC=97=90 =EC=9E=98=EB= =AA=BB=EB=90=9C =EC=83=81=ED=83=9C=EA=B0=80 =EC=9E=88=EC=9D=8C"=0A= -=0A= #: utils/adt/nabstime.c:855=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "reltime \"invalid\"=EB=A5=BC interval=EB=A1=9C =EB=B3=80=ED=99=98= =ED=95=A0 =EC=88=98 =EC=97=86=EC=9D=8C"=0A= =20=0A= -#: utils/adt/nabstime.c:1550=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "tinterval =EC=9E=90=EB=A3=8C=ED=98=95=EC=97=90 =EB=8C=80=ED=95=9C = =EC=9E=98=EB=AA=BB=EB=90=9C =EC=9E=85=EB=A0=A5: \"%s\""=0A= -=0A= #: utils/adt/network.c:69=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/po/pl.po b/src/backend/po/pl.po=0A= index 3ac9d04..2162abf 100644=0A= --- a/src/backend/po/pl.po=0A= +++ b/src/backend/po/pl.po=0A= @@ -21418,11 +21418,6 @@ msgstr "nieprawid=C5=82owa nazwa strefy czasowej: = \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "nie mo=C5=BCna przekszta=C5=82ci=C4=87 abstime \"invalid\" do znac= znika czasu"=0A= =20=0A= -#: utils/adt/nabstime.c:782=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "niepoprawny status w zewn=C4=99trznej warto=C5=9Bci \"tinterval\""= =0A= -=0A= #: utils/adt/nabstime.c:852=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= @@ -25688,9 +25683,6 @@ msgstr "nie mo=C5=BCna importowa=C4=87 migawki z in= nej bazy danych"=0A= #~ msgid "invalid input syntax for type numeric: \"%s\""=0A= #~ msgstr "nieprawid=C5=82owa sk=C5=82adnia wej=C5=9Bcia dla typu numerycz= nego: \"%s\""=0A= =20=0A= -#~ msgid "invalid input syntax for type tinterval: \"%s\""=0A= -#~ msgstr "nieprawid=C5=82owa sk=C5=82adnia wej=C5=9Bcia dla typu tinterva= l: \"%s\""=0A= -=0A= #~ msgid "invalid input syntax for type macaddr: \"%s\""=0A= #~ msgstr "nieprawid=C5=82owa sk=C5=82adnia wej=C5=9Bcia dla typu macaddr:= \"%s\""=0A= =20=0A= diff --git a/src/backend/po/pt_BR.po b/src/backend/po/pt_BR.po=0A= index 37e4a28..b3ae6fc 100644=0A= --- a/src/backend/po/pt_BR.po=0A= +++ b/src/backend/po/pt_BR.po=0A= @@ -17283,21 +17283,11 @@ msgstr "nome de zona hor=C3=A1ria =C3=A9 inv=C3= =A1lido: \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "n=C3=A3o pode converter abstime \"invalid\" para timestamp"=0A= =20=0A= -#: utils/adt/nabstime.c:781=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "status =C3=A9 inv=C3=A1lido no valor de \"tinterval\" externo"=0A= -=0A= #: utils/adt/nabstime.c:855=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "n=C3=A3o pode converter reltime \"invalid\" em interval"=0A= =20=0A= -#: utils/adt/nabstime.c:1550=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "sintaxe de entrada =C3=A9 inv=C3=A1lida para tipo tinterval: \"%s\= ""=0A= -=0A= #: utils/adt/network.c:69=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/po/ru.po b/src/backend/po/ru.po=0A= index a4ce728..ca435ee 100644=0A= --- a/src/backend/po/ru.po=0A= +++ b/src/backend/po/ru.po=0A= @@ -22472,11 +22472,6 @@ msgstr "=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D0=BE= =D0=B5 =D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5 =D1=87=D0=B0=D1=81= =D0=BE=D0=B2=D0=BE=D0=B3=D0=BE =D0=BF=D0=BE=D1=8F=D1=81=D0=B0: \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "=D0=BF=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=BE=D0=B2=D0=B0= =D1=82=D1=8C =D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B5 \"invalid\" = =D1=82=D0=B8=D0=BF=D0=B0 abstime =D0=B2 timestamp =D0=BD=D0=B5=D0=BB=D1=8C= =D0=B7=D1=8F"=0A= =20=0A= -#: utils/adt/nabstime.c:782=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D0=BE=D0=B5 =D1=81=D0=BE=D1= =81=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D0=B5 =D0=B2=D0=BE =D0=B2=D0=BD=D0=B5=D1= =88=D0=BD=D0=B5=D0=BC =D0=BF=D1=80=D0=B5=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0= =BB=D0=B5=D0=BD=D0=B8=D0=B8 \"tinterval\""=0A= -=0A= #: utils/adt/nabstime.c:852=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= @@ -27722,9 +27717,6 @@ msgstr "=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7= =D1=83=D0=B9=D1=82=D0=B5 =D0=B4=D0=BB=D1=8F =D0=B7=D0=B0=D0=BF=D0=B8=D1=81= =D0=B8 =D1=81=D0=BF=D0=B5=D1=86=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE= =D0=B2 =D1=81=D0=B8=0A= #~ msgid "invalid input syntax for type macaddr: \"%s\""=0A= #~ msgstr "=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B=D0=B9 =D1=81=D0=B8= =D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8=D1=81 =D0=B4=D0=BB=D1=8F =D1=82=D0=B8= =D0=BF=D0=B0 macaddr: \"%s\""=0A= =20=0A= -#~ msgid "invalid input syntax for type tinterval: \"%s\""=0A= -#~ msgstr "=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B=D0=B9 =D1=81=D0=B8= =D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8=D1=81 =D0=B4=D0=BB=D1=8F =D1=82=D0=B8= =D0=BF=D0=B0 tinterval: \"%s\""=0A= -=0A= #~ msgid "invalid input syntax for type numeric: \"%s\""=0A= #~ msgstr "=D0=BD=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B=D0=B9 =D1=81=D0=B8= =D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8=D1=81 =D0=B4=D0=BB=D1=8F =D1=82=D0=B8= =D0=BF=D0=B0 numeric: \"%s\""=0A= =20=0A= diff --git a/src/backend/po/zh_CN.po b/src/backend/po/zh_CN.po=0A= index 1e6934a..c5cc4b2 100644=0A= --- a/src/backend/po/zh_CN.po=0A= +++ b/src/backend/po/zh_CN.po=0A= @@ -20229,21 +20229,11 @@ msgstr "=E6=97=A0=E6=95=88=E6=97=B6=E5=8C=BA=E5= =90=8D=E5=AD=97: \"%s\""=0A= msgid "cannot convert abstime \"invalid\" to timestamp"=0A= msgstr "=E6=97=A0=E6=B3=95=E6=8A=8A abstime \"invalid\" =E8=BD=AC=E6=8D=A2= =E4=B8=BA timestamp."=0A= =20=0A= -#: utils/adt/nabstime.c:781=0A= -#, c-format=0A= -msgid "invalid status in external \"tinterval\" value"=0A= -msgstr "=E6=97=A0=E6=95=88=E7=9A=84=E5=A4=96=E9=83=A8 \"tinterval\" =E5=80= =BC=E7=8A=B6=E6=80=81"=0A= -=0A= #: utils/adt/nabstime.c:855=0A= #, c-format=0A= msgid "cannot convert reltime \"invalid\" to interval"=0A= msgstr "=E6=97=A0=E6=B3=95=E6=8A=8A reltime \"invalid\" =E8=BD=AC=E6=8D=A2= =E4=B8=BA interval"=0A= =20=0A= -#: utils/adt/nabstime.c:1550=0A= -#, c-format=0A= -msgid "invalid input syntax for type tinterval: \"%s\""=0A= -msgstr "=E6=97=A0=E6=95=88=E7=9A=84 tinterval =E7=B1=BB=E5=9E=8B=E8=BE=93= =E5=85=A5=E8=AF=AD=E6=B3=95: \"%s\""=0A= -=0A= #: utils/adt/network.c:69=0A= #, c-format=0A= msgid "invalid cidr value: \"%s\""=0A= diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabst= ime.c=0A= index 2c59480..c6fa81e 100644=0A= --- a/src/backend/utils/adt/nabstime.c=0A= +++ b/src/backend/utils/adt/nabstime.c=0A= @@ -3,7 +3,6 @@=0A= * nabstime.c=0A= * Utilities for the built-in type "AbsoluteTime".=0A= * Functions for the built-in type "RelativeTime".=0A= - * Functions for the built-in type "TimeInterval".=0A= *=0A= * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group= =0A= * Portions Copyright (c) 1994, Regents of the University of California=0A= @@ -36,27 +35,10 @@=0A= * Unix epoch is Jan 1 00:00:00 1970.=0A= * Postgres knows about times sixty-eight years on either side of that=0A= * for these 4-byte types.=0A= - *=0A= - * "tinterval" is two 4-byte fields.=0A= - * Definitions for parsing tinterval.=0A= */=0A= =20=0A= #define IsSpace(C) ((C) =3D=3D ' ')=0A= =20=0A= -#define T_INTERVAL_INVAL 0 /* data represents no valid tinterval */=0A= -#define T_INTERVAL_VALID 1 /* data represents a valid tinterval */=0A= -/*=0A= - * ['Mon May 10 23:59:12 1943 PST' 'Sun Jan 14 03:14:21 1973 PST']=0A= - * 0 1 2 3 4 5 6=0A= - * 1234567890123456789012345678901234567890123456789012345678901234=0A= - *=0A= - * we allocate some extra -- timezones are usually 3 characters but=0A= - * this is not in the POSIX standard...=0A= - */=0A= -#define T_INTERVAL_LEN 80=0A= -#define INVALID_INTERVAL_STR "Undefined Range"=0A= -#define INVALID_INTERVAL_STR_LEN (sizeof(INVALID_INTERVAL_STR)-1)=0A= -=0A= #define ABSTIMEMIN(t1, t2) \=0A= (DatumGetBool(DirectFunctionCall2(abstimele, \=0A= AbsoluteTimeGetDatum(t1), \=0A= @@ -73,10 +55,6 @@=0A= =20=0A= static AbsoluteTime tm2abstime(struct pg_tm *tm, int tz);=0A= static void reltime2tm(RelativeTime time, struct pg_tm *tm);=0A= -static void parsetinterval(char *i_string,=0A= - AbsoluteTime *i_start,=0A= - AbsoluteTime *i_end);=0A= -=0A= =20=0A= /*=0A= * GetCurrentAbsoluteTime()=0A= @@ -693,114 +671,6 @@ reltime2tm(RelativeTime time, struct pg_tm *tm)=0A= }=0A= =20=0A= =20=0A= -/*=0A= - * tintervalin - converts an tinterval string to internal format=0A= - */=0A= -Datum=0A= -tintervalin(PG_FUNCTION_ARGS)=0A= -{=0A= - char *tintervalstr =3D PG_GETARG_CSTRING(0);=0A= - TimeInterval tinterval;=0A= - AbsoluteTime i_start,=0A= - i_end,=0A= - t1,=0A= - t2;=0A= -=0A= - parsetinterval(tintervalstr, &t1, &t2);=0A= -=0A= - tinterval =3D (TimeInterval) palloc(sizeof(TimeIntervalData));=0A= -=0A= - if (t1 =3D=3D INVALID_ABSTIME || t2 =3D=3D INVALID_ABSTIME)=0A= - tinterval->status =3D T_INTERVAL_INVAL; /* undefined */=0A= - else=0A= - tinterval->status =3D T_INTERVAL_VALID;=0A= -=0A= - i_start =3D ABSTIMEMIN(t1, t2);=0A= - i_end =3D ABSTIMEMAX(t1, t2);=0A= - tinterval->data[0] =3D i_start;=0A= - tinterval->data[1] =3D i_end;=0A= -=0A= - PG_RETURN_TIMEINTERVAL(tinterval);=0A= -}=0A= -=0A= -=0A= -/*=0A= - * tintervalout - converts an internal tinterval format to a string=0A= - */=0A= -Datum=0A= -tintervalout(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval tinterval =3D PG_GETARG_TIMEINTERVAL(0);=0A= - char *i_str,=0A= - *p;=0A= -=0A= - i_str =3D (char *) palloc(T_INTERVAL_LEN); /* ["..." "..."] */=0A= - strcpy(i_str, "[\"");=0A= - if (tinterval->status =3D=3D T_INTERVAL_INVAL)=0A= - strcat(i_str, INVALID_INTERVAL_STR);=0A= - else=0A= - {=0A= - p =3D DatumGetCString(DirectFunctionCall1(abstimeout,=0A= - AbsoluteTimeGetDatum(tinterval->data[0])));=0A= - strcat(i_str, p);=0A= - pfree(p);=0A= - strcat(i_str, "\" \"");=0A= - p =3D DatumGetCString(DirectFunctionCall1(abstimeout,=0A= - AbsoluteTimeGetDatum(tinterval->data[1])));=0A= - strcat(i_str, p);=0A= - pfree(p);=0A= - }=0A= - strcat(i_str, "\"]");=0A= - PG_RETURN_CSTRING(i_str);=0A= -}=0A= -=0A= -/*=0A= - * tintervalrecv - converts external binary format to tinterval=0A= - */=0A= -Datum=0A= -tintervalrecv(PG_FUNCTION_ARGS)=0A= -{=0A= - StringInfo buf =3D (StringInfo) PG_GETARG_POINTER(0);=0A= - TimeInterval tinterval;=0A= - int32 status;=0A= -=0A= - tinterval =3D (TimeInterval) palloc(sizeof(TimeIntervalData));=0A= -=0A= - tinterval->status =3D pq_getmsgint(buf, sizeof(tinterval->status));=0A= - tinterval->data[0] =3D pq_getmsgint(buf, sizeof(tinterval->data[0]));=0A= - tinterval->data[1] =3D pq_getmsgint(buf, sizeof(tinterval->data[1]));=0A= -=0A= - if (tinterval->data[0] =3D=3D INVALID_ABSTIME ||=0A= - tinterval->data[1] =3D=3D INVALID_ABSTIME)=0A= - status =3D T_INTERVAL_INVAL; /* undefined */=0A= - else=0A= - status =3D T_INTERVAL_VALID;=0A= -=0A= - if (status !=3D tinterval->status)=0A= - ereport(ERROR,=0A= - (errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),=0A= - errmsg("invalid status in external \"tinterval\" value")));=0A= -=0A= - PG_RETURN_TIMEINTERVAL(tinterval);=0A= -}=0A= -=0A= -/*=0A= - * tintervalsend - converts tinterval to binary format=0A= - */=0A= -Datum=0A= -tintervalsend(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval tinterval =3D PG_GETARG_TIMEINTERVAL(0);=0A= - StringInfoData buf;=0A= -=0A= - pq_begintypsend(&buf);=0A= - pq_sendint(&buf, tinterval->status, sizeof(tinterval->status));=0A= - pq_sendint(&buf, tinterval->data[0], sizeof(tinterval->data[0]));=0A= - pq_sendint(&buf, tinterval->data[1], sizeof(tinterval->data[1]));=0A= - PG_RETURN_BYTEA_P(pq_endtypsend(&buf));=0A= -}=0A= -=0A= -=0A= /*************************************************************************= ****=0A= * PUBLIC ROUTINES *=0A= *************************************************************************= ****/=0A= @@ -874,33 +744,6 @@ reltime_interval(PG_FUNCTION_ARGS)=0A= =20=0A= =20=0A= /*=0A= - * mktinterval - creates a time interval with endpoints t1 and t2=0A= - */=0A= -Datum=0A= -mktinterval(PG_FUNCTION_ARGS)=0A= -{=0A= - AbsoluteTime t1 =3D PG_GETARG_ABSOLUTETIME(0);=0A= - AbsoluteTime t2 =3D PG_GETARG_ABSOLUTETIME(1);=0A= - AbsoluteTime tstart =3D ABSTIMEMIN(t1, t2);=0A= - AbsoluteTime tend =3D ABSTIMEMAX(t1, t2);=0A= - TimeInterval tinterval;=0A= -=0A= - tinterval =3D (TimeInterval) palloc(sizeof(TimeIntervalData));=0A= -=0A= - if (t1 =3D=3D INVALID_ABSTIME || t2 =3D=3D INVALID_ABSTIME)=0A= - tinterval->status =3D T_INTERVAL_INVAL;=0A= -=0A= - else=0A= - {=0A= - tinterval->status =3D T_INTERVAL_VALID;=0A= - tinterval->data[0] =3D tstart;=0A= - tinterval->data[1] =3D tend;=0A= - }=0A= -=0A= - PG_RETURN_TIMEINTERVAL(tinterval);=0A= -}=0A= -=0A= -/*=0A= * timepl, timemi and abstimemi use the formula=0A= * abstime + reltime =3D abstime=0A= * so abstime - reltime =3D abstime=0A= @@ -946,49 +789,6 @@ timemi(PG_FUNCTION_ARGS)=0A= =20=0A= =20=0A= /*=0A= - * intinterval - returns true iff absolute date is in the tinterval=0A= - */=0A= -Datum=0A= -intinterval(PG_FUNCTION_ARGS)=0A= -{=0A= - AbsoluteTime t =3D PG_GETARG_ABSOLUTETIME(0);=0A= - TimeInterval tinterval =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - if (tinterval->status =3D=3D T_INTERVAL_VALID && t !=3D INVALID_ABSTIME)= =0A= - {=0A= - if (DatumGetBool(DirectFunctionCall2(abstimege,=0A= - AbsoluteTimeGetDatum(t),=0A= - AbsoluteTimeGetDatum(tinterval->data[0]))) &&=0A= - DatumGetBool(DirectFunctionCall2(abstimele,=0A= - AbsoluteTimeGetDatum(t),=0A= - AbsoluteTimeGetDatum(tinterval->data[1]))))=0A= - PG_RETURN_BOOL(true);=0A= - }=0A= - PG_RETURN_BOOL(false);=0A= -}=0A= -=0A= -/*=0A= - * tintervalrel - returns relative time corresponding to tinterval=0A= - */=0A= -Datum=0A= -tintervalrel(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval tinterval =3D PG_GETARG_TIMEINTERVAL(0);=0A= - AbsoluteTime t1 =3D tinterval->data[0];=0A= - AbsoluteTime t2 =3D tinterval->data[1];=0A= -=0A= - if (tinterval->status !=3D T_INTERVAL_VALID)=0A= - PG_RETURN_RELATIVETIME(INVALID_RELTIME);=0A= -=0A= - if (AbsoluteTimeIsReal(t1) &&=0A= - AbsoluteTimeIsReal(t2))=0A= - PG_RETURN_RELATIVETIME(t2 - t1);=0A= -=0A= - PG_RETURN_RELATIVETIME(INVALID_RELTIME);=0A= -}=0A= -=0A= -=0A= -/*=0A= * timenow - returns time "now", internal format=0A= *=0A= * Now AbsoluteTime is time since Jan 1 1970 -mer 7 Feb 1992=0A= @@ -1092,456 +892,6 @@ btreltimecmp(PG_FUNCTION_ARGS)=0A= PG_RETURN_INT32(reltime_cmp_internal(t1, t2));=0A= }=0A= =20=0A= -=0A= -/*=0A= - * tintervalsame - returns true iff tinterval i1 is same as tinterval i2= =0A= - * Check begin and end time.=0A= - */=0A= -Datum=0A= -tintervalsame(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - if (i1->status =3D=3D T_INTERVAL_INVAL || i2->status =3D=3D T_INTERVAL_IN= VAL)=0A= - PG_RETURN_BOOL(false);=0A= -=0A= - if (DatumGetBool(DirectFunctionCall2(abstimeeq,=0A= - AbsoluteTimeGetDatum(i1->data[0]),=0A= - AbsoluteTimeGetDatum(i2->data[0]))) &&=0A= - DatumGetBool(DirectFunctionCall2(abstimeeq,=0A= - AbsoluteTimeGetDatum(i1->data[1]),=0A= - AbsoluteTimeGetDatum(i2->data[1]))))=0A= - PG_RETURN_BOOL(true);=0A= - PG_RETURN_BOOL(false);=0A= -}=0A= -=0A= -/*=0A= - * tinterval comparison routines=0A= - *=0A= - * Note: comparison is based only on the lengths of the tintervals, not on= =0A= - * endpoint values (as long as they're not INVALID). This is pretty bogus= ,=0A= - * but since it's only a legacy datatype, we're not going to change it.=0A= - *=0A= - * Some other bogus things that won't be changed for compatibility reasons= :=0A= - * 1. The interval length computations overflow at 2^31 seconds, causing= =0A= - * intervals longer than that to sort oddly compared to those shorter.=0A= - * 2. infinity and minus infinity (NOEND_ABSTIME and NOSTART_ABSTIME) are= =0A= - * just ordinary integers. Since this code doesn't handle them specially,= =0A= - * it's possible for [a b] to be considered longer than [c infinity] for= =0A= - * finite abstimes a, b, c. In combination with the previous point, the= =0A= - * interval [-infinity infinity] is treated as being shorter than many fin= ite=0A= - * intervals :-(=0A= - *=0A= - * If tinterval is ever reimplemented atop timestamp, it'd be good to give= =0A= - * some consideration to avoiding these problems.=0A= - */=0A= -static int=0A= -tinterval_cmp_internal(TimeInterval a, TimeInterval b)=0A= -{=0A= - bool a_invalid;=0A= - bool b_invalid;=0A= - AbsoluteTime a_len;=0A= - AbsoluteTime b_len;=0A= -=0A= - /*=0A= - * We consider all INVALIDs to be equal and larger than any non-INVALID.= =0A= - * This is somewhat arbitrary; the important thing is to have a consisten= t=0A= - * sort order.=0A= - */=0A= - a_invalid =3D a->status =3D=3D T_INTERVAL_INVAL ||=0A= - a->data[0] =3D=3D INVALID_ABSTIME ||=0A= - a->data[1] =3D=3D INVALID_ABSTIME;=0A= - b_invalid =3D b->status =3D=3D T_INTERVAL_INVAL ||=0A= - b->data[0] =3D=3D INVALID_ABSTIME ||=0A= - b->data[1] =3D=3D INVALID_ABSTIME;=0A= -=0A= - if (a_invalid)=0A= - {=0A= - if (b_invalid)=0A= - return 0; /* INVALID =3D INVALID */=0A= - else=0A= - return 1; /* INVALID > non-INVALID */=0A= - }=0A= -=0A= - if (b_invalid)=0A= - return -1; /* non-INVALID < INVALID */=0A= -=0A= - a_len =3D a->data[1] - a->data[0];=0A= - b_len =3D b->data[1] - b->data[0];=0A= -=0A= - if (a_len > b_len)=0A= - return 1;=0A= - else if (a_len =3D=3D b_len)=0A= - return 0;=0A= - else=0A= - return -1;=0A= -}=0A= -=0A= -Datum=0A= -tintervaleq(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) =3D=3D 0);=0A= -}=0A= -=0A= -Datum=0A= -tintervalne(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) !=3D 0);=0A= -}=0A= -=0A= -Datum=0A= -tintervallt(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) < 0);=0A= -}=0A= -=0A= -Datum=0A= -tintervalle(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) <=3D 0);=0A= -}=0A= -=0A= -Datum=0A= -tintervalgt(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) > 0);=0A= -}=0A= -=0A= -Datum=0A= -tintervalge(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_BOOL(tinterval_cmp_internal(i1, i2) >=3D 0);=0A= -}=0A= -=0A= -Datum=0A= -bttintervalcmp(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - PG_RETURN_INT32(tinterval_cmp_internal(i1, i2));=0A= -}=0A= -=0A= -=0A= -/*=0A= - * tintervalleneq - returns true iff length of tinterval i is equal to=0A= - * reltime t=0A= - * tintervallenne - returns true iff length of tinterval i is not equal= =0A= - * to reltime t=0A= - * tintervallenlt - returns true iff length of tinterval i is less than= =0A= - * reltime t=0A= - * tintervallengt - returns true iff length of tinterval i is greater=0A= - * than reltime t=0A= - * tintervallenle - returns true iff length of tinterval i is less or=0A= - * equal than reltime t=0A= - * tintervallenge - returns true iff length of tinterval i is greater or= =0A= - * equal than reltime t=0A= - */=0A= -Datum=0A= -tintervalleneq(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt =3D=3D t);=0A= -}=0A= -=0A= -Datum=0A= -tintervallenne(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt !=3D t);=0A= -}=0A= -=0A= -Datum=0A= -tintervallenlt(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt < t);=0A= -}=0A= -=0A= -Datum=0A= -tintervallengt(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt > t);=0A= -}=0A= -=0A= -Datum=0A= -tintervallenle(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt <=3D t);=0A= -}=0A= -=0A= -Datum=0A= -tintervallenge(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= - RelativeTime t =3D PG_GETARG_RELATIVETIME(1);=0A= - RelativeTime rt;=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL || t =3D=3D INVALID_RELTIME)=0A= - PG_RETURN_BOOL(false);=0A= - rt =3D DatumGetRelativeTime(DirectFunctionCall1(tintervalrel,=0A= - TimeIntervalGetDatum(i)));=0A= - PG_RETURN_BOOL(rt !=3D INVALID_RELTIME && rt >=3D t);=0A= -}=0A= -=0A= -/*=0A= - * tintervalct - returns true iff tinterval i1 contains tinterval i2=0A= - */=0A= -Datum=0A= -tintervalct(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - if (i1->status =3D=3D T_INTERVAL_INVAL || i2->status =3D=3D T_INTERVAL_IN= VAL)=0A= - PG_RETURN_BOOL(false);=0A= - if (DatumGetBool(DirectFunctionCall2(abstimele,=0A= - AbsoluteTimeGetDatum(i1->data[0]),=0A= - AbsoluteTimeGetDatum(i2->data[0]))) &&=0A= - DatumGetBool(DirectFunctionCall2(abstimege,=0A= - AbsoluteTimeGetDatum(i1->data[1]),=0A= - AbsoluteTimeGetDatum(i2->data[1]))))=0A= - PG_RETURN_BOOL(true);=0A= - PG_RETURN_BOOL(false);=0A= -}=0A= -=0A= -/*=0A= - * tintervalov - returns true iff tinterval i1 (partially) overlaps i2= =0A= - */=0A= -Datum=0A= -tintervalov(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i1 =3D PG_GETARG_TIMEINTERVAL(0);=0A= - TimeInterval i2 =3D PG_GETARG_TIMEINTERVAL(1);=0A= -=0A= - if (i1->status =3D=3D T_INTERVAL_INVAL || i2->status =3D=3D T_INTERVAL_IN= VAL)=0A= - PG_RETURN_BOOL(false);=0A= - if (DatumGetBool(DirectFunctionCall2(abstimelt,=0A= - AbsoluteTimeGetDatum(i1->data[1]),=0A= - AbsoluteTimeGetDatum(i2->data[0]))) ||=0A= - DatumGetBool(DirectFunctionCall2(abstimegt,=0A= - AbsoluteTimeGetDatum(i1->data[0]),=0A= - AbsoluteTimeGetDatum(i2->data[1]))))=0A= - PG_RETURN_BOOL(false);=0A= - PG_RETURN_BOOL(true);=0A= -}=0A= -=0A= -/*=0A= - * tintervalstart - returns the start of tinterval i=0A= - */=0A= -Datum=0A= -tintervalstart(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL)=0A= - PG_RETURN_ABSOLUTETIME(INVALID_ABSTIME);=0A= - PG_RETURN_ABSOLUTETIME(i->data[0]);=0A= -}=0A= -=0A= -/*=0A= - * tintervalend - returns the end of tinterval i=0A= - */=0A= -Datum=0A= -tintervalend(PG_FUNCTION_ARGS)=0A= -{=0A= - TimeInterval i =3D PG_GETARG_TIMEINTERVAL(0);=0A= -=0A= - if (i->status =3D=3D T_INTERVAL_INVAL)=0A= - PG_RETURN_ABSOLUTETIME(INVALID_ABSTIME);=0A= - PG_RETURN_ABSOLUTETIME(i->data[1]);=0A= -}=0A= -=0A= -=0A= -/*************************************************************************= ****=0A= - * PRIVATE ROUTINES *=0A= - *************************************************************************= ****/=0A= -=0A= -/*=0A= - * parsetinterval -- parse a tinterval string=0A= - *=0A= - * output parameters:=0A= - * i_start, i_end: tinterval margins=0A= - *=0A= - * Time interval:=0A= - * `[' {` '} `'' `'' {` '} `'' `'' {` '} `]'=0A= - *=0A= - * OR `Undefined Range' (see also INVALID_INTERVAL_STR)=0A= - *=0A= - * where satisfies the syntax of absolute time.=0A= - *=0A= - * e.g. [ ' Jan 18 1902' 'Jan 1 00:00:00 1970']=0A= - */=0A= -static void=0A= -parsetinterval(char *i_string,=0A= - AbsoluteTime *i_start,=0A= - AbsoluteTime *i_end)=0A= -{=0A= - char *p,=0A= - *p1;=0A= - char c;=0A= -=0A= - p =3D i_string;=0A= - /* skip leading blanks up to '[' */=0A= - while ((c =3D *p) !=3D '\0')=0A= - {=0A= - if (IsSpace(c))=0A= - p++;=0A= - else if (c !=3D '[')=0A= - goto bogus; /* syntax error */=0A= - else=0A= - break;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - p++;=0A= - /* skip leading blanks up to '"' */=0A= - while ((c =3D *p) !=3D '\0')=0A= - {=0A= - if (IsSpace(c))=0A= - p++;=0A= - else if (c !=3D '"')=0A= - goto bogus; /* syntax error */=0A= - else=0A= - break;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - p++;=0A= - if (strncmp(INVALID_INTERVAL_STR, p, strlen(INVALID_INTERVAL_STR)) =3D=3D= 0)=0A= - goto bogus; /* undefined range, handled like a syntax err. */=0A= - /* search for the end of the first date and change it to a \0 */=0A= - p1 =3D p;=0A= - while ((c =3D *p1) !=3D '\0')=0A= - {=0A= - if (c =3D=3D '"')=0A= - break;=0A= - p1++;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - *p1 =3D '\0';=0A= - /* get the first date */=0A= - *i_start =3D DatumGetAbsoluteTime(DirectFunctionCall1(abstimein,=0A= - CStringGetDatum(p)));=0A= - /* undo change to \0 */=0A= - *p1 =3D c;=0A= - p =3D ++p1;=0A= - /* skip blanks up to '"', beginning of second date */=0A= - while ((c =3D *p) !=3D '\0')=0A= - {=0A= - if (IsSpace(c))=0A= - p++;=0A= - else if (c !=3D '"')=0A= - goto bogus; /* syntax error */=0A= - else=0A= - break;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - p++;=0A= - /* search for the end of the second date and change it to a \0 */=0A= - p1 =3D p;=0A= - while ((c =3D *p1) !=3D '\0')=0A= - {=0A= - if (c =3D=3D '"')=0A= - break;=0A= - p1++;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - *p1 =3D '\0';=0A= - /* get the second date */=0A= - *i_end =3D DatumGetAbsoluteTime(DirectFunctionCall1(abstimein,=0A= - CStringGetDatum(p)));=0A= - /* undo change to \0 */=0A= - *p1 =3D c;=0A= - p =3D ++p1;=0A= - /* skip blanks up to ']' */=0A= - while ((c =3D *p) !=3D '\0')=0A= - {=0A= - if (IsSpace(c))=0A= - p++;=0A= - else if (c !=3D ']')=0A= - goto bogus; /* syntax error */=0A= - else=0A= - break;=0A= - }=0A= - if (c =3D=3D '\0')=0A= - goto bogus; /* syntax error */=0A= - p++;=0A= - c =3D *p;=0A= - if (c !=3D '\0')=0A= - goto bogus; /* syntax error */=0A= -=0A= - /* it seems to be a valid tinterval */=0A= - return;=0A= -=0A= -bogus:=0A= - ereport(ERROR,=0A= - (errcode(ERRCODE_INVALID_DATETIME_FORMAT),=0A= - errmsg("invalid input syntax for type %s: \"%s\"",=0A= - "tinterval", i_string)));=0A= - *i_start =3D *i_end =3D INVALID_ABSTIME; /* keep compiler quiet */=0A= -}=0A= -=0A= -=0A= /*************************************************************************= ****=0A= *=0A= *************************************************************************= ****/=0A= diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfu= ncs.c=0A= index e103f5e..b28f428 100644=0A= --- a/src/backend/utils/adt/selfuncs.c=0A= +++ b/src/backend/utils/adt/selfuncs.c=0A= @@ -3946,7 +3946,6 @@ convert_to_scalar(Datum value, Oid valuetypid, double= *scaledvalue,=0A= case DATEOID:=0A= case INTERVALOID:=0A= case RELTIMEOID:=0A= - case TINTERVALOID:=0A= case TIMEOID:=0A= case TIMETZOID:=0A= *scaledvalue =3D convert_timevalue_to_scalar(value, valuetypid);=0A= @@ -4379,14 +4378,6 @@ convert_timevalue_to_scalar(Datum value, Oid typid)= =0A= }=0A= case RELTIMEOID:=0A= return (DatumGetRelativeTime(value) * 1000000.0);=0A= - case TINTERVALOID:=0A= - {=0A= - TimeInterval tinterval =3D DatumGetTimeInterval(value);=0A= -=0A= - if (tinterval->status !=3D 0)=0A= - return ((tinterval->data[1] - tinterval->data[0]) * 1000000.0);=0A= - return 0; /* for lack of a better idea */=0A= - }=0A= case TIMEOID:=0A= return DatumGetTimeADT(value);=0A= case TIMETZOID:=0A= diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h= =0A= index f850be4..6fc2f08 100644=0A= --- a/src/include/catalog/pg_amop.h=0A= +++ b/src/include/catalog/pg_amop.h=0A= @@ -473,16 +473,6 @@ DATA(insert ( 2233 703 703 4 s 571 403 0 ));=0A= DATA(insert ( 2233 703 703 5 s 569 403 0 ));=0A= =20=0A= /*=0A= - * btree tinterval_ops=0A= - */=0A= -=0A= -DATA(insert ( 2234 704 704 1 s 813 403 0 ));=0A= -DATA(insert ( 2234 704 704 2 s 815 403 0 ));=0A= -DATA(insert ( 2234 704 704 3 s 811 403 0 ));=0A= -DATA(insert ( 2234 704 704 4 s 816 403 0 ));=0A= -DATA(insert ( 2234 704 704 5 s 814 403 0 ));=0A= -=0A= -/*=0A= * btree array_ops=0A= */=0A= =20=0A= diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_ampro= c.h=0A= index 7d245b1..cca4d63 100644=0A= --- a/src/include/catalog/pg_amproc.h=0A= +++ b/src/include/catalog/pg_amproc.h=0A= @@ -136,7 +136,6 @@ DATA(insert ( 2097 1042 1042 1 2180 ));=0A= DATA(insert ( 2097 1042 1042 2 3333 ));=0A= DATA(insert ( 2099 790 790 1 377 ));=0A= DATA(insert ( 2233 703 703 1 380 ));=0A= -DATA(insert ( 2234 704 704 1 381 ));=0A= DATA(insert ( 2789 27 27 1 2794 ));=0A= DATA(insert ( 2968 2950 2950 1 2960 ));=0A= DATA(insert ( 2968 2950 2950 2 3300 ));=0A= diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opcl= ass.h=0A= index 28dbc74..8212304 100644=0A= --- a/src/include/catalog/pg_opclass.h=0A= +++ b/src/include/catalog/pg_opclass.h=0A= @@ -179,7 +179,6 @@ DATA(insert ( 405 text_pattern_ops PGNSP PGUID 2229 = 25 f 0 ));=0A= DATA(insert ( 405 varchar_pattern_ops PGNSP PGUID 2229 25 f 0 ));=0A= DATA(insert ( 405 bpchar_pattern_ops PGNSP PGUID 2231 1042 f 0 ));=0A= DATA(insert ( 403 reltime_ops PGNSP PGUID 2233 703 t 0 ));=0A= -DATA(insert ( 403 tinterval_ops PGNSP PGUID 2234 704 t 0 ));=0A= DATA(insert ( 405 aclitem_ops PGNSP PGUID 2235 1033 t 0 ));=0A= DATA(insert ( 783 box_ops PGNSP PGUID 2593 603 t 0 ));=0A= DATA(insert ( 783 point_ops PGNSP PGUID 1029 600 t 603 ));=0A= diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_ope= rator.h=0A= index ffabc20..d79f5f2 100644=0A= --- a/src/include/catalog/pg_operator.h=0A= +++ b/src/include/catalog/pg_operator.h=0A= @@ -373,30 +373,10 @@ DATA(insert OID =3D 570 ( "<=3D" PGNSP PGUID b f = f 703 703 16 571 569 reltimele=0A= DESCR("less than or equal");=0A= DATA(insert OID =3D 571 ( ">=3D" PGNSP PGUID b f f 703 703 16 570 568 = reltimege scalargtsel scalargtjoinsel ));=0A= DESCR("greater than or equal");=0A= -DATA(insert OID =3D 572 ( "~=3D" PGNSP PGUID b f f 704 704 16 572 0 t= intervalsame eqsel eqjoinsel ));=0A= -DESCR("same as");=0A= -DATA(insert OID =3D 573 ( "<<" PGNSP PGUID b f f 704 704 16 0 0 tint= ervalct - - ));=0A= -DESCR("contains");=0A= -DATA(insert OID =3D 574 ( "&&" PGNSP PGUID b f f 704 704 16 574 0 tin= tervalov - - ));=0A= -DESCR("overlaps");=0A= -DATA(insert OID =3D 575 ( "#=3D" PGNSP PGUID b f f 704 703 16 0 576 t= intervalleneq - - ));=0A= -DESCR("equal by length");=0A= -DATA(insert OID =3D 576 ( "#<>" PGNSP PGUID b f f 704 703 16 0 575 ti= ntervallenne - - ));=0A= -DESCR("not equal by length");=0A= -DATA(insert OID =3D 577 ( "#<" PGNSP PGUID b f f 704 703 16 0 580 tin= tervallenlt - - ));=0A= -DESCR("less than by length");=0A= -DATA(insert OID =3D 578 ( "#>" PGNSP PGUID b f f 704 703 16 0 579 tin= tervallengt - - ));=0A= -DESCR("greater than by length");=0A= -DATA(insert OID =3D 579 ( "#<=3D" PGNSP PGUID b f f 704 703 16 0 578 = tintervallenle - - ));=0A= -DESCR("less than or equal by length");=0A= -DATA(insert OID =3D 580 ( "#>=3D" PGNSP PGUID b f f 704 703 16 0 577 = tintervallenge - - ));=0A= -DESCR("greater than or equal by length");=0A= DATA(insert OID =3D 581 ( "+" PGNSP PGUID b f f 702 703 702 0 0 time= pl - - ));=0A= DESCR("add");=0A= DATA(insert OID =3D 582 ( "-" PGNSP PGUID b f f 702 703 702 0 0 time= mi - - ));=0A= DESCR("subtract");=0A= -DATA(insert OID =3D 583 ( "" PGNSP PGUID b f f 702 704 16 0 0 int= interval - - ));=0A= -DESCR("is contained by");=0A= DATA(insert OID =3D 584 ( "-" PGNSP PGUID l f f 0 700 700 0 0 float= 4um - - ));=0A= DESCR("negate");=0A= DATA(insert OID =3D 585 ( "-" PGNSP PGUID l f f 0 701 701 0 0 float= 8um - - ));=0A= @@ -425,10 +405,6 @@ DATA(insert OID =3D 596 ( "|/" PGNSP PGUID l f f = 0 701 701 0 0 dsqrt - - ))=0A= DESCR("square root");=0A= DATA(insert OID =3D 597 ( "||/" PGNSP PGUID l f f 0 701 701 0 0 dcb= rt - - ));=0A= DESCR("cube root");=0A= -DATA(insert OID =3D 1284 ( "|" PGNSP PGUID l f f 0 704 702 0 0 tint= ervalstart - - ));=0A= -DESCR("start of interval");=0A= -DATA(insert OID =3D 606 ( "<#>" PGNSP PGUID b f f 702 702 704 0 0 mk= tinterval - - ));=0A= -DESCR("convert to tinterval");=0A= =20=0A= DATA(insert OID =3D 607 ( "=3D" PGNSP PGUID b t t 26 26 16 607 608 oid= eq eqsel eqjoinsel ));=0A= DESCR("equal");=0A= @@ -669,19 +645,6 @@ DESCR("horizontally aligned");=0A= DATA(insert OID =3D 809 ( "?|" PGNSP PGUID b f f 600 600 16 809 0= point_vert - - ));=0A= DESCR("vertically aligned");=0A= =20=0A= -DATA(insert OID =3D 811 ( "=3D" PGNSP PGUID b t f 704 704 16 811 812 t= intervaleq eqsel eqjoinsel ));=0A= -DESCR("equal");=0A= -DATA(insert OID =3D 812 ( "<>" PGNSP PGUID b f f 704 704 16 812 811 ti= ntervalne neqsel neqjoinsel ));=0A= -DESCR("not equal");=0A= -DATA(insert OID =3D 813 ( "<" PGNSP PGUID b f f 704 704 16 814 816 tin= tervallt scalarltsel scalarltjoinsel ));=0A= -DESCR("less than");=0A= -DATA(insert OID =3D 814 ( ">" PGNSP PGUID b f f 704 704 16 813 815 tin= tervalgt scalargtsel scalargtjoinsel ));=0A= -DESCR("greater than");=0A= -DATA(insert OID =3D 815 ( "<=3D" PGNSP PGUID b f f 704 704 16 816 814 = tintervalle scalarltsel scalarltjoinsel ));=0A= -DESCR("less than or equal");=0A= -DATA(insert OID =3D 816 ( ">=3D" PGNSP PGUID b f f 704 704 16 815 813 = tintervalge scalargtsel scalargtjoinsel ));=0A= -DESCR("greater than or equal");=0A= -=0A= DATA(insert OID =3D 843 ( "*" PGNSP PGUID b f f 790 700 790 845 0 c= ash_mul_flt4 - - ));=0A= DESCR("multiply");=0A= DATA(insert OID =3D 844 ( "/" PGNSP PGUID b f f 790 700 790 0 0 c= ash_div_flt4 - - ));=0A= diff --git a/src/include/catalog/pg_opfamily.h b/src/include/catalog/pg_opf= amily.h=0A= index 0d0ba7c..b13590a 100644=0A= --- a/src/include/catalog/pg_opfamily.h=0A= +++ b/src/include/catalog/pg_opfamily.h=0A= @@ -127,7 +127,6 @@ DATA(insert OID =3D 2228 ( 405 reltime_ops PGNSP PGUI= D ));=0A= DATA(insert OID =3D 2229 ( 405 text_pattern_ops PGNSP PGUID ));=0A= DATA(insert OID =3D 2231 ( 405 bpchar_pattern_ops PGNSP PGUID ));=0A= DATA(insert OID =3D 2233 ( 403 reltime_ops PGNSP PGUID ));=0A= -DATA(insert OID =3D 2234 ( 403 tinterval_ops PGNSP PGUID ));=0A= DATA(insert OID =3D 2235 ( 405 aclitem_ops PGNSP PGUID ));=0A= DATA(insert OID =3D 2593 ( 783 box_ops PGNSP PGUID ));=0A= DATA(insert OID =3D 2594 ( 783 poly_ops PGNSP PGUID ));=0A= diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h= =0A= index 8b33b4e..c002766 100644=0A= --- a/src/include/catalog/pg_proc.h=0A= +++ b/src/include/catalog/pg_proc.h=0A= @@ -450,13 +450,6 @@ DATA(insert OID =3D 243 ( reltimeout PGNSP PGUID = 12 1 0 0 0 f f f f t f s s 1=0A= DESCR("I/O");=0A= DATA(insert OID =3D 244 ( timepl PGNSP PGUID 12 1 0 0 0 f f f f t f = i s 2 0 702 "702 703" _null_ _null_ _null_ _null_ _null_ timepl _null_ _nul= l_ _null_ ));=0A= DATA(insert OID =3D 245 ( timemi PGNSP PGUID 12 1 0 0 0 f f f f t f = i s 2 0 702 "702 703" _null_ _null_ _null_ _null_ _null_ timemi _null_ _nul= l_ _null_ ));=0A= -DATA(insert OID =3D 246 ( tintervalin PGNSP PGUID 12 1 0 0 0 f f f f t= f s s 1 0 704 "2275" _null_ _null_ _null_ _null_ _null_ tintervalin _null_= _null_ _null_ ));=0A= -DESCR("I/O");=0A= -DATA(insert OID =3D 247 ( tintervalout PGNSP PGUID 12 1 0 0 0 f f f f = t f s s 1 0 2275 "704" _null_ _null_ _null_ _null_ _null_ tintervalout _nul= l_ _null_ _null_ ));=0A= -DESCR("I/O");=0A= -DATA(insert OID =3D 248 ( intinterval PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "702 704" _null_ _null_ _null_ _null_ _null_ intinterval _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 249 ( tintervalrel PGNSP PGUID 12 1 0 0 0 f f f f = t f i s 1 0 703 "704" _null_ _null_ _null_ _null_ _null_ tintervalrel _null= _ _null_ _null_ ));=0A= -DESCR("tinterval to reltime");=0A= DATA(insert OID =3D 250 ( timenow PGNSP PGUID 12 1 0 0 0 f f f f t f = s s 0 0 702 "" _null_ _null_ _null_ _null_ _null_ timenow _null_ _null_ _nu= ll_ ));=0A= DESCR("current date and time (abstime)");=0A= DATA(insert OID =3D 251 ( abstimeeq PGNSP PGUID 12 1 0 0 0 f f f t t = f i s 2 0 16 "702 702" _null_ _null_ _null_ _null_ _null_ abstimeeq _null_ = _null_ _null_ ));=0A= @@ -471,18 +464,6 @@ DATA(insert OID =3D 259 ( reltimelt PGNSP PGUID 1= 2 1 0 0 0 f f f t t f i s 2=0A= DATA(insert OID =3D 260 ( reltimegt PGNSP PGUID 12 1 0 0 0 f f f t t = f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimegt _null_ = _null_ _null_ ));=0A= DATA(insert OID =3D 261 ( reltimele PGNSP PGUID 12 1 0 0 0 f f f t t = f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimele _null_ = _null_ _null_ ));=0A= DATA(insert OID =3D 262 ( reltimege PGNSP PGUID 12 1 0 0 0 f f f t t = f i s 2 0 16 "703 703" _null_ _null_ _null_ _null_ _null_ reltimege _null_ = _null_ _null_ ));=0A= -DATA(insert OID =3D 263 ( tintervalsame PGNSP PGUID 12 1 0 0 0 f f f f= t f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalsame = _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 264 ( tintervalct PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalct _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 265 ( tintervalov PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalov _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 266 ( tintervalleneq PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallene= q _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 267 ( tintervallenne PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenn= e _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 268 ( tintervallenlt PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenl= t _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 269 ( tintervallengt PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervalleng= t _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 270 ( tintervallenle PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervallenl= e _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 271 ( tintervallenge PGNSP PGUID 12 1 0 0 0 f f f = t t f i s 2 0 16 "704 703" _null_ _null_ _null_ _null_ _null_ tintervalleng= e _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 272 ( tintervalstart PGNSP PGUID 12 1 0 0 0 f f f = f t f i s 1 0 702 "704" _null_ _null_ _null_ _null_ _null_ tintervalstart _= null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 273 ( tintervalend PGNSP PGUID 12 1 0 0 0 f f f f = t f i s 1 0 702 "704" _null_ _null_ _null_ _null_ _null_ tintervalend _null= _ _null_ _null_ ));=0A= -DESCR("end of interval");=0A= DATA(insert OID =3D 274 ( timeofday PGNSP PGUID 12 1 0 0 0 f f f f t = f v s 0 0 25 "" _null_ _null_ _null_ _null_ _null_ timeofday _null_ _null_ = _null_ ));=0A= DESCR("current date and time - increments during transactions");=0A= DATA(insert OID =3D 275 ( isfinite PGNSP PGUID 12 1 0 0 0 f f f f t f= i s 1 0 16 "702" _null_ _null_ _null_ _null_ _null_ abstime_finite _null_ = _null_ _null_ ));=0A= @@ -634,8 +615,6 @@ DATA(insert OID =3D 377 ( cash_cmp PGNSP PGUID 12 = 1 0 0 0 f f f f t f i s 2 0=0A= DESCR("less-equal-greater");=0A= DATA(insert OID =3D 380 ( btreltimecmp PGNSP PGUID 12 1 0 0 0 f f f f = t f i s 2 0 23 "703 703" _null_ _null_ _null_ _null_ _null_ btreltimecmp _n= ull_ _null_ _null_ ));=0A= DESCR("less-equal-greater");=0A= -DATA(insert OID =3D 381 ( bttintervalcmp PGNSP PGUID 12 1 0 0 0 f f f = f t f i s 2 0 23 "704 704" _null_ _null_ _null_ _null_ _null_ bttintervalcm= p _null_ _null_ _null_ ));=0A= -DESCR("less-equal-greater");=0A= DATA(insert OID =3D 382 ( btarraycmp PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 23 "2277 2277" _null_ _null_ _null_ _null_ _null_ btarraycmp _nu= ll_ _null_ _null_ ));=0A= DESCR("less-equal-greater");=0A= =20=0A= @@ -771,8 +750,6 @@ DESCR("transform a varchar length coercion");=0A= DATA(insert OID =3D 669 ( varchar PGNSP PGUID 12 1 0 0 varchar_transf= orm f f f f t f i s 3 0 1043 "1043 23 16" _null_ _null_ _null_ _null_ _null= _ varchar _null_ _null_ _null_ ));=0A= DESCR("adjust varchar() to typmod length");=0A= =20=0A= -DATA(insert OID =3D 676 ( mktinterval PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 704 "702 702" _null_ _null_ _null_ _null_ _null_ mktinterval _nu= ll_ _null_ _null_ ));=0A= -=0A= DATA(insert OID =3D 619 ( oidvectorne PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorne _null_= _null_ _null_ ));=0A= DATA(insert OID =3D 677 ( oidvectorlt PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorlt _null_= _null_ _null_ ));=0A= DATA(insert OID =3D 678 ( oidvectorle PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 16 "30 30" _null_ _null_ _null_ _null_ _null_ oidvectorle _null_= _null_ _null_ ));=0A= @@ -927,13 +904,6 @@ DESCR("larger of two");=0A= DATA(insert OID =3D 771 ( int2smaller PGNSP PGUID 12 1 0 0 0 f f f f t= f i s 2 0 21 "21 21" _null_ _null_ _null_ _null_ _null_ int2smaller _null_= _null_ _null_ ));=0A= DESCR("smaller of two");=0A= =20=0A= -DATA(insert OID =3D 784 ( tintervaleq PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervaleq _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 785 ( tintervalne PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalne _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 786 ( tintervallt PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervallt _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 787 ( tintervalgt PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalgt _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 788 ( tintervalle PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalle _nul= l_ _null_ _null_ ));=0A= -DATA(insert OID =3D 789 ( tintervalge PGNSP PGUID 12 1 0 0 0 f f f t t= f i s 2 0 16 "704 704" _null_ _null_ _null_ _null_ _null_ tintervalge _nul= l_ _null_ _null_ ));=0A= -=0A= /* OIDS 800 - 899 */=0A= =20=0A= DATA(insert OID =3D 846 ( cash_mul_flt4 PGNSP PGUID 12 1 0 0 0 f f f = f t f i s 2 0 790 "790 700" _null_ _null_ _null_ _null_ _null_ cash_mul_flt= 4 _null_ _null_ _null_ ));=0A= @@ -1689,8 +1659,6 @@ DATA(insert OID =3D 1479 ( circle PGNSP PGUID 12 1= 0 0 0 f f f f t f i s 1 0 71=0A= DESCR("convert box to circle");=0A= DATA(insert OID =3D 1480 ( box PGNSP PGUID 12 1 0 0 0 f f f f t f i s = 1 0 603 "718" _null_ _null_ _null_ _null_ _null_ circle_box _null_ _null_ _= null_ ));=0A= DESCR("convert circle to box");=0A= -DATA(insert OID =3D 1481 ( tinterval PGNSP PGUID 12 1 0 0 0 f f f f t = f i s 2 0 704 "702 702" _null_ _null_ _null_ _null_ _null_ mktinterval _nul= l_ _null_ _null_ ));=0A= -DESCR("convert to tinterval");=0A= =20=0A= DATA(insert OID =3D 1482 ( lseg_ne PGNSP PGUID 12 1 0 0 0 f f f t t f i= s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_ne _null_ _nul= l_ _null_ ));=0A= DATA(insert OID =3D 1483 ( lseg_lt PGNSP PGUID 12 1 0 0 0 f f f t t f i= s 2 0 16 "601 601" _null_ _null_ _null_ _null_ _null_ lseg_lt _null_ _nul= l_ _null_ ));=0A= @@ -4042,10 +4010,6 @@ DATA(insert OID =3D 2464 ( reltimerecv PGNSP PG= UID 12 1 0 0 0 f f f f t f i s=0A= DESCR("I/O");=0A= DATA(insert OID =3D 2465 ( reltimesend PGNSP PGUID 12 1 0 0 0 f f f f= t f i s 1 0 17 "703" _null_ _null_ _null_ _null_ _null_ reltimesend _null_= _null_ _null_ ));=0A= DESCR("I/O");=0A= -DATA(insert OID =3D 2466 ( tintervalrecv PGNSP PGUID 12 1 0 0 0 f f f= f t f i s 1 0 704 "2281" _null_ _null_ _null_ _null_ _null_ tintervalrecv = _null_ _null_ _null_ ));=0A= -DESCR("I/O");=0A= -DATA(insert OID =3D 2467 ( tintervalsend PGNSP PGUID 12 1 0 0 0 f f f= f t f i s 1 0 17 "704" _null_ _null_ _null_ _null_ _null_ tintervalsend _n= ull_ _null_ _null_ ));=0A= -DESCR("I/O");=0A= DATA(insert OID =3D 2468 ( date_recv PGNSP PGUID 12 1 0 0 0 f f f f = t f i s 1 0 1082 "2281" _null_ _null_ _null_ _null_ _null_ date_recv _null_= _null_ _null_ ));=0A= DESCR("I/O");=0A= DATA(insert OID =3D 2469 ( date_send PGNSP PGUID 12 1 0 0 0 f f f f = t f i s 1 0 17 "1082" _null_ _null_ _null_ _null_ _null_ date_send _null_ _= null_ _null_ ));=0A= diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h= =0A= index ffdb452..aab23cb 100644=0A= --- a/src/include/catalog/pg_type.h=0A= +++ b/src/include/catalog/pg_type.h=0A= @@ -423,9 +423,6 @@ DESCR("absolute, limited-range date and time (Unix syst= em time)");=0A= DATA(insert OID =3D 703 ( reltime PGNSP PGUID 4 t b T f t \054 0 0 102= 4 reltimein reltimeout reltimerecv reltimesend - - - i p f 0 -1 0 0 _null_ = _null_ _null_ ));=0A= DESCR("relative, limited-range time interval (Unix delta time)");=0A= #define RELTIMEOID 703=0A= -DATA(insert OID =3D 704 ( tinterval PGNSP PGUID 12 f b T f t \054 0 0 10= 25 tintervalin tintervalout tintervalrecv tintervalsend - - - i p f 0 -1 0 = 0 _null_ _null_ _null_ ));=0A= -DESCR("(abstime,abstime), time interval");=0A= -#define TINTERVALOID 704=0A= DATA(insert OID =3D 705 ( unknown PGNSP PGUID -2 f p X f t \054 0 0 0 = unknownin unknownout unknownrecv unknownsend - - - c p f 0 -1 0 0 _null_ _n= ull_ _null_ ));=0A= DESCR("");=0A= #define UNKNOWNOID 705=0A= @@ -486,7 +483,6 @@ DATA(insert OID =3D 1021 ( _float4 PGNSP PGUID -1 f b= A f t \054 0 700 0 array_i=0A= DATA(insert OID =3D 1022 ( _float8 PGNSP PGUID -1 f b A f t \054 0 701 0= array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 0= 0 _null_ _null_ _null_ ));=0A= DATA(insert OID =3D 1023 ( _abstime PGNSP PGUID -1 f b A f t \054 0 702 = 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 = 0 0 _null_ _null_ _null_ ));=0A= DATA(insert OID =3D 1024 ( _reltime PGNSP PGUID -1 f b A f t \054 0 703 = 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1 = 0 0 _null_ _null_ _null_ ));=0A= -DATA(insert OID =3D 1025 ( _tinterval PGNSP PGUID -1 f b A f t \054 0 704= 0 array_in array_out array_recv array_send - - array_typanalyze i x f 0 -1= 0 0 _null_ _null_ _null_ ));=0A= DATA(insert OID =3D 1027 ( _polygon PGNSP PGUID -1 f b A f t \054 0 604 = 0 array_in array_out array_recv array_send - - array_typanalyze d x f 0 -1 = 0 0 _null_ _null_ _null_ ));=0A= DATA(insert OID =3D 1033 ( aclitem PGNSP PGUID 12 f b U f t \054 0 0 103= 4 aclitemin aclitemout - - - - - i p f 0 -1 0 0 _null_ _null_ _null_ ));=0A= DESCR("access control list");=0A= diff --git a/src/include/utils/nabstime.h b/src/include/utils/nabstime.h=0A= index 6913395..3f54ff4 100644=0A= --- a/src/include/utils/nabstime.h=0A= +++ b/src/include/utils/nabstime.h=0A= @@ -36,32 +36,20 @@=0A= typedef int32 AbsoluteTime;=0A= typedef int32 RelativeTime;=0A= =20=0A= -typedef struct=0A= -{=0A= - int32 status;=0A= - AbsoluteTime data[2];=0A= -} TimeIntervalData;=0A= -=0A= -typedef TimeIntervalData *TimeInterval;=0A= -=0A= /*=0A= * Macros for fmgr-callable functions.=0A= */=0A= #define DatumGetAbsoluteTime(X) ((AbsoluteTime) DatumGetInt32(X))=0A= #define DatumGetRelativeTime(X) ((RelativeTime) DatumGetInt32(X))=0A= -#define DatumGetTimeInterval(X) ((TimeInterval) DatumGetPointer(X))=0A= =20=0A= #define AbsoluteTimeGetDatum(X) Int32GetDatum(X)=0A= #define RelativeTimeGetDatum(X) Int32GetDatum(X)=0A= -#define TimeIntervalGetDatum(X) PointerGetDatum(X)=0A= =20=0A= #define PG_GETARG_ABSOLUTETIME(n) DatumGetAbsoluteTime(PG_GETARG_DATUM(n)= )=0A= #define PG_GETARG_RELATIVETIME(n) DatumGetRelativeTime(PG_GETARG_DATUM(n)= )=0A= -#define PG_GETARG_TIMEINTERVAL(n) DatumGetTimeInterval(PG_GETARG_DATUM(n)= )=0A= =20=0A= #define PG_RETURN_ABSOLUTETIME(x) return AbsoluteTimeGetDatum(x)=0A= #define PG_RETURN_RELATIVETIME(x) return RelativeTimeGetDatum(x)=0A= -#define PG_RETURN_TIMEINTERVAL(x) return TimeIntervalGetDatum(x)=0A= =20=0A= /*=0A= * Reserved values=0A= diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ec= pglib/execute.c=0A= index 03c55d3..7e24687 100644=0A= --- a/src/interfaces/ecpg/ecpglib/execute.c=0A= +++ b/src/interfaces/ecpg/ecpglib/execute.c=0A= @@ -227,8 +227,6 @@ ecpg_is_type_an_array(int type, const struct statement = *stmt, const struct varia=0A= return (ECPG_ARRAY_ERROR);=0A= if (!ecpg_type_infocache_push(&(stmt->connection->cache_head), RELTIMEOI= D, ECPG_ARRAY_NONE, stmt->lineno))=0A= return (ECPG_ARRAY_ERROR);=0A= - if (!ecpg_type_infocache_push(&(stmt->connection->cache_head), TINTERVAL= OID, ECPG_ARRAY_NONE, stmt->lineno))=0A= - return (ECPG_ARRAY_ERROR);=0A= if (!ecpg_type_infocache_push(&(stmt->connection->cache_head), UNKNOWNOI= D, ECPG_ARRAY_NONE, stmt->lineno))=0A= return (ECPG_ARRAY_ERROR);=0A= if (!ecpg_type_infocache_push(&(stmt->connection->cache_head), CIRCLEOID= , ECPG_ARRAY_NONE, stmt->lineno))=0A= diff --git a/src/interfaces/ecpg/ecpglib/pg_type.h b/src/interfaces/ecpg/ec= pglib/pg_type.h=0A= index 94d2d92..e6d4843 100644=0A= --- a/src/interfaces/ecpg/ecpglib/pg_type.h=0A= +++ b/src/interfaces/ecpg/ecpglib/pg_type.h=0A= @@ -40,7 +40,6 @@=0A= #define FLOAT8OID 701=0A= #define ABSTIMEOID 702=0A= #define RELTIMEOID 703=0A= -#define TINTERVALOID 704=0A= #define UNKNOWNOID 705=0A= #define CIRCLEOID 718=0A= #define CASHOID 790=0A= diff --git a/src/test/regress/expected/abstime.out b/src/test/regress/expec= ted/abstime.out=0A= index ed48f64..91614da 100644=0A= --- a/src/test/regress/expected/abstime.out=0A= +++ b/src/test/regress/expected/abstime.out=0A= @@ -1,7 +1,7 @@=0A= --=0A= -- ABSTIME=0A= -- testing built-in time type abstime=0A= --- uses reltime and tinterval=0A= +-- uses reltime=0A= --=0A= --=0A= -- timezones may vary based not only on location but the operating=0A= @@ -109,16 +109,6 @@ SELECT '' AS four, * FROM ABSTIME_TBL=0A= | Sat May 10 23:59:12 1947 PST=0A= (4 rows)=0A= =20=0A= -SELECT '' AS four, * FROM ABSTIME_TBL=0A= - WHERE ABSTIME_TBL.f1 =0A= - tinterval '["Apr 1 1950 00:00:00" "Dec 30 1999 23:00:00"]';=0A= - four | f1=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= -------+------------------------------=0A= - | Sun Jan 14 03:14:21 1973 PST=0A= - | Mon May 01 00:30:30 1995 PDT=0A= - | Wed Dec 31 16:00:00 1969 PST=0A= -(3 rows)=0A= -=0A= SELECT '' AS four, f1 AS abstime,=0A= date_part('year', f1) AS year, date_part('month', f1) AS month,=0A= date_part('day',f1) AS day, date_part('hour', f1) AS hour,=0A= diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/e= xpected/alter_table.out=0A= index 13d6a4b..64bf68b 100644=0A= --- a/src/test/regress/expected/alter_table.out=0A= +++ b/src/test/regress/expected/alter_table.out=0A= @@ -29,7 +29,7 @@ ALTER TABLE tmp ADD COLUMN q point;=0A= ALTER TABLE tmp ADD COLUMN r lseg;=0A= ALTER TABLE tmp ADD COLUMN s path;=0A= ALTER TABLE tmp ADD COLUMN t box;=0A= -ALTER TABLE tmp ADD COLUMN u tinterval;=0A= +ALTER TABLE tmp ADD COLUMN u inet;=0A= ALTER TABLE tmp ADD COLUMN v timestamp;=0A= ALTER TABLE tmp ADD COLUMN w interval;=0A= ALTER TABLE tmp ADD COLUMN x float8[];=0A= @@ -41,12 +41,12 @@ INSERT INTO tmp (a, b, c, d, e, f, g, h, i, j, k, l, m,= n, p, q, r, s, t, u,=0A= 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monda= y Aug 24 14:43:07 1992, epoch}',=0A= 314159, '(1,1)', '512',=0A= '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',=0A= - '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["epoch" "infinity"]',=0A= + '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '192.168.1.1',=0A= 'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}= ');=0A= SELECT * FROM tmp;=0A= - initial | a | b | c | d | e | f | g | = h | i | = j | k | l | m | = n | p | q | r | = s | t | u = | v | w | x |= y | z=20=20=20=20=20=0A= ----------+---+------+------+-----+-----+---+-----------------------+------= ------------------------+---+----------------------------------------------= --------------------------------------------------+--------+-------+-----+-= ----------------+---------------+-----------+-----------------------+------= -----------------------+---------------------+-----------------------------= ----------------+--------------------------+------------------+-----------+= -----------+-----------=0A= - | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | Mon M= ay 01 00:30:30 1995 PDT | c | {"Mon May 01 00:30:30 1995 PDT","Mon Aug 24 1= 4:43:07 1992 PDT","Wed Dec 31 16:00:00 1969 PST"} | 314159 | (1,1) | 512 | = 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2= ),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | ["Wed Dec 31 16:00:00 1969 P= ST" "infinity"] | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} |= {1,2,3,4} | {1,2,3,4}=0A= + initial | a | b | c | d | e | f | g | = h | i | = j | k | l | m | = n | p | q | r | = s | t | u | v = | w | x | y | z=20=20=20=20= =20=0A= +---------+---+------+------+-----+-----+---+-----------------------+------= ------------------------+---+----------------------------------------------= --------------------------------------------------+--------+-------+-----+-= ----------------+---------------+-----------+-----------------------+------= -----------------------+---------------------+-------------+---------------= -----------+------------------+-----------+-----------+-----------=0A= + | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | Mon M= ay 01 00:30:30 1995 PDT | c | {"Mon May 01 00:30:30 1995 PDT","Mon Aug 24 1= 4:43:07 1992 PDT","Wed Dec 31 16:00:00 1969 PST"} | 314159 | (1,1) | 512 | = 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2= ),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | 192.168.1.1 | Thu Jan 01 00:= 00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}=0A= (1 row)=0A= =20=0A= DROP TABLE tmp;=0A= @@ -74,7 +74,7 @@ ALTER TABLE tmp ADD COLUMN q point;=0A= ALTER TABLE tmp ADD COLUMN r lseg;=0A= ALTER TABLE tmp ADD COLUMN s path;=0A= ALTER TABLE tmp ADD COLUMN t box;=0A= -ALTER TABLE tmp ADD COLUMN u tinterval;=0A= +ALTER TABLE tmp ADD COLUMN u inet;=0A= ALTER TABLE tmp ADD COLUMN v timestamp;=0A= ALTER TABLE tmp ADD COLUMN w interval;=0A= ALTER TABLE tmp ADD COLUMN x float8[];=0A= @@ -86,12 +86,12 @@ INSERT INTO tmp (a, b, c, d, e, f, g, h, i, j, k, l, m,= n, p, q, r, s, t, u,=0A= 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monda= y Aug 24 14:43:07 1992, epoch}',=0A= 314159, '(1,1)', '512',=0A= '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',=0A= - '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["epoch" "infinity"]',=0A= + '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '192.168.1.1',=0A= 'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}= ');=0A= SELECT * FROM tmp;=0A= - initial | a | b | c | d | e | f | g | = h | i | = j | k | l | m | = n | p | q | r | = s | t | u = | v | w | x |= y | z=20=20=20=20=20=0A= ----------+---+------+------+-----+-----+---+-----------------------+------= ------------------------+---+----------------------------------------------= --------------------------------------------------+--------+-------+-----+-= ----------------+---------------+-----------+-----------------------+------= -----------------------+---------------------+-----------------------------= ----------------+--------------------------+------------------+-----------+= -----------+-----------=0A= - | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | Mon M= ay 01 00:30:30 1995 PDT | c | {"Mon May 01 00:30:30 1995 PDT","Mon Aug 24 1= 4:43:07 1992 PDT","Wed Dec 31 16:00:00 1969 PST"} | 314159 | (1,1) | 512 | = 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2= ),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | ["Wed Dec 31 16:00:00 1969 P= ST" "infinity"] | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} |= {1,2,3,4} | {1,2,3,4}=0A= + initial | a | b | c | d | e | f | g | = h | i | = j | k | l | m | = n | p | q | r | = s | t | u | v = | w | x | y | z=20=20=20=20= =20=0A= +---------+---+------+------+-----+-----+---+-----------------------+------= ------------------------+---+----------------------------------------------= --------------------------------------------------+--------+-------+-----+-= ----------------+---------------+-----------+-----------------------+------= -----------------------+---------------------+-------------+---------------= -----------+------------------+-----------+-----------+-----------=0A= + | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | Mon M= ay 01 00:30:30 1995 PDT | c | {"Mon May 01 00:30:30 1995 PDT","Mon Aug 24 1= 4:43:07 1992 PDT","Wed Dec 31 16:00:00 1969 PST"} | 314159 | (1,1) | 512 | = 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2= ),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | 192.168.1.1 | Thu Jan 01 00:= 00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}=0A= (1 row)=0A= =20=0A= DROP TABLE tmp;=0A= diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/ex= pected/opr_sanity.out=0A= index fcf8bd7..56a4b26 100644=0A= --- a/src/test/regress/expected/opr_sanity.out=0A= +++ b/src/test/regress/expected/opr_sanity.out=0A= @@ -532,12 +532,6 @@ reltimelt(reltime,reltime)=0A= reltimegt(reltime,reltime)=0A= reltimele(reltime,reltime)=0A= reltimege(reltime,reltime)=0A= -tintervalleneq(tinterval,reltime)=0A= -tintervallenne(tinterval,reltime)=0A= -tintervallenlt(tinterval,reltime)=0A= -tintervallengt(tinterval,reltime)=0A= -tintervallenle(tinterval,reltime)=0A= -tintervallenge(tinterval,reltime)=0A= float4eq(real,real)=0A= float4ne(real,real)=0A= float4lt(real,real)=0A= @@ -581,12 +575,6 @@ namege(name,name)=0A= namene(name,name)=0A= oidlt(oid,oid)=0A= oidle(oid,oid)=0A= -tintervaleq(tinterval,tinterval)=0A= -tintervalne(tinterval,tinterval)=0A= -tintervallt(tinterval,tinterval)=0A= -tintervalgt(tinterval,tinterval)=0A= -tintervalle(tinterval,tinterval)=0A= -tintervalge(tinterval,tinterval)=0A= macaddr_eq(macaddr,macaddr)=0A= macaddr_lt(macaddr,macaddr)=0A= macaddr_le(macaddr,macaddr)=0A= @@ -1031,9 +1019,6 @@ ORDER BY 1, 2;=0A= !~* | ~*=0A= !~~ | ~~=0A= !~~* | ~~*=0A= - #< | #>=3D=0A= - #<=3D | #>=0A= - #<> | #=3D=0A= *< | *>=3D=0A= *<=3D | *>=0A= *<> | *=3D=0A= @@ -1043,7 +1028,7 @@ ORDER BY 1, 2;=0A= <> | ~=3D=0A= ~<=3D~ | ~>~=0A= ~<~ | ~>=3D~=0A= -(16 rows)=0A= +(13 rows)=0A= =20=0A= -- A mergejoinable or hashjoinable operator must be binary, must return=0A= -- boolean, and must have a commutator (itself, unless it's a cross-type= =0A= diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/= expected/sanity_check.out=0A= index 6750152..7840c4c 100644=0A= --- a/src/test/regress/expected/sanity_check.out=0A= +++ b/src/test/regress/expected/sanity_check.out=0A= @@ -190,7 +190,6 @@ time_tbl|f=0A= timestamp_tbl|f=0A= timestamptz_tbl|f=0A= timetz_tbl|f=0A= -tinterval_tbl|f=0A= varchar_tbl|f=0A= -- restore normal output mode=0A= \a\t=0A= diff --git a/src/test/regress/expected/tinterval.out b/src/test/regress/exp= ected/tinterval.out=0A= deleted file mode 100644=0A= index a018972..0000000=0A= --- a/src/test/regress/expected/tinterval.out=0A= +++ /dev/null=0A= @@ -1,172 +0,0 @@=0A= ---=0A= --- TINTERVAL=0A= ---=0A= -CREATE TABLE TINTERVAL_TBL (f1 tinterval);=0A= --- Should accept any abstime,=0A= --- so do not bother with extensive testing of values=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["-infinity" "infinity"]');=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["May 10, 1947 23:59:12" "Jan 14, 1973 03:14:21"]');=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["Sep 4, 1983 23:59:12" "Oct 4, 1983 23:59:12"]');=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["epoch" "Mon May 1 00:30:30 1995"]');=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["Feb 15 1990 12:15:03" "2001-09-23 11:12:13"]');=0A= --- badly formatted tintervals=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["bad time specifications" ""]');=0A= -ERROR: invalid input syntax for type abstime: "bad time specifications"= =0A= -LINE 2: VALUES ('["bad time specifications" ""]');=0A= - ^=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["" "infinity"]');=0A= -ERROR: invalid input syntax for type abstime: ""=0A= -LINE 2: VALUES ('["" "infinity"]');=0A= - ^=0A= --- test tinterval operators=0A= -SELECT '' AS five, * FROM TINTERVAL_TBL;=0A= - five | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= -------+-----------------------------------------------------------------= =0A= - | ["-infinity" "infinity"]=0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]=0A= -(5 rows)=0A= -=0A= --- length =3D=3D=0A= -SELECT '' AS one, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #=3D '@ 1 months';=0A= - one | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= ------+-----------------------------------------------------------------=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= -(1 row)=0A= -=0A= --- length <>=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #<> '@ 1 months';=0A= - three | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= --------+-----------------------------------------------------------------= =0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]= =0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]= =0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]= =0A= -(3 rows)=0A= -=0A= --- length <=0A= -SELECT '' AS zero, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #< '@ 1 month';=0A= - zero | f1=20=0A= -------+----=0A= -(0 rows)=0A= -=0A= --- length <=3D=0A= -SELECT '' AS one, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #<=3D '@ 1 month';=0A= - one | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= ------+-----------------------------------------------------------------=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= -(1 row)=0A= -=0A= --- length >=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #> '@ 1 year';=0A= - three | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= --------+-----------------------------------------------------------------= =0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]= =0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]= =0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]= =0A= -(3 rows)=0A= -=0A= --- length >=3D=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #>=3D '@ 3 years';=0A= - three | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= --------+-----------------------------------------------------------------= =0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]= =0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]= =0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]= =0A= -(3 rows)=0A= -=0A= --- overlaps=0A= -SELECT '' AS three, t1.*=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE t1.f1 &&=0A= - tinterval '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]';=0A= - three | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= --------+-----------------------------------------------------------------= =0A= - | ["-infinity" "infinity"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]= =0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]= =0A= -(3 rows)=0A= -=0A= -SELECT '' AS five, t1.f1, t2.f1=0A= - FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2=0A= - WHERE t1.f1 && t2.f1 and=0A= - t1.f1 =3D t2.f1=0A= - ORDER BY t1.f1, t2.f1;=0A= - five | f1 | = f1=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= -------+-----------------------------------------------------------------+-= ----------------------------------------------------------------=0A= - | ["-infinity" "infinity"] | = ["-infinity" "infinity"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | = ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | = ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | = ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | = ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]=0A= -(5 rows)=0A= -=0A= -SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2=0A= - FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2=0A= - WHERE t1.f1 && t2.f1 and not t1.f1 =3D t2.f1=0A= - ORDER BY interval1, interval2;=0A= - fourteen | interval1 = | interval2=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= -----------+---------------------------------------------------------------= --+-----------------------------------------------------------------=0A= - | ["-infinity" "infinity"] = | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= - | ["-infinity" "infinity"] = | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]=0A= - | ["-infinity" "infinity"] = | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= - | ["-infinity" "infinity"] = | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"= ] | ["-infinity" "infinity"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"= ] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"= ] | ["-infinity" "infinity"]=0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"= ] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"= ] | ["-infinity" "infinity"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"= ] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"= ] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]=0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"= ] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]=0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"= ] | ["-infinity" "infinity"]=0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"= ] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]=0A= -(14 rows)=0A= -=0A= --- contains=0A= -SELECT '' AS five, t1.f1=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE not t1.f1 <<=0A= - tinterval '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]'=0A= - ORDER BY t1.f1;=0A= - five | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= -------+-----------------------------------------------------------------= =0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]=0A= - | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]=0A= - | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]=0A= -(3 rows)=0A= -=0A= --- make time interval=0A= -SELECT '' AS three, t1.f1=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE t1.f1 &&=0A= - (abstime 'Aug 15 14:23:19 1983' <#>=0A= - abstime 'Sep 16 14:23:19 1983')=0A= - ORDER BY t1.f1;=0A= - three | f1=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0A= --------+-----------------------------------------------------------------= =0A= - | ["-infinity" "infinity"]=0A= - | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]= =0A= - | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]= =0A= -(3 rows)=0A= -=0A= diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel= _schedule=0A= index eefdeea..c5f9ffe 100644=0A= --- a/src/test/regress/parallel_schedule=0A= +++ b/src/test/regress/parallel_schedule=0A= @@ -23,7 +23,7 @@ test: numerology=0A= # ----------=0A= # The second group of parallel tests=0A= # ----------=0A= -test: point lseg line box path polygon circle date time timetz timestamp t= imestamptz interval abstime reltime tinterval inet macaddr macaddr8 tstypes= =0A= +test: point lseg line box path polygon circle date time timetz timestamp t= imestamptz interval abstime reltime inet macaddr macaddr8 tstypes=0A= =20=0A= # ----------=0A= # Another group of parallel tests=0A= diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_sch= edule=0A= index 76b0de3..83ba380 100644=0A= --- a/src/test/regress/serial_schedule=0A= +++ b/src/test/regress/serial_schedule=0A= @@ -38,7 +38,6 @@ test: timestamptz=0A= test: interval=0A= test: abstime=0A= test: reltime=0A= -test: tinterval=0A= test: inet=0A= test: macaddr=0A= test: macaddr8=0A= diff --git a/src/test/regress/sql/abstime.sql b/src/test/regress/sql/abstim= e.sql=0A= index 4ab821b..650d7fd 100644=0A= --- a/src/test/regress/sql/abstime.sql=0A= +++ b/src/test/regress/sql/abstime.sql=0A= @@ -1,7 +1,7 @@=0A= --=0A= -- ABSTIME=0A= -- testing built-in time type abstime=0A= --- uses reltime and tinterval=0A= +-- uses reltime=0A= --=0A= =20=0A= --=0A= @@ -54,10 +54,6 @@ SELECT '' AS three, * FROM ABSTIME_TBL=0A= SELECT '' AS four, * FROM ABSTIME_TBL=0A= WHERE ABSTIME_TBL.f1 <=3D abstime 'Jan 14, 1973 03:14:21';=0A= =20=0A= -SELECT '' AS four, * FROM ABSTIME_TBL=0A= - WHERE ABSTIME_TBL.f1 =0A= - tinterval '["Apr 1 1950 00:00:00" "Dec 30 1999 23:00:00"]';=0A= -=0A= SELECT '' AS four, f1 AS abstime,=0A= date_part('year', f1) AS year, date_part('month', f1) AS month,=0A= date_part('day',f1) AS day, date_part('hour', f1) AS hour,=0A= diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/al= ter_table.sql=0A= index 5dd1402..361ca51 100644=0A= --- a/src/test/regress/sql/alter_table.sql=0A= +++ b/src/test/regress/sql/alter_table.sql=0A= @@ -50,7 +50,7 @@ ALTER TABLE tmp ADD COLUMN s path;=0A= =20=0A= ALTER TABLE tmp ADD COLUMN t box;=0A= =20=0A= -ALTER TABLE tmp ADD COLUMN u tinterval;=0A= +ALTER TABLE tmp ADD COLUMN u inet;=0A= =20=0A= ALTER TABLE tmp ADD COLUMN v timestamp;=0A= =20=0A= @@ -68,7 +68,7 @@ INSERT INTO tmp (a, b, c, d, e, f, g, h, i, j, k, l, m, n= , p, q, r, s, t, u,=0A= 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monda= y Aug 24 14:43:07 1992, epoch}',=0A= 314159, '(1,1)', '512',=0A= '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',=0A= - '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["epoch" "infinity"]',=0A= + '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '192.168.1.1',=0A= 'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}= ');=0A= =20=0A= SELECT * FROM tmp;=0A= @@ -119,7 +119,7 @@ ALTER TABLE tmp ADD COLUMN s path;=0A= =20=0A= ALTER TABLE tmp ADD COLUMN t box;=0A= =20=0A= -ALTER TABLE tmp ADD COLUMN u tinterval;=0A= +ALTER TABLE tmp ADD COLUMN u inet;=0A= =20=0A= ALTER TABLE tmp ADD COLUMN v timestamp;=0A= =20=0A= @@ -137,7 +137,7 @@ INSERT INTO tmp (a, b, c, d, e, f, g, h, i, j, k, l, m,= n, p, q, r, s, t, u,=0A= 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monda= y Aug 24 14:43:07 1992, epoch}',=0A= 314159, '(1,1)', '512',=0A= '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',=0A= - '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["epoch" "infinity"]',=0A= + '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '192.168.1.1',=0A= 'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}= ');=0A= =20=0A= SELECT * FROM tmp;=0A= diff --git a/src/test/regress/sql/tinterval.sql b/src/test/regress/sql/tint= erval.sql=0A= deleted file mode 100644=0A= index 42399ce..0000000=0A= --- a/src/test/regress/sql/tinterval.sql=0A= +++ /dev/null=0A= @@ -1,97 +0,0 @@=0A= ---=0A= --- TINTERVAL=0A= ---=0A= -=0A= -CREATE TABLE TINTERVAL_TBL (f1 tinterval);=0A= -=0A= --- Should accept any abstime,=0A= --- so do not bother with extensive testing of values=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["-infinity" "infinity"]');=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["May 10, 1947 23:59:12" "Jan 14, 1973 03:14:21"]');=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["Sep 4, 1983 23:59:12" "Oct 4, 1983 23:59:12"]');=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["epoch" "Mon May 1 00:30:30 1995"]');=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["Feb 15 1990 12:15:03" "2001-09-23 11:12:13"]');=0A= -=0A= -=0A= --- badly formatted tintervals=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["bad time specifications" ""]');=0A= -=0A= -INSERT INTO TINTERVAL_TBL (f1)=0A= - VALUES ('["" "infinity"]');=0A= -=0A= --- test tinterval operators=0A= -=0A= -SELECT '' AS five, * FROM TINTERVAL_TBL;=0A= -=0A= --- length =3D=3D=0A= -SELECT '' AS one, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #=3D '@ 1 months';=0A= -=0A= --- length <>=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #<> '@ 1 months';=0A= -=0A= --- length <=0A= -SELECT '' AS zero, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #< '@ 1 month';=0A= -=0A= --- length <=3D=0A= -SELECT '' AS one, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #<=3D '@ 1 month';=0A= -=0A= --- length >=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #> '@ 1 year';=0A= -=0A= --- length >=3D=0A= -SELECT '' AS three, t.*=0A= - FROM TINTERVAL_TBL t=0A= - WHERE t.f1 #>=3D '@ 3 years';=0A= -=0A= --- overlaps=0A= -SELECT '' AS three, t1.*=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE t1.f1 &&=0A= - tinterval '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]';=0A= -=0A= -SELECT '' AS five, t1.f1, t2.f1=0A= - FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2=0A= - WHERE t1.f1 && t2.f1 and=0A= - t1.f1 =3D t2.f1=0A= - ORDER BY t1.f1, t2.f1;=0A= -=0A= -SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2=0A= - FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2=0A= - WHERE t1.f1 && t2.f1 and not t1.f1 =3D t2.f1=0A= - ORDER BY interval1, interval2;=0A= -=0A= --- contains=0A= -SELECT '' AS five, t1.f1=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE not t1.f1 <<=0A= - tinterval '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]'=0A= - ORDER BY t1.f1;=0A= -=0A= --- make time interval=0A= -SELECT '' AS three, t1.f1=0A= - FROM TINTERVAL_TBL t1=0A= - WHERE t1.f1 &&=0A= - (abstime 'Aug 15 14:23:19 1983' <#>=0A= - abstime 'Sep 16 14:23:19 1983')=0A= - ORDER BY t1.f1;=0A= diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs= .list=0A= index 23a4bbd..cd26dc2 100644=0A= --- a/src/tools/pgindent/typedefs.list=0A= +++ b/src/tools/pgindent/typedefs.list=0A= @@ -2222,8 +2222,6 @@ TidPath=0A= TidScan=0A= TidScanState=0A= TimeADT=0A= -TimeInterval=0A= -TimeIntervalData=0A= TimeLineHistoryCmd=0A= TimeLineHistoryEntry=0A= TimeLineID=0A= --Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C 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 --Apple-Mail=_DFDE73A9-67E4-41CE-B6FB-03B5EBE2F01C--