Reserved Identifiers and SQL Key Words

This topic describes Greenplum Database reserved identifiers and object names, and SQL key words recognized by the Greenplum Database and PostgreSQL command parsers.

Reserved Identifiers

In the Greenplum Database system, names beginning with gp_ and pg_ are reserved and should not be used as names for user-created objects, such as tables, views, and functions.

The resource group names admin_group, default_group, and none are reserved. The resource queue name pg_default is reserved.

The tablespace names pg_default and pg_global are reserved.

The role names gpadmin and gpmon are reserved. gpadmin is the default Greenplum Database superuser role. The gpmon role owns the gpperfmon database.

In data files, the characters that delimit fields (columns) and rows have a special meaning. If they appear within the data you must escape them so that Greenplum Database treats them as data and not as delimiters. The backslash character (\) is the default escape character. See Escaping for details.

See SQL Syntax in the PostgreSQL documentation for more information about SQL identifiers, constants, operators, and expressions.

SQL Key Words

Table 1 lists all tokens that are key words in Greenplum Database 6 and PostgreSQL 9.4.

ANSI SQL distinguishes between reserved and unreserved key words. According to the standard, reserved key words are the only real key words; they are never allowed as identifiers. Unreserved key words only have a special meaning in particular contexts and can be used as identifiers in other contexts. Most unreserved key words are actually the names of built-in tables and functions specified by SQL. The concept of unreserved key words essentially only exists to declare that some predefined meaning is attached to a word in some contexts.

In the Greenplum Database and PostgreSQL parsers there are several different classes of tokens ranging from those that can never be used as an identifier to those that have absolutely no special status in the parser as compared to an ordinary identifier. (The latter is usually the case for functions specified by SQL.) Even reserved key words are not completely reserved, but can be used as column labels (for example, SELECT 55 AS CHECK, even though CHECK is a reserved key word).

Table 1 classifies as “unreserved” those key words that are explicitly known to the parser but are allowed as column or table names. Some key words that are otherwise unreserved cannot be used as function or data type names and are marked accordingly. (Most of these words represent built-in functions or data types with special syntax. The function or type is still available but it cannot be redefined by the user.) Key words labeled “reserved” are not allowed as column or table names. Some reserved key words are allowable as names for functions or data types; this is also shown in the table. If not so marked, a reserved key word is only allowed as an “AS” column label name.

If you get spurious parser errors for commands that contain any of the listed key words as an identifier you should try to quote the identifier to see if the problem goes away.

Before studying the table, note the fact that a key word is not reserved does not mean that the feature related to the word is not implemented. Conversely, the presence of a key word does not indicate the existence of a feature.

