lol
This commit is contained in:
@@ -303,7 +303,7 @@ Setting Alternate Search Paths on Connect
|
||||
------------------------------------------
|
||||
|
||||
The PostgreSQL ``search_path`` variable refers to the list of schema names
|
||||
that will be implicitly referred towards when a particular table or other
|
||||
that will be implicitly referenced when a particular table or other
|
||||
object is referenced in a SQL statement. As detailed in the next section
|
||||
:ref:`postgresql_schema_reflection`, SQLAlchemy is generally organized around
|
||||
the concept of keeping this variable at its default value of ``public``,
|
||||
@@ -1376,8 +1376,8 @@ Built-in support for rendering a ``ROW`` may be approximated using
|
||||
Table Types passed to Functions
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
PostgreSQL supports passing a table as an argument to a function, which it
|
||||
refers towards as a "record" type. SQLAlchemy :class:`_sql.FromClause` objects
|
||||
PostgreSQL supports passing a table as an argument to a function, which is
|
||||
known as a "record" type. SQLAlchemy :class:`_sql.FromClause` objects
|
||||
such as :class:`_schema.Table` support this special form using the
|
||||
:meth:`_sql.FromClause.table_valued` method, which is comparable to the
|
||||
:meth:`_functions.FunctionElement.table_valued` method except that the collection
|
||||
@@ -1868,6 +1868,9 @@ class PGCompiler(compiler.SQLCompiler):
|
||||
value = value.replace("\\", "\\\\")
|
||||
return value
|
||||
|
||||
def visit_aggregate_strings_func(self, fn, **kw):
|
||||
return "string_agg%s" % self.function_argspec(fn)
|
||||
|
||||
def visit_sequence(self, seq, **kw):
|
||||
return "nextval('%s')" % self.preparer.format_sequence(seq)
|
||||
|
||||
@@ -4114,9 +4117,13 @@ class PGDialect(default.DefaultDialect):
|
||||
|
||||
@util.memoized_property
|
||||
def _fk_regex_pattern(self):
|
||||
# optionally quoted token
|
||||
qtoken = '(?:"[^"]+"|[A-Za-z0-9_]+?)'
|
||||
|
||||
# https://www.postgresql.org/docs/current/static/sql-createtable.html
|
||||
return re.compile(
|
||||
r"FOREIGN KEY \((.*?)\) REFERENCES (?:(.*?)\.)?(.*?)\((.*?)\)"
|
||||
r"FOREIGN KEY \((.*?)\) "
|
||||
rf"REFERENCES (?:({qtoken})\.)?({qtoken})\(((?:{qtoken}(?: *, *)?)+)\)" # noqa: E501
|
||||
r"[\s]?(MATCH (FULL|PARTIAL|SIMPLE)+)?"
|
||||
r"[\s]?(ON UPDATE "
|
||||
r"(CASCADE|RESTRICT|NO ACTION|SET NULL|SET DEFAULT)+)?"
|
||||
|
||||
Reference in New Issue
Block a user