Commits

Mike Bayer committed d08a6d2

- use inline=True for the insert..select here so it works on oracle

Comments (0)

Files changed (2)

lib/sqlalchemy/sql/expression.py

          would normally raise an exception if these column lists don't
          correspond.
 
+        .. note::
+
+           Depending on backend, it may be necessary for the :class:`.Insert`
+           statement to be constructed using the ``inline=True`` flag; this
+           flag will prevent the implicit usage of ``RETURNING`` when the
+           ``INSERT`` statement is rendered, which isn't supported on a backend
+           such as Oracle in conjunction with an ``INSERT..SELECT`` combination::
+
+             sel = select([table1.c.a, table1.c.b]).where(table1.c.c > 5)
+             ins = table2.insert(inline=True).from_select(['a', 'b'], sel)
+
         .. versionadded:: 0.8.3
 
         """

lib/sqlalchemy/testing/suite/test_insert.py

 
 
         config.db.execute(
-                table.insert().
+                table.insert(inline=True).
                     from_select(
-                        ("data",), select([table.c.data]).where(
+                        ("id", "data",), select([table.c.id + 5, table.c.data]).where(
                                 table.c.data.in_(["data2", "data3"]))
                     ),
         )
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.