From: <ma...@us...> - 2007-03-29 00:29:59
|
Revision: 1831 http://svn.sourceforge.net/osdldbt/?rev=1831&view=rev Author: markwkm Date: 2007-03-28 17:29:55 -0700 (Wed, 28 Mar 2007) Log Message: ----------- Revert the changes made in revision r1829. They are not correct for pl/pgsql and another method will have to be explored to match the specification more closely. Modified Paths: -------------- trunk/dbt5/src/transactions/MarketFeedDB.cpp trunk/dbt5/storedproc/pgsql/MarketFeed.sql Modified: trunk/dbt5/src/transactions/MarketFeedDB.cpp =================================================================== --- trunk/dbt5/src/transactions/MarketFeedDB.cpp 2007-03-14 23:36:31 UTC (rev 1830) +++ trunk/dbt5/src/transactions/MarketFeedDB.cpp 2007-03-29 00:29:55 UTC (rev 1831) @@ -30,9 +30,7 @@ ostringstream osSymbol, osPrice, osQty; - for (int i = 0; - i < (sizeof(pFrame1Input->Entries) / - sizeof(pFrame1Input->Entries[0])); ++i) + for (int i = 0; i < (sizeof(pFrame1Input->Entries)/sizeof(pFrame1Input->Entries[0])); ++i) { if (i == 0) { @@ -62,7 +60,14 @@ "'::char(3)) as (symbol char(15), trade_id TRADE_T, price " "numeric(8,2), trade_quant integer, trade_type char(3))"; + BeginTxn(); + // Isolation level required by Clause 7.4.1.3 + m_Txn->exec("SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;"); result R( m_Txn->exec( osCall.str() ) ); + // Sponsors should consider committing the database changes + // before calling the send_to_market interface (we're doing that) + CommitTxn(); + if (!R.empty()) { result::const_iterator c = R.begin(); Modified: trunk/dbt5/storedproc/pgsql/MarketFeed.sql =================================================================== --- trunk/dbt5/storedproc/pgsql/MarketFeed.sql 2007-03-14 23:36:31 UTC (rev 1830) +++ trunk/dbt5/storedproc/pgsql/MarketFeed.sql 2007-03-29 00:29:55 UTC (rev 1831) @@ -41,8 +41,7 @@ now_dts = now(); FOR i IN 1..MaxSize LOOP - BEGIN; - SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; + -- start transaction UPDATE LAST_TRADE SET LT_PRICE = price_quote[i], LT_VOL = LT_VOL + trade_qty[i], @@ -96,7 +95,7 @@ END LOOP; CLOSE request_list; - COMMIT; + -- commit transaction END LOOP; END; $$ LANGUAGE 'plpgsql'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |