function test_add_meta_data_column() { $parser = new SQL_Parser(null, 'MySQL'); $sql = "SELECT a from Foo"; $parsed = $parser->parse($sql); $wrapper = new SQL_Parser_wrapper($parsed); $wrapper->addMetaDataColumn("a", true); $compiler = new SQL_Compiler(); $sql = $compiler->compile($parsed); $this->assertEquals("select a, length(a) as __a_length from Foo", $sql); $wrapper->addMetaDataColumn("Foo.b", true); $sql = $compiler->compile($parsed); $this->assertEquals("select a, length(a) as __a_length, length(Foo.b) as __Foo_b_length from Foo", $sql); $sql = "SELECT a from Foo"; $parsed = $parser->parse($sql); unset($wrapper); $wrapper = new SQL_Parser_wrapper($parsed); $wrapper->addMetaDataColumn("Foo.b"); $sql = $compiler->compile($parsed); $this->assertEquals("select a, length(Foo.b) as __b_length from Foo", $sql); $sql = "SELECT a from Foo as f"; $parsed = $parser->parse($sql); $wrapper = new SQL_Parser_wrapper($parsed); $wrapper->addMetaDataColumn("Foo.b"); $sql = $compiler->compile($parsed); $this->assertEquals("select a, length(f.b) as __b_length from Foo as f", $sql); }