Exemplo n.º 1
0
    def returning_clause(self, stmt, returning_cols):
        columns = [
                self._label_select_column(None, c, True, False, {})
                for c in expression._select_iterables(returning_cols)
            ]

        return 'RETURNING ' + ', '.join(columns)
Exemplo n.º 2
0
    def returning_clause(self, stmt, returning_cols):
        columns = [
            self._label_select_column(None, c, True, False, {})
            for c in expression._select_iterables(returning_cols)
        ]

        return "RETURNING " + ", ".join(columns)
Exemplo n.º 3
0
    def returning_clause(self, stmt, returning_cols):
        self.returning_cols = list(
            expression._select_iterables(returning_cols))

        # within_columns_clause=False so that labels (foo AS bar) don't render
        columns = [
            self.process(c,
                         within_columns_clause=False,
                         result_map=self.result_map)
            for c in self.returning_cols
        ]

        if not hasattr(self, 'returning_parameters'):
            self.returning_parameters = []

        binds = []
        for i, col in enumerate(self.returning_cols):
            dbtype = col.type.dialect_impl(self.dialect).get_dbapi_type(
                self.dialect.dbapi)
            self.returning_parameters.append((i + 1, dbtype))

            bindparam = sql.bindparam("ret_%d" % i,
                                      value=ReturningParam(dbtype))
            self.binds[bindparam.key] = bindparam
            binds.append(
                self.bindparam_string(self._truncate_bindparam(bindparam)))

        return 'RETURNING ' + ', '.join(columns) + " INTO " + ", ".join(binds)
Exemplo n.º 4
0
    def returning_clause(self, stmt, returning_cols):
        columns = [
            self._label_returning_column(stmt, c)
            for c in expression._select_iterables(returning_cols)
        ]

        return "RETURNING " + ", ".join(columns)
Exemplo n.º 5
0
    def returning_clause(self, stmt, returning_cols):
        self.returning_cols = list(
            expression._select_iterables(returning_cols))

        # within_columns_clause=False so that labels (foo AS bar) don't render
        columns = [self.process(c, within_columns_clause=False,
                                result_map=self.result_map)
                   for c in self.returning_cols]

        if not hasattr(self, 'returning_parameters'):
            self.returning_parameters = []

        binds = []
        for i, col in enumerate(self.returning_cols):
            dbtype = col.type.dialect_impl(
                self.dialect).get_dbapi_type(self.dialect.dbapi)
            self.returning_parameters.append((i + 1, dbtype))

            bindparam = sql.bindparam(
                "ret_%d" % i, value=ReturningParam(dbtype))
            self.binds[bindparam.key] = bindparam
            binds.append(
                self.bindparam_string(self._truncate_bindparam(bindparam)))

        return 'RETURNING ' + ', '.join(columns) + " INTO " + ", ".join(binds)
Exemplo n.º 6
0
    def returning_clause(self, stmt, returning_cols):
        columns = [
            self._label_select_column(None, c, True, False,
                                      dict(include_table=False))
            for c in expression._select_iterables(returning_cols)
        ]

        return 'RETURNING ' + ', '.join(columns)
Exemplo n.º 7
0
    def returning_clause(self, stmt, returning_cols):

        columns = [
            self.process(self.label_select_column(None, c, asfrom=False),
                         within_columns_clause=True,
                         result_map=self.result_map)
            for c in expression._select_iterables(returning_cols)
        ]
        return 'RETURNING ' + ', '.join(columns)
Exemplo n.º 8
0
    def returning_clause(self, stmt, returning_cols):

        columns = [
            self.process(
                self.label_select_column(None, c, asfrom=False), within_columns_clause=True, result_map=self.result_map
            )
            for c in expression._select_iterables(returning_cols)
        ]
        return "RETURNING " + ", ".join(columns)
