literal value in the select fieldlist returns not the string, but a java String object

From: Mike Morris <mcmorris95125(at)yahoo(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: literal value in the select fieldlist returns not the string, but a java String object
Date: 2006-07-29 05:08:34
Message-ID: 20060729050834.80628.qmail@web31808.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi,

I'm using pgsql/jdbc in an evaluation of "bluedragon", a coldfusion app server clone. Following is an email to the bluedragon folks, but the behavior is probably really JDBC driver related... can anyone confirm that?

Briefly, the issue is that having a static, literal value in the select fieldlist returns not the string, but a java String object; not sure if this is the driver, or if bluedragon for some reason fails to do a toString() on it for some reason...

Here's the email to bluedragon support:

=========================================
Single quoted literals are usually used to concatenate some constant with the contents of a field. This works fine.

But I sometimes use a constant by itself, to create a column with just a string literal... for example, the word "Edit", to use for creating a clickable command hyperlink.

This does *not* work (as I expected it would), because instead of returning a text string, it's returning a java String object.

To see this:

<cfquery datasource="postgres" name="mike">
select 'test text' as staticText, firstname, lastname
from employees
</cfquery>
<cfdump var = "#mike#" >

Notice that the firstname and lastname columns are "normal", but the staticText column contains "object of java.lang.String".

There's an easy workaround... appending an empty string gives the desired result:

<cfquery datasource="postgres" name="mike">
select 'test text' || '' as staticText, firstname, lastname
from employees
</cfquery>
<cfdump var = "#mike#" >
=========================================

bluedragon-support <bluedragon-support(at)newatlanta(dot)com> wrote: v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} st1\:*{behavior:url(#default#ieooui) } Hi Mike,
You’ll have to forgive my ignorance, but I’ve never seen syntax like this before.  So, I created a table in Postgresql database named Employees and I dumped the same values into the table that you might already be familiar with.  I used cfsnippets which comes with CFMX and created a duplicate database in postgresql. Â

So, what is an appropriate Select statement that I should try?Â

<cfquery datasouce=”postgres” name=”Mike”>
Select ‘Dave’ from Employees
</cfquery>

<cfdump var=”#Mike#”>

Please edit my cfquery in such a way that I can see the problem. Â Thanks,
-Lori
Bluedragon Support


---------------------------------

From: Mike Morris [mailto:mcmorris95125(at)yahoo(dot)com]
Sent: Friday, July 28, 2006 3:47 AM
To: bluedragon-support
Subject: RE: Thank You For Downloading BlueDragon


Hi,

Still evaluating BD... writing a simple SQL generator CFC as a test, using Postgres as back end.

I can't get a single-quoted literal passed to Postgres properly. I've RTFM'd and Googled at NewAtlanta, Postgres and JDBC, to no avail.

The issue is:

select 'myString' as literal, * from testtable

runs fine from pgAdmin, e.g., but from inside a CFQuery, I get various errors ... most of which contain doubled up instances of the single quote chars. I've tried PreserveSingleQuotes() on the SQL statement, escaping with "\" or doubling the quote, etc...

Any tips?

TIA,

MikeM



bluedragon-support <bluedragon-support(at)newatlanta(dot)com> wrote:
Hi Mike! Thank you for the info. I’ll pass this along. Wow, I really appreciate your work.



-Lori

BlueDragon Support


---------------------------------
Do you Yahoo!?
Get on board. You're invited to try the new Yahoo! Mail Beta.

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Roland Walter 2006-07-31 07:37:13 Re: literal value in the select fieldlist returns not the string, but a java String object
Previous Message Kris Jurka 2006-07-28 16:23:56 Re: Using ON_ERROR_ROLLBACK functionality in JDBC