mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@2332 c8812cc2-4d05-0410-92ff-de0c093fc19c
396 lines
7.3 KiB
C++
396 lines
7.3 KiB
C++
/***************************************************************************
|
|
qgspgutil.cpp - PostgreSQL Utility Functions
|
|
--------------------------------------
|
|
Date : 2004-11-21
|
|
Copyright : (C) 2004 by Gary E.Sherman
|
|
Email : sherman at mrcc.com
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
/* $Id$ */
|
|
#include "qgspgutil.h"
|
|
|
|
QgsPgUtil *QgsPgUtil::mInstance = 0;
|
|
QgsPgUtil * QgsPgUtil::instance()
|
|
{
|
|
if(mInstance == 0)
|
|
{
|
|
mInstance = new QgsPgUtil();
|
|
}
|
|
return mInstance;
|
|
}
|
|
QgsPgUtil::QgsPgUtil()
|
|
{
|
|
// load the reserved word map
|
|
initReservedWords();
|
|
}
|
|
QgsPgUtil::~QgsPgUtil()
|
|
{
|
|
}
|
|
bool QgsPgUtil::isReserved(QString word)
|
|
{
|
|
// uppercase the word before testing it since all our reserved words are
|
|
// stored in uppercase
|
|
|
|
QStringList::iterator it = mReservedWords.find(word.upper());
|
|
return (it != mReservedWords.end());
|
|
}
|
|
void QgsPgUtil::setConnection(PGconn *con)
|
|
{
|
|
mPgConnection = con;
|
|
}
|
|
PGconn *QgsPgUtil::connection()
|
|
{
|
|
return mPgConnection;
|
|
}
|
|
void QgsPgUtil::initReservedWords()
|
|
{
|
|
// create the reserved word list by loading
|
|
// the words into a QStringList. We code them here
|
|
// for now rather than deal with the complexities
|
|
// of finding and loading from a text file
|
|
// in the install path
|
|
mReservedWords << "ABSOLUTE"
|
|
<< "ACTION"
|
|
<< "ADD"
|
|
<< "ADMIN"
|
|
<< "AFTER"
|
|
<< "AGGREGATE"
|
|
<< "ALIAS"
|
|
<< "ALL"
|
|
<< "ALLOCATE"
|
|
<< "ALTER"
|
|
<< "ANALYSE"
|
|
<< "ANALYZE"
|
|
<< "AND"
|
|
<< "ANY"
|
|
<< "ARE"
|
|
<< "ARRAY"
|
|
<< "AS"
|
|
<< "ASC"
|
|
<< "ASSERTION"
|
|
<< "AT"
|
|
<< "AUTHORIZATION"
|
|
<< "AVG"
|
|
<< "BEFORE"
|
|
<< "BEGIN"
|
|
<< "BETWEEN"
|
|
<< "BINARY"
|
|
<< "BIT"
|
|
<< "BIT_LENGTH"
|
|
<< "BLOB"
|
|
<< "BOOLEAN"
|
|
<< "BOTH"
|
|
<< "BREADTH"
|
|
<< "BY"
|
|
<< "CALL"
|
|
<< "CASCADE"
|
|
<< "CASCADED"
|
|
<< "CASE"
|
|
<< "CAST"
|
|
<< "CATALOG"
|
|
<< "CHAR"
|
|
<< "CHARACTER"
|
|
<< "CHARACTER_LENGTH"
|
|
<< "CHAR_LENGTH"
|
|
<< "CHECK"
|
|
<< "CLASS"
|
|
<< "CLOB"
|
|
<< "CLOSE"
|
|
<< "COALESCE"
|
|
<< "COLLATE"
|
|
<< "COLLATION"
|
|
<< "COLUMN"
|
|
<< "COMMIT"
|
|
<< "COMPLETION"
|
|
<< "CONNECT"
|
|
<< "CONNECTION"
|
|
<< "CONSTRAINT"
|
|
<< "CONSTRAINTS"
|
|
<< "CONSTRUCTOR"
|
|
<< "CONTINUE"
|
|
<< "CONVERT"
|
|
<< "CORRESPONDING"
|
|
<< "COUNT"
|
|
<< "CREATE"
|
|
<< "CROSS"
|
|
<< "CUBE"
|
|
<< "CURRENT"
|
|
<< "CURRENT_DATE"
|
|
<< "CURRENT_PATH"
|
|
<< "CURRENT_ROLE"
|
|
<< "CURRENT_TIME"
|
|
<< "CURRENT_TIMESTAMP"
|
|
<< "CURRENT_USER"
|
|
<< "CURSOR"
|
|
<< "CURSOR_NAME"
|
|
<< "CYCLE"
|
|
<< "DATA"
|
|
<< "DATE"
|
|
<< "DAY"
|
|
<< "DEALLOCATE"
|
|
<< "DEC"
|
|
<< "DECIMAL"
|
|
<< "DECLARE"
|
|
<< "DEFAULT"
|
|
<< "DEFERRABLE"
|
|
<< "DEFERRED"
|
|
<< "DELETE"
|
|
<< "DEPTH"
|
|
<< "DEREF"
|
|
<< "DESC"
|
|
<< "DESCRIBE"
|
|
<< "DESCRIPTOR"
|
|
<< "DESTROY"
|
|
<< "DESTRUCTOR"
|
|
<< "DETERMINISTIC"
|
|
<< "DIAGNOSTICS"
|
|
<< "DICTIONARY"
|
|
<< "DISCONNECT"
|
|
<< "DISPATCH"
|
|
<< "DISTINCT"
|
|
<< "DO"
|
|
<< "DOMAIN"
|
|
<< "DOUBLE"
|
|
<< "DROP"
|
|
<< "DYNAMIC"
|
|
<< "EACH"
|
|
<< "ELSE"
|
|
<< "END"
|
|
<< "END-EXEC"
|
|
<< "EQUALS"
|
|
<< "ESCAPE"
|
|
<< "EVERY"
|
|
<< "EXCEPT"
|
|
<< "EXCEPTION"
|
|
<< "EXEC"
|
|
<< "EXECUTE"
|
|
<< "EXISTS"
|
|
<< "EXTERNAL"
|
|
<< "EXTRACT"
|
|
<< "FALSE"
|
|
<< "FETCH"
|
|
<< "FIRST"
|
|
<< "FLOAT"
|
|
<< "FOR"
|
|
<< "FOREIGN"
|
|
<< "FOUND"
|
|
<< "FREE"
|
|
<< "FREEZE"
|
|
<< "FROM"
|
|
<< "FULL"
|
|
<< "FUNCTION"
|
|
<< "GENERAL"
|
|
<< "GET"
|
|
<< "GLOBAL"
|
|
<< "GO"
|
|
<< "GOTO"
|
|
<< "GRANT"
|
|
<< "GROUP"
|
|
<< "GROUPING"
|
|
<< "HAVING"
|
|
<< "HOST"
|
|
<< "HOUR"
|
|
<< "IDENTITY"
|
|
<< "IGNORE"
|
|
<< "ILIKE"
|
|
<< "IMMEDIATE"
|
|
<< "IMPLEMENTATION"
|
|
<< "IN"
|
|
<< "INDICATOR"
|
|
<< "INITIALIZE"
|
|
<< "INITIALLY"
|
|
<< "INNER"
|
|
<< "INOUT"
|
|
<< "INPUT"
|
|
<< "INSENSITIVE"
|
|
<< "INSERT"
|
|
<< "INT"
|
|
<< "INTEGER"
|
|
<< "INTERSECT"
|
|
<< "INTERVAL"
|
|
<< "INTO"
|
|
<< "IS"
|
|
<< "ISNULL"
|
|
<< "ITERATE"
|
|
<< "JOIN"
|
|
<< "KEY"
|
|
<< "LANGUAGE"
|
|
<< "LARGE"
|
|
<< "LAST"
|
|
<< "LATERAL"
|
|
<< "LEADING"
|
|
<< "LEFT"
|
|
<< "LESS"
|
|
<< "LEVEL"
|
|
<< "LIKE"
|
|
<< "LIMIT"
|
|
<< "LOCAL"
|
|
<< "LOCALTIME"
|
|
<< "LOCALTIMESTAMP"
|
|
<< "LOCATOR"
|
|
<< "LOWER"
|
|
<< "MAP"
|
|
<< "MATCH"
|
|
<< "MAX"
|
|
<< "MIN"
|
|
<< "MINUTE"
|
|
<< "MODIFIES"
|
|
<< "MODIFY"
|
|
<< "MODULE"
|
|
<< "MONTH"
|
|
<< "NAMES"
|
|
<< "NATIONAL"
|
|
<< "NATURAL"
|
|
<< "NCHAR"
|
|
<< "NCLOB"
|
|
<< "NEW"
|
|
<< "NEXT"
|
|
<< "NO"
|
|
<< "NONE"
|
|
<< "NOT"
|
|
<< "NOTNULL"
|
|
<< "NULL"
|
|
<< "NULLIF"
|
|
<< "NUMERIC"
|
|
<< "OBJECT"
|
|
<< "OCTET_LENGTH"
|
|
<< "OF"
|
|
<< "OFF"
|
|
<< "OFFSET"
|
|
<< "OLD"
|
|
<< "ON"
|
|
<< "ONLY"
|
|
<< "OPEN"
|
|
<< "OPERATION"
|
|
<< "OPTION"
|
|
<< "OR"
|
|
<< "ORDER"
|
|
<< "ORDINALITY"
|
|
<< "OUT"
|
|
<< "OUTER"
|
|
<< "OUTPUT"
|
|
<< "OVERLAPS"
|
|
<< "PAD"
|
|
<< "PARAMETER"
|
|
<< "PARAMETERS"
|
|
<< "PARTIAL"
|
|
<< "PATH"
|
|
<< "PLACING"
|
|
<< "POSITION"
|
|
<< "POSTFIX"
|
|
<< "PRECISION"
|
|
<< "PREFIX"
|
|
<< "PREORDER"
|
|
<< "PREPARE"
|
|
<< "PRESERVE"
|
|
<< "PRIMARY"
|
|
<< "PRIOR"
|
|
<< "PRIVILEGES"
|
|
<< "PROCEDURE"
|
|
<< "PUBLIC"
|
|
<< "READ"
|
|
<< "READS"
|
|
<< "REAL"
|
|
<< "RECURSIVE"
|
|
<< "REF"
|
|
<< "REFERENCES"
|
|
<< "REFERENCING"
|
|
<< "RELATIVE"
|
|
<< "RESTRICT"
|
|
<< "RESULT"
|
|
<< "RETURN"
|
|
<< "RETURNS"
|
|
<< "REVOKE"
|
|
<< "RIGHT"
|
|
<< "ROLE"
|
|
<< "ROLLBACK"
|
|
<< "ROLLUP"
|
|
<< "ROUTINE"
|
|
<< "ROW"
|
|
<< "ROWS"
|
|
<< "SAVEPOINT"
|
|
<< "SCHEMA"
|
|
<< "SCOPE"
|
|
<< "SCROLL"
|
|
<< "SEARCH"
|
|
<< "SECOND"
|
|
<< "SECTION"
|
|
<< "SELECT"
|
|
<< "SEQUENCE"
|
|
<< "SESSION"
|
|
<< "SESSION_USER"
|
|
<< "SET"
|
|
<< "SETS"
|
|
<< "SIMILAR"
|
|
<< "SIZE"
|
|
<< "SMALLINT"
|
|
<< "SOME"
|
|
<< "SPACE"
|
|
<< "SPECIFIC"
|
|
<< "SPECIFICTYPE"
|
|
<< "SQL"
|
|
<< "SQLCODE"
|
|
<< "SQLERROR"
|
|
<< "SQLEXCEPTION"
|
|
<< "SQLSTATE"
|
|
<< "SQLWARNING"
|
|
<< "START"
|
|
<< "STATE"
|
|
<< "STATEMENT"
|
|
<< "STATIC"
|
|
<< "STRUCTURE"
|
|
<< "SUBSTRING"
|
|
<< "SUM"
|
|
<< "SYSTEM_USER"
|
|
<< "TABLE"
|
|
<< "TEMPORARY"
|
|
<< "TERMINATE"
|
|
<< "THAN"
|
|
<< "THEN"
|
|
<< "TIME"
|
|
<< "TIMESTAMP"
|
|
<< "TIMEZONE_HOUR"
|
|
<< "TIMEZONE_MINUTE"
|
|
<< "TO"
|
|
<< "TRAILING"
|
|
<< "TRANSACTION"
|
|
<< "TRANSLATE"
|
|
<< "TRANSLATION"
|
|
<< "TREAT"
|
|
<< "TRIGGER"
|
|
<< "TRIM"
|
|
<< "TRUE"
|
|
<< "UNDER"
|
|
<< "UNION"
|
|
<< "UNIQUE"
|
|
<< "UNKNOWN"
|
|
<< "UNNEST"
|
|
<< "UPDATE"
|
|
<< "UPPER"
|
|
<< "USAGE"
|
|
<< "USER"
|
|
<< "USING"
|
|
<< "VALUE"
|
|
<< "VALUES"
|
|
<< "VARCHAR"
|
|
<< "VARIABLE"
|
|
<< "VARYING"
|
|
<< "VERBOSE"
|
|
<< "VIEW"
|
|
<< "WHEN"
|
|
<< "WHENEVER"
|
|
<< "WHERE"
|
|
<< "WITH"
|
|
<< "WITHOUT"
|
|
<< "WORK"
|
|
<< "WRITE"
|
|
<< "YEAR"
|
|
<< "ZONE";
|
|
}
|