Grokbase
Topics Posts Groups | in
x
[ help ]

Michael Fuhr (m...@fuhr.org)

Profile | Posts (2872)

User Information

Display Name:Michael Fuhr
Partial Email Address:m...@fuhr.org
Posts:
2872 total
269 in PostgreSQL - Admin
9 in PostgreSQL - Advocacy
285 in PostgreSQL - Bugs
21 in PostgreSQL - Docs
1299 in PostgreSQL - General
81 in PostgreSQL - Interfaces
3 in PostgreSQL - JDBC
408 in PostgreSQL - Novice
1 in PostgreSQL - ODBC
126 in PostgreSQL - Performance
16 in PostgreSQL - PHP
385 in PostgreSQL - SQL

5 Most Recent

All Posts
1) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement
| +1 vote
I still don't believe that order of UPPER and SUBSTR is relevant to the syntax error. Please post...
PostgreSQL - General
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Thu, Feb 14, 2008 at 04:48:33PM +0100, Hermann Muster wrote:
> Michael Fuhr schrieb:
>>> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)) =
>>
>> I haven't examined the entire query but the above line appears to
>> be the problem. Did you mean to write the following?
>>
>> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)),'') =
>>   
> Yes, that's what I wanted to write. However, it only works when I change
> the order of UPPER and SUBSTR in the statement.

I still don't believe that order of UPPER and SUBSTR is relevant
to the syntax error.  Please post two complete queries, one with
the order that works and one with the order that doesn't.

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
2) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement
| +1 vote
to and learn from the discussion.] I haven't examined the entire query but the above line appears...
PostgreSQL - General
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
[Please copy the mailing list on replies so others can contribute
to and learn from the discussion.]

On Thu, Feb 14, 2008 at 09:56:36AM +0100, Hermann Muster wrote:
> The statement I'm using is the following:
> SELECT
> "FIRMEN"."Firma","FIRMEN"."Firma2","FIRMEN"."Firma3","FIRMEN"."Such","FIRMEN"."Land","FIRMEN"."PLZZ","FIRMEN"."Ort","FIRMEN"."Strasse","FIRMEN"."PLZP","FIRMEN"."Postfach","FIRMEN"."Telefon","FIRMEN"."Telefax","FIRMEN"."eMail","FIRMEN"."Internet","FIRMEN"."KundenNr","FIRMEN"."UST_ID","FIRMEN"."ABC","FIRMEN"."Zusatz1","FIRMEN"."Zusatz2","FIRMEN"."Zusatz3","FIRMEN"."Zusatz4","FIRMEN"."Zusatz5","FIRMEN"."BLZ","FIRMEN"."KtoNr","FIRMEN"."Bank","FIRMEN"."IBAN","FIRMEN"."Kreditkart","FIRMEN"."KreditkNr","FIRMEN"."AdressTyp","FIRMEN"."VKGebiet","FIRMEN"."Zahlungart","FIRMEN"."UmsatzSoll","FIRMEN"."BonAnfrDat","FIRMEN"."BonInfoDat","FIRMEN"."BonIndex","FIRMEN"."BonLimit","FIRMEN"."BonOK","FIRMEN"."BonInfo","FIRMEN"."BonKapital","FIRMEN"."BonUmsJahr","FIRMEN"."BonMAZahl","FIRMEN"."BonZahlung","FIRMEN"."Betreuer","FIRMEN"."Com_Wahl","FIRMEN"."Symbol","FIRMEN"."ErfDat","FIRMEN"."ErfUser","FIRMEN"."L_Dat","FIRMEN"."L_User","FIRMEN"."RecordID","FIRMEN"."Z_Import_PK","FIRMEN"."Z_Import_FK","FIRMEN"."KreditkInh","FIRMEN"."Br
> anchenTyp1","FIRMEN"."BranchenTyp2","FIRMEN"."KK_Exp_J","FIRMEN"."KK_Exp_M","FIRMEN"."Kategorie"
> FROM "FIRMEN"
> WHERE "FIRMEN"."RecordID" IN (SELECT DISTINCT "X"."RecordID" FROM "FIRMEN"
> "X" INNER JOIN "FIRMEN" "Y" ON
> COALESCE(UPPER(SUBSTR("X"."Firma",1,7)) =

I haven't examined the entire query but the above line appears to
be the problem.  Did you mean to write the following?

COALESCE(UPPER(SUBSTR("X"."Firma",1,7)),'') =


> COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'') AND
> COALESCE(UPPER("X"."PLZZ"),'') = COALESCE(UPPER("Y"."PLZZ"),'') AND
> COALESCE(UPPER("X"."PLZP"),'') = COALESCE(UPPER("Y"."PLZP"),'') AND
> "X"."RecordID" <> "Y"."RecordID")

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
3) Michael Fuhr Re: [GENERAL] Order of SUBSTR and UPPER in statement
| +1 vote
Please show a complete statement and not just a portion of it. This expression works for me: test=>...
PostgreSQL - General
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Wed, Feb 13, 2008 at 04:19:09PM +0100, Hermann Muster wrote:
> I encountered something I can't really explain. I use the following
> statement in my application:
>
> COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'')
>
> This returns "ERROR: syntax error at end of input"

Please show a complete statement and not just a portion of it.  This
expression works for me:

test=> CREATE TABLE "Y" ("Firma" varchar);
CREATE TABLE
test=> INSERT INTO "Y" ("Firma") VALUES ('abcdefghij');
INSERT 0 1
test=> SELECT COALESCE(UPPER(SUBSTR("Y"."Firma",1,7)),'') FROM "Y";
coalesce
----------
ABCDEFG
(1 row)

> However, using the following statement is fine:
>
> COALESCE(SUBSTR(UPPER("X"."Firma"), 1, 7), '')
>
>
> The fieldtype of "Firma" is character varying.
>
> The only difference is the order of UPPER and SUBSTR.

I doubt that; I suspect the query that's failing has some other
problem that's causing the syntax error.  Take a closer look,
especially at the end of the query string ("syntax error at end of
input").

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
4) Michael Fuhr Re: [GENERAL] Change column type to numeric
| +1 vote
You could convert the empty strings to NULL: USING cast(nullif(amount, '') AS numeric)
PostgreSQL - General
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Sun, Feb 10, 2008 at 11:37:45AM -0700, Jake Franklin wrote:
> test=# alter table foo alter column amount type numeric(10,2) USING
> cast(amount AS numeric);
> ERROR:  invalid input syntax for type numeric: ""
>
> I'm assuming that it's trying to cast a blank value as numeric and
> failing. Does anyone know of an easy way to work around this?

You could convert the empty strings to NULL:

USING cast(nullif(amount, '') AS numeric)

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
5) Michael Fuhr Re: [GENERAL] Analyze Explanation
| +1 vote
The PostGIS function compute_geometry_stats() logs such a message. I'd guess you're using PostGIS...
PostgreSQL - General
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Tue, Jan 29, 2008 at 10:11:38AM -0800, Willem Buitendyk wrote:
> When I run Analyze I get the following notice repeated for many of my
> tables:
>
> NOTICE:   no notnull values, invalid stats
>
> Is this just refering to my empty tables?

The PostGIS function compute_geometry_stats() logs such a message.
I'd guess you're using PostGIS and those tables have NULL in all
rows' geometry columns.

--
Michael Fuhr

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

spacer
Profile | Posts (2872)
Home > People > Michael Fuhr