Table 1. SQL Key Words
Key WordGreenplum DatabasePostgreSQL 9.4
ABORTunreservedunreserved
ABSOLUTEunreservedunreserved
ACCESSunreservedunreserved
ACTIONunreservedunreserved
ACTIVEunreserved
ADDunreservedunreserved
ADMINunreservedunreserved
AFTERunreservedunreserved
AGGREGATEunreservedunreserved
ALLreservedreserved
ALSOunreservedunreserved
ALTERunreservedunreserved
ALWAYSunreservedunreserved
ANALYSEreservedreserved
ANALYZEreservedreserved
ANDreservedreserved
ANYreservedreserved
ARRAYreservedreserved
ASreservedreserved
ASCreservedreserved
ASSERTIONunreservedunreserved
ASSIGNMENTunreservedunreserved
ASYMMETRICreservedreserved
ATunreservedunreserved
ATTRIBUTEunreservedunreserved
AUTHORIZATIONreserved (can be function or type name)reserved (can be function or type name)
BACKWARDunreservedunreserved
BEFOREunreservedunreserved
BEGINunreservedunreserved
BETWEENunreserved (cannot be function or type name)unreserved (cannot be function or type name)
BIGINTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
BINARYreserved (can be function or type name)reserved (can be function or type name)
BITunreserved (cannot be function or type name)unreserved (cannot be function or type name)
BOOLEANunreserved (cannot be function or type name)unreserved (cannot be function or type name)
BOTHreservedreserved
BYunreservedunreserved
CACHEunreservedunreserved
CALLEDunreservedunreserved
CASCADEunreservedunreserved
CASCADEDunreservedunreserved
CASEreservedreserved
CASTreservedreserved
CATALOGunreservedunreserved
CHAINunreservedunreserved
CHARunreserved (cannot be function or type name)unreserved (cannot be function or type name)
CHARACTERunreserved (cannot be function or type name)unreserved (cannot be function or type name)
CHARACTERISTICSunreservedunreserved
CHECKreservedreserved
CHECKPOINTunreservedunreserved
CLASSunreservedunreserved
CLOSEunreservedunreserved
CLUSTERunreservedunreserved
COALESCEunreserved (cannot be function or type name)unreserved (cannot be function or type name)
COLLATEreservedreserved
COLLATIONreserved (can be function or type name)reserved (can be function or type name)
COLUMNreservedreserved
COMMENTunreservedunreserved
COMMENTSunreservedunreserved
COMMITunreservedunreserved
COMMITTEDunreservedunreserved
CONCURRENCYunreserved
CONCURRENTLYreserved (can be function or type name)reserved (can be function or type name)
CONFIGURATIONunreservedunreserved
CONNECTIONunreservedunreserved
CONSTRAINTreservedreserved
CONSTRAINTSunreservedunreserved
CONTAINSunreserved
CONTENTunreservedunreserved
CONTINUEunreservedunreserved
CONVERSIONunreservedunreserved
COPYunreservedunreserved
COSTunreservedunreserved
CPU_RATE_LIMITunreserved
CPUSETunreserved
CREATEreservedreserved
CREATEEXTTABLEunreserved
CROSSreserved (can be function or type name)reserved (can be function or type name)
CSVunreservedunreserved
CUBEunreserved (cannot be function or type name)
CURRENTunreservedunreserved
CURRENT_CATALOGreservedreserved
CURRENT_DATEreservedreserved
CURRENT_ROLEreservedreserved
CURRENT_SCHEMAreserved (can be function or type name)reserved (can be function or type name)
CURRENT_TIMEreservedreserved
CURRENT_TIMESTAMPreservedreserved
CURRENT_USERreservedreserved
CURSORunreservedunreserved
CYCLEunreservedunreserved
DATAunreservedunreserved
DATABASEunreservedunreserved
DAYunreservedunreserved
DEALLOCATEunreservedunreserved
DECunreserved (cannot be function or type name)unreserved (cannot be function or type name)
DECIMALunreserved (cannot be function or type name)unreserved (cannot be function or type name)
DECLAREunreservedunreserved
DECODEreserved
DEFAULTreservedreserved
DEFAULTSunreservedunreserved
DEFERRABLEreservedreserved
DEFERREDunreservedunreserved
DEFINERunreservedunreserved
DELETEunreservedunreserved
DELIMITERunreservedunreserved
DELIMITERSunreservedunreserved
DENYunreserved
DESCreservedreserved
DICTIONARYunreservedunreserved
DISABLEunreservedunreserved
DISCARDunreservedunreserved
DISTINCTreservedreserved
DISTRIBUTEDreserved
DOreservedreserved
DOCUMENTunreservedunreserved
DOMAINunreservedunreserved
DOUBLEunreservedunreserved
DROPunreservedunreserved
DXLunreserved
EACHunreservedunreserved
ELSEreservedreserved
ENABLEunreservedunreserved
ENCODINGunreservedunreserved
ENCRYPTEDunreservedunreserved
ENDreservedreserved
ENUMunreservedunreserved
ERRORSunreserved
ESCAPEunreservedunreserved
EVENTunreservedunreserved
EVERYunreserved
EXCEPTreservedreserved
EXCHANGEunreserved
EXCLUDEreservedunreserved
EXCLUDINGunreservedunreserved
EXCLUSIVEunreservedunreserved
EXECUTEunreservedunreserved
EXISTSunreserved (cannot be function or type name)unreserved (cannot be function or type name)
EXPANDunreserved
EXPLAINunreservedunreserved
EXTENSIONunreservedunreserved
EXTERNALunreservedunreserved
EXTRACTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
FALSEreservedreserved
FAMILYunreservedunreserved
FETCHreservedreserved
FIELDSunreserved
FILLunreserved
FILTERunreservedunreserved
FIRSTunreservedunreserved
FLOATunreserved (cannot be function or type name)unreserved (cannot be function or type name)
FOLLOWINGreservedunreserved
FORreservedreserved
FORCEunreservedunreserved
FOREIGNreservedreserved
FORMATunreserved
FORWARDunreservedunreserved
FREEZEreserved (can be function or type name)reserved (can be function or type name)
FROMreservedreserved
FULLreserved (can be function or type name)reserved (can be function or type name)
FULLSCANunreserved
FUNCTIONunreservedunreserved
FUNCTIONSunreservedunreserved
GLOBALunreservedunreserved
GRANTreservedreserved
GRANTEDunreservedunreserved
GREATESTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
GROUPreservedreserved
GROUP_IDunreserved (cannot be function or type name)
GROUPINGunreserved (cannot be function or type name)
HANDLERunreservedunreserved
HASHunreserved
HAVINGreservedreserved
HEADERunreservedunreserved
HOLDunreservedunreserved
HOSTunreserved
HOURunreservedunreserved
IDENTITYunreservedunreserved
IFunreservedunreserved
IGNOREunreserved
ILIKEreserved (can be function or type name)reserved (can be function or type name)
IMMEDIATEunreservedunreserved
IMMUTABLEunreservedunreserved
IMPLICITunreservedunreserved
INreservedreserved
INCLUDINGunreservedunreserved
INCLUSIVEunreserved
INCREMENTunreservedunreserved
INDEXunreservedunreserved
INDEXESunreservedunreserved
INHERITunreservedunreserved
INHERITSunreservedunreserved
INITIALLYreservedreserved
INLINEunreservedunreserved
INNERreserved (can be function or type name)reserved (can be function or type name)
INOUTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
INPUTunreservedunreserved
INSENSITIVEunreservedunreserved
INSERTunreservedunreserved
INSTEADunreservedunreserved
INTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
INTEGERunreserved (cannot be function or type name)unreserved (cannot be function or type name)
INTERSECTreservedreserved
INTERVALunreserved (cannot be function or type name)unreserved (cannot be function or type name)
INTOreservedreserved
INVOKERunreservedunreserved
ISreserved (can be function or type name)reserved (can be function or type name)
ISNULLreserved (can be function or type name)reserved (can be function or type name)
ISOLATIONunreservedunreserved
JOINreserved (can be function or type name)reserved (can be function or type name)
KEYunreservedunreserved
LABELunreservedunreserved
LANGUAGEunreservedunreserved
LARGEunreservedunreserved
LASTunreservedunreserved
LATERALreservedreserved
LC_COLLATEunreservedunreserved
LC_CTYPEunreservedunreserved
LEADINGreservedreserved
LEAKPROOFunreservedunreserved
LEASTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
LEFTreserved (can be function or type name)reserved (can be function or type name)
LEVELunreservedunreserved
LIKEreserved (can be function or type name)reserved (can be function or type name)
LIMITreservedreserved
LISTunreserved
LISTENunreservedunreserved
LOADunreservedunreserved
LOCALunreservedunreserved
LOCALTIMEreservedreserved
LOCALTIMESTAMPreservedreserved
LOCATIONunreservedunreserved
LOCKunreservedunreserved
LOGreserved (can be function or type name)
MAPPINGunreservedunreserved
MASTERunreserved
MATCHunreservedunreserved
MATERIALIZEDunreservedunreserved
MAXVALUEunreservedunreserved
MEDIANunreserved (cannot be function or type name)
MEMORY_LIMITunreserved
MEMORY_SHARED_QUOTAunreserved
MEMORY_SPILL_RATIOunreserved
MINUTEunreservedunreserved
MINVALUEunreservedunreserved
MISSINGunreserved
MODEunreservedunreserved
MODIFIESunreserved
MONTHunreservedunreserved
MOVEunreservedunreserved
NAMEunreservedunreserved
NAMESunreservedunreserved
NATIONALunreserved (cannot be function or type name)unreserved (cannot be function or type name)
NATURALreserved (can be function or type name)reserved (can be function or type name)
NCHARunreserved (cannot be function or type name)unreserved (cannot be function or type name)
NEWLINEunreserved
NEXTunreservedunreserved
NOunreservedunreserved
NOCREATEEXTTABLEunreserved
NONEunreserved (cannot be function or type name)unreserved (cannot be function or type name)
NOOVERCOMMITunreserved
NOTreservedreserved
NOTHINGunreservedunreserved
NOTIFYunreservedunreserved
NOTNULLreserved (can be function or type name)reserved (can be function or type name)
NOWAITunreservedunreserved
NULLreservedreserved
NULLIFunreserved (cannot be function or type name)unreserved (cannot be function or type name)
NULLSunreservedunreserved
NUMERICunreserved (cannot be function or type name)unreserved (cannot be function or type name)
OBJECTunreservedunreserved
OFunreservedunreserved
OFFunreservedunreserved
OFFSETreservedreserved
OIDSunreservedunreserved
ONreservedreserved
ONLYreservedreserved
OPERATORunreservedunreserved
OPTIONunreservedunreserved
OPTIONSunreservedunreserved
ORreservedreserved
ORDERreservedreserved
ORDEREDunreserved
ORDINALITYunreservedunreserved
OTHERSunreserved
OUTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
OUTERreserved (can be function or type name)reserved (can be function or type name)
OVERunreservedunreserved
OVERCOMMITunreserved
OVERLAPSreserved (can be function or type name)reserved (can be function or type name)
OVERLAYunreserved (cannot be function or type name)unreserved (cannot be function or type name)
OWNEDunreservedunreserved
OWNERunreservedunreserved
PARSERunreservedunreserved
PARTIALunreservedunreserved
PARTITIONreservedunreserved
PARTITIONSunreserved
PASSINGunreservedunreserved
PASSWORDunreservedunreserved
PERCENTunreserved
PLACINGreservedreserved
PLANSunreservedunreserved
POSITIONunreserved (cannot be function or type name)unreserved (cannot be function or type name)
PRECEDINGreservedunreserved
PRECISIONunreserved (cannot be function or type name)unreserved (cannot be function or type name)
PREPAREunreservedunreserved
PREPAREDunreservedunreserved
PRESERVEunreservedunreserved
PRIMARYreservedreserved
PRIORunreservedunreserved
PRIVILEGESunreservedunreserved
PROCEDURALunreservedunreserved
PROCEDUREunreservedunreserved
PROGRAMunreservedunreserved
PROTOCOLunreserved
QUEUEunreserved
QUOTEunreservedunreserved
RANDOMLYunreserved
RANGEunreservedunreserved
READunreservedunreserved
READABLEunreserved
READSunreserved
REALunreserved (cannot be function or type name)unreserved (cannot be function or type name)
REASSIGNunreservedunreserved
RECHECKunreservedunreserved
RECURSIVEunreservedunreserved
REFunreservedunreserved
REFERENCESreservedreserved
REFRESHunreservedunreserved
REINDEXunreservedunreserved
REJECTunreserved
RELATIVEunreservedunreserved
RELEASEunreservedunreserved
RENAMEunreservedunreserved
REPEATABLEunreservedunreserved
REPLACEunreservedunreserved
REPLICAunreservedunreserved
REPLICATEDunreserved
RESETunreservedunreserved
RESOURCEunreserved
RESTARTunreservedunreserved
RESTRICTunreservedunreserved
RETURNINGreservedreserved
RETURNSunreservedunreserved
REVOKEunreservedunreserved
RIGHTreserved (can be function or type name)reserved (can be function or type name)
ROLEunreservedunreserved
ROLLBACKunreservedunreserved
ROLLUPunreserved (cannot be function or type name)
ROOTPARTITIONunreserved
ROWunreserved (cannot be function or type name)unreserved (cannot be function or type name)
ROWSunreservedunreserved
RULEunreservedunreserved
SAVEPOINTunreservedunreserved
SCATTERreserved
SCHEMAunreservedunreserved
SCROLLunreservedunreserved
SEARCHunreservedunreserved
SECONDunreservedunreserved
SECURITYunreservedunreserved
SEGMENTunreserved
SEGMENTSunreserved
SELECTreservedreserved
SEQUENCEunreservedunreserved
SEQUENCESunreservedunreserved
SERIALIZABLEunreservedunreserved
SERVERunreservedunreserved
SESSIONunreservedunreserved
SESSION_USERreservedreserved
SETunreservedunreserved
SETOFunreserved (cannot be function or type name)unreserved (cannot be function or type name)
SETSunreserved (cannot be function or type name)
SHAREunreservedunreserved
SHOWunreservedunreserved
SIMILARreserved (can be function or type name)reserved (can be function or type name)
SIMPLEunreservedunreserved
SMALLINTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
SNAPSHOTunreservedunreserved
SOMEreservedreserved
SPLITunreserved
SQLunreserved
STABLEunreservedunreserved
STANDALONEunreservedunreserved
STARTunreservedunreserved
STATEMENTunreservedunreserved
STATISTICSunreservedunreserved
STDINunreservedunreserved
STDOUTunreservedunreserved
STORAGEunreservedunreserved
STRICTunreservedunreserved
STRIPunreservedunreserved
SUBPARTITIONunreserved
SUBSTRINGunreserved (cannot be function or type name)unreserved (cannot be function or type name)
SYMMETRICreservedreserved
SYSIDunreservedunreserved
SYSTEMunreservedunreserved
TABLEreservedreserved
TABLESunreservedunreserved
TABLESPACEunreservedunreserved
TEMPunreservedunreserved
TEMPLATEunreservedunreserved
TEMPORARYunreservedunreserved
TEXTunreservedunreserved
THENreservedreserved
THRESHOLDunreserved
TIESunreserved
TIMEunreserved (cannot be function or type name)unreserved (cannot be function or type name)
TIMESTAMPunreserved (cannot be function or type name)unreserved (cannot be function or type name)
TOreservedreserved
TRAILINGreservedreserved
TRANSACTIONunreservedunreserved
TREATunreserved (cannot be function or type name)unreserved (cannot be function or type name)
TRIGGERunreservedunreserved
TRIMunreserved (cannot be function or type name)unreserved (cannot be function or type name)
TRUEreservedreserved
TRUNCATEunreservedunreserved
TRUSTEDunreservedunreserved
TYPEunreservedunreserved
TYPESunreservedunreserved
UNBOUNDEDreservedunreserved
UNCOMMITTEDunreservedunreserved
UNENCRYPTEDunreservedunreserved
UNIONreservedreserved
UNIQUEreservedreserved
UNKNOWNunreservedunreserved
UNLISTENunreservedunreserved
UNLOGGEDunreservedunreserved
UNTILunreservedunreserved
UPDATEunreservedunreserved
USERreservedreserved
USINGreservedreserved
VACUUMunreservedunreserved
VALIDunreservedunreserved
VALIDATEunreservedunreserved
VALIDATIONunreserved
VALIDATORunreservedunreserved
VALUEunreservedunreserved
VALUESunreserved (cannot be function or type name)unreserved (cannot be function or type name)
VARCHARunreserved (cannot be function or type name)unreserved (cannot be function or type name)
VARIADICreservedreserved
VARYINGunreservedunreserved
VERBOSEreserved (can be function or type name)reserved (can be function or type name)
VERSIONunreservedunreserved
VIEWunreservedunreserved
VIEWSunreservedunreserved
VOLATILEunreservedunreserved
WEBunreserved
WHENreservedreserved
WHEREreservedreserved
WHITESPACEunreservedunreserved
WINDOWreservedreserved
WITHreservedreserved
WITHINunreservedunreserved
WITHOUTunreservedunreserved
WORKunreservedunreserved
WRAPPERunreservedunreserved
WRITABLEunreserved
WRITEunreservedunreserved
XMLunreservedunreserved
XMLATTRIBUTESunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLCONCATunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLELEMENTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLEXISTSunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLFORESTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLPARSEunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLPIunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLROOTunreserved (cannot be function or type name)unreserved (cannot be function or type name)
XMLSERIALIZEunreserved (cannot be function or type name)unreserved (cannot be function or type name)
YEARunreservedunreserved
YESunreservedunreserved
ZONEunreservedunreserved

Need help? Visit the Greenplum Database Community