Class: QgsSQLStatement¶
-
class
qgis.core.
QgsSQLStatement
(statement: str)¶ Bases:
sip.wrapper
Creates a new statement based on the provided string.
QgsSQLStatement(other:
QgsSQLStatement
) Create a copy of this statement.Class for parsing SQL statements.
New in version 2.16.
- Parameters
statement –
-
class
BinaryOperator
¶ Bases:
int
-
class
JoinType
¶ Bases:
int
-
class
Node
¶ Bases:
sip.wrapper
Abstract node class *
-
accept
(self, v: QgsSQLStatement.Visitor)¶ Support the visitor pattern.
For any implementation this should look like
C++:
v.visit( *this );
Python:
v.visit( self)
- Parameters
v (QgsSQLStatement.Visitor) – A visitor that visits this node.
-
clone
(self) → QgsSQLStatement.Node¶ Generate a clone of this node. Make sure that the clone does not contain any information which is generated in prepare and context related. Ownership is transferred to the caller.
- Return type
- Returns
a deep copy of this node.
-
dump
(self) → str¶ Abstract virtual dump method
- Return type
str
- Returns
A statement which represents this node as string
-
nodeType
(self) → QgsSQLStatement.NodeType¶ Abstract virtual that returns the type of this node.
- Return type
- Returns
The type of this node
-
-
class
NodeBetweenOperator
(node: QgsSQLStatement.Node, minVal: QgsSQLStatement.Node, maxVal: QgsSQLStatement.Node, notBetween: bool = False)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeBetweenOperator(QgsSQLStatement.NodeBetweenOperator)
‘X BETWEEN y and z’ operator *
- Parameters
node (QgsSQLStatement.Node) –
minVal (QgsSQLStatement.Node) –
maxVal (QgsSQLStatement.Node) –
notBetween (bool = False) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
isNotBetween
(self) → bool¶ Whether this is a NOT BETWEEN operator
- Return type
bool
-
maxVal
(self) → QgsSQLStatement.Node¶ Maximum bound
- Return type
-
minVal
(self) → QgsSQLStatement.Node¶ Minimum bound
- Return type
-
node
(self) → QgsSQLStatement.Node¶ Variable at the left of BETWEEN
- Return type
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
class
NodeBinaryOperator
(op: QgsSQLStatement.BinaryOperator, opLeft: QgsSQLStatement.Node, opRight: QgsSQLStatement.Node)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeBinaryOperator(QgsSQLStatement.NodeBinaryOperator)
Binary logical/arithmetical operator (AND, OR, =, +, …) *
- Parameters
opLeft (QgsSQLStatement.Node) –
opRight (QgsSQLStatement.Node) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
leftAssociative
(self) → bool¶ Is left associative ?
- Return type
bool
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
op
(self) → QgsSQLStatement.BinaryOperator¶ Operator
- Return type
-
opLeft
(self) → QgsSQLStatement.Node¶ Left operand
- Return type
-
opRight
(self) → QgsSQLStatement.Node¶ Right operand
- Return type
-
precedence
(self) → int¶ Precedence
- Return type
int
-
class
NodeCast
(node: QgsSQLStatement.Node, type: str)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeCast(QgsSQLStatement.NodeCast)
CAST operator *
- Parameters
node (QgsSQLStatement.Node) –
type (str) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
node
(self) → QgsSQLStatement.Node¶ Node that is referred to
- Return type
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
type
(self) → str¶ Type
- Return type
str
-
class
NodeColumnRef
(name: str, star: bool)¶ Bases:
Node
Constructor with column name only
QgsSQLStatement.NodeColumnRef(tableName: str, name: str, star: bool) Constructor with table and column name
QgsSQLStatement.NodeColumnRef(QgsSQLStatement.NodeColumnRef)
Reference to a column *
- Parameters
name (str) –
star (bool) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
cloneThis
(self) → QgsSQLStatement.NodeColumnRef¶ Clone with same type return
- Return type
-
distinct
(self) → bool¶ Whether this is prefixed by DISTINCT
- Return type
bool
-
dump
(self) → str¶ - Return type
str
-
name
(self) → str¶ The name of the column.
- Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
setDistinct
(self, distinct: bool = True)¶ Sets whether this is prefixed by DISTINCT
- Parameters
distinct (bool = True) –
-
star
(self) → bool¶ Whether this is the * column
- Return type
bool
-
tableName
(self) → str¶ The name of the table. May be empty.
- Return type
str
-
class
NodeColumnSorted
(column: QgsSQLStatement.NodeColumnRef, asc: bool)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeColumnSorted(QgsSQLStatement.NodeColumnSorted)
Column in a ORDER BY *
- Parameters
column (QgsSQLStatement.NodeColumnRef) –
asc (bool) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
ascending
(self) → bool¶ Whether the column is sorted in ascending order
- Return type
bool
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
cloneThis
(self) → QgsSQLStatement.NodeColumnSorted¶ Clone with same type return
- Return type
-
column
(self) → QgsSQLStatement.NodeColumnRef¶ The name of the column.
- Return type
-
dump
(self) → str¶ - Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
class
NodeFunction
(name: str, args: QgsSQLStatement.NodeList)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeFunction(QgsSQLStatement.NodeFunction)
Function with a name and arguments node *
- Parameters
name (str) –
args (QgsSQLStatement.NodeList) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
args
(self) → QgsSQLStatement.NodeList¶ Returns arguments
- Return type
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
name
(self) → str¶ Returns function name
- Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
class
NodeInOperator
(node: QgsSQLStatement.Node, list: QgsSQLStatement.NodeList, notin: bool = False)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeInOperator(QgsSQLStatement.NodeInOperator)
‘x IN (y, z)’ operator *
- Parameters
node (QgsSQLStatement.Node) –
list (QgsSQLStatement.NodeList) –
notin (bool = False) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
isNotIn
(self) → bool¶ Whether this is a NOT IN operator
- Return type
bool
-
list
(self) → QgsSQLStatement.NodeList¶ Values list
- Return type
-
node
(self) → QgsSQLStatement.Node¶ Variable at the left of IN
- Return type
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
class
NodeJoin
(tabledef: QgsSQLStatement.NodeTableDef, onExpr: QgsSQLStatement.Node, type: QgsSQLStatement.JoinType)¶ Bases:
Node
Constructor with table definition, ON expression
QgsSQLStatement.NodeJoin(tabledef: QgsSQLStatement.NodeTableDef, usingColumns: Iterable[str], type: QgsSQLStatement.JoinType) Constructor with table definition and USING columns
QgsSQLStatement.NodeJoin(QgsSQLStatement.NodeJoin)
Join definition *
- Parameters
tabledef (QgsSQLStatement.NodeTableDef) –
onExpr (QgsSQLStatement.Node) –
type (QgsSQLStatement.JoinType) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
cloneThis
(self) → QgsSQLStatement.NodeJoin¶ Clone with same type return
- Return type
-
dump
(self) → str¶ - Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
onExpr
(self) → QgsSQLStatement.Node¶ On expression. Will be None if usingColumns() is not empty
- Return type
-
tableDef
(self) → QgsSQLStatement.NodeTableDef¶ Table definition
- Return type
-
type
(self) → QgsSQLStatement.JoinType¶ Join type
- Return type
-
usingColumns
(self) → List[str]¶ Columns referenced by USING
- Return type
List[str]
-
class
NodeList
¶ Bases:
sip.wrapper
Constructor
QgsSQLStatement.NodeList(QgsSQLStatement.NodeList)
A list of nodes.
-
accept
(self, v: QgsSQLStatement.Visitor)¶ Accept visitor
- Parameters
v (QgsSQLStatement.Visitor) –
-
append
(self, node: QgsSQLStatement.Node)¶ Takes ownership of the provided node
- Parameters
node (QgsSQLStatement.Node) –
-
clone
(self) → QgsSQLStatement.NodeList¶ Creates a deep copy of this list. Ownership is transferred to the caller
- Return type
-
count
(self) → int¶ Returns the number of nodes in the list.
- Return type
int
-
dump
(self) → str¶ Dump list
- Return type
str
-
list
(self) → object¶ Returns list
- Return type
object
-
-
class
NodeLiteral
(value: Any)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeLiteral(QgsSQLStatement.NodeLiteral)
Literal value (integer, integer64, double, string) *
- Parameters
value (Any) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
value
(self) → Any¶ The value of the literal.
- Return type
Any
-
class
NodeSelect
(tableList: object, columns: object, distinct: bool)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeSelect(QgsSQLStatement.NodeSelect)
SELECT node *
- Parameters
tableList (object) –
columns (object) –
distinct (bool) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
appendJoin
(self, join: QgsSQLStatement.NodeJoin)¶ Append a join
- Parameters
join (QgsSQLStatement.NodeJoin) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
columns
(self) → List[QgsSQLStatement.NodeSelectedColumn]¶ Returns the list of columns
- Return type
-
distinct
(self) → bool¶ Returns if the SELECT is DISTINCT
- Return type
bool
-
dump
(self) → str¶ - Return type
str
-
joins
(self) → List[QgsSQLStatement.NodeJoin]¶ Returns the list of joins
- Return type
List[QgsSQLStatement.NodeJoin]
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
orderBy
(self) → List[QgsSQLStatement.NodeColumnSorted]¶ Returns the list of order by columns
- Return type
-
setJoins
(self, joins: object)¶ Sets joins
- Parameters
joins (object) –
-
setOrderBy
(self, orderBy: object)¶ Sets order by columns
- Parameters
orderBy (object) –
-
setWhere
(self, where: QgsSQLStatement.Node)¶ Sets where clause
- Parameters
where (QgsSQLStatement.Node) –
-
tables
(self) → List[QgsSQLStatement.NodeTableDef]¶ Returns the list of tables
- Return type
-
where
(self) → QgsSQLStatement.Node¶ Returns the where clause
- Return type
-
class
NodeSelectedColumn
(node: QgsSQLStatement.Node)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeSelectedColumn(QgsSQLStatement.NodeSelectedColumn)
Selected column *
- Parameters
node (QgsSQLStatement.Node) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
alias
(self) → str¶ Alias name
- Return type
str
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
cloneThis
(self) → QgsSQLStatement.NodeSelectedColumn¶ Clone with same type return
- Return type
-
column
(self) → QgsSQLStatement.Node¶ Column that is referred to
- Return type
-
dump
(self) → str¶ - Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
setAlias
(self, alias: str)¶ Sets alias name
- Parameters
alias (str) –
-
class
NodeTableDef
(name: str)¶ Bases:
Node
Constructor with table name
QgsSQLStatement.NodeTableDef(name: str, alias: str) Constructor with table name and alias
QgsSQLStatement.NodeTableDef(QgsSQLStatement.NodeTableDef)
Table definition *
- Parameters
name (str) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
alias
(self) → str¶ Table alias
- Return type
str
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
cloneThis
(self) → QgsSQLStatement.NodeTableDef¶ Clone with same type return
- Return type
-
dump
(self) → str¶ - Return type
str
-
name
(self) → str¶ Table name
- Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
class
NodeType
¶ Bases:
int
-
class
NodeUnaryOperator
(op: QgsSQLStatement.UnaryOperator, operand: QgsSQLStatement.Node)¶ Bases:
Node
Constructor
QgsSQLStatement.NodeUnaryOperator(QgsSQLStatement.NodeUnaryOperator)
Unary logicial/arithmetical operator ( NOT, - ) *
- Parameters
operand (QgsSQLStatement.Node) –
-
accept
(self, v: QgsSQLStatement.Visitor)¶ - Parameters
v (QgsSQLStatement.Visitor) –
-
clone
(self) → QgsSQLStatement.Node¶ - Return type
-
dump
(self) → str¶ - Return type
str
-
nodeType
(self) → QgsSQLStatement.NodeType¶ - Return type
-
op
(self) → QgsSQLStatement.UnaryOperator¶ Operator
- Return type
-
operand
(self) → QgsSQLStatement.Node¶ Operand
- Return type
-
class
RecursiveVisitor
¶ Bases:
Visitor
Constructor
QgsSQLStatement.RecursiveVisitor(QgsSQLStatement.RecursiveVisitor)
A visitor that recursively explores all children *
-
visit
(self, n: QgsSQLStatement.NodeUnaryOperator)¶ visit(self, n: QgsSQLStatement.NodeBinaryOperator) visit(self, n: QgsSQLStatement.NodeInOperator) visit(self, n: QgsSQLStatement.NodeBetweenOperator) visit(self, n: QgsSQLStatement.NodeFunction) visit(self, QgsSQLStatement.NodeLiteral) visit(self, QgsSQLStatement.NodeColumnRef) visit(self, n: QgsSQLStatement.NodeSelectedColumn) visit(self, QgsSQLStatement.NodeTableDef) visit(self, n: QgsSQLStatement.NodeSelect) visit(self, n: QgsSQLStatement.NodeJoin) visit(self, n: QgsSQLStatement.NodeColumnSorted) visit(self, n: QgsSQLStatement.NodeCast)
- Parameters
-
-
class
UnaryOperator
¶ Bases:
int
-
class
Visitor
¶ Bases:
sip.wrapper
Support for visitor pattern - algorithms dealing with the statement may be implemented without modifying the Node classes *
-
visit
(self, n: QgsSQLStatement.NodeUnaryOperator)¶ Visit NodeUnaryOperator
visit(self, n: QgsSQLStatement.NodeBinaryOperator) Visit NodeBinaryOperator
visit(self, n: QgsSQLStatement.NodeInOperator) Visit NodeInOperator
visit(self, n: QgsSQLStatement.NodeBetweenOperator) Visit NodeBetweenOperator
visit(self, n: QgsSQLStatement.NodeFunction) Visit NodeFunction
visit(self, n: QgsSQLStatement.NodeLiteral) Visit NodeLiteral
visit(self, n: QgsSQLStatement.NodeColumnRef) Visit NodeColumnRef
visit(self, n: QgsSQLStatement.NodeSelectedColumn) Visit NodeSelectedColumn
visit(self, n: QgsSQLStatement.NodeTableDef) Visit NodeTableDef
visit(self, n: QgsSQLStatement.NodeSelect) Visit NodeSelect
visit(self, n: QgsSQLStatement.NodeJoin) Visit NodeJoin
visit(self, n: QgsSQLStatement.NodeColumnSorted) Visit NodeColumnSorted
visit(self, n: QgsSQLStatement.NodeCast) Visit NodeCast
- Parameters
-
-
acceptVisitor
(self, v: QgsSQLStatement.Visitor)¶ Entry function for the visitor pattern
- Parameters
v (QgsSQLStatement.Visitor) –
-
boAnd
= 1¶
-
boConcat
= 21¶
-
boDiv
= 17¶
-
boEQ
= 2¶
-
boGE
= 5¶
-
boGT
= 7¶
-
boILike
= 10¶
-
boIntDiv
= 18¶
-
boIs
= 12¶
-
boIsNot
= 13¶
-
boLE
= 4¶
-
boLT
= 6¶
-
boLike
= 8¶
-
boMinus
= 15¶
-
boMod
= 19¶
-
boMul
= 16¶
-
boNE
= 3¶
-
boNotILike
= 11¶
-
boNotLike
= 9¶
-
boOr
= 0¶
-
boPlus
= 14¶
-
boPow
= 20¶
-
doBasicValidationChecks
(self) → Tuple[bool, str]¶ Performs basic validity checks. Basically checking that columns referencing a table, references a specified table. Returns true if the validation is successful *
- Return type
Tuple[bool, str]
-
dump
(self) → str¶ Returns the statement string, constructed from the internal abstract syntax tree. This does not contain any nice whitespace formatting or comments. In general it is preferable to use statement() instead.
- Return type
str
-
hasParserError
(self) → bool¶ Returns true if an error occurred when parsing the input statement
- Return type
bool
-
jtCross
= 5¶
-
jtDefault
= 0¶
-
jtFull
= 7¶
-
jtInner
= 6¶
-
jtLeft
= 1¶
-
jtLeftOuter
= 2¶
-
jtRight
= 3¶
-
jtRightOuter
= 4¶
-
ntBetweenOperator
= 3¶
-
ntBinaryOperator
= 1¶
-
ntCast
= 12¶
-
ntColumnRef
= 6¶
-
ntColumnSorted
= 11¶
-
ntFunction
= 4¶
-
ntInOperator
= 2¶
-
ntJoin
= 10¶
-
ntLiteral
= 5¶
-
ntSelect
= 8¶
-
ntSelectedColumn
= 7¶
-
ntTableDef
= 9¶
-
ntUnaryOperator
= 0¶
-
parserErrorString
(self) → str¶ Returns parser error
- Return type
str
-
quotedIdentifier
(name: str) → str¶ Returns a quoted column reference (in double quotes)
See also
- Parameters
name (str) –
- Return type
str
-
quotedIdentifierIfNeeded
(name: str) → str¶ Returns a quoted column reference (in double quotes) if needed, or otherwise the original string.
See also
- Parameters
name (str) –
- Return type
str
-
quotedString
(text: str) → str¶ Returns a quoted version of a string (in single quotes)
See also
- Parameters
text (str) –
- Return type
str
-
rootNode
(self) → QgsSQLStatement.Node¶ Returns root node of the statement. Root node is null is parsing has failed
- Return type
-
statement
(self) → str¶ Returns the original, unmodified statement string. If there was none supplied because it was constructed by sole API calls, dump() will be used to create one instead.
- Return type
str
-
stripQuotedIdentifier
(text: str) → str¶ Remove double quotes from an identifier.
See also
- Parameters
text (str) –
- Return type
str
-
uoMinus
= 1¶
-
uoNot
= 0¶