On 10/04/2018 04:05 PM, Daniele Varrazzo wrote:
On Thu, Oct 4, 2018 at 2:27 PM Federico Di Gregorio<f...@dndg.it> wrote:
On 10/04/2018 02:38 PM, Daniele Varrazzo wrote:
A tiny improvement to SQL generation is already ready^W merged in
#732: it will be possible to use `Identifier("schema", "name")` which
would be rendered in dotted notation in the query. Currently
`Identifier()` takes a single param so this extension is backward
compatible and there is no need to introduce a new `Composable` type
to represent dotted sequences of identifiers.
I understand that from a compatibility point of view everything works
with the "schema", "name" order of arguments (you just switch on the
number of arguments) but usually such approach causes infinite headaches
when you remove or add the namespace from the call.
`Identifier(name, schema=None)` is better, IMHO because makes explicit
that the mandatory and first argument is always the identifier itself,
while the schema is optional.
"schema", "table" is only an example: it could be "table"."field",
even "schema"."table"."field", or "extension"."setting"... The object
only wants to represent a dotted sequence of identifiers, at lexical
level, nothing with semantics attached such as "an optionally
schema-qualified table name" or "a field name". If the object was
`Table()` or `Field()` rather than `Identifier()` I'd totally agree
with you.
Sorry, I misread your example. Obviously you're right.
federico
p.s. yep, I'll remove all the old cruft from sandbox.
--
Federico Di Gregorio federico.digrego...@dndg.it
DNDG srl http://dndg.it
The number of the beast: vi vi vi. -- Delexa Jones