Обсуждение: question re double quotes
Hi,
I wonder if it is possible to let psql recognize Mixed-case-named
("LikeThisName") table names without double quotes in sql statements.
Thanks to the readline, the table name seems to autoexpand to the full
name "LikeThisName", if I just type in "Like" and press the tab key. But
when I execute the sql statement, it gives me
ERROR: Relation "likethisname" does not exist.
Obviously psql uniquely recognizes the name without double quotes (being
able to autoexpand) but won't accept its own creation as valid...
The bash shell in cygwin recognizes both cases and presents choices, if I
put this line in .inputrc.
# Ignore case while completing
set completion-ignore-case on
Is there such a feature already? Or, could I submit it as a suggestion? We
have many table and field names with double quotes, so it will save us a
lot of keystrokes. (Also perhaps some errors related with using Access as
frontend...)
Even if we use mixed-case names, it's primarily for descriptive names, and
we don't use same-letters-different-case names.
Regards,
Ben
On Wed, Oct 15, 2003 at 16:45:39 -0500,
Ben Kim <bkim@edsun.coe.tamu.edu> wrote:
>
> I wonder if it is possible to let psql recognize Mixed-case-named
> ("LikeThisName") table names without double quotes in sql statements.
You probably don't want to create tables with mixed case names in the
first place.
Bruno Wolff III <bruno@wolff.to> writes:
> On Wed, Oct 15, 2003 at 16:45:39 -0500,
> Ben Kim <bkim@edsun.coe.tamu.edu> wrote:
>> I wonder if it is possible to let psql recognize Mixed-case-named
>> ("LikeThisName") table names without double quotes in sql statements.
> You probably don't want to create tables with mixed case names in the
> first place.
The real problem is that the tab-completion code doesn't work properly
with quoted names. For example, if I do
create table "MixedCase" (f1 int);
then
update M<tab>
completes as
update MixedCase
which is wrong (no double quotes). Arguably it's my fault for not
supplying the initial quote, but
update "M<tab>
fails to offer any completions at all. Somebody should work on this
sometime.
Actually, maybe all we need to do is apply quote_ident() in the
tab-completion queries ... hmmm ...
regards, tom lane
Ben Kim <bkim@edsun.coe.tamu.edu> writes:
> Thanks for the reply. I haven't looked at the source code yet, but
> assuming I understood it correctly, if we can simply add double quotes
> around tab-completed names, it alone would be very convenient.
> On Thu, 16 Oct 2003, Tom Lane wrote:
>> Actually, maybe all we need to do is apply quote_ident() in the
>> tab-completion queries ... hmmm ...
I did commit a fix along this line last week. As of CVS tip,
given
create table "MixedCase" (f1 int);
psql will offer no completions for
update M<tab>
but will auto-complete
update "M<tab>
as
update "MixedCase"
regards, tom lane
Thanks. Regards, Ben On Mon, 20 Oct 2003, Tom Lane wrote: > Ben Kim <bkim@edsun.coe.tamu.edu> writes: > > Thanks for the reply. I haven't looked at the source code yet, but > > assuming I understood it correctly, if we can simply add double quotes > > around tab-completed names, it alone would be very convenient. > > > On Thu, 16 Oct 2003, Tom Lane wrote: > >> Actually, maybe all we need to do is apply quote_ident() in the > >> tab-completion queries ... hmmm ... > > I did commit a fix along this line last week. As of CVS tip, > given > create table "MixedCase" (f1 int); > psql will offer no completions for > update M<tab> > but will auto-complete > update "M<tab> > as > update "MixedCase" > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly >
Thanks for the reply. I haven't looked at the source code yet, but
assuming I understood it correctly, if we can simply add double quotes
around tab-completed names, it alone would be very convenient.
Regards,
Ben
On Thu, 16 Oct 2003, Tom Lane wrote:
> Bruno Wolff III <bruno@wolff.to> writes:
> > On Wed, Oct 15, 2003 at 16:45:39 -0500,
> > Ben Kim <bkim@edsun.coe.tamu.edu> wrote:
> >> I wonder if it is possible to let psql recognize Mixed-case-named
> >> ("LikeThisName") table names without double quotes in sql statements.
>
> > You probably don't want to create tables with mixed case names in the
> > first place.
>
> The real problem is that the tab-completion code doesn't work properly
> with quoted names. For example, if I do
>
> create table "MixedCase" (f1 int);
>
> then
>
> update M<tab>
>
> completes as
>
> update MixedCase
>
> which is wrong (no double quotes). Arguably it's my fault for not
> supplying the initial quote, but
>
> update "M<tab>
>
> fails to offer any completions at all. Somebody should work on this
> sometime.
>
> Actually, maybe all we need to do is apply quote_ident() in the
> tab-completion queries ... hmmm ...
>
> regards, tom lane
>