`NameFactory` now accepts `as_sql` parameter, containing a callable to render the factory as SQL
+ support for name prefix
`T.schema.table` syntax for building structured table identifiers
changed `T.table.C.column` syntax into `T.table().column`
+ replaced obsolete `F` factory with a fresh prefixed `Identifier` factory
+ `T.table()` without further column name is now SQL-ized as `table.*`
relay constructor args directly to `Alias`/`SubqueryAlias`
new `TableAlias` subclass of `Alias`, supporting `T.table.AS('alias').column` syntax to produce `alias.column` SQL
+ `SubqueryAlias` now subclass of `Alias`
`LATERAL` clause support in `SubqueryAlias`
`T.table.AS(alias)` now returns a `TableAlias` instance
new `TableFactory`, `IdentifierFactory` and `VariableFactory` instances
dropped `Aliasable` class, as it was turned into an interface only, with no common concrete code
bugfix: unpack `sql, args` in `Query.execute`
`SELECT.DISTINCT` no longer a classmethod constructor
new syntax is `SELECT(*columns).DISTINCT(*on_columns)`, allowing for `DISTINCT ON (columnlist)` clauses
converted all strings that would be used in query building to unicode
`WINDOW` clause and `func() OVER window` syntax