public inbox for [email protected]  
help / color / mirror / Atom feed
From: Daniele Varrazzo <[email protected]>
To: Federico Di Gregorio <[email protected]>
Cc: [email protected]
Subject: Re: Plans for 2.8
Date: Thu, 4 Oct 2018 15:05:51 +0100
Message-ID: <CA+mi_8ZEveFa6bLHZc58gw5M3fb8bQSXe-FiPTFPDtVfknNJCA@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <CA+mi_8auWr+u4DwLGnu3JOu=jhMAV_8OPnMtMuXOr+0iMN5LgA@mail.gmail.com>
	<[email protected]>

On Thu, Oct 4, 2018 at 2:27 PM Federico Di Gregorio <[email protected]> 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.

-- Daniele




view thread (8+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Plans for 2.8
  In-Reply-To: <CA+mi_8ZEveFa6bLHZc58gw5M3fb8bQSXe-FiPTFPDtVfknNJCA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox