Exemplo n.º 1
0
 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);
 }