Opened 6 years ago
Closed 6 years ago
Last modified 6 years ago
#13420 closed Patch - Bug Fix (fixed)
DB Error in mythtv-setup and QString initialization
Reported by: | Klaas de Waal | Owned by: | David Hampton |
---|---|---|---|
Priority: | minor | Milestone: | 31.0 |
Component: | MythTV - Channel Scanner | Version: | Master Head |
Severity: | medium | Keywords: | DVB channelscan QString initialization |
Cc: | Stuart Auchterlonie, David Hampton | Ticket locked: | no |
Description
A channelscan with mythtv-setup gives the following error messages, one for each channel:
DB Error (MSqlQuery): Query was: INSERT INTO channelscan_channel ( scanid, transportid, mplex_id, source_id, channel_id, callsign, service_name, chan_num, service_id, atsc_major_channel, atsc_minor_channel, use_on_air_guide, hidden, hidden_in_guide, freqid, icon, tvformat, xmltvid, pat_tsid, vct_tsid, vct_chan_tsid, sdt_tsid, orig_netid, netid, si_standard, in_channels_conf, in_pat, in_pmt, in_vct, in_nit, in_sdt, is_encrypted, is_data_service, is_audio_service, is_opencable, could_be_opencable, decryption_status, default_authority ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ? ); Bindings were: :ATSC_MAJOR_CHANNEL=0, :ATSC_MINOR_CHANNEL=0, :CALLSIGN="Penthouse HD1", :CHANNEL_ID=0, :CHAN_NUM="792", :COULD_BE_OPENCABLE=false, :DECRYPTION_STATUS=2, :DEFAULT_AUTHORITY=NULL, :FREQID="", :HIDDEN=false, :HIDDEN_IN_GUIDE=false, :ICON=NULL, :IN_CHANNELS_CONF=false, :IN_NIT=true, :IN_PAT=true, :IN_PMT=true, :IN_SDT=true, :IN_VCT=false, :IS_AUDIO_SERVICE=false, :IS_DATA_SERVICE=false, :IS_ENCRYPTED=true, :IS_OPEBCABLE=false, :MPLEX_ID=43, :NETID=5555, :ORIG_NETID=1536, :PAT 2019-03-03 21:20:13.973048 E Original query failed, but resend with empty strings in place of NULL strings worked.
This message is caused by database access with QString variables which are NULL. There is an error catching mechanism present that replaces each NULL strings with an empty string. The last line in the message above states that this is done and that then the database access succeeded.
This problem is caused by the recent change to move initialization to the header files. This in itself should and does not make any difference, however, the initializations for the QString members of ChannelInsertInfo? in channelinfo.cpp/.h have been lost in this process.
This can be found in the following commit:
https://github.com/MythTV/mythtv/commit/4d5526816f5c5d5ddbf52f960b597afbf5b31fea#diff-0500d09455f90efc1704bfbb28b33aab
The obvious solution is to restore the initialization of ChannelInsertinfo?.
A patch for this is attached.
Attachments (1)
Change History (8)
Changed 6 years ago by
Attachment: | 20190303-channelinsertinfo-init.patch added |
---|
comment:1 Changed 6 years ago by
Owner: | set to David Hampton |
---|---|
Status: | new → assigned |
comment:3 Changed 6 years ago by
Line 355 in channelinfo.cpp looks like a preexisting typo ?
query.bindValue(":IS_OPEBCABLE", m_is_opencable);
comment:4 Changed 6 years ago by
Yes, but a consistent typo (the same in two places) so it worked properly. :-)
comment:6 Changed 6 years ago by
Milestone: | needs_triage → 31.0 |
---|
Restore initialization of QString members of ChannelInsertInfo?