parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Кэширование вложенных соединений

G_Z 17.01.2016 21:58 / 17.01.2016 22:06

Последовательные коннекты кэшируются, а вложенные — нет.
В результате чего можно получить лок в транзакции.
@main[]
$code{
	^void:sql{
		UPDATE table
		SET field = NOW()
		WHERE id = 1
	}
}

^connect[$MAIN:SQL.connect-string]{
	^void:sql{START TRANSACTION}

	$code

	^connect[$MAIN:SQL.connect-string]{
		$code
	}

	^void:sql{COMMIT}
}
160117 21:50:40	   75 Connect	root@localhost on db
		   75 Query	SET CHARACTER SET utf8
		   75 Query	START TRANSACTION
		   75 Query	UPDATE table
		SET field = NOW()
		WHERE id = 1
		   76 Connect	root@localhost on db
		   76 Query	SET CHARACTER SET utf8
		   76 Query	UPDATE table
		SET field = NOW()
		WHERE id = 1
160117 21:52:41	   76 Quit	
		   75 Quit	
Либо ошибка, если соединение должно кэшироваться, либо вакуум в документации.
Win 7 x64, Parser 3.4.4 RC.