U a8@sddlmZGdddeZGdddeZGdddeZGdd d eZGd d d eZGd d d eZGdddeZ GdddeZ GdddeZ GdddeZ Gdddeee Z GdddeZGddde ZGdddeeeZGdddeeZGd d!d!eZGd"d#d#eZGd$d%d%eeZGd&d'd'eZGd(d)d)eZGd*d+d+eZGd,d-d-eZGd.d/d/eZGd0d1d1eZGd2d3d3eeeZGd4d5d5e eZGd6d7d7eZGd8d9d9eZGd:d;d;eZGdd?d?e eZ!Gd@dAdAeZ"GdBdCdCeZ#GdDdEdEeeZ$GdFdGdGe Z%GdHdIdIeZ&GdJdKdKeZ'GdLdMdMeZ(GdNdOdOe Z)GdPdQdQeZ*GdRdSdSeZ+GdTdUdUe+Z,dVS)W)utilc@seZdZdZdZdZdS)SQLRolezDefine a "role" within a SQL statement structure. Classes within SQL Core participate within SQLRole hierarchies in order to more accurately indicate where they may be used within SQL statements of all types. .. versionadded:: 1.4 FN)__name__ __module__ __qualname____doc__ allows_lambdauses_inspectionr r UC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-nyjtotrf\sqlalchemy\sql\roles.pyr s rc@seZdZdZdZdS)UsesInspectionNT)rrrZ _post_inspectr r r r r r sr c@seZdZdZdS)AllowsLambdaRoleTN)rrrrr r r r r sr c@seZdZdZdS)HasCacheKeyRolezCacheable Core or ORM objectNrrr _role_namer r r r r#src@seZdZdZdS)LiteralValueRolezLiteral Python valueNrr r r r r'src@seZdZdZdS)ColumnArgumentRolezColumn expressionNrr r r r r+src@seZdZdZdS)ColumnArgumentOrKeyRoleColumn expression or string keyNrr r r r r/src@seZdZdZdS)StrAsPlainColumnRolerNrr r r r r3src@seZdZdZdS)ColumnListRolezCElements suitable for forming comma separated lists of expressions.N)rrrrr r r r r7src@seZdZdZdS)TruncatedLabelRolezString SQL identifierNrr r r r r;src@seZdZdZeddZdS)ColumnsClauseRolez Column expression or FROM clausecCs tdSNNotImplementedErrorselfr r r _select_iterableBsz"ColumnsClauseRole._select_iterableN)rrrrpropertyrr r r r r?src@seZdZdZdS)LimitOffsetRolezLIMIT / OFFSET expressionNrr r r r r Gsr c@seZdZdZdS)ByOfRolezGROUP BY / OF / etc. expressionNrr r r r r!Ksr!c@seZdZdZdS) GroupByRolezGROUP BY expressionNrr r r r r"Osr"c@seZdZdZdS) OrderByRolezORDER BY expressionNrr r r r r#Wsr#c@s eZdZdS)StructuralRoleNrrrr r r r r$[sr$c@seZdZdZdS)StatementOptionRolez statement sub-expression elementNrr r r r r&_sr&c@seZdZdZdS) OnClauseRolezSQL expression for ON clauseNrr r r r r'csr'c@seZdZdZdS)WhereHavingRolez$SQL expression for WHERE/HAVING roleNrr r r r r(gsr(c@seZdZdZdS)ExpressionElementRolezSQL expression elementNrr r r r r)ksr)c@seZdZdZdS) ConstExprRolez#Constant True/False/None expressionNrr r r r r*osr*c@s eZdZdS)LabeledColumnExprRoleNr%r r r r r+ssr+c@seZdZdZdS)BinaryElementRolez'SQL expression element or literal valueNrr r r r r,wsr,c@seZdZdZdS) InElementRolez?IN expression list, SELECT construct, or bound parameter objectNrr r r r r-{sr-c@seZdZdZdS)JoinTargetRolezGJoin target, typically a FROM expression, or ORM relationship attributeNrr r r r r.sr.c@s eZdZdZdZeddZdS)FromClauseRolez2FROM expression, such as a Table or alias() objectFcCs tdSrrrr r r _hide_fromsszFromClauseRole._hide_fromsN)rrrrZ _is_subqueryrr0r r r r r/sr/c@s eZdZdS)StrictFromClauseRoleNr%r r r r r1sr1c@seZdZdddZdS)AnonymizedFromClauseRoleNFcCs tdSrr)rnameZflatr r r _anonymous_fromclausesz.AnonymizedFromClauseRole._anonymous_fromclause)NF)rrrr4r r r r r2sr2c@seZdZdZdS)ReturnsRowsRolezcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGNrr r r r r5sr5c@seZdZdZeZdS) StatementRolez"Executable SQL or text() constructN)rrrrrZ immutabledictZ_propagate_attrsr r r r r6sr6c@seZdZdZddZdS)SelectStatementRolez/SELECT construct or equivalent text() constructcCs tddS)NzFAll SelectStatementRole objects should implement a .subquery() method.rrr r r subqueryszSelectStatementRole.subqueryN)rrrrr8r r r r r7sr7c@s eZdZdS) HasCTERoleNr%r r r r r9sr9c@seZdZdZdS) IsCTERolez CTE objectNrr r r r r:sr:c@seZdZdZdZdS)CompoundElementRolezDSELECT statements inside a CompoundSelect, e.g. UNION, EXTRACT, etc.z@SELECT construct for inclusion in a UNION or other set constructNrrrrrr r r r r;sr;c@s eZdZdS)DMLRoleNr%r r r r r=sr=c@seZdZdZdS) DMLTableRolez-subject table for an INSERT, UPDATE or DELETENrr r r r r>sr>c@seZdZdZdS) DMLColumnRolez*SET/VALUES column expression or string keyNrr r r r r?sr?c@seZdZdZdZdS) DMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTz-SELECT statement or equivalent textual objectNr<r r r r r@sr@c@s eZdZdS)DDLRoleNr%r r r r rAsrAc@seZdZdZdS)DDLExpressionRolez)SQL expression element for DDL constraintNrr r r r rBsrBc@seZdZdZdS)DDLConstraintColumnRolez:String column name or column expression for DDL constraintNrr r r r rCsrCc@seZdZdZdS)DDLReferredColumnRolezBString column name or Column object for DDL foreign key constraintNrr r r r rDsrDN)-robjectrr r rrrrrrrrr r!r"r#r$r&r'r(r)r*r+r,r-r.r/r1r2r5r6r7r9r:r;r=r>r?r@rArBrCrDr r r r sT