ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Value',
- subtype => 'number',
- value => 1,
- },
+ type => 'Value',
+ subtype => 'Number',
+ value => 1,
},
],
}
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
+ type => 'Alias',
value => {
type => 'Function',
function => 'NOW',
},
as => {
- type => 'Identifier',
+ type => 'Identifier',
element1 => 'time',
},
},
],
tables => {
- type => 'TableIdentifier',
+ type => 'Alias',
value => {
type => 'Identifier',
element1 => 'dual',
},
- as => 'duality',
+ as => {
+ type => 'Identifier',
+ element1 => 'duality',
+ },
},
}
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Value',
- subtype => 'number',
- value => 1,
- },
+ type => 'Value',
+ subtype => 'Number',
+ value => 1,
},
],
tables => {
op => 'LEFT OUTER',
args => [
{
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
{
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'bar',
- },
+ type => 'Identifier',
+ element1 => 'bar',
},
],
on => {
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Identifier',
- element1 => '*',
- },
+ type => 'Identifier',
+ element1 => '*',
},
],
tables => {
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
where => {
type => 'Operator',
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Operator',
- op => 'COUNT',
- args => [
- {
- type => 'Identifier',
- element1 => '*',
- },
- ],
- },
+ type => 'Operator',
+ op => 'COUNT',
+ args => [
+ {
+ type => 'Identifier',
+ element1 => '*',
+ },
+ ],
},
],
tables => {
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
where => {
type => 'Operator',
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Operator',
- op => 'COUNT',
- args => [
- {
- type => 'Operator',
- op => 'DISTINCT',
- args => [
- {
- type => 'Identifier',
- element1 => '*',
- },
- ],
- },
- ],
- },
+ type => 'Operator',
+ op => 'COUNT',
+ args => [
+ {
+ type => 'Operator',
+ op => 'DISTINCT',
+ args => [
+ {
+ type => 'Identifier',
+ element1 => '*',
+ },
+ ],
+ },
+ ],
},
],
tables => {
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
where => {
type => 'Operator',
ast_version => 0.0001,
select => [
{
- type => 'SelectComponent',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
{
- type => 'SelectComponent',
- value => {
- type => 'Identifier',
- elements => 'bar',
- },
+ type => 'Identifier',
+ elements => 'bar',
},
{
- type => 'SelectComponent',
- value => {
- type => 'Identifier',
- element1 => 'baz',
- },
+ type => 'Identifier',
+ element1 => 'baz',
},
],
tables => {
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
orderby => [
{
{
type => 'GroupbyComponent',
value => {
- type => 'Number',
+ type => 'Value',
+ subtype => 'Number',
value => 1,
},
},
{
type => 'GroupbyComponent',
value => {
- type => 'Number',
+ type => 'Value',
+ subtype => 'Number',
value => 3,
},
},
{
type => 'GroupbyComponent',
value => {
- type => 'Number',
+ type => 'Value',
+ subtype => 'Number',
value => 2,
},
},
],
}
-=item * UPDATE foo SET col1 = 1
+=item * SELECT * FROM ( SELECT 1 ) AS foo
{
- type => 'update',
+ type => 'select',
ast_version => 0.0001,
+ select => [
+ {
+ type => 'Identifier',
+ element1 => '*',
+ },
+ ],
tables => {
- type => 'TableIdentifier',
+ type => 'Identifier',
+ element1 => 'foo',
value => {
+ type => 'select',
+ ast_version => 0.0001,
+ select => [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => 1,
+ },
+ ],
+ },
+ as => {
type => 'Identifier',
element1 => 'foo',
},
},
+ }
+
+=item * INSERT INTO foo ( col1, col2 ) VALUES ( 1, 3 )
+
+ {
+ type => 'insert',
+ ast_version => 0.0001,
+ tables => {
+ type => 'Identifier',
+ element1 => 'foo',
+ },
set => [
- {
- type => 'SetComponent',
- col => {
+ [
+ {
type => 'Identifier,
element1 => 'col1',
},
- value => {
- type => 'Number',
- value => 1,
+ {
+ type => 'Identifier,
+ element1 => 'col2',
},
- },
+ ],
+ [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '1',
+ },
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '3',
+ },
+ ],
],
}
-=item * INSERT INTO foo ( col1, col2 ) VALUES ( 1, 3 )
+=item * INSERT INTO foo ( col1, col2 ) VALUES ( 1, 3 ), ( 2, 4 )
{
type => 'insert',
ast_version => 0.0001,
tables => {
- type => 'TableIdentifier',
- value => {
- type => 'Identifier',
- element1 => 'foo',
- },
+ type => 'Identifier',
+ element1 => 'foo',
},
- columns => [
- {
- type => 'Identifier,
- element1 => 'col1',
- },
- {
- type => 'Identifier,
- element1 => 'col2',
- },
+ set => [
+ [
+ {
+ type => 'Identifier,
+ element1 => 'col1',
+ },
+ {
+ type => 'Identifier,
+ element1 => 'col2',
+ },
+ ],
+ [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '1',
+ },
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '3',
+ },
+ ],
+ [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '2',
+ },
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => '3',
+ },
+ ],
],
- values => [
- {
- type => 'Number,
- value => '1',
- },
- {
- type => 'Number,
- value => '3',
- },
+ }
+
+=item * UPDATE foo SET col1 = 1
+
+ {
+ type => 'update',
+ ast_version => 0.0001,
+ tables => {
+ type => 'Identifier',
+ element1 => 'foo',
+ },
+ set => [
+ [
+ {
+ type => 'Identifier,
+ element1 => 'col1',
+ },
+ ],
+ [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => 1,
+ },
+ ],
],
}
+=item * UPDATE foo SET col1 = 1, col2 = 6
+
+ {
+ type => 'update',
+ ast_version => 0.0001,
+ tables => {
+ type => 'Identifier',
+ element1 => 'foo',
+ },
+ set => [
+ [
+ {
+ type => 'Identifier,
+ element1 => 'col1',
+ },
+ {
+ type => 'Identifier,
+ element1 => 'col2',
+ },
+ ],
+ [
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => 1,
+ },
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => 6,
+ },
+ ],
+ ],
+ }
+
+=item * DELETE FROM foo WHERE col1 = 10
+
+ {
+ type => 'delete',
+ ast_version => 0.0001,
+ tables => {
+ type => 'Identifier',
+ element1 => 'foo',
+ },
+ where => {
+ type => 'Operator',
+ op => '=',
+ args => [
+ {
+ type => 'Identifier',
+ element1 => 'col1',
+ },
+ {
+ type => 'Value',
+ subtype => 'Number',
+ value => 10,
+ },
+ ],
+ },
+ }
+
=back
=head1 AUTHORS