<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/7.2.3-stable" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Adaptive Database</title>
		<link>https://hcmc.uvic.ca/blogs/index.php?blog=44</link>
		<atom:link rel="self" type="application/rss+xml" href="https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2" />
		<description>Adaptive Database</description>
		<language>en-CA</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=7.2.3-stable"/>
		<ttl>60</ttl>
				<item>
			<title>More updates, new features</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/more_updates_new_features?blog=44</link>
			<pubDate>Thu, 27 Sep 2018 23:03:29 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">16482@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;The following work completed today:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;All output is now valid HTML5.&lt;/li&gt;
  &lt;li&gt;A new feature has been added to integer and string fields enabling them to be auto-linked to a target using a regular expression. This is needed for the Landscapes dbs and will be needed for DVPP.&lt;/li&gt;
  &lt;li&gt;Support for user.css and user.js files has been added, so that if they exist, they will be included in the page. This enables easier configuration/customization without editing core files.&lt;/li&gt;
  &lt;li&gt;All select statements now include SQL_NO_CACHE in an attempt to get around server caching (which doesn&#039;t actually seem to have worked very well in our case, but is still worth doing).&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/more_updates_new_features?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>The following work completed today:</p>

<ul>
  <li>All output is now valid HTML5.</li>
  <li>A new feature has been added to integer and string fields enabling them to be auto-linked to a target using a regular expression. This is needed for the Landscapes dbs and will be needed for DVPP.</li>
  <li>Support for user.css and user.js files has been added, so that if they exist, they will be included in the page. This enables easier configuration/customization without editing core files.</li>
  <li>All select statements now include SQL_NO_CACHE in an attempt to get around server caching (which doesn't actually seem to have worked very well in our case, but is still worth doing).</li>
</ul>

<div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/more_updates_new_features?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/more_updates_new_features?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=16482</wfw:commentRss>
		</item>
				<item>
			<title>Updates for new webservers</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/updates_for_new_webservers?blog=44</link>
			<pubDate>Wed, 19 Sep 2018 23:50:38 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">16463@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;Continuing the work started earlier this year, which is becoming more urgent, I&#039;ve tested the Potluck test db under PHP7 and confirmed it&#039;s all working as expected. So I&#039;ve now started to port the changes forward to the existing dev and live databases, which were originally forked at different points in the development of the codebase. So far I&#039;ve updated Maple Ridge Dev, Maple Ridge Live, VPN Dev and VPN Live, and all seems to be well. The last hurdle is the Vancouver properties db, which is a bit older and will need some care. But the problem seems to be solvable. With luck, the first transition to PHP 5.6 will just work, and then we can setEnv UVPHP_VERSION 70 in the .htaccess file and get some speed benefits from PHP 7. In the process of merging changes, I also brought a couple of good ideas into the main codebase from the VPN version.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/updates_for_new_webservers?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Continuing the work started earlier this year, which is becoming more urgent, I've tested the Potluck test db under PHP7 and confirmed it's all working as expected. So I've now started to port the changes forward to the existing dev and live databases, which were originally forked at different points in the development of the codebase. So far I've updated Maple Ridge Dev, Maple Ridge Live, VPN Dev and VPN Live, and all seems to be well. The last hurdle is the Vancouver properties db, which is a bit older and will need some care. But the problem seems to be solvable. With luck, the first transition to PHP 5.6 will just work, and then we can setEnv UVPHP_VERSION 70 in the .htaccess file and get some speed benefits from PHP 7. In the process of merging changes, I also brought a couple of good ideas into the main codebase from the VPN version.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/updates_for_new_webservers?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/updates_for_new_webservers?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=16463</wfw:commentRss>
		</item>
				<item>
			<title>Fixes for record deletion bug, and optimization</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/fixes_for_record_deletion_bug_and_optimi?blog=44</link>
			<pubDate>Mon, 09 Jul 2018 21:48:16 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">16340@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;Record deletion was broken on the VPN db, and it turned out it was because it was timing out because the project_settings.php file was not being included in del_rec.php, so the time required to do the deletion was running over the default time for PHP requests. However, having fixed that, I decided that the way del_rec.php was behaving made no sense anyway; after deleting a record, it made a whole fresh request to the db for its first set of records and replaced the existing table with that. Instead, it now returns a simple OK, and the JS code instead calls a function which deletes the two table rows associated with the deleted record, leaving the rest of the stuff intact. That&#039;s much quicker and more intuitive.&lt;/p&gt;

&lt;p&gt;A similar process was required for multi-record editing. At first I thought this was going to be really complicated, but it turned out that since all the search filter data is being sent along with the editing data as part of the query, it&#039;s sufficient just to include the regular get_search_results.php file at the required point, causing the current search query to be re-run and the modified results returned. Looks like it works perfectly; we&#039;ll see if there are any reports of errors.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/fixes_for_record_deletion_bug_and_optimi?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Record deletion was broken on the VPN db, and it turned out it was because it was timing out because the project_settings.php file was not being included in del_rec.php, so the time required to do the deletion was running over the default time for PHP requests. However, having fixed that, I decided that the way del_rec.php was behaving made no sense anyway; after deleting a record, it made a whole fresh request to the db for its first set of records and replaced the existing table with that. Instead, it now returns a simple OK, and the JS code instead calls a function which deletes the two table rows associated with the deleted record, leaving the rest of the stuff intact. That's much quicker and more intuitive.</p>

<p>A similar process was required for multi-record editing. At first I thought this was going to be really complicated, but it turned out that since all the search filter data is being sent along with the editing data as part of the query, it's sufficient just to include the regular get_search_results.php file at the required point, causing the current search query to be re-run and the modified results returned. Looks like it works perfectly; we'll see if there are any reports of errors.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/fixes_for_record_deletion_bug_and_optimi?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/fixes_for_record_deletion_bug_and_optimi?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=16340</wfw:commentRss>
		</item>
				<item>
			<title>Weird behaviour for SA's site</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/weird_behaviour_for_sa_s_site?blog=44</link>
			<pubDate>Wed, 22 Nov 2017 00:51:45 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">15694@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;Spent an hour trying to debug a situation in which SA&#039;s new site with adaptive db code from the repo would not work. No further forward, really, but I must now integrate my mqsqli changes into the repo, pulling them from the potluck test db code.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/weird_behaviour_for_sa_s_site?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Spent an hour trying to debug a situation in which SA's new site with adaptive db code from the repo would not work. No further forward, really, but I must now integrate my mqsqli changes into the repo, pulling them from the potluck test db code.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/weird_behaviour_for_sa_s_site?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/weird_behaviour_for_sa_s_site?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=15694</wfw:commentRss>
		</item>
				<item>
			<title>Moving to mysqli</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/moving_to_mysqli?blog=44</link>
			<pubDate>Wed, 23 Aug 2017 17:08:31 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">15459@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;The upcoming deployment of PHP7, with expected performance gains, provides an impetus to move this codebase forward, and the first problem is a straight incompatibility in connecting to MySQL; my code uses the old mysql_* functions, while PHP7 has removed these and requires the use of the somewhat equivalent mysqli_* functions. Today I worked through the Potluck application to make all the necessary changes for testing purposes. It&#039;s not a straight search-and-replace; some equivalently-named functions seem to have their parameters reversed. It&#039;s working (although not solidly tested); I haven&#039;t migrated the changes to svn yet because I need to do more testing to make sure the results work both on PHP5 and PHP7.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/moving_to_mysqli?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>The upcoming deployment of PHP7, with expected performance gains, provides an impetus to move this codebase forward, and the first problem is a straight incompatibility in connecting to MySQL; my code uses the old mysql_* functions, while PHP7 has removed these and requires the use of the somewhat equivalent mysqli_* functions. Today I worked through the Potluck application to make all the necessary changes for testing purposes. It's not a straight search-and-replace; some equivalently-named functions seem to have their parameters reversed. It's working (although not solidly tested); I haven't migrated the changes to svn yet because I need to do more testing to make sure the results work both on PHP5 and PHP7.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/moving_to_mysqli?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/moving_to_mysqli?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=15459</wfw:commentRss>
		</item>
				<item>
			<title>How to get BEFORE INSERT triggers to use the AUTO_INCREMENT value</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/how_to_get_before_insert_triggers_to_use?blog=44</link>
			<pubDate>Thu, 21 Apr 2016 16:55:10 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">14010@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;This is something I&#039;ve struggled with for ages, and I&#039;ve finally got a working solution, so I&#039;m documenting it here with a real example, laid out the way you&#039;d need to implement it through phpMyAdmin, since that&#039;s the most common interface we use. The problem arises when you want to auto-populate a field which will serve as a single-line descriptor for the record, suitable for use in drop-down lists when editing linked tables. One obvious requirement is to provide the primary key for the record. In a BEFORE UPDATE trigger this is easy, because you can just access NEW.`fieldName`, but in a BEFORE INSERT trigger you can&#039;t, because it hasn&#039;t been set yet. You can&#039;t use an AFTER UPDATE trigger because then you don&#039;t have access to the NEW record data. The solution is to read the AUTO_INCREMENT value for the table from the information_schema database. Here&#039;s an example:&lt;/p&gt;

&lt;pre&gt;
[Run this first]

DROP TRIGGER IF EXISTS `landscapes_mapridgedev`.`own_desc_insert`;&lt;/pre&gt;

[Set the delimiter to // in the phpMyAdmin interface before running this:]

CREATE TRIGGER `landscapes_mapridgedev`.`own_desc_insert` BEFORE INSERT ON `landscapes_mapridgedev`.`owners`
 FOR EACH ROW BEGIN
   DECLARE next_id INT;
   SET next_id = (SELECT `AUTO_INCREMENT` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=DATABASE() AND `TABLE_NAME`=&#039;owners&#039;);
	SET NEW.`own_desc` = CASE
	  WHEN (LENGTH(NEW.`own_surname`) &gt; 0 AND LENGTH(NEW.`own_forenames`) &gt; 0 AND LENGTH(NEW.`own_street_num`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(NEW.`own_surname`,_utf8&#039;, &#039;,NEW.`own_forenames`,_utf8&#039; : &#039;,NEW.`own_street_num`,_utf8&#039;, &#039;,NEW.`own_street`,_utf8&#039; (&#039;,next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_surname`) &gt; 0 AND LENGTH(NEW.`own_forenames`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(NEW.`own_surname`,_utf8&#039;, &#039;,NEW.`own_forenames`,_utf8&#039; : &#039;,NEW.`own_street`,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_surname`) &gt; 0 AND LENGTH(NEW.`own_forenames`) &gt; 0) THEN 
         concat(NEW.`own_surname`,_utf8&#039;, &#039;,NEW.`own_forenames`,_utf8&#039; : (no address)&#039;,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_surname`) &gt; 0) THEN 
         concat(NEW.`own_surname`,_utf8&#039; (no forenames or address)&#039;,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_institution_name`) &gt; 0 AND LENGTH(NEW.`own_street_num`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(NEW.`own_institution_name`,_utf8&#039; : &#039;,NEW.`own_street_num`,_utf8&#039;, &#039;,NEW.`own_street`,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_institution_name`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(NEW.`own_institution_name`,_utf8&#039; : &#039;,NEW.`own_street`,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_institution_name`) &gt; 0) THEN 
         concat(NEW.`own_institution_name`,_utf8&#039; : (no address)&#039;,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_street_num`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(_utf8&#039; : (no name): &#039;,NEW.`own_street_num`,_utf8&#039;, &#039;,NEW.`own_street`,_utf8&#039; (&#039;,@next_id,_utf8&#039;)&#039;)
      WHEN (LENGTH(NEW.`own_street_num`) &gt; 0 AND LENGTH(NEW.`own_street`) &gt; 0) THEN 
         concat(_utf8&#039; : (no name or street number): &#039;,NEW.`own_street`,_utf8&#039; (&#039;,@nextid,_utf8&#039;)&#039;)
      ELSE 
          concat(_utf8&#039;(no name or address)&#039;,_utf8&#039; (&#039;,@nextid,_utf8&#039;)&#039;)
      END;
  END
//
&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/how_to_get_before_insert_triggers_to_use?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>This is something I've struggled with for ages, and I've finally got a working solution, so I'm documenting it here with a real example, laid out the way you'd need to implement it through phpMyAdmin, since that's the most common interface we use. The problem arises when you want to auto-populate a field which will serve as a single-line descriptor for the record, suitable for use in drop-down lists when editing linked tables. One obvious requirement is to provide the primary key for the record. In a BEFORE UPDATE trigger this is easy, because you can just access NEW.`fieldName`, but in a BEFORE INSERT trigger you can't, because it hasn't been set yet. You can't use an AFTER UPDATE trigger because then you don't have access to the NEW record data. The solution is to read the AUTO_INCREMENT value for the table from the information_schema database. Here's an example:</p>

<pre>
[Run this first]

DROP TRIGGER IF EXISTS `landscapes_mapridgedev`.`own_desc_insert`;</pre>

[Set the delimiter to // in the phpMyAdmin interface before running this:]

CREATE TRIGGER `landscapes_mapridgedev`.`own_desc_insert` BEFORE INSERT ON `landscapes_mapridgedev`.`owners`
 FOR EACH ROW BEGIN
   DECLARE next_id INT;
   SET next_id = (SELECT `AUTO_INCREMENT` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`=DATABASE() AND `TABLE_NAME`='owners');
	SET NEW.`own_desc` = CASE
	  WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`,_utf8' (',next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street`,_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0) THEN 
         concat(NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : (no address)',_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_surname`) > 0) THEN 
         concat(NEW.`own_surname`,_utf8' (no forenames or address)',_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(NEW.`own_institution_name`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`,_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(NEW.`own_institution_name`,_utf8' : ',NEW.`own_street`,_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_institution_name`) > 0) THEN 
         concat(NEW.`own_institution_name`,_utf8' : (no address)',_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(_utf8' : (no name): ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`,_utf8' (',@next_id,_utf8')')
      WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN 
         concat(_utf8' : (no name or street number): ',NEW.`own_street`,_utf8' (',@nextid,_utf8')')
      ELSE 
          concat(_utf8'(no name or address)',_utf8' (',@nextid,_utf8')')
      END;
  END
//
<div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/how_to_get_before_insert_triggers_to_use?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/how_to_get_before_insert_triggers_to_use?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=14010</wfw:commentRss>
		</item>
				<item>
			<title>Updated documentation</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/updated_documentation?blog=44</link>
			<pubDate>Wed, 11 Nov 2015 01:17:39 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">13504@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;GN pointed out that the documentation for a key param in the MdhOneToManyField was wrong. Fixed it, regenerated docs.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/updated_documentation?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>GN pointed out that the documentation for a key param in the MdhOneToManyField was wrong. Fixed it, regenerated docs.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/updated_documentation?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/updated_documentation?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=13504</wfw:commentRss>
		</item>
				<item>
			<title>Read-only interface tested and working</title>
			<link>https://hcmc.uvic.ca/blogs/index.php/read_only_interface_tested_and_working?blog=44</link>
			<pubDate>Thu, 06 Aug 2015 20:15:01 +0000</pubDate>			<dc:creator>Martin</dc:creator>
			<category domain="main">Activity log</category>			<guid isPermaLink="false">13210@https://hcmc.uvic.ca/blogs/</guid>
						<description>&lt;p&gt;Did a little work last night and some more this morning to get this running and tested. I had to do some file re-organization to handle issues around relative paths with nested includes, but everything seems to be fine on the test database. My next task is to roll this out to the dev database, assuming I have permission for that.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://hcmc.uvic.ca/blogs/index.php/read_only_interface_tested_and_working?blog=44&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Did a little work last night and some more this morning to get this running and tested. I had to do some file re-organization to handle issues around relative paths with nested includes, but everything seems to be fine on the test database. My next task is to roll this out to the dev database, assuming I have permission for that.</p><div class="item_footer"><p><small><a href="https://hcmc.uvic.ca/blogs/index.php/read_only_interface_tested_and_working?blog=44">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://hcmc.uvic.ca/blogs/index.php/read_only_interface_tested_and_working?blog=44#comments</comments>
			<wfw:commentRss>https://hcmc.uvic.ca/blogs/index.php?blog=44&#38;tempskin=_rss2&#38;disp=comments&#38;p=13210</wfw:commentRss>
		</item>
			</channel>
</rss>
