C = CHECK constraint
D = Default or DEFAULT constraint
F = FOREIGN KEY constraint
L = Log
FN = Scalar function
IF = Inlined table-function
P = Stored procedure
PK = PRIMARY KEY constraint (type is K)
RF = Replication filter stored procedure
S = System table
TF = Table function
TR = Trigger
U = User table
UQ = UNIQUE constraint (type is K)
V = View
X = Extended stored procedure
Thursday, December 27, 2007
C = CHECK constraint
Wednesday, December 19, 2007
"Jon Udell has a column about "Structured Change Detection" where he mentions some XML diff tools that exist. The tools that he mentioned are proprietary implementations, so I was curious if I could find some open source ones. Well fortunately, I've found a whole bunch of them:
- VMTools - The toolkit contains tools for automatically generating differences between two XML documents. The difference document generated is optimized for minimal size. Supports mark-up style documents in addition to data documents.
- 3DM - The 3DM tool is a tool for performing 3-way merging and differencing of XML files. Unlike line-based tools, such as diff and diff3, 3DM is aware of the structure of the processed XML documents. 3DM is not limited to update/insert/delete operations, it also handles moves and copies of entire subtrees. 3DM is not reliant on edit histories; the only input needed are the XML files.
- diffxml - Standard UNIX tools exist for comparing (diff) and patching (patch) files, which operate on a line by line basis using well-studied methods for computing the longest common subsequence (LCS). This project contains XML diff and patch utilities. Also contains an implementation of a Delta Update Language or DUL.
- diffmk - Converts the documents into two lists of nodes (text and/or element nodes) and attempts to find the longest common subsequence of nodes. Phrased another way, it finds the smallest number of additions and deletions to each list that are required to make the two lists the same.
- XMLUnit - XMLUnit for Java provides two JUnit extension classes, XMLAssert and XMLTestCase, and a set of supporting classes (e.g. Diff, DetailedDiff ) that allow assertions to be made about the differences between two pieces of XML. XMLUnit for Java can also treat HTML content (even badly-formed HTML) as valid XML to allow these assertions to be made about the content of web pages too.
- OpenSHORE XML Merger - ool to insert XML tags from differnt sources into one or more text files. The Java program reads a very simple file format (*.xmlm files) with one XML command per line. XMLM sorts these commands, removes duplicates, ensures correct tag structure and generate XML files from listed files.
- XOperator - XOperator is a scriptable command-line tool and library to compare, merge and synchronize XML documents, a framework to formulate and evaluate algebraic expressions on XML trees and a framework to express object-oriented inheritance (and more) in pure XML.
- JXyDiff - JXyDiff is a based on XyDiff. It was originally developed at INRIA. It employs a novel Change Model tailored to XML data. It is a tree oriented algorithm that is fast and can detect if a node has been moved or updated.
- DiffX - DiffX is an open source Java API for comparing XML documents by analyzing the sequence of XML events. When processing XML data for comparison it more interesting to know that a word in the text of chapter X, paragraph Y has been changed rather than knowing that line Z is different. DiffX can ignorethe order of the attributes and white space for indentation or namespace prefixes.
- XMLPatch - XMLPatch, developed at Nokia, is a framework utilizing XML Path language (XPath) selectors for the use in applying a set of patches to a document. The framework includes a simple xml-diff utility.
- XMerge - The XMerge SDK provides a framework for converting documents between different formats using conversion plugins to read and write each format. In addition to format conversion, the XMerge SDK provides a framework for merging changes in one document format into an original document. XMerge provides plugins that are designed to support the OpenOffice.org XML file format. The framework is able to support "chaining" of conversions, also known as an "Any-to-Any" conversion, eg. convert from a Palm document to a PocketPC document through the intermediate OpenOffice.org XML file format."
Tuesday, December 18, 2007
"Could not load file or assembly or one of its dependencies. Access is denied" when compiling .NET assembly
The problem was that the directories in which the source files existed had weird permissions. (I think the root cause was using a cygwin version of git to create the subdirectories.) I changed the permissions using the "Advanced" button of the Security tab. When done properly, the "Inherited From" column showed "C:\" as where the privileges were inherited from. The broken version had the "inherited from" as inheriting from nothing.
I believe I had to check the "Inherit" box to get this to work properly, and then click the "Remove" button in the Advanced view to remove the permission entries which did not inherit from C:\.
Correct permissions look like this:
Friday, December 14, 2007
And, "to turn off the annoying beep each time you make a typo on a Unix terminal (Linux, cygwin etc.), just add the line
set bell-style noneto the file .inputrc under your home directory."