pg_regress: paths in largeobject test
Hi,
the largeobject test does this:
137 SELECT lo_export(loid, '@abs_builddir@/results/lotest.txt') <snip>
138
139 \lo_import 'results/lotest.txt'
140
141 \set newloid :LASTOID
142
143 -- just make sure \lo_export does not barf
144 \lo_export :newloid 'results/lotest2.txt'
I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.
The attached patch has been tested with "make check" and by running
pg_regress outside the PostgreSQL source tree, both on Solaris 11, x86.
-J
--
J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group
Attachments:
pg_regress_largeobject_path.patchtext/x-patch; name=pg_regress_largeobject_path.patchDownload+12-12
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.
I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.
regards, tom lane
Tom Lane wrote:
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.
He, he.
Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect
of the lo_import operating relative to the client, while lo_export
operates relative to the server. If you remove @abs_builddir@ on the
first one, you might e.g. get problems like this:
SELECT lo_export(loid, 'results/lotest.txt') FROM lotest_stash_values;
ERROR: could not create server file "results/lotest.txt": No such
file or directory
-J
--
J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group
Jorgen Austvik - Sun Norway wrote:
Tom Lane wrote:
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
I believe the results paths in line 139 and 144 are missing the
@abs_builddir@ qualifier.I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.He, he.
Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect of
the lo_import operating relative to the client, while lo_export operates
relative to the server.
I submit that the test is OK as it currently is. The lo_export() call
is expanded by the server, which can be running anywhere -- hence the
need to use an absolute path.
Then we have \lo_import and \lo_export calls which are relative to the
client. The client is already running in the regress builddir, so using
relative paths works fine.
If I try to run the client from another directory, it fails completely.
Exactly what is the problem you are trying to fix?
$ cd ..
$ pwd
/pgsql/build/00head/src/test
$ regress/pg_regress largeobject
(using postmaster on Unix socket, port 55432)
============== dropping database "regression" ==============
DROP DATABASE
============== creating database "regression" ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries ==============
test largeobject ... /bin/sh: cannot open ./sql/largeobject.sql: No such file
diff: ./expected/largeobject.out: No such file or directory
diff: ./results/largeobject.out: No such file or directory
diff command failed with status 512: diff -w "./expected/largeobject.out" "./results/largeobject.out" > "./results/largeobject.out.diff"
--
Alvaro Herrera http://www.advogato.org/person/alvherre
"The Postgresql hackers have what I call a "NASA space shot" mentality.
Quite refreshing in a world of "weekend drag racer" developers."
(Scott Marlowe)
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
Jorgen Austvik - Sun Norway wrote:
Tom Lane wrote:
I'd put it the other way around: likely we should get rid of the
one use of @abs_builddir@.Generally I prefer explicit over implicit (having the full paths make
troubleshooting easier), but in this case you have the additional aspect of
the lo_import operating relative to the client, while lo_export operates
relative to the server.
I submit that the test is OK as it currently is.
Yeah, I hadn't thought about the different-paths aspect at the time of
making the above comment; but given that, it is correct as-is.
regards, tom lane
Tom Lane wrote:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
I submit that the test is OK as it currently is.
Yeah, I hadn't thought about the different-paths aspect at the time of
making the above comment; but given that, it is correct as-is.
OK, I still think it is easier to debug with the paths there explicitly,
and I think the test will run just as well with them as without them,
but it is no biggie.
-J
--
J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group