Exemplo n.º 9
0
    def returning_clause(self, stmt, returning_cols):
        def create_out_param(col, i):
            bindparam = sql.outparam("ret_%d" % i, type_=col.type)
            self.binds[bindparam.key] = bindparam
            return self.bindparam_string(self._truncate_bindparam(bindparam))

        columnlist = list(expression._select_iterables(returning_cols))

        # within_columns_clause =False so that labels (foo AS bar) don't render
        columns = [self.process(c, within_columns_clause=False, result_map=self.result_map) for c in columnlist]

        binds = [create_out_param(c, i) for i, c in enumerate(columnlist)]

        return "RETURNING " + ", ".join(columns) + " INTO " + ", ".join(binds)
Exemplo n.º 10
0
    def returning_clause(self, stmt, returning_cols):

        def create_out_param(col, i):
            bindparam = sql.outparam("ret_%d" % i, type_=col.type)
            self.binds[bindparam.key] = bindparam
            return self.bindparam_string(self._truncate_bindparam(bindparam))

        columnlist = list(expression._select_iterables(returning_cols))

        # within_columns_clause =False so that labels (foo AS bar) don't render
        columns = [self.process(c, within_columns_clause=False, result_map=self.result_map) for c in columnlist]

        binds = [create_out_param(c, i) for i, c in enumerate(columnlist)]

        return 'RETURNING ' + ', '.join(columns) +  " INTO " + ", ".join(binds)
Exemplo n.º 11
0
    def returning_clause(self, stmt, returning_cols):
        columns = []
        binds = []
        for i, column in enumerate(expression._select_iterables(returning_cols)):
            if column.type._has_column_expression:
                col_expr = column.type.column_expression(column)
            else:
                col_expr = column
            outparam = sql.outparam("ret_%d" % i, type_=column.type)
            self.binds[outparam.key] = outparam
            binds.append(self.bindparam_string(self._truncate_bindparam(outparam)))
            columns.append(self.process(col_expr, within_columns_clause=False))
            self.result_map[outparam.key] = (
                outparam.key,
                (column, getattr(column, "name", None), getattr(column, "key", None)),
                column.type,
            )

        return "RETURNING " + ", ".join(columns) + " INTO " + ", ".join(binds)
Exemplo n.º 12
0
    def returning_clause(self, stmt, returning_cols):
        columns = []
        binds = []
        for i, column in enumerate(expression._select_iterables(returning_cols)):
            if column.type._has_column_expression:
                col_expr = column.type.column_expression(column)
            else:
                col_expr = column
            outparam = sql.outparam("ret_%d" % i, type_=column.type)
            self.binds[outparam.key] = outparam
            binds.append(self.bindparam_string(self._truncate_bindparam(outparam)))
            columns.append(self.process(col_expr, within_columns_clause=False))
            self.result_map[outparam.key] = (
                outparam.key,
                (column, getattr(column, 'name', None),
                                        getattr(column, 'key', None)),
                column.type
            )

        return 'RETURNING ' + ', '.join(columns) + " INTO " + ", ".join(binds)
Exemplo n.º 13
0
    def returning_clause(self, stmt, returning_cols):

        if self.isinsert or self.isupdate:
            target = stmt.table.alias("inserted")
        else:
            target = stmt.table.alias("deleted")

        adapter = sql_util.ClauseAdapter(target)

        def col_label(col):
            adapted = adapter.traverse(col)
            if isinstance(col, expression._Label):
                return adapted.label(c.key)
            else:
                return self.label_select_column(None, adapted, asfrom=False)

        columns = [
            self.process(col_label(c), within_columns_clause=True, result_map=self.result_map)
            for c in expression._select_iterables(returning_cols)
        ]
        return "OUTPUT " + ", ".join(columns)
Exemplo n.º 14
0
    def returning_clause(self, stmt, returning_cols):

        if self.isinsert or self.isupdate:
            target = stmt.table.alias("inserted")
        else:
            target = stmt.table.alias("deleted")

        adapter = sql_util.ClauseAdapter(target)

        def col_label(col):
            adapted = adapter.traverse(col)
            if isinstance(col, expression._Label):
                return adapted.label(c.key)
            else:
                return self.label_select_column(None, adapted, asfrom=False)

        columns = [
            self.process(col_label(c),
                         within_columns_clause=True,
                         result_map=self.result_map)
            for c in expression._select_iterables(returning_cols)
        ]
        return 'OUTPUT ' + ', '.join(columns)