  | | | PATCH - support views in table_info(), add primary_key_info(), add mysql_is_auto | PATCH - support views in table_info(), add primary_key_info(), add mysql_is_auto 2006-12-28 - By Dave Rolsky
Back --1732368668-1668879922-1167339924=:21271 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Here's a patch which fixes some bugs and enhances some of the various *_info() methods. It does the following:
Improves the TABLE_TYPE value for table_info(). Previously, this was hard-coded to 'TABLE', but since MySQL now supports views, this is no longer correct. I'm not too thrilled with the _has_views() thing I added, and I suspect there's a better way to get this version info.
Adds primary_key_info(). Once this exists then DBI appears to provide a primary_key() method as well.
I added a new mysql-specific item to the column_info return value, mysql_is_auto_increment. It should be obvious what this does ;)
There's no tests for any of these, but I tested the code with a project I'm working on which makes use of these methods, and it did work.
-dave
/*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ --1732368668-1668879922-1167339924=:21271 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=dbd-mysql.patch Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.64.0612281505240.21271@(protected)> Content-Description: Content-Disposition: attachment; filename=dbd-mysql.patch
T25seSBpbiAuOiBkYmQtbXlzcWwucGF0Y2gNCk9ubHkgaW4gLjogZm9vDQpP bmx5IGluIC46IGZvb34NCmRpZmYgLXJ1IC4uL0RCRC1teXNxbC00LjAwLm9s ZC9saWIvREJEL215c3FsLnBtIC4vbGliL0RCRC9teXNxbC5wbQ0KLS0tIC4u L0RCRC1teXNxbC00LjAwLm9sZC9saWIvREJEL215c3FsLnBtCTIwMDYtMTIt MjggMTQ6MjI6MzEuMDAwMDAwMDAwIC0wNjAwDQorKysgLi9saWIvREJEL215 c3FsLnBtCTIwMDYtMTItMjggMTQ6NTk6MzIuMDAwMDAwMDAwIC0wNjAwDQpA QCAtMTgzLDYgKzE4Myw3IEBADQogcGFja2FnZSBEQkQ6Om15c3FsOjpkYjsg IyA9PT09PT0gREFUQUJBU0UgPT09PT09DQogdXNlIHN0cmljdDsNCiB1c2Ug REJJIHF3KDpzcWxfdHlwZXMpOw0KK3VzZSBEQkk6OkNvbnN0OjpHZXRJbmZv VHlwZTsNCiANCiAlREJEOjpteXNxbDo6ZGI6OmRiMkFOU0kgPSAoIklOVCIg ICA9PiAgIklOVEVHRVIiLA0KIAkJCSAgICJDSEFSIiAgPT4gICJDSEFSIiwN CkBAIC0yNTcsMTQgKzI1OCwxNyBAQA0KIA0KICAgICBzdWIgdGFibGVfaW5m byAoJCkgew0KIAlteSAkZGJoID0gc2hpZnQ7DQotCW15ICRzdGggPSAkZGJo LT5wcmVwYXJlKCJTSE9XIFRBQkxFUyIpOw0KKw0KKyAgICAgICAgbXkgJHNx bCA9IF9oYXNfdmlld3MoJGRiaCkgPyAnU0hPVyBGVUxMIFRBQkxFUycgOiAn U0hPVyBUQUJMRVMnOw0KKwlteSAkc3RoID0gJGRiaC0+cHJlcGFyZSgkc3Fs KTsNCiAJcmV0dXJuIHVuZGVmIHVubGVzcyAkc3RoOw0KIAlpZiAoISRzdGgt PmV4ZWN1dGUoKSkgew0KIAkgIHJldHVybiBEQkk6OnNldF9lcnIoJGRiaCwg JHN0aC0+ZXJyKCksICRzdGgtPmVycnN0cigpKTsNCiAgICAgICAgIH0NCiAJ bXkgQHRhYmxlczsNCiAJd2hpbGUgKG15ICRyZWYgPSAkc3RoLT5mZXRjaHJv d19hcnJheXJlZigpKSB7DQotCSAgcHVzaChAdGFibGVzLCBbIHVuZGVmLCB1 bmRlZiwgJHJlZi0+WzBdLCAnVEFCTEUnLCB1bmRlZiBdKTsNCisgICAgICAg ICAgbXkgJHR5cGUgPSAkcmVmLT5bMV0gJiYgJHJlZi0+WzFdID1+IC92aWV3 L2kgPyAnVklFVycgOiAnVEFCTEUnOw0KKwkgIHB1c2goQHRhYmxlcywgWyB1 bmRlZiwgdW5kZWYsICRyZWYtPlswXSwgJHR5cGUsIHVuZGVmIF0pOw0KICAg ICAgICAgfQ0KIAlteSAkZGJoMjsNCiAJaWYgKCEoJGRiaDIgPSAkZGJoLT57 J35kYmRfZHJpdmVyfl9zcG9uZ2VfZGJoJ30pKSB7DQpAQCAtMjgzLDYgKzI4 NywxNSBAQA0KIAl9DQogCSRzdGgyOw0KICAgICB9DQorDQorICAgIHN1YiBf aGFzX3ZpZXdzIHsNCisgICAgICAgIG15ICRkYmggPSBzaGlmdDsNCisNCisg ICAgICAgIG15ICgkbWFqLCAkbWluLCAkcG9pbnQpID0NCisgICAgICAgICAg ICAkZGJoLT5nZXRfaW5mbygkR2V0SW5mb1R5cGV7U1FMX0RCTVNfVkVSfSkg PX4gLyhcZCspXC4oXGQrKVwuKFxkKykvOw0KKw0KKyAgICAgICAgcmV0dXJu IDEgaWYgJG1haiA+PSA1ICYmICRwb2ludCA+PSAxOw0KKyAgICB9DQogfQ0K IA0KIHN1YiBfTGlzdFRhYmxlcyB7DQpAQCAtMzEzLDcgKzMyNiw3IEBADQog CVVEVF9DQVQgVURUX1NDSEVNIFVEVF9OQU1FIERPTUFJTl9DQVQgRE9NQUlO X1NDSEVNIERPTUFJTl9OQU1FDQogCVNDT1BFX0NBVCBTQ09QRV9TQ0hFTSBT Q09QRV9OQU1FIE1BWF9DQVJESU5BTElUWQ0KIAlEVERfSURFTlRJRklFUiBJ U19TRUxGX1JFRg0KLQlteXNxbF9pc19wcmlfa2V5IG15c3FsX3R5cGVfbmFt ZSBteXNxbF92YWx1ZXMNCisJbXlzcWxfaXNfcHJpX2tleSBteXNxbF90eXBl X25hbWUgbXlzcWxfaXNfYXV0b19pbmNyZW1lbnQgbXlzcWxfdmFsdWVzDQog ICAgICk7DQogICAgIG15ICVjb2xfaW5mbzsNCiANCkBAIC0zMjUsNiArMzM4 LDggQEANCiAJbXkgJHR5cGUgPSAkcm93LT57dHlwZX07DQogCSR0eXBlID1+ IG0vXihcdyspKD86XCgoLio/KVwpKT9ccyooLiopLzsNCiAJbXkgJGJhc2V0 eXBlID0gbGMoJDEpOw0KKyAgICAgICAgbXkgJHR5cGVtb2QgPSAkMjsNCisg ICAgICAgIG15ICRhdHRyID0gJDM7DQogDQogCW15ICRpbmZvID0gJGNvbF9p bmZveyAkcm93LT57ZmllbGR9IH0gPSB7DQogCSAgICBUQUJMRV9DQVQgICA9 PiAkY2F0YWxvZywNCkBAIC0zMzgsMTUgKzM1MywxNiBAQA0KIAkgICAgT1JE SU5BTF9QT1NJVElPTiA9PiArKyRvcmRpbmFsX3BvcywNCiAJICAgIG15c3Fs X2lzX3ByaV9rZXkgPT4gKCRyb3ctPntrZXl9ICBlcSAnUFJJJyksDQogCSAg ICBteXNxbF90eXBlX25hbWUgID0+ICRyb3ctPnt0eXBlfSwNCisgICAgICAg ICAgICBteXNxbF9pc19hdXRvX2luY3JlbWVudCA9PiAoJHJvdy0+e2V4dHJh fSA9fiAvYXV0b19pbmNyZW1lbnQvaSA/IDEgOiAwKSwNCiAJfTsNCiAJIyBU aGlzIGNvZGUgd29uJ3QgZGVhbCB3aXRoIGEgcGF0aGFsb2dpY2FsIGNhc2Ug d2hlcmUgYSB2YWx1ZQ0KIAkjIGNvbnRhaW5zIGEgc2luZ2xlIHF1b3RlIGZv bGxvd2VkIGJ5IGEgY29tbWEsIGFuZCBkb2Vzbid0IHVuZXNjYXBlDQogCSMg YW55IGVzY2FwZWQgdmFsdWVzLiBCdXQgd2hvIHdvdWxkIHVzZSB0aG9zZSBp biBhbiBlbnVtIG9yIHNldD8NCi0JbXkgQHR5cGVfcGFyYW1zID0gKCQyICYm IGluZGV4KCQyLCInIik+PTApDQotCQkJPyAoIiQyLCIgPX4gLycoLio/KScs L2cpICAjIGFzc3VtZSBhbGwgYXJlIHF1b3RlZA0KLQkJCTogc3BsaXQgLywv LCAkMnx8Jyc7ICAgICAgIyBubyBxdW90ZXMsIHBsYWluIGxpc3QNCi0Jcy8n Jy8nL2cgZm9yIEB0eXBlX3BhcmFtczsgICAgICAgICAgICAgICAgIyB1bmRv IGRvdWJsaW5nIG9mIHF1b3Rlcw0KLQlteSBAdHlwZV9hdHRyID0gc3BsaXQg LyAvLCAkM3x8Jyc7DQorCW15IEB0eXBlX3BhcmFtcyA9ICgkdHlwZW1vZCAm JiBpbmRleCgkdHlwZW1vZCwiJyIpPj0wKQ0KKwkJCT8gKCIkdHlwZW1vZCwi ID1+IC8nKC4qPyknLC9nKSAgIyBhc3N1bWUgYWxsIGFyZSBxdW90ZWQNCisJ CQk6IHNwbGl0IC8sLywgJHR5cGVtb2R8fCcnOyAgICAgICMgbm8gcXVvdGVz LCBwbGFpbiBsaXN0DQorCXMvJycvJy9nIGZvciBAdHlwZV9wYXJhbXM7ICAg ICAgICAgICAgICAgICAgICAgICMgdW5kbyBkb3VibGluZyBvZiBxdW90ZXMN CisJbXkgQHR5cGVfYXR0ciA9IHNwbGl0IC8gLywgJGF0dHJ8fCcnOw0KIAkj d2FybiAiJHR5cGU6ICRiYXNldHlwZSBbQHR5cGVfcGFyYW1zXSBbQHR5cGVf YXR0cl1cbiI7DQogDQogCSRpbmZvLT57REFUQV9UWVBFfSA9IFNRTF9WQVJD SEFSKCk7DQpAQCAtNDMzLDYgKzQ0OSw0NSBAQA0KICAgICByZXR1cm4gJHN0 aDsNCiB9DQogDQorc3ViIHByaW1hcnlfa2V5X2luZm8gew0KKyAgICBteSAo JGRiaCwgJGNhdGFsb2csICRzY2hlbWEsICR0YWJsZSkgPSBAXzsNCisgICAg cmV0dXJuICRkYmgtPnNldF9lcnIoMSwgInByaW1hcnlfa2V5IGRvZXNuJ3Qg c3VwcG9ydCB0YWJsZSB3aWxkY2FyZCIpDQorCWlmICR0YWJsZSAhfiAvXlx3 KyQvOw0KKw0KKyAgICBteSAkdGFibGVfaWQgPSAkZGJoLT5xdW90ZV9pZGVu dGlmaWVyKCRjYXRhbG9nLCAkc2NoZW1hLCAkdGFibGUpOw0KKw0KKyAgICBs b2NhbCAkZGJoLT57RmV0Y2hIYXNoS2V5TmFtZX0gPSAnTkFNRV9sYyc7DQor ICAgIG15ICRpbmRleF9zdGggPSAkZGJoLT5wcmVwYXJlKCJTSE9XIElOREVY IEZST00gJHRhYmxlX2lkIik7DQorICAgIG15ICRpbmRleCA9ICRkYmgtPnNl bGVjdGFsbF9hcnJheXJlZigkaW5kZXhfc3RoLCB7IENvbHVtbnM9Pnt9IH0p Ow0KKw0KKyAgICBteSBAbmFtZXMgPSBxdygNCisgICAgICAgIFRBQkxFX0NB VCBUQUJMRV9TQ0hFTSBUQUJMRV9OQU1FIENPTFVNTl9OQU1FDQorICAgICAg ICBLRVlfU0VRIFBLX05BTUUNCisgICAgKTsNCisNCisgICAgbXkgQHBrX2lu Zm87DQorICAgIGZvciBteSAkcm93IChncmVwIHskXy0+e2tleV9uYW1lfSBl cSAnUFJJTUFSWSd9IEAkaW5kZXgpIHsNCisgICAgICAgIHB1c2ggQHBrX2lu Zm8sIHsNCisgICAgICAgICAgICBUQUJMRV9DQVQgICA9PiAkY2F0YWxvZywN CisgICAgICAgICAgICBUQUJMRV9TQ0hFTSA9PiAkc2NoZW1hLA0KKyAgICAg ICAgICAgIFRBQkxFX05BTUUgID0+ICR0YWJsZSwNCisgICAgICAgICAgICBD T0xVTU5fTkFNRSA9PiAkcm93LT57Y29sdW1uX25hbWV9LA0KKyAgICAgICAg ICAgIEtFWV9TRVEgICAgID0+ICRyb3ctPntzZXFfaW5faW5kZXh9LA0KKyAg ICAgICAgICAgIFBLX05BTUUgICAgID0+ICRyb3ctPntrZXlfbmFtZX0sDQor ICAgICAgICB9Ow0KKyAgICB9DQorDQorICAgIG15ICRzcG9uZ2UgPSBEQkkt PmNvbm5lY3QoIkRCSTpTcG9uZ2U6IiwgJycsJycpDQorCW9yIHJldHVybiAk ZGJoLT5EQkk6OnNldF9lcnIoJERCSTo6ZXJyLCAiREJJOjpTcG9uZ2U6ICRE Qkk6OmVycnN0ciIpOw0KKyAgICBteSAkc3RoID0gJHNwb25nZS0+cHJlcGFy ZSgiY29sdW1uX2luZm8gJHRhYmxlIiwgew0KKwlyb3dzID0+IFsgbWFwIHsg WyBAeyRffXtAbmFtZXN9IF0gfSBAcGtfaW5mbyBdLA0KKwlOVU1fT0ZfRklF TERTID0+IHNjYWxhciBAbmFtZXMsDQorCU5BTUUgPT4gXEBuYW1lcywNCisg ICAgfSkgb3IgcmV0dXJuICRkYmgtPkRCSTo6c2V0X2Vycigkc3BvbmdlLT5l cnIoKSwgJHNwb25nZS0+ZXJyc3RyKCkpOw0KKw0KKyAgICByZXR1cm4gJHN0 aDsNCit9DQorDQogDQogDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMNCk9ubHkg aW4gLjogbXlzcWwucGF0Y2gNCk9ubHkgaW4gLi90OiBteXNxbC5tdGVzdA0K
--1732368668-1668879922-1167339924=:21271 Content-Type: text/plain; charset=us-ascii
-- MySQL Perl Mailing List For list archives: http://lists.mysql.com/perl To unsubscribe: http://lists.mysql.com/perl?unsub=mysql@(protected) --1732368668-1668879922-1167339924=:21271--
|
|
 |