CTAS command tags

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

CTAS command tags

Vik Fearing-6
I was recently surprised by the following inconsistencies in returned
command tags for CTAS:


postgres=# create table a as select 123;
SELECT 1

postgres=# create table b as select 123 with data;
SELECT 1

postgres=# create table c as select 123 with no data;
CREATE TABLE AS


Shouldn't we make the first two tags (which are likely the same code
path; I haven't looked) the same as the third?  I can look into writing
the patch if desired.
--
Vik Fearing


Reply | Threaded
Open this post in threaded view
|

Re: CTAS command tags

Darafei "Komяpa" Praliaskouski
Having row count right away is very useful in CTAS in analytical and GIS usage scenarios. 

пт, 22 сту 2021, 16:14 карыстальнік Vik Fearing <[hidden email]> напісаў:
I was recently surprised by the following inconsistencies in returned
command tags for CTAS:


postgres=# create table a as select 123;
SELECT 1

postgres=# create table b as select 123 with data;
SELECT 1

postgres=# create table c as select 123 with no data;
CREATE TABLE AS


Shouldn't we make the first two tags (which are likely the same code
path; I haven't looked) the same as the third?  I can look into writing
the patch if desired.
--
Vik Fearing


Reply | Threaded
Open this post in threaded view
|

Re: CTAS command tags

Andreas Karlsson
On 1/22/21 2:19 PM, Darafei "Komяpa" Praliaskouski wrote:
> Having row count right away is very useful in CTAS in analytical and GIS
> usage scenarios.

I can see that, but would it not work if it was:

CREATE TABLE AS 1

Disclaimer: I have not looked at the code so maybe there is some good
reason that would not work.

Andreas


Reply | Threaded
Open this post in threaded view
|

Re: CTAS command tags

Tom Lane-2
Andreas Karlsson <[hidden email]> writes:
> On 1/22/21 2:19 PM, Darafei "Komяpa" Praliaskouski wrote:
>> Having row count right away is very useful in CTAS in analytical and GIS
>> usage scenarios.

> I can see that, but would it not work if it was:
> CREATE TABLE AS 1

Changing the set of command tags that have counts attached would amount
to a wire-protocol break, because clients such as libpq know which ones
do.  So to standardize this as Vik wants, we'd have to make the WITH
NO DATA case return "SELECT 0" (not 1, surely).  That seems a little
weird.

I have a vague recollection that this has been discussed before,
though I lack the energy to go digging in the archives right now.

                        regards, tom lane