Why does Postgresql has to put quotes around the column name when creating gin index?












1















On postgres, I am running



CREATE INDEX gin_index_position_on_players ON public.players USING gin (position gin_trgm_ops);


Then, I am checking the indexdef of this table,



select *
from pg_indexes
where tablename = 'players';


And the result for the previously created index is:



CREATE INDEX gin_index_position_on_players ON public.players USING gin ("position" gin_trgm_ops)


Does someone know why Postgres would have wrapped position ?



Guess I have already investigated:




  1. Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that name is wrapped.


  2. Built-in functions: postgres wraps its built-in functions (like position) -> char_length is not wrapped











share|improve this question

























  • Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

    – a_horse_with_no_name
    Nov 20 '18 at 15:35













  • I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

    – thom_bian
    Nov 21 '18 at 7:45











  • What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

    – thom_bian
    Nov 21 '18 at 8:12













  • Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

    – a_horse_with_no_name
    Nov 21 '18 at 8:26
















1















On postgres, I am running



CREATE INDEX gin_index_position_on_players ON public.players USING gin (position gin_trgm_ops);


Then, I am checking the indexdef of this table,



select *
from pg_indexes
where tablename = 'players';


And the result for the previously created index is:



CREATE INDEX gin_index_position_on_players ON public.players USING gin ("position" gin_trgm_ops)


Does someone know why Postgres would have wrapped position ?



Guess I have already investigated:




  1. Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that name is wrapped.


  2. Built-in functions: postgres wraps its built-in functions (like position) -> char_length is not wrapped











share|improve this question

























  • Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

    – a_horse_with_no_name
    Nov 20 '18 at 15:35













  • I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

    – thom_bian
    Nov 21 '18 at 7:45











  • What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

    – thom_bian
    Nov 21 '18 at 8:12













  • Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

    – a_horse_with_no_name
    Nov 21 '18 at 8:26














1












1








1








On postgres, I am running



CREATE INDEX gin_index_position_on_players ON public.players USING gin (position gin_trgm_ops);


Then, I am checking the indexdef of this table,



select *
from pg_indexes
where tablename = 'players';


And the result for the previously created index is:



CREATE INDEX gin_index_position_on_players ON public.players USING gin ("position" gin_trgm_ops)


Does someone know why Postgres would have wrapped position ?



Guess I have already investigated:




  1. Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that name is wrapped.


  2. Built-in functions: postgres wraps its built-in functions (like position) -> char_length is not wrapped











share|improve this question
















On postgres, I am running



CREATE INDEX gin_index_position_on_players ON public.players USING gin (position gin_trgm_ops);


Then, I am checking the indexdef of this table,



select *
from pg_indexes
where tablename = 'players';


And the result for the previously created index is:



CREATE INDEX gin_index_position_on_players ON public.players USING gin ("position" gin_trgm_ops)


Does someone know why Postgres would have wrapped position ?



Guess I have already investigated:




  1. Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that name is wrapped.


  2. Built-in functions: postgres wraps its built-in functions (like position) -> char_length is not wrapped








postgresql indexing






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 '18 at 15:30







thom_bian

















asked Nov 20 '18 at 15:07









thom_bianthom_bian

1516




1516













  • Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

    – a_horse_with_no_name
    Nov 20 '18 at 15:35













  • I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

    – thom_bian
    Nov 21 '18 at 7:45











  • What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

    – thom_bian
    Nov 21 '18 at 8:12













  • Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

    – a_horse_with_no_name
    Nov 21 '18 at 8:26



















  • Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

    – a_horse_with_no_name
    Nov 20 '18 at 15:35













  • I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

    – thom_bian
    Nov 21 '18 at 7:45











  • What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

    – thom_bian
    Nov 21 '18 at 8:12













  • Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

    – a_horse_with_no_name
    Nov 21 '18 at 8:26

















Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

– a_horse_with_no_name
Nov 20 '18 at 15:35







Why do you care? What is the problem with that? But position is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)

– a_horse_with_no_name
Nov 20 '18 at 15:35















I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

– thom_bian
Nov 21 '18 at 7:45





I care because I am using Rails to build an app and it generates an error when parsing the indexdef due to this edge case.

– thom_bian
Nov 21 '18 at 7:45













What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

– thom_bian
Nov 21 '18 at 8:12







What you dont understand here is that the framework does not support this syntax and I tried to understand why this syntax could occur to provide an interesting feedback to the Rails developer.

– thom_bian
Nov 21 '18 at 8:12















Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

– a_horse_with_no_name
Nov 21 '18 at 8:26





Then, yes it's a bug in that framework. You probably also want to check the parsing of expression based indexes: e.g. create index on ... (lower(some_column)) would result in (lower((some_column)::text)) or partial indexes: create index on ... () where some_column = 42

– a_horse_with_no_name
Nov 21 '18 at 8:26












1 Answer
1






active

oldest

votes


















1














If in doubt read the frankly exhaustive manuals.



https://www.postgresql.org/docs/current/sql-keywords-appendix.html






share|improve this answer
























  • Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

    – thom_bian
    Nov 21 '18 at 8:14











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f53395921%2fwhy-does-postgresql-has-to-put-quotes-around-the-column-name-when-creating-gin-i%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














If in doubt read the frankly exhaustive manuals.



https://www.postgresql.org/docs/current/sql-keywords-appendix.html






share|improve this answer
























  • Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

    – thom_bian
    Nov 21 '18 at 8:14
















1














If in doubt read the frankly exhaustive manuals.



https://www.postgresql.org/docs/current/sql-keywords-appendix.html






share|improve this answer
























  • Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

    – thom_bian
    Nov 21 '18 at 8:14














1












1








1







If in doubt read the frankly exhaustive manuals.



https://www.postgresql.org/docs/current/sql-keywords-appendix.html






share|improve this answer













If in doubt read the frankly exhaustive manuals.



https://www.postgresql.org/docs/current/sql-keywords-appendix.html







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 20 '18 at 15:37









Richard HuxtonRichard Huxton

15.4k12336




15.4k12336













  • Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

    – thom_bian
    Nov 21 '18 at 8:14



















  • Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

    – thom_bian
    Nov 21 '18 at 8:14

















Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

– thom_bian
Nov 21 '18 at 8:14





Thank you for the link. It seems that some of the keywords in that list are generating this syntax.

– thom_bian
Nov 21 '18 at 8:14




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • 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%2fstackoverflow.com%2fquestions%2f53395921%2fwhy-does-postgresql-has-to-put-quotes-around-the-column-name-when-creating-gin-i%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

How to pass form data using jquery Ajax to insert data in database?

National Museum of Racing and Hall of Fame

Guess what letter conforming each word