Changeset 937 for traduc/trunk/slony/schemadoc.xml
- Timestamp:
- 03/02/08 18:33:18 (10 months ago)
- Files:
-
- traduc/trunk/slony/schemadoc.xml (modified) (53 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/slony/schemadoc.xml
r901 r937 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- DerniÚre modification 3 le $Date$ 4 par $Author$ 5 révision $Revision$ --> 1 <!-- $Header: /slony1/slony1-engine/doc/adminguide/schemadoc.xml,v 1.7 2006-07-31 18:56:24 cbbrowne Exp $ --> 2 3 4 5 6 6 7 7 8 <chapter id="schema" … … 10 11 <para></para> 11 12 12 13 <section id="table.sl-archive-counter"14 xreflabel="sl_archive_counter">15 <title id="table.sl-archive-counter-title">16 Table:17 18 <structname>sl_archive_counter</structname>19 </title>20 21 22 <para>23 Table used to generate the log shipping archive number.24 25 </para>26 27 28 <para>29 <variablelist>30 <title>31 Structure of <structname>sl_archive_counter</structname>32 </title>33 34 35 <varlistentry>36 <term><structfield>ac_num</structfield></term>37 <listitem><para>38 <type>bigint</type>39 40 41 42 43 44 45 46 </para>47 48 <para>49 Counter of SYNC ID used in log shipping as the archive number50 </para>51 52 </listitem>53 </varlistentry>54 55 <varlistentry>56 <term><structfield>ac_timestamp</structfield></term>57 <listitem><para>58 <type>timestamp without time zone</type>59 60 61 62 63 64 65 66 </para>67 68 <para>69 Time at which the archive log was generated on the subscriber70 </para>71 72 </listitem>73 </varlistentry>74 75 </variablelist>76 77 78 79 80 81 82 83 84 85 86 </para>87 </section>88 13 89 14 <section id="table.sl-config-lock" … … 120 45 121 46 122 </para>123 124 <para>125 No data ever goes in this table so the contents never matter. Indeed, this column does not really need to exist.126 47 </para> 127 48 … … 3116 3037 v_log int4; 3117 3038 v_dummy record; 3118 v_dummy2 record;3119 3039 idef text; 3120 3040 v_count int4; 3121 v_iname text;3122 3041 BEGIN 3123 3042 v_count := 0; … … 3134 3053 v_log := 1; 3135 3054 end if; 3136 -- PartInd_test_db_sl_log_2-node-1 3055 3137 3056 -- Add missing indices... 3138 for v_dummy in select distinct set_origin from sl_set loop 3139 v_iname := 'PartInd_schemadoc_sl_log_' || v_log || '-node-' || v_dummy.set_origin; 3140 -- raise notice 'Consider adding partial index % on sl_log_%', v_iname, v_log; 3141 -- raise notice 'schema: [_schemadoc] tablename:[sl_log_%]', v_log; 3142 select * into v_dummy2 from pg_catalog.pg_indexes where tablename = 'sl_log_' || v_log and indexname = v_iname; 3143 if not found then 3144 -- raise notice 'index was not found - add it!'; 3057 for v_dummy in select distinct set_origin from sl_set 3058 where not exists 3059 (select * from pg_catalog.pg_indexes where schemaname = 'schemadoc' 3060 and tablename = 'sl_log_' || v_log and 3061 indexname = 'PartInd_schemadoc_sl_log_' || v_log || '-node-' || set_origin) loop 3145 3062 idef := 'create index "PartInd_schemadoc_sl_log_' || v_log || '-node-' || v_dummy.set_origin || 3146 3063 '" on sl_log_' || v_log || ' USING btree(log_xid xxid_ops) where (log_origin = ' || v_dummy.set_origin || ');'; 3147 3064 execute idef; 3148 3065 v_count := v_count + 1; 3149 else3150 -- raise notice 'Index % already present - skipping', v_iname;3151 end if;3152 3066 end loop; 3153 3067 3154 3068 -- Remove unneeded indices... 3155 for v_dummy in select indexname from pg_catalog.pg_indexes i where i. tablename = 'sl_log_' || v_log and3156 i.indexname like ('PartInd_schemadoc_sl_log_' || v_log || '-node-%')and3069 for v_dummy in select indexname from pg_catalog.pg_indexes i where i.schemaname = '@NAMESPACE' 3070 and i.tablename = 'sl_log_' || v_log and 3157 3071 not exists (select 1 from sl_set where 3158 3072 i.indexname = 'PartInd_schemadoc_sl_log_' || v_log || '-node-' || set_origin) 3159 3073 loop 3160 -- raise notice 'Dropping obsolete index %d', v_dummy.indexname; 3161 idef := 'drop index "' || v_dummy.indexname || '";'; 3074 idef := 'drop index "schemadoc"."' || v_dummy.indexname || '";'; 3162 3075 execute idef; 3163 3076 v_count := v_count - 1; … … 3625 3538 end if; 3626 3539 3627 if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_seqlog' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then3628 execute 'alter table sl_seqlog set without oids;';3629 end if;3630 3540 -- ---- 3631 3541 -- Also remove stale entries from the nodelock table. … … 4028 3938 begin 4029 3939 perform updateRelname(p_set_id, p_only_on_node); 4030 if p_only_on_node = -1 then 4031 perform alterTableForReplication(tab_id) from sl_table where tab_set in (select set_id from sl_set where set_origin = getLocalNodeId('_schemadoc')); 4032 4033 return createEvent('_schemadoc', 'DDL_SCRIPT', 4034 p_set_id::text, p_script::text, p_only_on_node::text); 4035 else 4036 perform alterTableForReplication(tab_id) from sl_table; 4037 end if; 4038 return NULL; 3940 return createEvent('_schemadoc', 'DDL_SCRIPT', 3941 p_set_id, p_script, p_only_on_node); 4039 3942 end; 4040 3943 </programlisting> … … 4122 4025 lock table sl_config_lock; 4123 4026 4124 4125 4027 -- ---- 4126 4028 -- Check that the set exists and originates here 4127 -- unless only_on_node was specified (then it can be applied to4128 -- that node because that is what the user wanted)4129 4029 -- ---- 4130 4030 select set_origin into v_set_origin … … 4135 4035 raise exception 'Slony-I: set % not found', p_set_id; 4136 4036 end if; 4137 4138 if p_only_on_node = -1 then 4139 if v_set_origin <> getLocalNodeId('_schemadoc') then 4140 raise exception 'Slony-I: set % does not originate on local node', 4037 if v_set_origin <> getLocalNodeId('_schemadoc') then 4038 raise exception 'Slony-I: set % does not originate on local node', 4141 4039 p_set_id; 4142 end if; 4143 -- ---- 4144 -- Create a SYNC event, run the script and generate the DDL_SCRIPT event 4145 -- ---- 4146 perform createEvent('_schemadoc', 'SYNC', NULL); 4147 perform alterTableRestore(tab_id) from sl_table where tab_set in (select set_id from sl_set where set_origin = getLocalNodeId('_schemadoc')); 4148 else 4149 -- ---- 4150 -- If doing "only on one node" - restore ALL tables irrespective of set 4151 -- ---- 4152 perform alterTableRestore(tab_id) from sl_table; 4153 end if; 4040 end if; 4041 4042 -- ---- 4043 -- Create a SYNC event, run the script and generate the DDL_SCRIPT event 4044 -- ---- 4045 perform createEvent('_schemadoc', 'SYNC', NULL); 4154 4046 return 1; 4155 4047 end; … … 4256 4148 <seglistitem> 4257 4149 <seg>C</seg> 4258 <seg> trigger</seg>4150 <seg>"trigger"</seg> 4259 4151 </seglistitem> 4260 4152 </segmentedlist> … … 4747 4639 4748 4640 return createEvent ('_schemadoc', 'DROP_LISTEN', 4749 p_li_origin ::text, p_li_provider::text, p_li_receiver::text);4641 p_li_origin, p_li_provider, p_li_receiver); 4750 4642 end; 4751 4643 </programlisting> … … 4876 4768 perform dropNode_int(p_no_id); 4877 4769 return createEvent('_schemadoc', 'DROP_NODE', 4878 p_no_id ::text);4770 p_no_id); 4879 4771 end; 4880 4772 </programlisting> … … 5026 4918 5027 4919 return createEvent ('_schemadoc', 'DROP_PATH', 5028 p_pa_server ::text, p_pa_client::text);4920 p_pa_server, p_pa_client); 5029 4921 end; 5030 4922 </programlisting> … … 5147 5039 perform dropSet_int(p_set_id); 5148 5040 return createEvent('_schemadoc', 'DROP_SET', 5149 p_set_id ::text);5041 p_set_id); 5150 5042 end; 5151 5043 </programlisting> … … 5257 5149 perform dropTrigger_int(p_trig_tabid, p_trig_tgname); 5258 5150 return createEvent('_schemadoc', 'DROP_TRIGGER', 5259 p_trig_tabid ::text, p_trig_tgname::text);5151 p_trig_tabid, p_trig_tgname); 5260 5152 end; 5261 5153 </programlisting> … … 5397 5289 perform enableNode_int (p_no_id); 5398 5290 return createEvent('_schemadoc', 'ENABLE_NODE', 5399 p_no_id ::text);5291 p_no_id); 5400 5292 end; 5401 5293 </programlisting> … … 5884 5776 5885 5777 perform failoverSet_int(p_failed_node, 5886 p_backup_node, p_set_id , p_ev_seqfake);5778 p_backup_node, p_set_id); 5887 5779 5888 5780 return p_ev_seqfake; … … 5892 5784 </section> 5893 5785 5894 <!-- Function failoverset_int( integer, integer, integer , bigint) -->5895 <section id="function.failoverset-int-integer-integer-integer -bigint"5896 xreflabel="schemadocfailoverset_int( integer, integer, integer , bigint)">5897 <title id="function.failoverset-int-integer-integer-integer- bigint-title">5898 failoverset_int( integer, integer, integer , bigint)5899 </title> 5900 <titleabbrev id="function.failoverset-int-integer-integer-integer- bigint-titleabbrev">5901 failoverset_int( integer, integer, integer , bigint)5786 <!-- Function failoverset_int( integer, integer, integer ) --> 5787 <section id="function.failoverset-int-integer-integer-integer" 5788 xreflabel="schemadocfailoverset_int( integer, integer, integer )"> 5789 <title id="function.failoverset-int-integer-integer-integer-title"> 5790 failoverset_int( integer, integer, integer ) 5791 </title> 5792 <titleabbrev id="function.failoverset-int-integer-integer-integer-titleabbrev"> 5793 failoverset_int( integer, integer, integer ) 5902 5794 </titleabbrev> 5903 5795 … … 5914 5806 </segmentedlist> 5915 5807 5916 FUNCTION failoverSet_int (failed_node, backup_node, set_id , wait_seqno)5808 FUNCTION failoverSet_int (failed_node, backup_node, set_id) 5917 5809 5918 5810 Finish failover for one set. … … 5922 5814 p_backup_node alias for $2; 5923 5815 p_set_id alias for $3; 5924 p_wait_seqno alias for $4;5925 5816 v_row record; 5926 5817 v_last_sync int8; … … 5960 5851 (ev_origin, ev_seqno, ev_timestamp, 5961 5852 ev_minxid, ev_maxxid, ev_xip, 5962 ev_type, ev_data1, ev_data2, ev_data3 , ev_data4)5853 ev_type, ev_data1, ev_data2, ev_data3) 5963 5854 values 5964 5855 (p_backup_node, "pg_catalog".nextval('sl_event_seq'), CURRENT_TIMESTAMP, 5965 5856 '0', '0', '', 5966 5857 'ACCEPT_SET', p_set_id::text, 5967 p_failed_node::text, p_backup_node::text, 5968 p_wait_seqno::text); 5858 p_failed_node::text, p_backup_node::text); 5969 5859 else 5970 5860 delete from sl_subscribe … … 6104 5994 BEGIN 6105 5995 select 1 into v_node_row from sl_event 6106 where ev_type = 'SYNC' and ev_origin = getLocalNodeId(' _schemadoc')5996 where ev_type = 'SYNC' and ev_origin = getLocalNodeId('schemadoc') 6107 5997 and ev_timestamp > now() - p_interval limit 1; 6108 5998 if not found then 6109 5999 -- If there has been no SYNC in the last interval, then push one 6110 perform createEvent(' _schemadoc', 'SYNC', NULL);6000 perform createEvent('schemadoc', 'SYNC', NULL); 6111 6001 return 1; 6112 6002 else … … 6306 6196 <seglistitem> 6307 6197 <seg>C</seg> 6308 <seg> trigger</seg>6198 <seg>"trigger"</seg> 6309 6199 </seglistitem> 6310 6200 </segmentedlist> … … 6472 6362 raise notice 'Slony-I: log switch to sl_log_1 complete - truncate sl_log_2'; 6473 6363 truncate sl_log_2; 6474 if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_log_2' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then6475 execute 'alter table sl_log_2 set without oids;';6476 end if;6477 6364 perform "pg_catalog".setval('sl_log_status', 0); 6478 6365 -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table … … 6501 6388 raise notice 'Slony-I: log switch to sl_log_2 complete - truncate sl_log_1'; 6502 6389 truncate sl_log_1; 6503 if exists (select * from "pg_catalog".pg_class c, "pg_catalog".pg_namespace n, "pg_catalog".pg_attribute a where c.relname = 'sl_log_1' and n.oid = c.relnamespace and a.attrelid = c.oid and a.attname = 'oid') then6504 execute 'alter table sl_log_1 set without oids;';6505 end if;6506 6390 perform "pg_catalog".setval('sl_log_status', 1); 6507 6391 -- Run addPartialLogIndices() to try to add indices to unused sl_log_? table … … 6691 6575 <seglistitem> 6692 6576 <seg>C</seg> 6693 <seg> trigger</seg>6577 <seg>"trigger"</seg> 6694 6578 </seglistitem> 6695 6579 </segmentedlist> … … 6788 6672 6789 6673 -- ---- 6790 -- Check that all ENABLE_SUBSCRIPTION events for the set are confirmed6791 -- ----6792 if exists (select true from sl_event6793 where ev_type = 'ENABLE_SUBSCRIPTION'6794 and ev_data1 = p_add_id::text6795 and ev_seqno > (select max(con_seqno) from sl_confirm6796 where con_origin = ev_origin6797 and con_received::text = ev_data3))6798 then6799 raise exception 'Slony-I: set % has subscriptions in progress - cannot merge',6800 p_add_id;6801 end if;6802 6803 6804 -- ----6805 6674 -- Create a SYNC event, merge the sets, create a MERGE_SET event 6806 6675 -- ---- … … 6808 6677 perform mergeSet_int(p_set_id, p_add_id); 6809 6678 return createEvent('_schemadoc', 'MERGE_SET', 6810 p_set_id ::text, p_add_id::text);6679 p_set_id, p_add_id); 6811 6680 end; 6812 6681 </programlisting> … … 6954 6823 -- ---- 6955 6824 perform moveSet_int(p_set_id, v_local_node_id, 6956 p_new_origin , 0);6825 p_new_origin); 6957 6826 6958 6827 perform RebuildListenEntries(); … … 6974 6843 -- ---- 6975 6844 return createEvent('_schemadoc', 'MOVE_SET', 6976 p_set_id ::text, v_local_node_id::text, p_new_origin::text);6845 p_set_id, v_local_node_id, p_new_origin); 6977 6846 end; 6978 6847 </programlisting> … … 6980 6849 </section> 6981 6850 6982 <!-- Function moveset_int( integer, integer, integer , bigint) -->6983 <section id="function.moveset-int-integer-integer-integer -bigint"6984 xreflabel="schemadocmoveset_int( integer, integer, integer , bigint)">6985 <title id="function.moveset-int-integer-integer-integer- bigint-title">6986 moveset_int( integer, integer, integer , bigint)6987 </title> 6988 <titleabbrev id="function.moveset-int-integer-integer-integer- bigint-titleabbrev">6989 moveset_int( integer, integer, integer , bigint)6851 <!-- Function moveset_int( integer, integer, integer ) --> 6852 <section id="function.moveset-int-integer-integer-integer" 6853 xreflabel="schemadocmoveset_int( integer, integer, integer )"> 6854 <title id="function.moveset-int-integer-integer-integer-title"> 6855 moveset_int( integer, integer, integer ) 6856 </title> 6857 <titleabbrev id="function.moveset-int-integer-integer-integer-titleabbrev"> 6858 moveset_int( integer, integer, integer ) 6990 6859 </titleabbrev> 6991 6860 … … 7002 6871 </segmentedlist> 7003 6872 7004 moveSet(set_id, old_origin, new_origin , wait_seqno)6873 moveSet(set_id, old_origin, new_origin) 7005 6874 7006 6875 Process MOVE_SET event to request that the origin for set set_id be … … 7011 6880 p_old_origin alias for $2; 7012 6881 p_new_origin alias for $3; 7013 p_wait_seqno alias for $4;7014 6882 v_local_node_id int4; 7015 6883 v_tab_row record; … … 7045 6913 -- On the new origin, raise an event - ACCEPT_SET 7046 6914 if v_local_node_id = p_new_origin then 7047 -- Create a SYNC event as well so that the ACCEPT_SET has 7048 -- the same snapshot as the last SYNC generated by the new 7049 -- origin. This snapshot will be used by other nodes to 7050 -- finalize the setsync status. 7051 perform createEvent('_schemadoc', 'SYNC', NULL); 6915 7052 6916 perform createEvent('_schemadoc', 'ACCEPT_SET', 7053 p_set_id::text, p_old_origin::text, 7054 p_new_origin::text, p_wait_seqno::text); 6917 p_set_id, p_old_origin, p_new_origin); 7055 6918 end if; 7056 6919 … … 7830 7693 p_seq_comment); 7831 7694 return createEvent('_schemadoc', 'SET_ADD_SEQUENCE', 7832 p_set_id::text, p_seq_id::text, 7833 p_fqname::text, p_seq_comment::text); 7695 p_set_id, p_seq_id, p_fqname, p_seq_comment); 7834 7696 end; 7835 7697 </programlisting> … … 8030 7892 p_tab_idxname, p_tab_comment); 8031 7893 return createEvent('_schemadoc', 'SET_ADD_TABLE', 8032 p_set_id ::text, p_tab_id::text, p_fqname::text,8033 p_tab_idxname ::text, p_tab_comment::text);7894 p_set_id, p_tab_id, p_fqname, 7895 p_tab_idxname, p_tab_comment); 8034 7896 end; 8035 7897 </programlisting> … … 8250 8112 perform setDropSequence_int(p_seq_id); 8251 8113 return createEvent('_schemadoc', 'SET_DROP_SEQUENCE', 8252 p_seq_id::text);8114 p_seq_id); 8253 8115 end; 8254 8116 </programlisting> … … 8412 8274 -- ---- 8413 8275 perform setDropTable_int(p_tab_id); 8414 return createEvent('_schemadoc', 'SET_DROP_TABLE', 8415 p_tab_id::text); 8276 return createEvent('_schemadoc', 'SET_DROP_TABLE', p_tab_id); 8416 8277 end; 8417 8278 </programlisting> … … 8607 8468 perform setMoveSequence_int(p_seq_id, p_new_set_id); 8608 8469 return createEvent('_schemadoc', 'SET_MOVE_SEQUENCE', 8609 p_seq_id ::text, p_new_set_id::text);8470 p_seq_id, p_new_set_id); 8610 8471 end; 8611 8472 </programlisting> … … 8761 8622 perform setMoveTable_int(p_tab_id, p_new_set_id); 8762 8623 return createEvent('_schemadoc', 'SET_MOVE_TABLE', 8763 p_tab_id ::text, p_new_set_id::text);8624 p_tab_id, p_new_set_id); 8764 8625 end; 8765 8626 </programlisting> … … 9090 8951 <programlisting> 9091 8952 begin 9092 return 11;8953 return 0; 9093 8954 end; 9094 8955 </programlisting> … … 9131 8992 perform storeListen_int (p_origin, p_provider, p_receiver); 9132 8993 return createEvent ('_schemadoc', 'STORE_LISTEN', 9133 p_origin ::text, p_provider::text, p_receiver::text);8994 p_origin, p_provider, p_receiver); 9134 8995 end; 9135 8996 </programlisting> … … 9252 9113 perform storeNode_int (p_no_id, p_no_comment, p_no_spool); 9253 9114 return createEvent('_schemadoc', 'STORE_NODE', 9254 p_no_id::text, p_no_comment::text, 9255 v_no_spool_txt::text); 9115 p_no_id, p_no_comment, v_no_spool_txt); 9256 9116 end; 9257 9117 </programlisting> … … 9364 9224 p_pa_conninfo, p_pa_connretry); 9365 9225 return createEvent('_schemadoc', 'STORE_PATH', 9366 p_pa_server::text, p_pa_client::text, 9367 p_pa_conninfo::text, p_pa_connretry::text); 9226 p_pa_server, p_pa_client, p_pa_conninfo, p_pa_connretry); 9368 9227 end; 9369 9228 </programlisting> … … 9498 9357 9499 9358 return createEvent('_schemadoc', 'STORE_SET', 9500 p_set_id ::text, v_local_node_id::text, p_set_comment::text);9359 p_set_id, v_local_node_id, p_set_comment); 9501 9360 end; 9502 9361 </programlisting> … … 9602 9461 perform storeTrigger_int(p_trig_tabid, p_trig_tgname); 9603 9462 return createEvent('_schemadoc', 'STORE_TRIGGER', 9604 p_trig_tabid ::text, p_trig_tgname::text);9463 p_trig_tabid, p_trig_tgname); 9605 9464 end; 9606 9465 </programlisting> … … 9773 9632 -- ---- 9774 9633 v_ev_seqno := createEvent('_schemadoc', 'SUBSCRIBE_SET', 9775 p_sub_set ::text, p_sub_provider::text, p_sub_receiver::text,9634 p_sub_set, p_sub_provider, p_sub_receiver, 9776 9635 case p_sub_forward when true then 't' else 'f' end); 9777 9636 … … 9890 9749 if v_set_origin = getLocalNodeId('_schemadoc') then 9891 9750 perform createEvent('_schemadoc', 'ENABLE_SUBSCRIPTION', 9892 p_sub_set ::text, p_sub_provider::text, p_sub_receiver::text,9751 p_sub_set, p_sub_provider, p_sub_receiver, 9893 9752 case p_sub_forward when true then 't' else 'f' end); 9894 9753 perform enableSubscription(p_sub_set, … … 10401 10260 -- ---- 10402 10261 return createEvent('_schemadoc', 'UNSUBSCRIBE_SET', 10403 p_sub_set ::text, p_sub_receiver::text);10262 p_sub_set, p_sub_receiver); 10404 10263 end; 10405 10264 </programlisting> … … 10619 10478 10620 10479 return createEvent('_schemadoc', 'RESET_CONFIG', 10621 p_set_id ::text, p_only_on_node::text);10480 p_set_id, p_only_on_node); 10622 10481 end; 10623 10482 </programlisting> … … 10721 10580 -- Changes for 1.2 10722 10581 -- ---- 10723 if p_old IN ('1.0.2', '1.0.5', '1.0.6', '1.1.0', '1.1.1', '1.1.2', '1.1.3' ,'1.1.5', '1.1.6', '1.1.7', '1.1.8', '1.1.9') then10582 if p_old IN ('1.0.2', '1.0.5', '1.0.6', '1.1.0', '1.1.1', '1.1.2', '1.1.3') then 10724 10583 -- Add new table sl_registry 10725 10584 execute 'create table sl_registry ( … … 10733 10592 execute 'alter table sl_event set without oids;'; 10734 10593 execute 'alter table sl_listen set without oids;'; 10594 execute 'alter table sl_log_1 set without oids;'; 10595 execute 'alter table sl_log_2 set without oids;'; 10735 10596 execute 'alter table sl_node set without oids;'; 10736 10597 execute 'alter table sl_nodelock set without oids;'; 10737 10598 execute 'alter table sl_path set without oids;'; 10599 execute 'alter table sl_seqlog set without oids;'; 10738 10600 execute 'alter table sl_sequence set without oids;'; 10739 10601 execute 'alter table sl_set set without oids;'; … … 10744 10606 end if; 10745 10607 10746 -- ----10747 -- Changes for 1.2.1110748 -- ----10749 if p_old IN ('1.0.2', '1.0.5', '1.0.6', '1.1.0', '1.1.1', '1.1.2', '1.1.3','1.1.5', '1.1.6', '1.1.7', '1.1.8', '1.1.9', '1.2.0', '1.2.1', '1.2.2', '1.2.3', '1.2.4', '1.2.5', '1.2.6', '1.2.7', '1.2.8', '1.2.9', '1.2.10') then10750 -- Add new table sl_archive_counter10751 execute 'create table sl_archive_counter (10752 ac_num bigint,10753 ac_timestamp timestamp10754 ) without oids';10755 execute 'insert into sl_archive_counter10756 (ac_num, ac_timestamp) values (0, ''epoch''::timestamp)';10757 end if;10758 10759 -- In any version, make sure that the xxidin() functions are defined STRICT10760 perform make_function_strict ('xxidin', '(cstring)');10761 10608 return p_old; 10762 10609 end;

