PATCH - support views in table_info(), add primary_key_info(), addmysql_is_auto_increment to column_

PATCH - support views in table_info(), add primary_key_info(), addmysql_is_auto_increment to column_

am 28.12.2006 22:05:24 von Dave Rolsky

--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:
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=gcdmp-msql-mysql-modules@m .gmane.org
--1732368668-1668879922-1167339924=:21271--