Обсуждение: 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