[prev] [thread] [next] [Date index for 2005/03/30]
This is a multi-part message in MIME format. --------------020904070208080908050803 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit I've just patched Class::DBI::Plugin::Pager so it can use Class::DBI::Plugin::CountSearch instead of Class::DBI::Plugin::AbstractCount. I have large tables, so I wanted to use Plugin-Pager in my Maypole app. But I make use of CDBI's accessor_name functionality and AbstractCount doesn't handle that. OTOH, CountSearch does. So I've written a patch so Plugin-Pager will use either. I also implemented retrieve_all_sorted_by() for Maypole to call. The patch appears to work for me but has had next to no testing. I know there are some cases it doesn't handle but I don't know whether they occur in Maypole apps. I'm also not confident I understand either Plugin-Pager or the CDBI/database stuff well enough to write bug free code. But I thought it was best to post it so anybody who knows more can improve it :) Cheers, Dave --------------020904070208080908050803 Content-Type: text/plain; name="pager.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pager.diff" LS0tIC91c3IvbG9jYWwvc2hhcmUvcGVybC81LjYuMS9DbGFzcy9EQkkvUGx1Z2luL1BhZ2Vy LnBtCVNhdCBKYW4gMTUgMDE6MTA6MTggMjAwNQorKysgQ2xhc3MvREJJL1BsdWdpbi9NeVBh Z2VyLnBtCVdlZCBNYXIgMzAgMTQ6MTk6MTggMjAwNQpAQCAtMSw0ICsxLDQgQEAKLXBhY2th Z2UgQ2xhc3M6OkRCSTo6UGx1Z2luOjpQYWdlcjsNCitwYWNrYWdlIENsYXNzOjpEQkk6OlBs dWdpbjo6TXlQYWdlcjsNCiB1c2Ugc3RyaWN0Ow0KIHVzZSB3YXJuaW5nczsNCiB1c2UgQ2Fy cDsNCkBAIC0zNCw2ICszNCw3IEBACiAgICAgdXNlIGJhc2UgJ0NsYXNzOjpEQkknOw0KIA0K ICAgICB1c2UgQ2xhc3M6OkRCSTo6UGx1Z2luOjpBYnN0cmFjdENvdW50OyAgICAgICMgcGFn ZXIgbmVlZHMgdGhpcw0KKyAgICAjIHVzZSBDbGFzczo6REJJOjpQbHVnaW46OkNvdW50U2Vh cmNoOyAgICAgICMgb3IgdGhpcw0KICAgICB1c2UgQ2xhc3M6OkRCSTo6UGx1Z2luOjpQYWdl cjsNCiANCiAgICAgIyBvciB0byB1c2UgYSBkaWZmZXJlbnQgc3ludGF4DQpAQCAtMTk4LDkg KzE5OSw5IEBACiAgICAgew0KICAgICAgICAgJHdoZXJlICAgICAgICAgID0gc2hpZnQgaWYg cmVmICRfWzBdOyAjIFNRTDo6QWJzdHJhY3QgYWNjZXB0cyBhIGhhc2hyZWYgb3IgYW4gYXJy YXlyZWYgDQogICAgICAgICAkYWJzdHJhY3RfYXR0ciAgPSBzaGlmdCBpZiByZWYgJF9bMF0g ZXEgJ0hBU0gnOw0KLSAgICAgICAgJG9yZGVyX2J5ICAgICAgID0gc2hpZnQgdW5sZXNzICRf WzBdID1+IC9eXGQrJC87DQotICAgICAgICAkcGVyX3BhZ2UgICAgICAgPSBzaGlmdCBpZiAk X1swXSA9fiAvXlxkKyQvOw0KLSAgICAgICAgJHBhZ2UgICAgICAgICAgID0gc2hpZnQgaWYg JF9bMF0gPX4gL15cZCskLzsNCisgICAgICAgICRvcmRlcl9ieSAgICAgICA9IHNoaWZ0IHVu bGVzcyAkX1swXSBhbmQgJF9bMF0gPX4gL15cZCskLzsNCisgICAgICAgICRwZXJfcGFnZSAg ICAgICA9IHNoaWZ0IGlmICRfWzBdIGFuZCAkX1swXSA9fiAvXlxkKyQvOw0KKyAgICAgICAg JHBhZ2UgICAgICAgICAgID0gc2hpZnQgaWYgJF9bMF0gYW5kICRfWzBdID1+IC9eXGQrJC87 DQogICAgICAgICAkc3ludGF4ICAgICAgICAgPSBzaGlmdDsNCiAgICAgfQ0KICAgICBlbHNl DQpAQCAtMjkyLDEwICsyOTMsNDEgQEAKIHN1YiBfc2V0dXBfcGFnZXIgew0KICAgICBteSAo ICRzZWxmICkgPSBAXzsNCiANCi0JbXkgJHdoZXJlICAgID0gJHNlbGYtPndoZXJlICAgIHx8 IGNyb2FrKCAnbXVzdCBzZXQgYSBxdWVyeSBiZWZvcmUgcmV0cmlldmluZyByZXN1bHRzJyAp Ow0KKyAgICBteSAkd2hlcmUgICAgPSAkc2VsZi0+d2hlcmUgICAgfHwgY3JvYWsoICdtdXN0 IHNldCBhIHF1ZXJ5IGJlZm9yZSByZXRyaWV2aW5nIHJlc3VsdHMnICk7DQogICAgIG15ICRw ZXJfcGFnZSA9ICRzZWxmLT5wZXJfcGFnZSB8fCBjcm9hayggJ25vLiBvZiBlbnRyaWVzIHBl ciBwYWdlIG5vdCBzcGVjaWZpZWQnICk7DQogICAgIG15ICRjZGJpICAgICA9ICRzZWxmLT5f Y2RiaV9hcHA7DQotICAgIG15ICRjb3VudCAgICA9ICRjZGJpLT5jb3VudF9zZWFyY2hfd2hl cmUoICR3aGVyZSwgJHNlbGYtPmFic3RyYWN0X2F0dHIgKTsNCisgICAgbXkgJGNvdW50Ow0K KyAgICBpZiAoJGNkYmktPmNhbignY291bnRfc2VhcmNoX3doZXJlJykpDQorICAgIHsNCisJ JGNvdW50ICAgPSAkY2RiaS0+Y291bnRfc2VhcmNoX3doZXJlKCAkd2hlcmUsICRzZWxmLT5h YnN0cmFjdF9hdHRyICk7DQorICAgIH0NCisgICAgZWxzaWYgKCRjZGJpLT5jYW4oJ2NvdW50 X3NlYXJjaCcpKQ0KKyAgICB7DQorCWNyb2FrKCJjb2RlIGZvciBjb3VudHNlYXJjaCBkb2Vz bid0IGhhbmRsZSBhYnN0cmFjdF9hdHRyIikNCisJICBpZiAkc2VsZi0+YWJzdHJhY3RfYXR0 cjsNCisJbXkgQGNvbHMgPSBrZXlzICUkd2hlcmU7DQorCWNyb2FrKCdubyBrZXlzIGluIHdo ZXJlIGNsYXVzZScpIHVubGVzcyBAY29scyA+IDA7DQorCWlmIChAY29scyA9PSAxIGFuZCAk Y29sc1swXSBlcSAnMScpCSMgdW5xdWFsaWZpZWQgY291bnQNCisJew0KKwkgICAgJGNvdW50 ICAgPSAkY2RiaS0+Y291bnRfc2VhcmNoKCk7DQorCX0NCisJZWxzZQkjIGNvdW50IHdpdGgg c2VhcmNoIGZpZWxkcw0KKwl7DQorCSAgICBteSBAYXJnczsJIyBsaXN0IG9mIGFyZ3MgZm9y IGNvdW50X3NlYXJjaF9saWtlDQorCSAgICBmb3JlYWNoIG15ICRjb2wgKEBjb2xzKQ0KKwkg ICAgew0KKwkJbXkgJGV4cHIgPSAkd2hlcmUtPnskY29sfTsNCisJCWNyb2FrKCJjb2RlIGRv ZXNuJ3QgaGFuZGxlIGFueXRoaW5nIGJ1dCAnbGlrZSchIikNCisJCSAgdW5sZXNzIGtleXMg JSRleHByID09IDEgYW5kICRleHByLT57bGlrZX07DQorCQlwdXNoIEBhcmdzLCAkY29sID0+ ICRleHByLT57bGlrZX07DQorCSAgICB9DQorCSAgICAkY291bnQgICA9ICRjZGJpLT5jb3Vu dF9zZWFyY2hfbGlrZShAYXJncyk7DQorCX0NCisgICAgfQ0KKyAgICBlbHNlDQorICAgIHsN CisJY3JvYWsoICdubyB3YXkgdG8gY291bnQgdG90YWwgZW50cmllcycgKTsNCisgICAgfQ0K IAlteSAkcGFnZSAgICAgPSAkc2VsZi0+cGFnZSB8fCAxOw0KIA0KICAgICAkc2VsZi0+dG90 YWxfZW50cmllcyggJGNvdW50ICk7DQpAQCAtMzA5LDYgKzM0MSwxMiBAQAogICAgICRzZWxm LT5jdXJyZW50X3BhZ2UoICRzZWxmLT5sYXN0X3BhZ2UgICkgaWYgJHNlbGYtPmN1cnJlbnRf cGFnZSA+ICRzZWxmLT5sYXN0X3BhZ2U7DQogfQ0KIA0KKw0KK3N1YiByZXRyaWV2ZV9hbGxf c29ydGVkX2J5IHsNCisgICAgbXkgKCRzZWxmLCAkb3JkZXIpID0gQF87DQorICAgIHJldHVy biAkc2VsZi0+cmV0cmlldmVfYWxsKHtvcmRlcl9ieSA9PiAkb3JkZXJ9KTsNCit9DQorDQog IyBTUUw6OkFic3RyYWN0OjpfcmVjdXJzZV93aGVyZSBlYXRzIHRoZSBXSEVSRSBjbGF1c2Ug DQogI3N1YiB3aGVyZSB7DQogIwlteSAoICRzZWxmLCAkd2hlcmVfcmVmICkgPSBAXzsNCkBA IC01NzgsNiArNjE2LDExIEBACiByZXN1bHQgc2V0LCB0aGUgc2Vjb25kIHRvIHJldHJpZXZl IHRoZSByZXF1aXJlZCBzdWJzZXQgb2YgcmVzdWx0cy4gSWYgeW91cg0KIHRhYmxlcyBhcmUg c21hbGwgaXQgbWF5IGJlIHF1aWNrZXIgdG8gdXNlIEw8Q2xhc3M6OkRCSTo6UGFnZXJ8Q2xh c3M6OkRCSTo6UGFnZXI+Lg0KIA0KK1RoaXMgY2xhc3Mgd2lsbCB1c2UgQ2xhc3M6OkRCSTo6 UGx1Z2luOjpBYnN0cmFjdENvdW50IHRvIGNvdW50IHRoZSByZXN1bHQgc2V0LA0KK2lmIGl0 IGlzIGxvYWRlZCBhbmQgb3RoZXJ3aXNlIHdpbGwgbG9vayBmb3IgQ2xhc3M6OkRCSTo6UGx1 Z2luOjpDb3VudFNlYXJjaC4NCitUaGUgbGF0dGVyIGlzIG1vcmUgbGltaXRlZCBpbiBpdHMg c2VhcmNoIGNhcGFiaWxpdGllcyBidXQgZG9lcyBjb3JyZWN0bHkgaGFuZGxlDQorQ2xhc3M6 OkRCSSBhY2Nlc3NvciBmdW5jdGlvbnMgd2hvc2UgbmFtZSBkaWZmZXJzIGZyb20gdGhhdCBv ZiB0aGUgY29sdW1uLg0KKw0KIFRoZSBDPG9yZGVyX2J5PiBjbGF1c2UgbWVhbnMgdGhlIGRh dGFiYXNlIGhhcyB0byByZXRyaWV2ZSAoaW50ZXJuYWxseSkgYW5kIHNvcnQNCiB0aGUgZW50 aXJlIHJlc3VsdHMgc2V0LCBiZWZvcmUgY2hvcHBpbmcgb3V0IHRoZSByZXF1ZXN0ZWQgc3Vi c2V0LiBJdCdzIHByb2JhYmx5DQogYSBnb29kIGlkZWEgdG8gaGF2ZSBhbiBpbmRleCBvbiB0 aGUgY29sdW1uKHMpIHVzZWQgdG8gb3JkZXIgdGhlIHJlc3VsdHMuIEZvcg0KQEAgLTU4OCw2 ICs2MzEsNyBAQAogTDxTUUw6OkFic3RyYWN0fFNRTDo6QWJzdHJhY3Q+LA0KIEw8RGF0YTo6 UGFnZXxEYXRhOjpQYWdlPiwNCiBMPENsYXNzOjpEQkk6OlBsdWdpbjo6QWJzdHJhY3RDb3Vu dHxDbGFzczo6REJJOjpQbHVnaW46OkFic3RyYWN0Q291bnQ+LA0KK0w8Q2xhc3M6OkRCSTo6 UGx1Z2luOjpDb3VudFNlYXJjaHxDbGFzczo6REJJOjpQbHVnaW46OkNvdW50U2VhcmNoPiwN CiBMPENsYXNzOjpBY2Nlc3NvcnxDbGFzczo6QWNjZXNzb3I+LA0KIEw8Q2xhc3M6OkRhdGE6 OkluaGVyaXRhYmxlfENsYXNzOjpEYXRhOjpJbmhlcml0YWJsZT4sDQogTDxDYXJwfENhcnA+ Lg0K --------------020904070208080908050803--
Class::DBI::Plugin::Pager & Class::DBI::Plugin::CountSearch
|
Re: Class::DBI::Plugin::Pager & Class::DBI::Plugin::CountSearch
|
Generated at 14:42 on 11 Apr 2005 by mariachi v0.52