Обсуждение: convert 'foobar'::text to the string foobar
Hello,
I want to retrieve the default value of a TEXT column of a table.
So far, I had a hard time writing this query and after looking at
postgresql doc I have looked in phppgadmin source code, and am
finally using:
SELECT adef.adsrc AS value
FROM pg_catalog.pg_attribute a
LEFT JOIN pg_catalog.pg_attrdef adef
ON a.attrelid = adef.adrelid
AND a.attnum = adef.adnum
WHERE a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname = ?)
AND a.attname = ?
when used with a table with a default value set by:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'foobar';
displaying that way with \d:
column_name | text | not null default 'foobar'::text
retrieved as a String in Java, I end up with "'foobar'::text"
where I'd need just the string "foobar" (without any quote).
Is there something I'm doing wrong?
Thank you.
--
Guillaume Cottenceau
On Fri, 13 May 2005, Guillaume Cottenceau wrote: > I want to retrieve the default value of a TEXT column of a table. You might want to consider DatabaseMetaData.getColumns() and using the COLUMN_DEF column. > ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'foobar'; > > displaying that way with \d: > > column_name | text | not null default 'foobar'::text > > retrieved as a String in Java, I end up with "'foobar'::text" > where I'd need just the string "foobar" (without any quote). > That's how it is stored internally and there's not really much we can do about it. If you know it's going to be 'xxx'::sometype it would be easy to parse, but the driver can make no such assumptions. Kris Jurka
Kris Jurka <books 'at' ejurka.com> writes: > On Fri, 13 May 2005, Guillaume Cottenceau wrote: > > > I want to retrieve the default value of a TEXT column of a table. > > You might want to consider DatabaseMetaData.getColumns() and using the > COLUMN_DEF column. Ah, yes, this is cleaner. Thanks Kris. -- Guillaume Cottenceau