Thread

  1. Improved error message for CREATE EXTENSION patch...

    Sean Chittenden <sean@chittenden.org> — 2013-06-04T18:12:30Z

    I ran in to the following situation:
    
    > SET search_path = ENOENT, also_does_not_exist;
    > CREATE EXTENSION pg_repack;
    > ERROR:  XX000: there is no default creation target
    > LOCATION:  CreateExtension, extension.c:1395
    
    Which left me checking out the source code to figure out exactly what the problem was. Attached is an improved error message:
    
    > "ERROR:  XX000: no schemas in search_path are available for CREATE EXTENSION"
    
    -sc
    
    
  2. Re: Improved error message for CREATE EXTENSION patch...

    Tom Lane <tgl@sss.pgh.pa.us> — 2013-06-04T20:14:22Z

    Sean Chittenden <sean@chittenden.org> writes:
    > I ran in to the following situation:
    >> SET search_path = ENOENT, also_does_not_exist;
    >> CREATE EXTENSION pg_repack;
    >> ERROR:  XX000: there is no default creation target
    >> LOCATION:  CreateExtension, extension.c:1395
    
    > Which left me checking out the source code to figure out exactly what the problem was. Attached is an improved error message:
    
    >> "ERROR:  XX000: no schemas in search_path are available for CREATE EXTENSION"
    
    Hm, I'm not sure that's much better than the existing wording.  The
    bigger point here though is that if we consider this to be a user-facing
    error case, it ought to be ereport not elog.
    
    I checked what you get for the normal non-extension case:
    
    regression=# set search_path = bogus;
    SET
    regression=# create table t1 (f1 int);
    ERROR:  no schema has been selected to create in
    regression=# \set VERBOSITY verbose
    regression=# create table t1 (f1 int);
    ERROR:  3F000: no schema has been selected to create in
    LOCATION:  RangeVarGetCreationNamespace, namespace.c:485
    
    Seems like we ought to use the same message (and SQLSTATE) as in
    namespace.c, since nobody's complained about that one.
    
    			regards, tom lane
    
    
    
  3. Re: Improved error message for CREATE EXTENSION patch...

    Sean Chittenden <sean@chittenden.org> — 2013-06-04T20:23:21Z

    >>> "ERROR:  XX000: no schemas in search_path are available for CREATE EXTENSION"
    > 
    > Hm, I'm not sure that's much better than the existing wording.  The
    > bigger point here though is that if we consider this to be a user-facing
    > error case, it ought to be ereport not elog.
    > 
    > I checked what you get for the normal non-extension case:
    > 
    > regression=# set search_path = bogus;
    > SET
    > regression=# create table t1 (f1 int);
    > ERROR:  no schema has been selected to create in
    > regression=# \set VERBOSITY verbose
    > regression=# create table t1 (f1 int);
    > ERROR:  3F000: no schema has been selected to create in
    > LOCATION:  RangeVarGetCreationNamespace, namespace.c:485
    > 
    > Seems like we ought to use the same message (and SQLSTATE) as in
    > namespace.c, since nobody's complained about that one.
    
    
    Sounds good to me and is clear enough that it would unblock me w/o having to resort to the source tree. -sc
    
    
    --
    Sean Chittenden
    sean@chittenden.org
    
    
    
    
  4. Re: Improved error message for CREATE EXTENSION patch...

    Tom Lane <tgl@sss.pgh.pa.us> — 2013-06-04T21:23:36Z

    Sean Chittenden <sean@chittenden.org> writes:
    >> Seems like we ought to use the same message (and SQLSTATE) as in
    >> namespace.c, since nobody's complained about that one.
    
    > Sounds good to me and is clear enough that it would unblock me w/o having to resort to the source tree. -sc
    
    OK, done that way.
    
    			regards, tom lane