Bug 1389014

Summary: NICS table uses SQL reserved keyword in column name PRIMARY
Product: Red Hat Satellite Reporter: Mike McCune <mmccune>
Component: ProvisioningAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED WONTFIX QA Contact: Katello QA List <katello-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2.3CC: bkearney, inecas, mmccune, mmello
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-08-02 20:59:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Mike McCune 2016-10-26 16:34:49 UTC
In Postgres 8 and 9 the keyword PRIMARY is reserved in SQL.

This can block query access based on this column and is generally bad form to use a reserved word for a column name:

foreman=# \d nics 
                                         Table "public.nics"
       Column       |            Type             |                     Modifiers                     
--------------------+-----------------------------+----
 id                 | integer                     | not null default
 mac                | character varying(255)      |
 ip                 | character varying(255)      | 
...
 primary            | boolean                     | default false

as we see in the docs, PRIMARY is reserved:

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

and attempts to select this column without using the table prefix causes an error:

foreman=# select primary from nics;
ERROR:  syntax error at or near "primary"
LINE 1: select primary from nics;
               ^

Comment 1 Marcelo Moreira de Mello 2016-10-26 16:46:51 UTC
Just for reference, this is the link for reserved key-words for PostgreSQL 9.2 
https://www.postgresql.org/docs/9.2/static/sql-keywords-appendix.html


To select the field, use <TABLE>.<COLUMN>

foreman=# SELECT COUNT(id) FROM  nics WHERE nics.primary IS FALSE;
 count 
-------
  2440
(1 row)

Comment 6 Bryan Kearney 2018-08-02 20:59:36 UTC
Thank you for your interest in Satellite 6. We have evaluated this request, and we do not expect this to be implemented in the product in the forseeable future. We are therefore closing this out as WONTFIX. If you have any concerns about this, please feel free to contact Rich Jerrido or Bryan Kearney. Thank you.