what if i use all lower case letters instead, will it work when i port my application to ORACLE.
YES, it will.
$query = SELECT Name,Address from MyTable; <sic>
is just bad sql. While non-standard databases like mysql eat this stuff with no problem, Postgresql handles it as all lowercase and I really doubt you'll run into a problem if you always use all lowercase table and column names.
I found this off here:
http://www.gac.edu/~max/pgsql/syntax.htm
SQL92 and SQL3 have reserved key words which are not allowed as identifiers and not allowed in any usage other than as fundamental tokens in SQL statements. Postgres has additional key words which have similar restrictions. In particular, these key words are not allowed as column or table names, though in some cases they are allowed to be column labels (i.e. in AS clauses).
Tip: Any string can be specified as an identifier if surrounded by double quotes (“like this!”). Some care is required since such an identifier will be case sensitive and will retain embedded whitespace other special characters.
So! you'll just have to bit the bullet and stop trying to blame an abstraction layer and realize your naive database design is the real cause of your problem.
I can see a database abstraction layer caring IF the database had a limitation to not allow anything but UPPER CASE COLUMN NAMES but because pgsql works properly and supports case per standard, please dont' blame PEAR or Postgresql...they're doing what that should be.