[prev] [thread] [next] [Date index for 2005/09/28]
This is a cryptographically signed message in MIME format.
--===============2045042167==
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
micalg=sha1; boundary="------------ms020503030204030802020609"
This is a cryptographically signed message in MIME format.
--------------ms020503030204030802020609
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Bill Moseley wrote:
> Minor time killer.
>
> I happened to be calling Essential twice on a class. When I did this
> LAZY POPULATION was not working on columns that were no longer in
> Essential. So, don't call Essential twice, I suppose.
>
>
> DB::Person->columns( Essential => qw/ id first_name last_name content / );
> DB::Person->columns( Essential => qw/ id first_name last_name / );
>
> my $item = DB::Person->retrieve( 1 );
>
> print $item->content ? "content found\n" : "sorry, out of luck\n";
>
> Results in:
>
> $ perl one_table.pl
> sorry, out of luck
>
> when there is indeed content. CDBI isn't going back to the DB.
>
> Comment out either one (or both) of the Essential calls and it works fine.
>
> Here's a demo on CDBI 3.0.8:
>
>
> package DB;
> use base 'Class::DBI::Sweet';
> DB->connection('dbi:mysql:test', '', '');
> #DB->connection('dbi:Pg:dbname=test2', '', '');
>
>
> package DB::Person;
> use base 'DB';
> __PACKAGE__->table('person');
> __PACKAGE__->columns(All => qw/id first_name last_name role content/);
>
> package main;
> use strict;
> use warnings;
> use Template;
>
> DB->db_Main->do("DROP TABLE $_") for qw/ person /;
>
>
> DB->db_Main->do(<<"");
> CREATE TABLE person (
> id integer PRIMARY KEY,
> role integer,
> first_name text,
> last_name text,
> content text
> );
>
>
> DB::Person->create( {
> id => 1,
> role => 3,
> first_name => 'Joe',
> last_name => 'Blow',
> content => 'This is some content about Joe',
> });
>
>
> DB::Person->columns( Essential => qw/ id first_name last_name content / );
> DB::Person->columns( Essential => qw/ id first_name last_name / );
>
> my $item = DB::Person->retrieve( 1 );
>
> print $item->content ? "content found\n" : "sorry, out of luck\n";
>
I don't think Tony surfs this list much, if at all, so make sure to file
an RT on the issue. I know he checks those.
This would probably be even more of an issue if a subclass of your class
wants to call __PACKAGE__->columns to override the base classes
decisions about what is and isn't essential.
-=Chris
--------------ms020503030204030802020609
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIII8TCC
AtMwggI8oAMCAQICAw37vjANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UE
ChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv
bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwHhcNMDUwMjA3MTc0NDM3WhcNMDYwMjA3MTc0NDM3
WjBFMR8wHQYDVQQDExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMSIwIAYJKoZIhvcNAQkBFhNj
bGFjb0BjaHJpc2xhY28uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwOzj
4xFQtv4Fjr44h4AmlOTqOYw4PM80JgQrIhCQpJlQQgr+gltu+HqCdkU+8nO+MjTOSgDH98Vx
t0GK7Y7uZkwPkYM+av/RQf37y7QMPlrQiBJcKb1TYa1yWijjdvwOpEB1RSnEBtKKXN/Yc6WF
kV/mRGpCKoaxCC6YeBr4uWXXduz6KOR4RLBE3+EmxzUeGwPulHmS/evmPkt2Z7O/AVx2y1zW
zng76M1mftCw9dI7nob1F9xhIjdHEbjivysFNFmqqH0HDwkcM/VgXoU5pQNNzkglwN22MlDH
6ZylE6fCLHzzIh+1t5wdFmN+YtvemhuxO6puVuSsngJaQXBHvwIDAQABozAwLjAeBgNVHREE
FzAVgRNjbGFjb0BjaHJpc2xhY28uY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQAD
gYEAaxPn+huyClyf0rU/gPmK9pqb9TSWPjxSpXhXDA9rweZiDM7kapY+s+gYQWsN2aS0Aeaz
ugPigDLVcFejf4ZxZKIKfuj05rIFC0HYg9mE6rQE8PPJP1y8Ln8Nttr6uLBKBxgPTz26sOQP
k+kfFo1su7WSJk5DHHcnIplfPHew+NYwggLTMIICPKADAgECAgMN+74wDQYJKoZIhvcNAQEE
BQAwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0
ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA1
MDIwNzE3NDQzN1oXDTA2MDIwNzE3NDQzN1owRTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWls
IE1lbWJlcjEiMCAGCSqGSIb3DQEJARYTY2xhY29AY2hyaXNsYWNvLmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAMDs4+MRULb+BY6+OIeAJpTk6jmMODzPNCYEKyIQkKSZ
UEIK/oJbbvh6gnZFPvJzvjI0zkoAx/fFcbdBiu2O7mZMD5GDPmr/0UH9+8u0DD5a0IgSXCm9
U2Gtcloo43b8DqRAdUUpxAbSilzf2HOlhZFf5kRqQiqGsQgumHga+Lll13bs+ijkeESwRN/h
Jsc1HhsD7pR5kv3r5j5LdmezvwFcdstc1s54O+jNZn7QsPXSO56G9RfcYSI3RxG44r8rBTRZ
qqh9Bw8JHDP1YF6FOaUDTc5IJcDdtjJQx+mcpROnwix88yIftbecHRZjfmLb3pobsTuqblbk
rJ4CWkFwR78CAwEAAaMwMC4wHgYDVR0RBBcwFYETY2xhY29AY2hyaXNsYWNvLmNvbTAMBgNV
HRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBAGsT5/obsgpcn9K1P4D5ivaam/U0lj48UqV4
VwwPa8HmYgzO5GqWPrPoGEFrDdmktAHms7oD4oAy1XBXo3+GcWSiCn7o9OayBQtB2IPZhOq0
BPDzyT9cvC5/Dbba+riwSgcYD089urDkD5PpHxaNbLu1kiZOQxx3JyKZXzx3sPjWMIIDPzCC
AqigAwIBAgIBDTANBgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdl
c3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UE
AxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25h
bC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAwMFoXDTEzMDcxNjIzNTk1OVow
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1BHCd3+n/ox7svc31W/Iadr1/
DDph8r9RzgHU5VAKMNcCY1osiRVwjt3J8CuFWqo/cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+
K/67GD4Hv0CAAmTXp6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZcmC3+wIDAQABo4GUMIGRMBIG
A1UdEwEB/wQIMAYBAf8CAQAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC50aGF3dGUu
Y29tL1RoYXd0ZVBlcnNvbmFsRnJlZW1haWxDQS5jcmwwCwYDVR0PBAQDAgEGMCkGA1UdEQQi
MCCkHjAcMRowGAYDVQQDExFQcml2YXRlTGFiZWwyLTEzODANBgkqhkiG9w0BAQUFAAOBgQBI
jNFQg+oLLswNo2asZw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82L8D0HFAgk3A8/a3hYWLD2ToZ
foSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr394fWxghOrvbqNOUQGls1TXfj
ViF4gtwhGTXeJLHTHUb/XV9lTzGCAzswggM3AgEBMGkwYjELMAkGA1UEBhMCWkExJTAjBgNV
BAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJz
b25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMN+74wCQYFKw4DAhoFAKCCAacwGAYJKoZIhvcN
AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDUwOTI4MTczNDEwWjAjBgkqhkiG
9w0BCQQxFgQU2FTFa7udQmb9CPRpfbCEiyeRx04wUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG
9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcN
AwICASgweAYJKwYBBAGCNxAEMWswaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3Rl
IENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt
YWlsIElzc3VpbmcgQ0ECAw37vjB6BgsqhkiG9w0BCRACCzFroGkwYjELMAkGA1UEBhMCWkEx
JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0
ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMN+74wDQYJKoZIhvcNAQEBBQAEggEA
dgziJnWMpd9j9sct+RyE/G9/TY0OCs6DNtM/KBNrcAj+ptm7CcxDzC+6gLn0d+affvKq856U
36Fb7JWbG8QCs/XDTnOqjwGbsDIgt5DsEYNudN7MkNRTgR2bqRjZ9Zc3fe2lbQ2Xd2MJpy68
EKtofo2AngQziJz7gxyoOOWPJ2W4y7Wil4l6QzuuGL6FWx3YkKlSjVfDd1U135bosVN3HxOa
P2bU9gxL0GSmUrxds/srUbDCrHvrvokF5kIjLTsWev3kzdBLN9gz0nNmIxTwymJnyx3jRlEj
FZzW/1xpX7Q32izTiBZo5VFRAdQYk99eYWbpj83ZwEKLlW9CNYKhWgAAAAAAAA==
--------------ms020503030204030802020609--
--===============2045042167==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
ClassDBI mailing list
ClassDBI@xxxxx.xxxxxxxxxxxxxxxx.xxx
http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi
--===============2045042167==--
|
[CDBI] Calling columns( Essential ) twice
|
|
Re: [CDBI] Calling columns( Essential ) twice
|
Generated at 15:06 on 02 Oct 2005 by mariachi v0.52