Why does Postgresql has to put quotes around the column name when creating gin index?
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:
Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that
name
is wrapped.Built-in functions: postgres wraps its built-in functions (like position) ->
char_length
is not wrapped
postgresql indexing
add a comment |
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:
Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that
name
is wrapped.Built-in functions: postgres wraps its built-in functions (like position) ->
char_length
is not wrapped
postgresql indexing
Why do you care? What is the problem with that? Butposition
is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)
– a_horse_with_no_name
Nov 20 at 15:35
I care because I am using Rails to build an app and it generates an error when parsing theindexdef
due to this edge case.
– thom_bian
Nov 21 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 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 at 8:26
add a comment |
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:
Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that
name
is wrapped.Built-in functions: postgres wraps its built-in functions (like position) ->
char_length
is not wrapped
postgresql indexing
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:
Reserved keywords: postgres has some "reserved keywords" and protect them by wrapping them -> it does not appear that
name
is wrapped.Built-in functions: postgres wraps its built-in functions (like position) ->
char_length
is not wrapped
postgresql indexing
postgresql indexing
edited Nov 20 at 15:30
asked Nov 20 at 15:07
thom_bian
156
156
Why do you care? What is the problem with that? Butposition
is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)
– a_horse_with_no_name
Nov 20 at 15:35
I care because I am using Rails to build an app and it generates an error when parsing theindexdef
due to this edge case.
– thom_bian
Nov 21 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 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 at 8:26
add a comment |
Why do you care? What is the problem with that? Butposition
is a keyword: postgresql.org/docs/current/sql-keywords-appendix.html (although a non-reserved one)
– a_horse_with_no_name
Nov 20 at 15:35
I care because I am using Rails to build an app and it generates an error when parsing theindexdef
due to this edge case.
– thom_bian
Nov 21 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 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 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 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 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 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 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 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 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 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 at 8:26
add a comment |
1 Answer
1
active
oldest
votes
If in doubt read the frankly exhaustive manuals.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html
Thank you for the link. It seems that some of the keywords in that list are generating this syntax.
– thom_bian
Nov 21 at 8:14
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
If in doubt read the frankly exhaustive manuals.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html
Thank you for the link. It seems that some of the keywords in that list are generating this syntax.
– thom_bian
Nov 21 at 8:14
add a comment |
If in doubt read the frankly exhaustive manuals.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html
Thank you for the link. It seems that some of the keywords in that list are generating this syntax.
– thom_bian
Nov 21 at 8:14
add a comment |
If in doubt read the frankly exhaustive manuals.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html
If in doubt read the frankly exhaustive manuals.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html
answered Nov 20 at 15:37
Richard Huxton
15.2k12236
15.2k12236
Thank you for the link. It seems that some of the keywords in that list are generating this syntax.
– thom_bian
Nov 21 at 8:14
add a comment |
Thank you for the link. It seems that some of the keywords in that list are generating this syntax.
– thom_bian
Nov 21 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 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 at 8:14
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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 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 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 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 at 8:26