| a | b | |
|---|
| 0 | + | Midgard.QueryStorage storage = new Midgard.QueryStorage ("midgard_page"); |
|---|
| 0 | + | Midgard.QuerySelect select = new Midgard.QuerySelect (cnc, storage); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop1 = new Midgard.QueryProperty ("metadata.created", null); |
|---|
| 0 | + | Midgard.QueryValue val1 = new Midgard.QueryValue ("2000-01-01 10:10:10"); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr1 = new Midgard.QueryConstraint (prop1, ">", val1, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop2 = new Midgard.QueryProperty ("name", null); |
|---|
| 0 | + | Midgard.QueryValue val2 = new Midgard.QueryValue (""); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr2 = new Midgard.QueryConstraint (prop2, "<>", val2, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop3 = new Midgard.QueryProperty ("up", null); |
|---|
| 0 | + | Midgard.QueryValue val3 = new Midgard.QueryValue (0); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr3 = new Midgard.QueryConstraint (prop3, "<>", val3, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop4 = new Midgard.QueryProperty ("style.metadata.revised", null); |
|---|
| 0 | + | Midgard.QueryValue val4 = new Midgard.QueryValue ("2000-01-01 10:10:10"); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr4 = new Midgard.QueryConstraint (prop4, ">", val4, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop5 = new Midgard.QueryProperty ("parameter.name", null); |
|---|
| 0 | + | Midgard.QueryValue val5 = new Midgard.QueryValue ("some domain"); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr5 = new Midgard.QueryConstraint (prop5, "=", val5, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop6 = new Midgard.QueryProperty ("attachment.name", null); |
|---|
| 0 | + | Midgard.QueryValue val6 = new Midgard.QueryValue ("my attachment"); |
|---|
| 0 | + | Midgard.QueryConstraint cnstr6 = new Midgard.QueryConstraint (prop6, "=", val6, null); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryGroupConstraint group_constraint_and = new Midgard.QueryGroupConstraint ("AND", cnstr4, cnstr5, cnstr6); |
|---|
| 0 | + | Midgard.QueryGroupConstraint group_constraint = new Midgard.QueryGroupConstraint ("OR", cnstr1, cnstr2, cnstr3, group_constraint_and); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop7 = new Midgard.QueryProperty ("metadata.creator", null); |
|---|
| 0 | + | Midgard.QueryStorage join_storage = new Midgard.QueryStorage ("midgard_person"); |
|---|
| 0 | + | Midgard.QueryProperty prop8 = new Midgard.QueryProperty ("guid", join_storage); |
|---|
| 0 | + | |
|---|
| 0 | + | Midgard.QueryProperty prop9 = new Midgard.QueryProperty ("metadata.creator", null); |
|---|
| 0 | + | Midgard.QueryStorage join_storage1 = new Midgard.QueryStorage ("midgard_page"); |
|---|
| 0 | + | Midgard.QueryProperty prop10 = new Midgard.QueryProperty ("metadata.revisor", join_storage1); |
|---|
| 0 | + | |
|---|
| 0 | + | select.add_join ("LEFT", prop7, prop8); |
|---|
| 0 | + | select.add_join ("LEFT", prop9, prop10); |
|---|
| 0 | + | |
|---|
| 0 | + | select.set_constraint (group_constraint); |
|---|
| 0 | + | select.set_limit (1); |
|---|
| 0 | + | select.execute(); |
|---|
| 0 | + | |
|---|
| 0 | + | Generated SQL: |
|---|
| 0 | + | |
|---|
| 0 | + | SELECT |
|---|
| 0 | + | (...) |
|---|
| 0 | + | t1.metadata_deleted AS deleted, |
|---|
| 0 | + | t1.metadata_isapproved AS isapproved, |
|---|
| 0 | + | t1.metadata_islocked AS islocked |
|---|
| 0 | + | FROM `page` AS t1 |
|---|
| 0 | + | LEFT JOIN `person` AS t2 ON (t1.metadata_creator = t2.guid) |
|---|
| 0 | + | LEFT JOIN `page` AS t3 ON (t1.metadata_creator = t3.metadata_revisor) |
|---|
| 0 | + | LEFT JOIN `style` AS t4 ON (t1.style = t4.id) |
|---|
| 0 | + | LEFT JOIN `record_extension` AS t5 ON (t1.guid = t5.parent_guid) |
|---|
| 0 | + | LEFT JOIN `blobs` AS t6 ON (t1.guid = t6.parent_guid) |
|---|
| 0 | + | WHERE (t1.metadata_created > '2000-01-01 10:10:10') OR (t1.name != '') OR (t1.up != 0) OR ((t4.metadata_revised > '2000-01-01 10:10:10') AND (t5.name = 'some domain') AND (t6.name = 'my attachment')) |
|---|
| 0 | + | |
|---|
| 0 | + | |
|---|
| ... | |
|---|