Is it recommended to install extensions into pg_catalog schema?How can I fake inet_client_addr() for unit...

How to substitute values from a list into a function?

It took me a lot of time to make this, pls like. (YouTube Comments #1)

How to evaluate the limit where something is raised to a power of x?

lead or lag function to get several values, not just the nth

Is divide-by-zero a security vulnerability?

Forward slip vs side slip

Difference between 'stomach' and 'uterus'

How to lift/raise/repair a segment of concrete slab?

Where is the fallacy here?

When was drinking water recognized as crucial in marathon running?

How can I handle a player who pre-plans arguments about my rulings on RAW?

Reason why dimensional travelling would be restricted

What is this waxed root vegetable?

Called into a meeting and told we are being made redundant (laid off) and "not to share outside". Can I tell my partner?

Rationale to prefer local variables over instance variables?

What type of investment is best suited for a 1-year investment on a down payment?

How to mitigate "bandwagon attacking" from players?

Why doesn't Object.keys return a keyof type in TypeScript?

Is there a frame of reference in which I was born before I was conceived?

Where is the line between being obedient and getting bullied by a boss?

Heating basement floor with water heater

Didactic impediments of using simplified versions

Why are special aircraft used for the carriers in the united states navy?

Can a space-faring robot still function over a billion years?



Is it recommended to install extensions into pg_catalog schema?


How can I fake inet_client_addr() for unit tests in PostgreSQL?Do I need to execute “create extension pgcrypto” everytime?How to allow user access to non-owned objects in Postgres?Connect as postgres user on AWS RDS to install extension to pg_catalogCreate hstore from key-value result setPostgres: ERROR: operator does not exist: point <@> pointPostgreSQL: Executing DDL on every schemapg_dump: SQL command failedUse pg_dump with postgis extensions?Turn off auto qualification of table names when creating a viewMoving extensions in AWS RDS (Postgres)Recommended maximum memory setting for PostgreSQL 9.4+ with Huge PagesDistributing and managing Postgres SCHEMAs with an EXTENSION?PostgreSQL event trigger to force extension installations into particular schemaPostgresql install extensionPostgreSQL dump issues when importing into AWS RDS













9















Since objects in pg_catalog schema are implicitly in the search_path (docs), would it be recommended to install extensions in that schema?










share|improve this question





























    9















    Since objects in pg_catalog schema are implicitly in the search_path (docs), would it be recommended to install extensions in that schema?










    share|improve this question



























      9












      9








      9


      2






      Since objects in pg_catalog schema are implicitly in the search_path (docs), would it be recommended to install extensions in that schema?










      share|improve this question
















      Since objects in pg_catalog schema are implicitly in the search_path (docs), would it be recommended to install extensions in that schema?







      postgresql postgresql-9.4 best-practices postgresql-extensions






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Sep 28 '16 at 12:40









      Erwin Brandstetter

      93.7k9181294




      93.7k9181294










      asked Jul 17 '15 at 18:37









      zam6akzam6ak

      219211




      219211






















          2 Answers
          2






          active

          oldest

          votes


















          13














          Don't install extensions to pg_catalog (unless that's their default: very few extensions are designed that way), because you don't mess with system catalog, ever. @Chris demonstrates one reason why. There are others.



          However, the "public" schema is in no way special. It's just the default schema that's pre-installed in standard distributions so we can get started right away. Some DB admins don't use the "public" schema at all, some even delete it.



          CREATE EXTENSION is not affiliated to the "public" schema. It installs into the current schema unless instructed otherwise - except some extensions have a pre-set schema (like PGQ / Londiste). The documentation:




          schema_name



          The name of the schema in which to install the extension's objects,
          given that the extension allows its contents to be relocated. The
          named schema must already exist. If not specified, and the extension's
          control file does not specify a schema either, the current default
          object creation schema is used
          .



          Remember that the extension itself is not considered to be within any
          schema: extensions have unqualified names that must be unique
          database-wide. But objects belonging to the extension can be within schemas.




          Bold emphasis mine.

          Decide how to manage users, schemas and the search_path:




          • How does the search_path influence identifier resolution and the “current schema”


          Then decide where to install extensions. You can install to any schema of your choice and include that schema in the default search_path for all users or just for some or no users at all (so that qualified references are required). It all depends on what you want to achieve.

          Whatever you do, stay consistent.



          I like to install extensions (that allow it) in a dedicated "extensions" schema, which I include in the default search_path after "public" (and "$user" - if you use that). Helps with a clean separation of my own public functions and other public objects. My setting in postgresql.conf:



          search_path = "$user",public,extensions


          Or:



          search_path = public,extensions


          And I install extensions with:



          CREATE EXTENSION some_extension SCHEMA extensions;


          One thing to note: This way you can "hide" (unqualified) objects in the extensions schema behind objects of the same name (and parameters) in the public schema.



          Related:




          • Best way to install hstore on multiple schemas in a Postgres database?

          • How can I fake inet_client_addr() for unit tests in PostgreSQL?






          share|improve this answer


























          • ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

            – zam6ak
            Jul 20 '15 at 13:18











          • @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

            – Erwin Brandstetter
            Jul 20 '15 at 13:40






          • 1





            plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

            – jpmc26
            Jun 23 '16 at 17:07





















          5














          Installing extensions into pg_catalog are, as far as I'm aware, not advised. You should use the default public schema, which is also in the search_path by default.



          Why?



          As an example, I will work with the pageinspect extension which I've already created within the public schema. All functions are, by default, accessible to all schemas in the database if they are located in the public schema.



          Now, I try moving it to the pg_catalog schema, using



          ALTER EXTENSION pageinspect SET SCHEMA pg_catalog;


          and it works just fine.



          But...



          Try to move it again, back to the public schema using



          ALTER EXTENSION pageinspect SET SCHEMA public;


          and it won't permit it, yielding the following error



          ERROR: cannot remove dependency on schema pg_catalog because it is a system object
          SQL state: 0A000


          Uh oh! Well, that's OK that it won't let me move it. I can just get it back into the public schema by dropping it and re-creating, right?...



          DROP EXTENSION pageinspect;
          CREATE EXTENSION pageinspect;


          OK, good. Back in it's right place in the public schema, and the functions are still accessible to all schemas in the database.



          TL,DR; Just use the default public schema for extensions.






          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "182"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f107389%2fis-it-recommended-to-install-extensions-into-pg-catalog-schema%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            13














            Don't install extensions to pg_catalog (unless that's their default: very few extensions are designed that way), because you don't mess with system catalog, ever. @Chris demonstrates one reason why. There are others.



            However, the "public" schema is in no way special. It's just the default schema that's pre-installed in standard distributions so we can get started right away. Some DB admins don't use the "public" schema at all, some even delete it.



            CREATE EXTENSION is not affiliated to the "public" schema. It installs into the current schema unless instructed otherwise - except some extensions have a pre-set schema (like PGQ / Londiste). The documentation:




            schema_name



            The name of the schema in which to install the extension's objects,
            given that the extension allows its contents to be relocated. The
            named schema must already exist. If not specified, and the extension's
            control file does not specify a schema either, the current default
            object creation schema is used
            .



            Remember that the extension itself is not considered to be within any
            schema: extensions have unqualified names that must be unique
            database-wide. But objects belonging to the extension can be within schemas.




            Bold emphasis mine.

            Decide how to manage users, schemas and the search_path:




            • How does the search_path influence identifier resolution and the “current schema”


            Then decide where to install extensions. You can install to any schema of your choice and include that schema in the default search_path for all users or just for some or no users at all (so that qualified references are required). It all depends on what you want to achieve.

            Whatever you do, stay consistent.



            I like to install extensions (that allow it) in a dedicated "extensions" schema, which I include in the default search_path after "public" (and "$user" - if you use that). Helps with a clean separation of my own public functions and other public objects. My setting in postgresql.conf:



            search_path = "$user",public,extensions


            Or:



            search_path = public,extensions


            And I install extensions with:



            CREATE EXTENSION some_extension SCHEMA extensions;


            One thing to note: This way you can "hide" (unqualified) objects in the extensions schema behind objects of the same name (and parameters) in the public schema.



            Related:




            • Best way to install hstore on multiple schemas in a Postgres database?

            • How can I fake inet_client_addr() for unit tests in PostgreSQL?






            share|improve this answer


























            • ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

              – zam6ak
              Jul 20 '15 at 13:18











            • @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

              – Erwin Brandstetter
              Jul 20 '15 at 13:40






            • 1





              plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

              – jpmc26
              Jun 23 '16 at 17:07


















            13














            Don't install extensions to pg_catalog (unless that's their default: very few extensions are designed that way), because you don't mess with system catalog, ever. @Chris demonstrates one reason why. There are others.



            However, the "public" schema is in no way special. It's just the default schema that's pre-installed in standard distributions so we can get started right away. Some DB admins don't use the "public" schema at all, some even delete it.



            CREATE EXTENSION is not affiliated to the "public" schema. It installs into the current schema unless instructed otherwise - except some extensions have a pre-set schema (like PGQ / Londiste). The documentation:




            schema_name



            The name of the schema in which to install the extension's objects,
            given that the extension allows its contents to be relocated. The
            named schema must already exist. If not specified, and the extension's
            control file does not specify a schema either, the current default
            object creation schema is used
            .



            Remember that the extension itself is not considered to be within any
            schema: extensions have unqualified names that must be unique
            database-wide. But objects belonging to the extension can be within schemas.




            Bold emphasis mine.

            Decide how to manage users, schemas and the search_path:




            • How does the search_path influence identifier resolution and the “current schema”


            Then decide where to install extensions. You can install to any schema of your choice and include that schema in the default search_path for all users or just for some or no users at all (so that qualified references are required). It all depends on what you want to achieve.

            Whatever you do, stay consistent.



            I like to install extensions (that allow it) in a dedicated "extensions" schema, which I include in the default search_path after "public" (and "$user" - if you use that). Helps with a clean separation of my own public functions and other public objects. My setting in postgresql.conf:



            search_path = "$user",public,extensions


            Or:



            search_path = public,extensions


            And I install extensions with:



            CREATE EXTENSION some_extension SCHEMA extensions;


            One thing to note: This way you can "hide" (unqualified) objects in the extensions schema behind objects of the same name (and parameters) in the public schema.



            Related:




            • Best way to install hstore on multiple schemas in a Postgres database?

            • How can I fake inet_client_addr() for unit tests in PostgreSQL?






            share|improve this answer


























            • ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

              – zam6ak
              Jul 20 '15 at 13:18











            • @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

              – Erwin Brandstetter
              Jul 20 '15 at 13:40






            • 1





              plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

              – jpmc26
              Jun 23 '16 at 17:07
















            13












            13








            13







            Don't install extensions to pg_catalog (unless that's their default: very few extensions are designed that way), because you don't mess with system catalog, ever. @Chris demonstrates one reason why. There are others.



            However, the "public" schema is in no way special. It's just the default schema that's pre-installed in standard distributions so we can get started right away. Some DB admins don't use the "public" schema at all, some even delete it.



            CREATE EXTENSION is not affiliated to the "public" schema. It installs into the current schema unless instructed otherwise - except some extensions have a pre-set schema (like PGQ / Londiste). The documentation:




            schema_name



            The name of the schema in which to install the extension's objects,
            given that the extension allows its contents to be relocated. The
            named schema must already exist. If not specified, and the extension's
            control file does not specify a schema either, the current default
            object creation schema is used
            .



            Remember that the extension itself is not considered to be within any
            schema: extensions have unqualified names that must be unique
            database-wide. But objects belonging to the extension can be within schemas.




            Bold emphasis mine.

            Decide how to manage users, schemas and the search_path:




            • How does the search_path influence identifier resolution and the “current schema”


            Then decide where to install extensions. You can install to any schema of your choice and include that schema in the default search_path for all users or just for some or no users at all (so that qualified references are required). It all depends on what you want to achieve.

            Whatever you do, stay consistent.



            I like to install extensions (that allow it) in a dedicated "extensions" schema, which I include in the default search_path after "public" (and "$user" - if you use that). Helps with a clean separation of my own public functions and other public objects. My setting in postgresql.conf:



            search_path = "$user",public,extensions


            Or:



            search_path = public,extensions


            And I install extensions with:



            CREATE EXTENSION some_extension SCHEMA extensions;


            One thing to note: This way you can "hide" (unqualified) objects in the extensions schema behind objects of the same name (and parameters) in the public schema.



            Related:




            • Best way to install hstore on multiple schemas in a Postgres database?

            • How can I fake inet_client_addr() for unit tests in PostgreSQL?






            share|improve this answer















            Don't install extensions to pg_catalog (unless that's their default: very few extensions are designed that way), because you don't mess with system catalog, ever. @Chris demonstrates one reason why. There are others.



            However, the "public" schema is in no way special. It's just the default schema that's pre-installed in standard distributions so we can get started right away. Some DB admins don't use the "public" schema at all, some even delete it.



            CREATE EXTENSION is not affiliated to the "public" schema. It installs into the current schema unless instructed otherwise - except some extensions have a pre-set schema (like PGQ / Londiste). The documentation:




            schema_name



            The name of the schema in which to install the extension's objects,
            given that the extension allows its contents to be relocated. The
            named schema must already exist. If not specified, and the extension's
            control file does not specify a schema either, the current default
            object creation schema is used
            .



            Remember that the extension itself is not considered to be within any
            schema: extensions have unqualified names that must be unique
            database-wide. But objects belonging to the extension can be within schemas.




            Bold emphasis mine.

            Decide how to manage users, schemas and the search_path:




            • How does the search_path influence identifier resolution and the “current schema”


            Then decide where to install extensions. You can install to any schema of your choice and include that schema in the default search_path for all users or just for some or no users at all (so that qualified references are required). It all depends on what you want to achieve.

            Whatever you do, stay consistent.



            I like to install extensions (that allow it) in a dedicated "extensions" schema, which I include in the default search_path after "public" (and "$user" - if you use that). Helps with a clean separation of my own public functions and other public objects. My setting in postgresql.conf:



            search_path = "$user",public,extensions


            Or:



            search_path = public,extensions


            And I install extensions with:



            CREATE EXTENSION some_extension SCHEMA extensions;


            One thing to note: This way you can "hide" (unqualified) objects in the extensions schema behind objects of the same name (and parameters) in the public schema.



            Related:




            • Best way to install hstore on multiple schemas in a Postgres database?

            • How can I fake inet_client_addr() for unit tests in PostgreSQL?







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 3 mins ago

























            answered Jul 18 '15 at 2:01









            Erwin BrandstetterErwin Brandstetter

            93.7k9181294




            93.7k9181294













            • ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

              – zam6ak
              Jul 20 '15 at 13:18











            • @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

              – Erwin Brandstetter
              Jul 20 '15 at 13:40






            • 1





              plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

              – jpmc26
              Jun 23 '16 at 17:07





















            • ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

              – zam6ak
              Jul 20 '15 at 13:18











            • @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

              – Erwin Brandstetter
              Jul 20 '15 at 13:40






            • 1





              plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

              – jpmc26
              Jun 23 '16 at 17:07



















            ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

            – zam6ak
            Jul 20 '15 at 13:18





            ok is plpgsql extension then somehow an exception to this rule? Every install I have seen has this extension in pg_catalog

            – zam6ak
            Jul 20 '15 at 13:18













            @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

            – Erwin Brandstetter
            Jul 20 '15 at 13:40





            @zam6ak: Yes, plpgsql is a bit of a special case: Quoting the manual: In PostgreSQL 9.0 and later, PL/pgSQL is installed by default. However it is still a loadable module, so especially security-conscious administrators could choose to remove it.

            – Erwin Brandstetter
            Jul 20 '15 at 13:40




            1




            1





            plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

            – jpmc26
            Jun 23 '16 at 17:07







            plv8 installs itself to pg_catalog, too. (It throws an error if you try to change it.) Is this maybe a standard for installing procedural language extensions for functions?

            – jpmc26
            Jun 23 '16 at 17:07















            5














            Installing extensions into pg_catalog are, as far as I'm aware, not advised. You should use the default public schema, which is also in the search_path by default.



            Why?



            As an example, I will work with the pageinspect extension which I've already created within the public schema. All functions are, by default, accessible to all schemas in the database if they are located in the public schema.



            Now, I try moving it to the pg_catalog schema, using



            ALTER EXTENSION pageinspect SET SCHEMA pg_catalog;


            and it works just fine.



            But...



            Try to move it again, back to the public schema using



            ALTER EXTENSION pageinspect SET SCHEMA public;


            and it won't permit it, yielding the following error



            ERROR: cannot remove dependency on schema pg_catalog because it is a system object
            SQL state: 0A000


            Uh oh! Well, that's OK that it won't let me move it. I can just get it back into the public schema by dropping it and re-creating, right?...



            DROP EXTENSION pageinspect;
            CREATE EXTENSION pageinspect;


            OK, good. Back in it's right place in the public schema, and the functions are still accessible to all schemas in the database.



            TL,DR; Just use the default public schema for extensions.






            share|improve this answer




























              5














              Installing extensions into pg_catalog are, as far as I'm aware, not advised. You should use the default public schema, which is also in the search_path by default.



              Why?



              As an example, I will work with the pageinspect extension which I've already created within the public schema. All functions are, by default, accessible to all schemas in the database if they are located in the public schema.



              Now, I try moving it to the pg_catalog schema, using



              ALTER EXTENSION pageinspect SET SCHEMA pg_catalog;


              and it works just fine.



              But...



              Try to move it again, back to the public schema using



              ALTER EXTENSION pageinspect SET SCHEMA public;


              and it won't permit it, yielding the following error



              ERROR: cannot remove dependency on schema pg_catalog because it is a system object
              SQL state: 0A000


              Uh oh! Well, that's OK that it won't let me move it. I can just get it back into the public schema by dropping it and re-creating, right?...



              DROP EXTENSION pageinspect;
              CREATE EXTENSION pageinspect;


              OK, good. Back in it's right place in the public schema, and the functions are still accessible to all schemas in the database.



              TL,DR; Just use the default public schema for extensions.






              share|improve this answer


























                5












                5








                5







                Installing extensions into pg_catalog are, as far as I'm aware, not advised. You should use the default public schema, which is also in the search_path by default.



                Why?



                As an example, I will work with the pageinspect extension which I've already created within the public schema. All functions are, by default, accessible to all schemas in the database if they are located in the public schema.



                Now, I try moving it to the pg_catalog schema, using



                ALTER EXTENSION pageinspect SET SCHEMA pg_catalog;


                and it works just fine.



                But...



                Try to move it again, back to the public schema using



                ALTER EXTENSION pageinspect SET SCHEMA public;


                and it won't permit it, yielding the following error



                ERROR: cannot remove dependency on schema pg_catalog because it is a system object
                SQL state: 0A000


                Uh oh! Well, that's OK that it won't let me move it. I can just get it back into the public schema by dropping it and re-creating, right?...



                DROP EXTENSION pageinspect;
                CREATE EXTENSION pageinspect;


                OK, good. Back in it's right place in the public schema, and the functions are still accessible to all schemas in the database.



                TL,DR; Just use the default public schema for extensions.






                share|improve this answer













                Installing extensions into pg_catalog are, as far as I'm aware, not advised. You should use the default public schema, which is also in the search_path by default.



                Why?



                As an example, I will work with the pageinspect extension which I've already created within the public schema. All functions are, by default, accessible to all schemas in the database if they are located in the public schema.



                Now, I try moving it to the pg_catalog schema, using



                ALTER EXTENSION pageinspect SET SCHEMA pg_catalog;


                and it works just fine.



                But...



                Try to move it again, back to the public schema using



                ALTER EXTENSION pageinspect SET SCHEMA public;


                and it won't permit it, yielding the following error



                ERROR: cannot remove dependency on schema pg_catalog because it is a system object
                SQL state: 0A000


                Uh oh! Well, that's OK that it won't let me move it. I can just get it back into the public schema by dropping it and re-creating, right?...



                DROP EXTENSION pageinspect;
                CREATE EXTENSION pageinspect;


                OK, good. Back in it's right place in the public schema, and the functions are still accessible to all schemas in the database.



                TL,DR; Just use the default public schema for extensions.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jul 17 '15 at 21:27









                ChrisChris

                1,999917




                1,999917






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f107389%2fis-it-recommended-to-install-extensions-into-pg-catalog-schema%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Parapolítica Índice Antecedentes El escándalo Proceso judicial Consecuencias Véase...

                    How to remove border from elements in the last row?Targeting flex items on the last rowHow to vertically wrap...

                    Tecnologías entrañables Índice Antecedentes Desarrollo Tecnologías Entrañables en la...