function test_unresolve_column_name() { $parser = new SQL_Parser(); $compiler = new SQL_Compiler(); $sql = 'select foo, bar from Table1'; $parsed = $parser->parse($sql); $wrapper = new SQL_Parser_wrapper($parsed); /* * Try a simple column name to make sure that it is unchanged. */ $this->assertEquals("a", $wrapper->unresolveColumnName("a")); /* * Try one with an invalid tablename. Should give an error. */ $out = $wrapper->unresolveColumnName("b.a"); $this->assertTrue(is_a($out, "PEAR_Error")); $sql = 'select * from Table1 as a, Table2 as b'; $parsed = $parser->parse($sql); $wrapper = new SQL_Parser_wrapper($parsed); $this->assertEquals('a.foo', $wrapper->unresolveColumnName("Table1.foo")); $this->assertEquals('b.bar', $wrapper->unresolveColumnName("Table2.bar")); $this->assertEquals('a.foo', $wrapper->unresolveColumnName("a.foo")); $this->assertEquals('b.bar', $wrapper->unresolveColumnName("b.bar")); $this->assertEquals('id', $wrapper->unresolveColumnName("id")); }