17/22/2016 peter
2    * Implement stapi interface to cassandra.
3
44/28/2016 karl
5    * Fix "return" in code bodies for stapi shared memory and postgres-backed speedtables.
6	* Version bump to 1.9.1
7
804/04/2016 peter
9    * Redo lockfile code to avoid issues with tcl's "rename".
10
1104/03/2016 peter
12    * Cache root directory associated with a name, so subsequent names get
13      matched to files in the same directory.
14
1503/30/2016 peter
16    * Update test framework to work without rivet/DIO
17      Env vars PG_DB ST_PREFIX STAPI_PREFIX
18
1903/27/2016 peter
20    * Fix for missing SQL code in gen_refresh_ctable_sql
21
2207/21/2012 peter
23    * Add detach option for sockets for shared memory speedtables.
24
2507/09/2012 karl
26    * Provide a variable ::stapi::cache_table_columns that if set (default 1),
27      caches the results of ::stapi::get_columns to get all the field names
28      and data types of each field for a specified table.  Should greatly
29      reduce contention for pg_class, pg_attribute and pg_type when lots
30      of children are using stapi to connect to lots of tables.
31
3206/29/2012 karl
33    * When a stapi table has a key comprised of more than one field,
34      generate a coalesce(field,'') so that where one or more of the
35      compound key fields are null, you'll still get a reasonable compound
36      key, rather than a null.
37
3806/20/2012 karl
39    * Make -fields work properly for sql-based stapi searches.
40
4106/18/2012 karl
42    * Add support to stapi postgres tables for speedtable search
43      options -array and -array_get
44
4506/11/2012 karl
46    * Factor a gen_refresh_ctable_sql proc out of refresh_ctable.
47
48    * Cache the base fetch sql once read from the stapi definition.
49
50    * Use gmt-based clock comparison when generating time-column-based
51      table updates, presuming sql fields are "timestamp without time zone",
52      which they really should be.
53
5406/10/2012 karl
55    * Standardize "if" statements to be bracketed, normalize some formatting
56      and introduce some space around various phrases in the code.
57
58    * Make ::stapi::open_raw_ctable bypass skip all the build checking
59      if a matching c_$name-style table-creating command already exists.
60
6106/09/2012 karl
62    * Rename create_ctable_definition to create_speedtable_definition and
63      gen_ctable_sql_select to gen_speedtable_sql_select.  Since only
64      stapi and some new code I'm working with use it, it's not impactful.
65
66    * Make create_speedtable_definition and, thereby, init_ctable, generate
67      the new-style "speedtables" opener rather than the old-style
68      "CExtension" one, capitalizing the first letter for compliance
69      (and it was uppercased anyway by the underlying software).
70
71      Document the new commands in the doc.txt.
72
7306/08/2012 karl
74    * Factor a stapi::create_ctable_definition proc out of stapi::init_ctable.
75
76    * Factor a stapi::gen_ctable_sql_select proc out of stapi::init_ctable.
77
7808/25/2011 bovine
79    * Improved URL escapement issues with unsafe characters stapi/display
80
8103/08/2011 bovine
82    * Add unified autoconf (TEA) system for all of speedtables (issue 15)
83
84    * Release as version 1.8.2
85
8603/07/2011 bovine
87    * Release as version 1.8
88
893/12/2010 peter
90    Default ::stapi::debugging to 0 (change to 1 to enable debug messages)
91
922/22/2010 karl
93    In open_cached, store the time column properly in the time_column array
94    so that refresh_ctable will only pull updated rows.
95
967/1/2009 peter
97    Make the read_tabsep and write_tabsep in stapi/server use escape
98    quoting.
99
1006/18/2009 karl
101    Make the "refresh_ctable" proc's "time_col" argument optional, bringing
102    the behavior of refresh_ctable in line with the documentation.
103
1043/24/2009 karl
105    Add support for the PostgreSQL "int8" data type by mapping it to
106    ctable's "wide".
107
108    Add support for the PostgreSQL "numeric" data type by mapping it to
109    ctable's "double".  This probably needs improvement.
110
1112/28/2009 karl
112    Add new proc to st_postgres, better_get_columns, which returns triples
113    of all the columns of a table... their name, real SQL type (not
114    postgresql internal type as with get_columns), and whether the column
115    is defined "not null" or not.
116
117    Switch to parsing native SQL data type definitions rather than
118    internal PostgreSQL ones when extracting ctable definition
119    info by querying metadata about a SQL table definition.  We can
120    now handle pretty much all native PostgreSQL data types in ctables.
121
122    Add comment headers to procs in many places.
123
124    Deconstipate the code by adding blank lines around "if" and "foreach"
125    bodies, a blank line between variable definitions and the code, etc.
126
1272/2/2009 karl
128    Add support for the PostgreSQL "name" and "text" data types by mapping
129    them to ctable's "varstring".
130
131    Add support for the PostgreSQL "oid" data type by mapping it to ctable's
132    "int".
133
134    Change the mapping for the PostgreSQL "int2" data type from the ctable
135    "int" to the ctable "short" type.
136
137    Change the mapping for the PostgreSQL "bool" data type from the ctable
138    "varstring" to the ctable "boolean", a huge win for booleans, dropping
139    their per-row overhead from a point, a length, and allocated memory
140    to a single bit.
141
1429/18/2008 peter
143    Split half of "sql_ctable_get" into "sql_create_sql" and use that from
144    "sql_ctable_agwn" instead of calling "sql_ctable_get", so that we can
145    distinguish "no data" from "empty list".
146
1479/17/2008 peter
148    Added "-nocomplain" option to sql_get_one_tuple to allow for ctable
149    array_get_with_nulls to return "" for a missing key rather than
150    erroring out.
151
1523/25/2008
153    Several fixes in key handling in STDisplay
154
1553/04/2008 peter
156    Make "List" the default for STDisplay.
157
15812/14/2007 karl
159    * Install by default to /usr/local/lib not /usr/fa/lib.
160
16110/4/2007 peter
162    Remove optimizer completely, it's been moved to speedtables.
163
164    Extract this ChangeLog from CVS.
165
1668/10/2007 peter
167    stapi front end for shared tables
168
169    ::stapi::connect shared://port/table ?-build build_path?
170
171    Can accept "localhost:port", for consistency.
172
1737/18/2007 peter
174    Bulk rename "sttp" to "stapi".
175
1767/11/2007 peter
177    Don't call remote ctable from inside remote ctable code block. o_O
178
1797/11/2007 peter
180    * Made sttp consistent with ctables, if there's no simple key then it
181      simulates the ctables "_key" field.
182
1837/10/2007 peter
184    Removed "perform" and "fetch" and dependencies on it to simplify the
185    API and make it easier to implement in ctables.
186    Removed the array versions of "store" and "makekey" for the same reason.
187
1887/9/2007 peter
189    Support new ctable "key" command.
190
1916/7/2007 peter
192    Document the extensions to search and reference the optimizer.
193
1942/28/2007 peter
195    Merging "sttpx" into "sttp" - it's silly having an "extended" version
196    of something that's not even released. :)
197
1982/6/2007 peter
199    Remove dependance on sc_postgres.
200
2011/24/2007 peter
202    Splitting speedcache into sttp[_server|_client|_display]
203
2041/22/2007 peter
205    Working STDisplay with "sql:" URLs.
206
2071/19/2007 peter
208    Working sql: URLs.
209
2101/18/2007 peter
211    Hack reduction: remove CableAware glue from connect_ctable, create
212    ::scache::register and move the glue to glue.tcl as connect_cache.
213    Get rid of "/var/tmp/speedcache", if you don't specify a cache
214    location it'll use the local directory.
215
2161/15/2007 peter
217    ctable connection wrapper:
218      ::scache::connect URL ?options?
219
220    URL formats:
221      ctable://...
222        cttp URI
223      sql://user:passwd@host:db/table/...
224        direct SQL connection Not implemented
225      local:///ctable
226        reference to already-opened ctable
227
228    more to come.
229
230    Q: should "ctable:" be "cttp:"?
231
232
2331/5/2007 peter
234    Import from CableAware.
235
236    Remove the "helper" routine for generating the ctable from sql because
237    it's based on the cable-aware cache.cfg file format.
238    Replaced with a "glue" routine in glue.tcl, and a routine for creating
239    the column-list format for a ctable from the sql database and
240    optional arguments.
241
242